Use Comma with Windsurf

Windsurf's Cascade agent speaks the Model Context Protocol. Attach Comma's hosted MCP server and Cascade picks up the full set of report and comment tools — same scoped token shape as the REST API.

Add Comma to Windsurf

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json (also reachable through the MCP section of Windsurf's settings UI — naming and menus have shifted between releases, so go by the file if in doubt). Add a Comma entry pointing at the hosted endpoint:

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

Replace comma_sk_… with a token from Settings → API tokens → New token on Comma. Scope it to the actions you want the agent to take — typically reports:write and comments:write. Then reload Windsurf (or refresh its MCP servers) so Cascade picks up the tools.

Windsurf's support for remote HTTP servers has evolved across versions. If your version only handles stdio servers, or the serverUrl entry doesn't connect, bridge to the hosted endpoint with mcp-remote:

{
  "mcpServers": {
    "comma": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://commareports.com/api/mcp",
        "--header",
        "Authorization: Bearer comma_sk_…"
      ]
    }
  }
}

Same endpoint, same token — the bridge just speaks stdio to Windsurf and HTTP to Comma.

What the agent can do

Capability Tools
Publish a report create_report, update_report
Find existing reports list_reports, search_reports, get_report, read_report
Leave / reply to comments add_comment, reply_to_comment, set_comment_status, list_comments
Request review request_review
Manage assets upload_report_asset, list_report_assets, delete_report_asset

Cascade picks the right tool from its reasoning — there are no Windsurf-specific commands to memorize.

Common workflows

Publish at the end of a task

Ask Cascade to "summarize this migration as an HTML report and publish it to Comma." The agent generates the HTML, calls create_report, and hands back the share link — your team opens a document, not an editor session.

Respond to review feedback

Teammates leave anchored comments on the published report. Next session, ask Cascade to "check the comments on the migration report and address them" — it reads the threads with list_comments, ships a new revision with update_report (same URL), replies, and resolves the threads.

Keep one URL across agents

Reports belong to your workspace, not to the agent that wrote them. A report Cascade published can be updated by Claude Code or Cursor tomorrow — the link your stakeholders bookmarked keeps working.

Token shape

  • Lives in ~/.codeium/windsurf/mcp_config.json — a user-level file, so it won't end up committed with a project repo, but treat it like any API key on a shared machine.
  • Scoped — you choose which actions it can take when you create it.
  • Revocable in one click from Settings → API tokens. Revocation applies immediately to the REST API, the MCP server, and any routines the token created.
  • Rate-limited per token (60 requests/minute by default).

Details in API tokens →, and patterns in Scoped tokens for AI agents →.

Try it

Drop the snippet into mcp_config.json, generate a token, reload Windsurf, and ask Cascade to publish anything you have lying around as HTML. From the web UI, leave an anchored comment and ask the agent what it sees on its next turn.

Generate a token →

Related