# MCP server · Comma Docs

Canonical: https://commareports.com/docs/mcp

> Attach Comma's hosted MCP server to Claude Code, Cursor, Codex, or Claude Desktop. Full tool list, authentication, and per-client setup links.

# MCP server

Comma ships a hosted [Model Context Protocol](https://modelcontextprotocol.io)
server at:

```
https://commareports.com/api/mcp
```

Attach it to any MCP-capable client and the agent gets the full Comma
surface as tools — publish, search, read, comment, share, automate. There is
nothing to run locally; it's the Streamable HTTP transport with your
`comma_sk_…` token as the Bearer header.

```json
{
  "mcpServers": {
    "comma": {
      "url": "https://commareports.com/api/mcp",
      "headers": { "Authorization": "Bearer comma_sk_…" }
    }
  }
}
```

Authentication, scopes, revocation, and rate limits are identical to the
[REST API](/docs/api-tokens) — it's the same token through the same checks.

## Per-client setup

- [Claude Code →](/mcp/claude-code) (or use the
  [plugin](/docs/claude-code-plugin), which bundles the MCP attachment plus
  slash commands)
- [Cursor →](/mcp/cursor)
- [VS Code →](/mcp/vscode)
- [Windsurf →](/mcp/windsurf)
- [Codex →](/mcp/codex)
- [Claude Desktop →](/mcp/claude-desktop)

## Tools

What the agent can call once attached (gated by the token's scopes):

| Area          | Tools                                                                                            |
| ------------- | ------------------------------------------------------------------------------------------------ |
| Reports       | `create_report`, `update_report`, `get_report`, `read_report`, `list_reports`, `search_reports`  |
| Comments      | `list_comments`, `add_comment`, `reply_to_comment`, `set_comment_status`                         |
| Sharing       | `set_report_sharing`                                                                             |
| Assets        | `upload_report_asset`, `list_report_assets`, `delete_report_asset`                               |
| Reviews       | `request_review`, `create_reviewer`, `update_reviewer`, `delete_reviewer`, `list_reviewers`      |
| Routines      | `create_routine`, `update_routine`, `delete_routine`, `list_routines`, `run_routine`             |
| Skills        | `create_skill`, `delete_skill`, `list_skills`                                                    |
| Connectors    | `create_connector`, `delete_connector`, `list_connectors`                                        |
| Integrations  | `list_integrations`, `connect_integration`, `disconnect_integration`                             |
| Notifications | `create_notification`, `delete_notification`, `list_notifications`                               |
| Websites      | `create_website`, `read_website`, `list_websites`, `deploy_website`, `list_website_comments`, `set_website_comment_status` |

## The loop that matters

The reason MCP is first-class in Comma: agents don't just publish — they
participate.

1. Agent publishes with `create_report`, returns the link.
2. Teammates leave anchored comments on the rendered report.
3. Agent reads the threads with `list_comments`, makes the fix, calls
   `update_report` — same URL, new revision.
4. Agent replies on the thread and resolves it with `set_comment_status`.

See [Let an agent respond to comments →](/agents/let-an-agent-respond-to-comments)
for the workflow in detail.
