Docs · MCP server
SkeletIQ MCP server reference
The MCP server your coding agent uses to read a released SkeletIQ design, build it in order, and report what it built. Runs on your machine over stdio. MIT-licensed.
- Package
@skeletiq/mcp- MCP registry
com.skeletiq/mcp- Source
- Source
Install
Put your token in place of the placeholder. The server reads it from SKELETIQ_API_KEY.
claude mcp add skeletiq --env SKELETIQ_API_KEY=skq_your_token_here -- npx -y @skeletiq/mcpSKELETIQ_API_KEY=skq_your_token_here npx -y @skeletiq/mcpopencode's default timeout kills a healthy generation. Keep this one.
{
"mcp": {
"skeletiq": {
"type": "local",
"command": [
"npx",
"-y",
"@skeletiq/mcp"
],
"environment": {
"SKELETIQ_API_KEY": "{env:SKELETIQ_API_KEY}"
},
"timeout": 600000
}
}
}Token and scopes
Design a system in SkeletIQ and release it. Then mint a token under Settings → Agent access — shown once, stored hashed, revocable instantly.
A token grants only what you tick
- Read designs — Projects, designs, briefs, build order, readiness, gaps.
- Run generations — Generations, which spend credits. Payload critique, which is free.
- Report build progress — Drift checks; never changes the design. Grant it with Read designs — a drift check looks the design up first.
Whatever it carries, it can never:
- Mint another token
- Read or change your provider keys
- Touch billing
- Delete the account
- Resolve an open question — those go to a person
- Write back to the design
- Look at your code — drift is what the agent reports it built
Tools
Every tool the server registers, and what it does. For get_design, the modes a session walks through.
| Tool | Modes walked | What it does |
|---|---|---|
list_projects | — | Your agent names the project and writes the brief into AGENTS.md as a managed block. A refresh replaces it whole. |
get_design | briefgapsbuild_ordercomponent | Your agent names the project and writes the brief into AGENTS.md as a managed block. A refresh replaces it whole. |
check_drift | — | The agent reports what it built and hears what is missing, half done, or not in the design. It never writes back — you revise and release again. |
generate_architecture | — | Designs a system from a prompt. Spends credits and takes minutes. |
get_generation_status | — | Polls a generation started in the background. |
critique_architecture | — | Scores a design the agent drafted itself. Deterministic: no model call, no credits, nothing stored. |
request_decision_change | — | Asks a person to change a design decision. Nothing changes until they accept. |
A session
Ask your agent to build from a SkeletIQ design by name. A session runs in this order.
- Step 01
Orient
list_projectsget_design · briefYour agent names the project and writes the brief into AGENTS.md as a managed block. A refresh replaces it whole.
- Step 02
Ask, don't guess
get_design · gapsWhat the design left undecided comes back as questions for you. The agent cannot answer them through the server.
- Step 03
Build in order
get_design · build_orderget_design · componentStores first, then queues, services and the edge — each component read as it is reached.
- Step 04
Report drift
check_driftThe agent reports what it built and hears what is missing, half done, or not in the design. It never writes back — you revise and release again.
The brief block
get_design in brief mode returns a managed block your agent writes into AGENTS.md. It opens with this comment, taken unedited from a released design:
<!-- skeletiq:brief:start project=9bd3b18c-a31f-4faf-9a01-eaec4fed0447 version=2 released=true generated=2026-09-30T07:17:14.459802+00:00
Managed by SkeletIQ. A refresh replaces this whole block, opening fence to closing
fence — never append a second one, and edit the design rather than this text.
Refresh with the SkeletIQ MCP server: get_design(mode="brief").
-->The opening fence names the project, the version, whether that version is released, and when the brief was generated: project=, version=, released= and generated=.
The brief follows, and the block ends with:
<!-- skeletiq:brief:end -->
A refresh replaces the whole block, opening fence to closing fence, so never edit inside it and never append a second one.