# Use Comma with Claude Desktop — publish artifacts your team can open

Canonical: https://commareports.com/mcp/claude-desktop

> Attach the Comma MCP server to Claude Desktop and publish HTML straight from a conversation — no terminal. Reports land behind your chosen access level with anchored comments.

# Use Comma with Claude Desktop

Claude Desktop builds beautiful HTML artifacts — and its **Publish** button
makes them public. For work, what you usually want is the opposite: a link
only your team can open. Attach Comma as an MCP server and "publish this to
Comma" becomes part of the conversation.

## Add Comma to Claude Desktop

Open the config file
(**Settings → Developer → Edit Config**, or directly):

- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

Add a Comma entry. Claude Desktop attaches to remote bearer-token servers
via the [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) bridge
(requires Node.js):

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

Replace `comma_sk_…` with a token from
**Settings → API tokens → New token** on Comma — scope it to
`reports:write` and `comments:write` for the standard publish-and-respond
loop. Restart Claude Desktop; the Comma tools appear in the tools menu.

## Publishing from a conversation

Once attached, no commands to memorize:

> "Turn this analysis into an HTML report and publish it to Comma for the
> growth team."

Claude generates the HTML, calls `create_report`, and replies with the
link. From the share dialog (or by asking Claude to call
`set_report_sharing`, if the token carries the `sharing` scope) you control
exactly who can open it — see [Sharing & access control →](/docs/sharing).

## The feedback loop

Teammates leave anchored comments on the rendered report. In a later
conversation:

> "Check the comments on yesterday's growth report and address them."

Claude reads the threads with `list_comments`, revises with
`update_report` — same URL, new revision, diffable history — then replies
and resolves the threads.

## Why not just use Claude's Publish button?

| | Claude **Publish** | **Comma** |
| --- | --- | --- |
| Who can open it | Anyone with the link | Private / team / domain / registered / public — your call |
| Comments | None | Anchored threads, with replies and resolve state |
| Updates | New artifact, new link | Same URL, new revision, diff between any two |
| Works from other agents | No | Yes — same report, same token surface, any MCP client |

## See also

- [MCP server reference →](/docs/mcp) — full tool list.
- [Use Comma with Claude Code →](/mcp/claude-code) — for the CLI sibling,
  there's also a [one-line plugin →](/docs/claude-code-plugin).
- [API tokens →](/docs/api-tokens) — scopes, expiry, revocation.
