Skip to main content

crewship integration

Integrations are MCP servers Crewship can call into. They exist at three scopes:
  • Workspace — declared once, shared across crews. Workspace-level integrations live at /api/v1/integrations.
  • Crew — declared inside one crew. May optionally link to a workspace-level template (--link-workspace-server).
  • Agent binding — links an agent to a server with a specific credential.
Plus a fourth layer for crew-scoped servers: per-tool enable/disable (mcp_tool_bindings), so an agent that imports a 30-tool server doesn’t see all 30 in its tool list by default. Aliases: intg. Defined in cmd/crewship/cmd_integration.go, with the crew/tools/agent subtrees in companion files.
crewship integration <subcommand> [flags]
crewship intg <subcommand> [flags]
Auth: every subcommand requires crewship login plus an active workspace.

Subcommands

Managed integrations (Composio)

CommandPurpose
integration composio inventoryShow configured connectors (auth configs) and connected accounts grouped by user_id.
integration composio toolkitsBrowse the Composio app catalog (1000+ apps). Filters: --search, --category, --limit.
integration composio tools <toolkit>List the tools a toolkit exposes (e.g. github has 846). Filters: --search, --limit.
integration composio triggers typesList available trigger types (event subscriptions like GMAIL_NEW_MESSAGE). Filters: --toolkit, --search, --limit.
integration composio triggers activeList active trigger instances across all users.
integration composio triggers enable <slug>Create/enable a trigger instance for a user. Requires --user <id>.
integration composio key showShow whether/how Composio is configured (never prints the key).
integration composio key setSet & validate the workspace API key (--key, --label); stored encrypted.
integration composio key removeRemove the workspace key (revert to the server env, if any).
integration composio default showShow the default-connector state: the COMPOSIO_DEFAULT_CONNECTOR flag, the default user/server, and the connected-user count.
integration composio default enableProvision the default connector, auto-deriving the Composio user_id when exactly one is connected (errors on zero/multiple).
integration composio default set <user_id>Pin the default connector’s Composio user_id and (re)provision the default server.
integration composio connect <toolkit>Start an OAuth Connect Link to authorize an app for a Composio user. Requires --user <id>. Prints a redirect URL the end-user opens to grant access.
integration composio bind <agent>Bind a Composio user_id to an agent with per-app tool scope. Requires --user <id>; repeatable --app toolkit[:mode[:t1,t2]] (mode = full|read|custom), e.g. --app gmail:read --app github:full --app gmail:custom:GMAIL_FETCH_EMAILS,GMAIL_LIST_THREADS. --toolkits a,b is a shorthand for each app at full. Re-binding replaces the app set.
integration composio unbind <agent>Remove an agent’s Composio access. --app <toolkit> removes one app; omit it to remove all.
integration composio bindings <agent>Show an agent’s per-app Composio bindings (toolkit, mode, user, endpoint).
integration composio account revoke <account-id>De-authorize a connected account at the provider (must be re-connected to use again).
integration composio account refresh <account-id>Refresh a connected account’s credentials.
integration composio account remove <account-id>Permanently delete a connected account at the provider.
connect maps to POST /api/v1/integrations/composio/connect (workspace manage). Flag: --user <id> (required) — the Composio user_id to connect the account under. <toolkit> is a single positional arg. bind/unbind map to POST/DELETE /api/v1/integrations/composio/agents/{agentId}/bind (workspace manage); bindings to the matching GET (read). The agent argument accepts a slug or id. account revoke/refresh/remove map to POST .../accounts/{accountId}/revoke, POST .../accounts/{accountId}/refresh, and DELETE .../accounts/{accountId} (all workspace manage); the account-id is the Composio account id shown by integration composio inventory --output json. default show maps to GET /api/v1/integrations/composio/default (read); default enable/default set map to the matching PUT (workspace manage). When the server’s COMPOSIO_DEFAULT_CONNECTOR flag is on, every agent without an explicit bind inherits the default connector (full access to all connected apps) and legacy non-Composio MCP servers are turned off at resolve time; a per-agent bind overrides the default for that agent. See the Integrations guide. Maps to GET /api/v1/integrations/composio/inventory. Requires a Composio API key for the active workspace — set one per-workspace with integration composio key set (or from the Integrations UI), or fall back to a server-level COMPOSIO_API_KEY. Prints a “not configured” notice when neither is present. Add --output json for the raw payload. See the Integrations guide.

Workspace-scoped

CommandPurpose
integration listList workspace integrations with agent/crew reference counts.
integration addAdd a workspace integration.
integration get <id-or-name>Show detail (transport, endpoint/command, enabled).
integration remove <id-or-name>Delete a workspace integration.
integration enable <id-or-name>Enable.
integration disable <id-or-name>Disable.
integration test <id-or-name>Hit POST /integrations/{id}/test and print the result.
integration crews-overviewCross-crew integrations table (which crews reference which servers).

Agent bindings

CommandPurpose
integration bindBind an agent to an integration with a credential.
integration unbindRemove an agent binding (by binding id).
integration agent-bindings <agent-slug>List bindings for an agent.
integration resolve <agent-slug>Show effective integrations after cascade resolution (workspace ↘ crew ↘ agent).
integration agent update-binding <agent-slug> <binding-id>Patch a binding (credential, type, env var, enabled).

