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.
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.
Auth: every subcommand requires
crewship login plus an active workspace.Subcommands
Managed integrations (Composio)
| Command | Purpose |
|---|---|
integration composio inventory | Show configured connectors (auth configs) and connected accounts grouped by user_id. |
integration composio toolkits | Browse 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 types | List available trigger types (event subscriptions like GMAIL_NEW_MESSAGE). Filters: --toolkit, --search, --limit. |
integration composio triggers active | List 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 show | Show whether/how Composio is configured (never prints the key). |
integration composio key set | Set & validate the workspace API key (--key, --label); stored encrypted. |
integration composio key remove | Remove the workspace key (revert to the server env, if any). |
integration composio default show | Show the default-connector state: the COMPOSIO_DEFAULT_CONNECTOR flag, the default user/server, and the connected-user count. |
integration composio default enable | Provision 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
| Command | Purpose |
|---|---|
integration list | List workspace integrations with agent/crew reference counts. |
integration add | Add 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-overview | Cross-crew integrations table (which crews reference which servers). |
Agent bindings
| Command | Purpose |
|---|---|
integration bind | Bind an agent to an integration with a credential. |
integration unbind | Remove 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
| Command | Purpose |
|---|---|
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)
| Command | Purpose |
|---|---|
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
| Flag | Default | Effect |
|---|---|---|
--name <slug> | (required) | Integration name (slug). |
--display <string> | (= --name) | Display name. |
--transport <enum> | streamable-http | streamable-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
| Flag | Default | Effect |
|---|---|---|
--agent <slug> | (required) | Agent slug. |
--server <name> | (required) | Integration name. |
--credential <name> | (unset) | Credential to attach. |
--cred-type <enum> | bearer | bearer, api_key, basic. |
--cred-header <name> | (unset) | Custom header name (for api_key). |
integration unbind
| Flag | Effect |
|---|---|
--agent <slug> | Agent slug. Required. |
--binding-id <id> | Binding ID to remove. Required. |
integration crew create
| Flag | Default | Effect |
|---|---|---|
--name <slug> | (required) | Integration name. |
--display <string> | (= --name) | Display name. |
--transport <enum> | streamable-http | streamable-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
| Flag | Effect |
|---|---|
--display | New display name. |
--transport | streamable-http or stdio. |
--endpoint | New URL. |
--command | New stdio command. |
--icon | Lucide icon. |
--enabled | Enable/disable (default true). |
integration crew delete
| Flag | Default | Effect |
|---|---|---|
-y, --yes | false | Skip the confirmation prompt. |
integration agent update-binding
| Flag | Effect |
|---|---|
--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
Add a workspace integration
Bind an agent to it
Inspect an agent’s effective integrations
Crew-scoped integration
Toggle a single tool
Patch a binding
--credential "" to clear the binding’s credential link.
Common errors
Common errors and what they mean
Common errors and what they mean
--name is required—integration addorintegration crew createwas called without a name.--agent and --server are required—integration bindneeds both flags.--agent and --binding-id are required—integration unbind.no fields to update— crewupdateor agentupdate-bindingwas called with noChanged()flags.no fields to update (use --credential, --cred-type, --cred-header, --env-var-name, or --enabled)— explicit guidance fromagent update-binding.
See also
crewship mcp— MCP registry, audit log, and rawmcp_config_jsonediting.crewship credential— the credentials bound to integrations.crewship crew— crew CRUD; integrations are crew-scoped by default.- Integrations API —
GET /api/v1/integrations.