API reference

MCP server

Fixback speaks MCP, so a coding agent can read your issues — brief, evidence and trace — and triage them, without you pasting anything. Connect Claude Code, Cursor, or any MCP client in one command.

The endpoint

The server lives on the API origin, not the dashboard: https://fixback-api.dev.wemuda.com/mcp, or https://fixback-api.dev.wemuda.com/mcp/readonly where only the read tools exist. A self-hosted or preview stack uses its own API origin — Settings → MCP in your dashboard shows the exact URL and command for the deployment you are signed in to.

Claude Code

What may your agent do?
shell
claude mcp add --transport http --scope user fixback https://fixback-api.dev.wemuda.com/mcp

--scope user registers the server for your account, so it is there in every project and you sign in once; drop it to add Fixback to the current directory alone. Then run /mcp in Claude Code and pick Authenticate: your browser opens Fixback, you approve the connection, and the agent acts as you — only in workspaces you belong to. Nothing to copy, no key to store.

Cursor, Claude.ai, and other clients

Any client that speaks MCP over HTTP works. Point it at the URL above; it will discover the sign-in flow by itself. Clients that take a JSON config want this:

json
{  "mcpServers": {    "fixback": {      "type": "http",      "url": "https://fixback-api.dev.wemuda.com/mcp"    }  }}

CI and headless use: an API key

Where no browser can open — CI, a script, a server-side agent — create a personal key in Settings → MCP and send it as a bearer token. A key acts as you, carries only the scopes you tick, and can be given an expiry and revoked at any time.

shell
claude mcp add --transport http --scope user fixback https://fixback-api.dev.wemuda.com/mcp \  --header "Authorization: Bearer fbu_your_key"

The tools

Most questions are one call: “what's open on Clockwork?” is list_issues with the project's name, and “look at CLK-12” is get_issue. Issue ids accept keys like CLK-12 as well as UUIDs.

ToolNeedsWhat it does
list_projectsreadYour projects across every workspace, with open-issue counts. Rarely needed — the other tools take a project's name.
list_issuesreadIssues newest-first, in one project (by name, key, or id) or across every workspace. Filters by state, kind, and words in the title; pages with a cursor.
get_issuereadOne issue as a complete briefing: the Brief, the reporter's words, the page and environment, the code-area pointer and the trace timeline.
get_trace_windowreadThe raw console, network and navigation entries behind an issue, when the briefing's trace is not enough.
update_issueissues:writeResolve, dismiss, close or reopen an issue, set its kind, mute it.
merge_issuesissues:writeMerge a duplicate into the issue it duplicates, within one project.
detach_issueissues:writeUndo a merge.
dismiss_duplicateissues:writeMark two issues as not duplicates, so the pair is never suggested again.
update_briefissues:writeReplace an issue's Brief with your own Markdown.
regenerate_briefissues:writeDiscard the Brief and have analysis write a new one; it arrives asynchronously.

Approving tools once

Claude Code asks before it calls a tool it has not used before. Choose don't ask again there, or settle it up front in ~/.claude/settings.json — this matches the access you picked above:

json
{  "permissions": {    "allow": [      "mcp__fixback"    ]  }}

"mcp__fixback" is the whole server, so writes never prompt either; pick Read only above to pre-approve the four read tools alone. This is your client's setting, not Fixback's — other clients have their own (Claude.ai approves a connector once, for example).

When something goes wrong

What you seeWhat it means
405 Not Allowed from nginxThe URL points at the dashboard or marketing origin. Use the API origin above.
401, or the client asks you to sign in againThe key was revoked or expired, the account was removed, or the access token aged out — re-authenticate, or create a new key.
403 insufficient_scopeA write tool with a read-only credential. Create a key with Allow changes to issues, or reconnect asking for write access.
“Issue key … is ambiguous”Two of your workspaces share a project key. The error lists the matching issues — call again with the UUID it names.
“No project …”The error lists the projects you can reach; use one of those names or keys.