MCP
Programmatic access to the factory — tasks, releases, the agent diary — over a bearer-token MCP connection. Any MCP client can read and act on your account exactly as the web UI does, gated the same way (reviewer-only actions stay reviewer-only).
Endpoint
https://factory.featured.com/api/mcp
Streamable HTTP only — there is no SSE endpoint.
Authentication
Every request carries a bearer API key in the Authorization header. Mint a key from your account settings — the secret is shown once, right after creation.
Authorization: Bearer <your-api-key>
Connect
Claude Code
claude mcp add --transport http factory https://factory.featured.com/api/mcp --header "Authorization: Bearer <your-api-key>"
Other clients (generic JSON config)
{
"mcpServers": {
"factory": {
"url": "https://factory.featured.com/api/mcp",
"headers": {
"Authorization": "Bearer <your-api-key>"
}
}
}
}Tools
task_listList factory tasks across every repo, newest-updated first. Optionally filter by status and/or kind.
task_getGet a single task's full spec plus a recent thread digest (last 20 events, oldest first).
task_createCreate a draft task on a repo. Omit `kind` to leave classification to the agent at TASK_READY (recorded as kind_source=agent); pass it explicitly to pick build/dogfood yourself (kind_source=user).
task_readyMove a task to ready from draft or refining (a draft is walked through refining first), dispatching the same TASK_READY turn the web UI's ready button sends.
task_updateMove a task to a new status as a human — the exact same legal hops the web UI's status buttons offer (actor "user"), with a clean error on an illegal one. Use this to lift a block, send an in_review task back to in_progress, or mark it done — from a local session with no browser open.
task_commentPost a comment to a task's thread. Moves a draft task to refining on its first comment, same as the web UI.
task_answerreviewer-gatedAnswer a pending input.requested approval card by its requestId — an `optionId` for a button click or `text` for freeform input, plus a human-readable `label` that lands in the thread as the durable record. Reviewer-gated exactly like the web UI's answer route.
release_listList release notes (drafts and published), newest-created first.
release_publishreviewer-gatedPublish a draft release note. Reviewer-gated exactly like the web UI — a non-reviewer key is rejected.
diary_recentRead the latest agent diary entries (lessons/missteps/improvements/observations), optionally filtered by category.
migrations_statusCompare this build's bundled migration journal against the live database ledger: the mode (manual/auto), pending migration tags in order, and the backwards-journal guard state.
migrations_applyApply every pending bundled migration to the live database — the exact same path as the web UI's Apply now button (advisory lock, backwards-journal guard, audit event recording the key's user with trigger "mcp"). Only reviewed, merged migration files can ever run; there is no arbitrary-SQL surface.
Scoped to the factory’s data layer only — no sandbox or engine-run access. OAuth isn’t supported; bearer keys only.
For the rest of what the factory does, see /features.