Crew-scoped CRUD

CommandPurpose
integration crew list <crew-slug>List crew integrations.
integration crew create <crew-slug>Create a crew-scoped integration.
integration crew update <crew-slug> <integration-id>Patch fields.
integration crew delete <crew-slug> <integration-id>Delete (prompts unless -y).
integration crew test <crew-slug> <integration-id>Test the connection.

Per-tool toggles (crew-scoped only)

CommandPurpose
integration tools list <crew-slug> <integration-id>List discovered tools + their enabled state.
integration tools enable <crew-slug> <integration-id> <tool-name>Enable one tool.
integration tools disable <crew-slug> <integration-id> <tool-name>Disable one tool.
integration tools refresh <crew-slug> <integration-id>Reconcile bindings with live MCP discovery (today: scaffolding, server treats empty payload as no-op).

Flags

integration add

FlagDefaultEffect
--name <slug>(required)Integration name (slug).
--display <string>(= --name)Display name.
--transport <enum>streamable-httpstreamable-http or stdio.
--endpoint <url>(unset)MCP server URL (streamable-http).
--command <string>(unset)Command line (stdio).
--icon <name>(unset)Lucide icon name.

integration bind

FlagDefaultEffect
--agent <slug>(required)Agent slug.
--server <name>(required)Integration name.
--credential <name>(unset)Credential to attach.
--cred-type <enum>bearerbearer, api_key, basic.
--cred-header <name>(unset)Custom header name (for api_key).

integration unbind

FlagEffect
--agent <slug>Agent slug. Required.
--binding-id <id>Binding ID to remove. Required.

integration crew create

FlagDefaultEffect
--name <slug>(required)Integration name.
--display <string>(= --name)Display name.
--transport <enum>streamable-httpstreamable-http or stdio.
--endpoint <url>(unset)MCP server URL.
--command <string>(unset)stdio command.
--icon <name>(unset)Lucide icon.
--link-workspace-server <id>(unset)Reference an existing workspace integration.

integration crew update

FlagEffect
--displayNew display name.
--transportstreamable-http or stdio.
--endpointNew URL.
--commandNew stdio command.
--iconLucide icon.
--enabledEnable/disable (default true).

integration crew delete

FlagDefaultEffect
-y, --yesfalseSkip the confirmation prompt.

integration agent update-binding

FlagEffect
--credential <name>New credential name. Empty string clears the binding.
--cred-type <enum>bearer, api_key, basic.
--cred-header <name>Custom header for api_key.
--env-var-name <name>Env-var name; empty string clears it.
--enabled <bool>Set enabled state.
<binding-id> here is the agent_mcp_bindings.id printed under the BINDING ID column by integration agent-bindings. It is not the workspace integration’s id.

Examples

Connect a Composio account

crewship integration composio connect gmail --user user-42
# Open this URL to authorize gmail for user "user-42":
#   <redirect_url>   (the backend-issued Connect Link; exact host varies)

Add a workspace integration

crewship integration add \
  --name gmail \
  --display "Google Gmail" \
  --transport streamable-http \
  --endpoint https://mcp.example.com/gmail
stdio:
crewship integration add \
  --name local-tools \
  --transport stdio \
  --command "npx @modelcontextprotocol/server-github"

Bind an agent to it

crewship integration bind \
  --agent daniel \
  --server gmail \
  --credential daniel-gmail-token

Inspect an agent’s effective integrations

crewship integration resolve daniel
# NAME      DISPLAY        SCOPE      TRANSPORT          CREDENTIAL
# gmail     Google Gmail   workspace  streamable-http    daniel-gmail-token
# linear    Linear         crew       streamable-http    crew-linear-token
The cascade is workspace ↘ crew ↘ agent — closer scopes win.

Crew-scoped integration

crewship integration crew create acme-engineering \
  --name linear \
  --transport streamable-http \
  --endpoint https://mcp.linear.app/sse

Toggle a single tool

crewship integration tools list acme-engineering intg_abc123
# TOOL              ENABLED  DESCRIPTION                              UPDATED
# list_issues       yes      List issues in a Linear team             2026-05-19T…
# create_issue      yes      Create a new issue                       2026-05-19T…
# delete_issue      no       Delete an issue (irreversible)           2026-05-19T…

crewship integration tools disable acme-engineering intg_abc123 delete_issue

Patch a binding

crewship integration agent update-binding daniel bind_xyz \
  --credential daniel-gmail-token-v2 \
  --cred-type bearer
Pass --credential "" to clear the binding’s credential link.

Common errors

  • --name is requiredintegration add or integration crew create was called without a name.
  • --agent and --server are requiredintegration bind needs both flags.
  • --agent and --binding-id are requiredintegration unbind.
  • no fields to update — crew update or agent update-binding was called with no Changed() flags.
  • no fields to update (use --credential, --cred-type, --cred-header, --env-var-name, or --enabled) — explicit guidance from agent update-binding.

See also