Skip to main content

crewship mcp

mcp is the top-level MCP root: audit log, public registry, and the raw mcp_config_json blob editors that sit on crews and agents. Use crewship integration for the higher-level CRUD (bindings, per-tool toggles, credential plumbing); mcp is what you reach for when you need the raw JSON or want to inspect calls after the fact. Defined in cmd/crewship/cmd_mcp.go.
API management subcommands require crewship login. Registry browse/search don’t require a workspace (registry data is workspace-agnostic and the CLI strips the workspace_id header before sending). Everything else does.

Local MCP server

crewship mcp serve exposes the selected API catalog, focused workflows and guarded HTTP requests to AI clients over stdio. Discovery has an embedded offline fallback; execution uses the pinned CLI identity. See AI clients for connection commands, all server flags, the bundled skill and mutation policy.

Subcommands

mcp root

Crew / agent JSON editing

These live under crewship crew and crewship agent, registered from this file:

Flags

mcp audit list

Output is the raw JSON shape — pipe through jq for filtering (jq '.[] | select(.status=="error")').

mcp registry list

mcp registry search <query>

crew mcp <crew-slug>

With neither flag, the command runs in GET mode: it pretty-prints the current config or says no MCP config set.

agent mcp <agent-slug>

JSON shape

Both crew mcp and agent mcp validate the JSON before sending. It must contain an mcpServers object — anything else returns JSON must contain a "mcpServers" object. Inside, the standard MCP shape:
The CLI re-marshals into compact form before writing — the stored value is normalised JSON, not whatever whitespace you pasted.

Examples

Audit recent tool calls

Browse the registry

Search the registry

Trigger a manual sync (admin)

Admin-only, with a 1-hour cooldown. A 429 means someone synced recently.

Show / set a crew’s config

The success line tells you how many servers landed: Crew acme-engineering: MCP config set (3 servers).

Show / set an agent’s config

--resolved prints up to two labeled sections. The first, # Blob config (crews/agents.mcp_config_json):, merges by mcpServers.<name> — agent keys win over crew keys with the same name, additive otherwise (when there are no integration bindings, the merged JSON prints without the section header). The second, # Integration bindings (workspace/crew servers + agent bindings):, folds in the integration-table cascade, one bulleted line per server, e.g.:
An agent with neither source prints Agent <slug>: no MCP servers (no blob config, no integration bindings).

Common errors

  • invalid MCP JSON: ... — the value didn’t parse as JSON.
  • JSON must contain a "mcpServers" object — top-level key missing.
  • --set and --set-file are mutually exclusive — pick one.
  • --resolved cannot be combined with --set or --set-file — --resolved is a read flag.
  • read file <path>: ... — --set-file couldn’t open the path.

See also