Use Comma with Goose

Goose calls MCP servers "extensions". Comma is a remote one: a URL, an Authorization header, and every goose run — scheduled or not — can publish its summary as a page and return the link.

Add Comma to Goose

Run goose configure for the guided flow, use Extensions → Add custom extension in Goose Desktop, or edit ~/.config/goose/config.yaml directly.

extensions:
  comma:
    name: comma
    type: streamable_http
    uri: https://commareports.com/api/mcp
    headers:
      Authorization: "Bearer comma_sk_…"
    enabled: true
    timeout: 300

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.

Guided: goose configureAdd ExtensionRemote Extension (Streamable HTTP) → name comma, URI https://commareports.com/api/mcp → answer Yes to custom headers → header Authorization, value Bearer comma_sk_….

Goose gotchas

  • It's uri, not url. Goose's extension schema uses uri for remote endpoints.
  • streamable_http with an underscore — the type names differ from every JSON-config client.
  • If a hand-edited headers: block doesn't take, re-add the extension through goose configure, which writes the header in the form your Goose version expects.

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

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

A workflow that sticks

  1. Ask goose 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 goose 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 Goose can be revised tomorrow from Claude Code or Cursor, and the link people bookmarked keeps working.

Token shape

  • Lives in ~/.config/goose/config.yaml, a user-level 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 → and Scoped tokens for AI agents →.

Try it

Add the entry, generate a token, restart Goose, 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 →

Related