Bỏ qua để đến nội dung

Use the MCP server

Nội dung này hiện chưa có sẵn bằng ngôn ngữ của bạn.

This guide shows you how to connect an external MCP client — Claude Code, an editor, the MCP Inspector — to Control Center’s own tool server.

Control Center registers 110 tools and serves them over the Model Context Protocol at protocol version 2024-11-05. Whole tool families you might expect are absent: there are no meeting or calendar tools and no project tools.

The MCP surface shares the main cc_server listener. There is no separate MCP port.

Endpoint Method Purpose
/mcp POST Streamable HTTP transport — this is what a client speaks
/mcp DELETE End a session
/sse GET Server-sent notification stream

So a default local install is at http://127.0.0.1:9030/mcp.

  1. Go to Settings → Server → MCP servers
  2. Read the MCP server card — it shows running or stopped and the port it is listening on

The surface is on by default on a fresh install, so a loopback client works with no settings trip. Start on app launch controls whether it comes back after a restart; Start / Stop are session controls that do not change that preference.

The server binds loopback by default, so the endpoint is only reachable from the machine cc_server runs on unless you started it with --bind any.

Point your client at the Streamable HTTP endpoint. The exact configuration shape is your client’s business; the URL is the same either way.

{
"mcpServers": {
"control-center": {
"type": "http",
"url": "http://127.0.0.1:9030/mcp"
}
}
}

Claude Code will not pick this up from a project .mcp.json — it gates project-scoped MCP servers behind an approval prompt that a non-interactive claude -p never answers. Pass the config explicitly:

Terminal window
claude --mcp-config /path/to/mcp.json --strict-mcp-config

--strict-mcp-config makes Claude use only that file, so the same server is not also discovered from the project and registered twice.

Checkpoint: ask the client to list its tools. You should see mcp__* entries covering tickets, spaces, memory, code graph and review.

  1. On Settings → Server → MCP servers, on the Authentication token row, press Set and paste a token
  2. Send it as Authorization: Bearer <token> on every POST /mcp request

A tokenless surface refuses any non-loopback caller with 403. That is fail-closed by design: the token is what makes off-host service possible at all.

Token changes apply to the live surface immediately — no restart.

Every tool that touches workspace-scoped data requires workspace_id and a call without it is refused rather than resolved against some “current” workspace:

{
"workspace_id": "acme",
"title": "Fix login bug",
"priority": "high"
}

The id is the one in your browser or app URL: /workspaces/<workspace_id>/…. The only exemptions are tools that genuinely span workspaces, such as list_workspaces and the newsfeed tools — the newsfeed is per-user and an agent has no user of its own, so those tools operate on the server owner’s feeds.

Repo-scoped tools additionally check that the repo is linked to that workspace.

  • Mode gating. A call is resolved against the mode of the calling agent’s space, server-side. An agent in a read-only mode cannot reach a write tool by omitting space_id — the mode is looked up from its active run instead.
  • Action guardrails. Mutating tools declare their effect classes and go through the same policy the rest of the product uses. See Configure guardrails.
  • Confirmation. Some destructive tools build a confirmation payload that has to be approved before the call proceeds.

The full catalogue is advertised in tools/list with no discovery gating — an external MCP client refuses to call a tool that is not in its cached list, so hiding tools breaks them rather than tidying them.

  • Check the MCP server card says running
  • Check the port matches your cc_server port
  • On Claude Code, check you passed --mcp-config and --strict-mcp-config

No bearer token is configured. Set one and send it.

A tool call fails with “Missing or invalid argument: workspace_id”

Section titled “A tool call fails with “Missing or invalid argument: workspace_id””

Add workspace_id. There is no implicit workspace.

MCP tools lists the catalogue. Call the name exactly as it appears there.