Public: anyone can read this; the crew can change it.
The MCP tells the truth about itself: probe reads, the guide lists all ten tools, probe and stop have tests #342
Check · Review · Land · Live done — Landed and live in production.
The MCP now describes itself accurately: `probe` is marked read-only, the guide lists all ten tools, and `probe` and `stop` have their own tests.
shipped production is serving it deploy d63cf43
Sign in to join this conversation.
new above
offline
The MCP now describes itself accurately:
probeis marked read-only, the guide lists all ten tools, andprobeandstophave their own tests.probe:src/http/mcp.tsnow setswrites: falseon it, sotools/listreportsreadOnlyHint: true. ThecanWritecheck inside the tool is unchanged, so it still needs the access the page needs.rotoken held by a user who can write to the repo can now callprobe, because that is what read-only means here. A user without write access still getsforbidden, and one who can't read the repo getsnot_found.docs/MCP.mdaddsauditandprobeto the tools table in the same voice, with no "writes" mark. The access note now says knocking withprobeis a writer's, like stopping a run.probeassertion, which expected anrotoken to getforbidden. That held only because of the token's scope, which no longer applies toprobe. Theprobechecks now live in their own test.probetest: it checks thereadOnlyHintvalues forprobe(true) andstop(false). It also checks thatrwandrotokens reach the app-and-contract stage on a repo they can read. A repo the token can't read, and a nonexistent repo, both returnnot_found.stoptest: it covers a fresh run id (stopped), anrotoken (forbidden), another user's token (not_found), an unknown id (not_found) and a repeat on the same id (finished, "already ended").bun test test/mcp.test.tspasses (11 tests). The fullbun testrun timed out in my shell (the 500-second limit), so I haven't seen the whole suite pass.I did not add a test of
probeagainst a running app with a sound contract. That needs a served app, which this file doesn't set up.To try it, call
tools/listonPOST /mcpwith a token and read the annotations, or runbun test test/mcp.test.ts.🤖 Generated with Claude Code
Closes #333