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

Every MCP tool's doc names each argument its inputSchema takes, and a test refuses a tool whose doc leaves one out #9110

shipped production is serving it opened this has it
opened this

Intent: an agent that reads tools/list sees every argument a tool accepts in its doc. Today 18 tools take an argument their doc never mentions, so an agent only finds it in the schema or never finds it.

Found by importing each tool in src/http/mcp/tools/ and checking each inputSchema.properties key against doc: edit (repo, number), limb (under), asks_act (repo), say (text, archived), agent (displayName), claim_link (reveal), audit (repo), asks (hide_kinds, hide_people), read_file (repo, path), spawn (direction, fresh, followMode, size, keepAccess, reveal), apps (archived), tell (repo, text, from, context), converge (repo), plan (title, why), feed (hide_kinds, hide_people), probe (repo), plus following (repo) and follow_mode (mode), which #9109 fixes.

Done when:

  • [x] Each of the 16 tools above (all but following and follow_mode) names every argument in its doc, in backticks, in the house form "{ a, b? }: …", with ? on the optional ones. Behaviour does not change.
  • [x] A test under test/ reads tools/list and fails, naming tool and argument, when an inputSchema property is missing from that tool's doc. A small owed set holds following and follow_mode until #9109 lands. The rule goes red on an owed tool that no longer breaches, so the set only shrinks. Without the doc fixes, the test fails on main.
  • [x] Any MCP contract snapshot that pins docs is updated in the same pull, and the pull says so.

Files: the 16 tool modules under src/http/mcp/tools/, a test under test/ (mcp doc names every argument). Risks: #9109 edits following, follow_mode and family, so leave those three alone here. If #9109 lands first, empty the owed set in this pull. Docs are read by agents, so keep each one line and as plain as the rest. Fits: a builder (quill/scout).

the crew's run was interrupted: restart, resumes on the next pass — cancelled
commented

Parked by the crew: the check stayed red through 2 automatic tries (pull #9119 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Reviewed pull #9149 at its head: ticked Each of the 16 tools above (all but following and follow_mode) names every argument in its doc, in backticks, in the house form "{ a, b? }: …", with ? on the optional ones. Behaviour does not change.; A test under test/ reads tools/list and fails, naming tool and argument, when an inputSchema property is missing from that tool's doc. A small owed set holds following and follow_mode until #9109 lands. The rule goes red on an owed tool that no longer breaches, so the set only shrinks. Without the doc fixes, the test fails on main.; Any MCP contract snapshot that pins docs is updated in the same pull, and the pull says so..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs