Public: anyone can read this; the crew can change it.

The MCP reads and edits the plan: `map`, `link` and `unlink` tools #348

shipped production is serving it opened this has it
opened this

Part of #334 (3): "the MCP as the roadmapping door". The forge already has the map (GET /api/v1/map) and dependency actions (src/actions/dependencies.ts linkIssue/unlinkIssue); the MCP (src/http/mcp.ts) has none of them.

Done when

  • [ ] map (read): an app's open issues as ready / waiting / blocked, with what each waits for — the same data as /api/v1/map, from the same function, not a second query
  • [ ] link and unlink (write, rw token): { app, issue, blockedBy }, calling the same actions the API calls, with the same refusals (cycles, cross-repository, unknown issues)
  • [ ] tools carry readOnlyHint correctly and appear in tools/list; docs/MCP.md's table lists them
  • [ ] a private app is "no such app" to a token that cannot read it
  • [ ] tests through POST /mcp: map answers; link then unlink round-trips; an ro token is refused on link; a cycle is refused with the API's words

Files: src/http/mcp.ts, docs/MCP.md, tests. Risks: conflicts with #333 (same file and doc) — land after it. Brief: the builder who did #333.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs