Skip to content

IDE integration

The MCP server speaks the standard MCP protocol — every MCP-aware client works.

~/.cursor/mcp.json (or per-project .cursor/mcp.json):

{
"mcpServers": {
"atomprd": {
"command": "bunx",
"args": [
"@atomprd/mcp-server",
"--project", "<project-id>",
"--token", "<PAT>"
]
}
}
}

Restart Cursor. Tools appear in the Composer’s tool picker as atomprd:list_atoms, atomprd:get_atom, etc.

~/.claude/mcp.json:

{
"mcpServers": {
"atomprd": {
"command": "bunx",
"args": [
"@atomprd/mcp-server",
"--project", "<project-id>",
"--token", "<PAT>"
]
}
}
}

Verify with claude mcp list. Tools appear as mcp__atomprd__list_atoms, etc.

In VS Code settings:

{
"cline.mcpServers": {
"atomprd": {
"command": "bunx",
"args": ["@atomprd/mcp-server", "--project", "<project-id>", "--token", "<PAT>"]
}
}
}
Terminal window
bunx @atomprd/mcp-server --project <pid> --token <pat> --transport http --port 4100

Then in your MCP client, point at http://localhost:4100/mcp. The HTTP transport speaks JSON-RPC over a single POST endpoint (the standard MCP HTTP transport).

  1. Sign in at app.atomprd.dev.
  2. Open the project’s Settings → Tokens.
  3. Click + New token, name it (e.g. “claude-code on laptop”), pick scopes, expiry.
  4. Copy once — the cloud doesn’t show it again.

Tokens are scoped to a single project. For multi-project workflows, run multiple MCP servers in parallel (different --project flags).

A typical MCP-aware agent loop:

1. Agent reads task: "Implement feat_create_habit_h14a"
2. Agent calls atomprd:get_atom (id=feat_create_habit_h14a) → gets feature + Layer 2
3. Agent calls atomprd:find_criteria (feature_id=...) → gets acceptance criteria
4. Agent calls atomprd:query_relations (from=..., type=uses_entity) → gets entity refs
5. Agent calls atomprd:get_atom for each entity → gets fields
6. Agent writes code based on the slice it pulled.
7. Agent calls atomprd:link_code_path to record where the implementation landed.
8. Agent calls atomprd:update_criterion_status to flip criteria to "done".

The agent never sees the rest of the project — only what it asked for.