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

MCP `review`: approve a pull, or request changes with a reason, as the page does #3646

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. Reviewing a pull (pullReviewSubmit in src/web/pages/pull.ts) 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 review in src/http/mcp.ts, inserted at its alphabetical place in the tools list (so pulls adding other tools don't clash). It calls addReview, the same action the page calls, so the rules live in one place: a pull's author cannot approve their own pull, a reason is required for changes, and only someone who may review 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-review.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-review.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