{"name":"LaunchChair Agent API and MCP public docs","version":"v1","securityBoundary":{"public":"This endpoint returns generic documentation only.","private":"Project specs, runs, logs, workspace IDs, token metadata, and user content require authenticated Agent API routes.","tokenSource":"Users create real agent tokens in LaunchChair Settings -> API Access."},"docs":{"home":"https://www.launchchair.io/docs","pages":[{"title":"LaunchChair Agent API","url":"https://www.launchchair.io/docs/agent-api","description":"Public documentation for LaunchChair Agent API authentication, endpoint catalog, token scopes, project loops, run completion, and safe setup boundaries."},{"title":"LaunchChair MCP setup","url":"https://www.launchchair.io/docs/mcp","description":"Public LaunchChair MCP setup docs for the local bridge server, MCP tools, runner routing, project loop execution, and phase synthesis links."},{"title":"LaunchChair for Codex Desktop","url":"https://www.launchchair.io/docs/codex-desktop","description":"Set up LaunchChair with Codex Desktop through MCP so Codex can run LaunchChair project loops against a local repo."},{"title":"LaunchChair for Claude Desktop","url":"https://www.launchchair.io/docs/claude-desktop","description":"Set up LaunchChair with Claude Desktop through MCP and use Claude Code as the local runner for end-to-end repo work."}]},"auth":{"type":"bearer","header":"Authorization: Bearer <agent-token>","placeholderToken":"Use the full lc_at token shown once in Settings -> API Access."},"scopes":{"all":["spec.read","spec.write","buckets.read","buckets.write","build_cards.read","build_cards.write","prompts.read","exports.read"],"defaultMvpTokenProfile":["spec.read","buckets.read","buckets.write","build_cards.read","build_cards.write","prompts.read","exports.read"]},"endpoints":[{"id":"agent-heartbeat","method":"POST","path":"/api/agent/v1/heartbeat","scope":"prompts.read","description":"Send heartbeat + client metadata for agent presence.","risk":"read"},{"id":"agent-runs-next","method":"POST","path":"/api/agent/v1/runs/next","scope":"prompts.read","description":"Claim next queued run for the current token.","risk":"read"},{"id":"agent-runs-complete","method":"POST","path":"/api/agent/v1/runs/:runId/complete","scope":"prompts.read","description":"Complete/fail the claimed run, send structured result payload, and let LaunchChair apply, validate, retry, or queue remediation when configured.","risk":"write"},{"id":"project-loop-continue","method":"POST","path":"/api/agent/v1/projects/:projectId/loop/continue","scope":"prompts.read","description":"Inspect the project, optionally save the first Idea Snapshot from ideaSnapshot, queue the next agent-actionable bucket or build-card run, and return phase synthesis links when completed phases are detected.","risk":"write"},{"id":"project-spec-read","method":"GET","path":"/api/agent/v1/projects/:projectId/spec","scope":"spec.read","description":"Read the full normalized project spec.","risk":"read"},{"id":"project-spec-write","method":"PATCH","path":"/api/agent/v1/projects/:projectId/spec","scope":"spec.write","description":"Write project spec directly (disabled for MVP token profiles).","risk":"write"},{"id":"project-buckets-list","method":"GET","path":"/api/agent/v1/projects/:projectId/buckets","scope":"buckets.read","description":"List phase buckets with current status and metadata.","risk":"read"},{"id":"project-bucket-read","method":"GET","path":"/api/agent/v1/projects/:projectId/buckets/:phaseKey/:bucketKey","scope":"buckets.read","description":"Read a single bucket payload for the target phase/bucket.","risk":"read"},{"id":"project-bucket-write","method":"PATCH","path":"/api/agent/v1/projects/:projectId/buckets/:phaseKey/:bucketKey","scope":"buckets.write","description":"Write non-prompt bucket data for the target phase/bucket.","risk":"write"},{"id":"project-bucket-prompt","method":"GET","path":"/api/agent/v1/projects/:projectId/buckets/:phaseKey/:bucketKey/prompt","scope":"prompts.read","description":"Retrieve compiled prompt text for a bucket.","risk":"read"},{"id":"project-bucket-apply","method":"POST","path":"/api/agent/v1/projects/:projectId/buckets/:phaseKey/:bucketKey/apply-spec-update","scope":"buckets.write","description":"Apply parsed SPEC_UPDATE payload for a bucket run.","risk":"write"},{"id":"project-build-cards-list","method":"GET","path":"/api/agent/v1/projects/:projectId/build-cards","scope":"build_cards.read","description":"List build cards and board state for the project.","risk":"read"},{"id":"project-build-card-readwrite","method":"PATCH","path":"/api/agent/v1/projects/:projectId/build-cards/:cardId","scope":"build_cards.write","description":"Update build card status/testing metadata.","risk":"write"},{"id":"project-build-card-prompt","method":"GET","path":"/api/agent/v1/projects/:projectId/build-cards/:cardId/prompt","scope":"prompts.read","description":"Retrieve compiled prompt text for a build card.","risk":"read"},{"id":"project-build-card-apply","method":"POST","path":"/api/agent/v1/projects/:projectId/build-cards/:cardId/apply-run","scope":"build_cards.write","description":"Apply build card CHANGELOG_JSON/REQUIRES run output. Completion-owned auto-apply is preferred for looped agent runs.","risk":"write"},{"id":"project-export-mvp-spec","method":"GET","path":"/api/agent/v1/projects/:projectId/exports/mvp-ai-spec","scope":"exports.read","description":"Download AI-ready MVP markdown export.","risk":"read"},{"id":"project-export-phase","method":"GET","path":"/api/agent/v1/projects/:projectId/exports/phase/:phaseKey","scope":"exports.read","description":"Download phase summary markdown export.","risk":"read"}],"loopPayloads":{"continue":{"stopPhaseKey":"Optional phase key to stop at. Defaults to seo_technical.","ideaSnapshot":"Optional first-bucket seed. When the loop is blocked on foundations/idea_snapshot, pass { projectName, oneLiner, projectType, problem, targetUser, solution, jobToBeDone, whyNow, resetDownstream } to let LaunchChair save the Idea Snapshot and continue."}},"mcp":{"bridgeType":"local stdio","bridgeFiles":["mcp-bridge-server.mjs","runner-command.mjs","codex-runner.mjs","claude-code-runner.mjs","chatgpt-runner.mjs","claude-runner.mjs"],"bridgeDownloadBase":"https://www.launchchair.io/api/agent/v1/bridge","bridgeDownloads":[{"fileName":"mcp-bridge-server.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/mcp-bridge-server.mjs"},{"fileName":"runner-command.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/runner-command.mjs"},{"fileName":"codex-runner.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/codex-runner.mjs"},{"fileName":"claude-code-runner.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/claude-code-runner.mjs"},{"fileName":"chatgpt-runner.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/chatgpt-runner.mjs"},{"fileName":"claude-runner.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/claude-runner.mjs"}],"tools":["launchchair_status","launchchair_heartbeat","launchchair_claim_next_run","launchchair_complete_run","launchchair_run_once","launchchair_continue_project"],"primaryLoopTool":"launchchair_continue_project"},"runnerTargets":{"codex":{"env":{"LC_AGENT_ROUTER_GPT_TARGET":"codex","LC_AGENT_ROUTER_CODEX_TARGET":"codex","LC_AGENT_CODEX_CWD":"/absolute/path/to/your/project-repo"},"note":"Recommended for Codex Desktop local build loops."},"claude_code":{"env":{"LC_AGENT_ROUTER_GPT_TARGET":"claude_code","LC_AGENT_ROUTER_CODEX_TARGET":"claude_code","LC_AGENT_CLAUDE_CODE_CWD":"/absolute/path/to/your/project-repo"},"note":"Recommended for Claude Desktop end-to-end local builds."},"chatgpt":{"env":{"OPENAI_API_KEY":"YOUR_OPENAI_KEY","LC_AGENT_ROUTER_GPT_TARGET":"chatgpt"},"note":"Useful for strategy/research output; local file edits still need Codex or Claude Code."},"claude":{"env":{"ANTHROPIC_API_KEY":"YOUR_ANTHROPIC_KEY","LC_AGENT_ROUTER_GPT_TARGET":"claude"},"note":"Useful for strategy/research output; local file edits still need Codex or Claude Code."}}}