# Use Comma with Factory Droid — droid mcp add with a Bearer header

Canonical: https://commareports.com/mcp/factory-droid
Published: 2026-09-16

> Add Comma to Factory's Droid with droid mcp add --type http --header and --no-oauth, or ~/.factory/mcp.json. Droids can publish HTML reports reviewers comment on.

# Use Comma with Factory Droid

Droids take whole tickets and come back with a result. The result is often a document — a migration plan, an incident writeup, a code review — and Comma gives it a URL with anchored comments the next Droid session can read.

## Add Comma to Factory Droid

User: `~/.factory/mcp.json`. Project: `.factory/mcp.json` (Factory's docs warn against committing secrets there).

```json
{
  "mcpServers": {
    "comma": {
      "type": "http",
      "url": "https://commareports.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${COMMA_API_TOKEN}"
      }
    }
  }
}
```

Replace `comma_sk_…` with a token from **Settings → API tokens → New token** on Comma (or export it as `COMMA_API_TOKEN` where the snippet reads an env var). The default scopes — `reports:write`, `comments:read`, `comments:write` — cover publishing and review.

```bash
droid mcp add comma https://commareports.com/api/mcp --type http --header "Authorization: Bearer comma_sk_…" --no-oauth
```

## Factory Droid gotchas

- **Pass `--no-oauth`.** Otherwise Droid attempts OAuth against a server that authenticates with a static token.
- Use `${COMMA_API_TOKEN}` in `.factory/mcp.json` if the file lives in a repo.
- Loop comments back in: ask the Droid to `list_comments` on the report before starting the next iteration.

## What the agent can do

| Capability                | Tools                                                                    |
| ------------------------- | ------------------------------------------------------------------------ |
| Publish a report          | `create_report`, `update_report`, `create_report_from_url`               |
| 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` |
| Ask for review, share     | `request_review`, `set_report_sharing`, `get_report_signoffs`            |
| Manage assets             | `upload_report_asset`, `list_report_assets`, `delete_report_asset`       |

Droid picks the tool from the request — there are no Factory Droid-specific commands to learn.

## A workflow that sticks

1. Ask Droid to write up the work as a self-contained HTML report and publish it to Comma. It calls `create_report` and returns a link.
2. Send the link. Reviewers open a rendered page and leave comments anchored to the exact line, cell or chart they mean — no account needed to read a public link.
3. Next session, ask Droid to address the comments. It reads the threads with `list_comments`, ships a revision with `update_report` (same URL), replies, and resolves them.

Reports belong to your workspace, not to the agent. A report published from Factory Droid can be revised tomorrow from Claude Code or Cursor, and the link people bookmarked keeps working.

## Token shape

- Lives in `~/.factory/mcp.json`, or read from `COMMA_API_TOKEN` in a project file.
- 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.

Details in [API tokens →](/docs/api-tokens) and [Scoped tokens for AI agents →](/agents/scoped-tokens-for-ai-agents).

## Try it

Add the entry, generate a token, restart Factory Droid, and ask for a report on something you worked on today. Then leave a comment on it and ask the agent what it sees.

**[Generate a token →](https://commareports.com/settings/tokens)**

### Related

- [Comma MCP server overview](/mcp)
- [Share what Factory Droid produced](/agents/share-factory-droid-output)
- [Use Comma with Claude Code](/mcp/claude-code)
- [Use Comma with Cursor](/mcp/cursor)
- [Where should my AI agent post its work?](/agents/where-should-my-agent-post)
