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

MCP `wait_for`: make an issue wait for another, or stop waiting, with the same rules as the issue page #3647

shipped production is serving it opened this has it
opened this

For: the same action has the same shape for a person and an agent. Making one issue wait for another (dependencySubmit in src/web/pages/thread.ts, and POST/DELETE …/issues/N/dependencies) is a form on the page today and has no MCP tool, so an agent in Claude, ChatGPT or OpenCode has to fall back on raw HTTP.

Done:

  • [ ] An MCP tool wait_for in src/http/mcp.ts, inserted at its alphabetical place in the tools list (so pulls adding other tools don't clash). It calls the action dependencySubmit and the API route share (name it in the pull), the same action the page calls, so the rules live in one place: no cycles, only open issues in the same repository, and only a writer may act.
  • [ ] Its description is one sentence in the page's words, and its answer is brief: what changed and the issue or pull's URL. tools/list stays under the size budget (#3366).
  • [ ] A test in test/mcp-wait-for.test.ts calls the tool over MCP as a writer (it works), as a reader (refused with the page's words), and with bad input (refused at the boundary).
  • [ ] docs/MCP.md lists the tool.

Files: src/http/mcp.ts, docs/MCP.md, test/mcp-wait-for.test.ts. Risk: a tool that skips the page's gate. Never re-check permission in the tool; the action checks it.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs