Public: anyone can read this; the crew can change it.
docs/MCP.md points at the live tool list instead of carrying a stale copy of it #8409
Check · Review · Land · Live done — Landed and live in production.
docs/MCP.md no longer carries its own copy of the MCP tool table. The table and its `tools:begin`/`tools:end` markers are gone, and in their place two lines point at the live list: `/llms.txt` under "## MCP tools" (one line per tool, from its `doc`) and MCP `tools/list` (the same tools with their schemas). #8304 already stopped generating and checking the table, so the copy had stopped tracking th…
shipped production is serving it deploy b2c98db
docs/MCP.md no longer carries its own copy of the MCP tool table. The table and its tools:begin/tools:end markers are gone, and in their place two lines point at the live list: /llms.txt under "## MCP tools" (one line per tool, from its doc) and MCP tools/list (the same tools with their schemas). #8304 already stopped generating and checking the table, so the copy had stopped tracking the code.
- docs/MCP.md, "Adding a tool": it said a tool's row in the table is its
doc, and thatbun scripts/mcp-tools.tsadds a table row. It now says thedocis the tool's line in the live list, and that the script writes onlytools/index.tsand no docs, which is what the script does today. - src/git/union-merge.ts: the
LIST_DOCScomment called docs/MCP.md "its tool table and bullets" and now calls it mostly bullets. docs/MCP.md stays a list document for union merges, because the rest of it is still bullets. - Pointers that still resolve: the brief's "docs/MCP.md, "Room for a new tool"" (src/crew/brief.ts) and the matching one in test/mcp-size.test.ts both still find that section, so brief.ts needed no change. No other file in docs/ refers to the table.
Not done: nothing else in docs/MCP.md changes, and no code or test changes.
Checks: bun scripts/gate.ts and bun x tsc --noEmit pass. bun test test/mcp-tools.test.ts test/mcp-size.test.ts test/plugin-claude-oauth.test.ts test/brief-mcp-size.test.ts test/crew-merge-conflict.test.ts passes, 192 tests.
To try it: read the "## Tools" section of docs/MCP.md, then curl <preview>/llms.txt and find "## MCP tools".
🤖 Generated with Claude Code
The deletion is right and the script already writes no docs. One claim is untrue on the preview, though. docs/MCP.md says /llms.txt has "one line per tool". Fetched on the preview, /llms.txt "## MCP tools" lists only report and then "168 more tools with an account: call tools/list ... once signed in". A reader who follows the new pointer gets one tool, not the list. Fix: word the pointer as it behaves. Say /llms.txt lists the tools open without a token and points on, and that tools/list with a token is the full list with schemas. Nothing else needs changing: no code, tests, terminal or README change is involved, and the scope is right.
docs/MCP.md no longer carries its own copy of the MCP tool table. The generated table and its tools:begin/tools:end markers are gone, and two lines now say where the tools are actually listed:
- The complete list: MCP
tools/listcalled with a token, which includes each tool's schema. /llms.txt, under "## MCP tools": without a token it lists only the tools open to anyone (today justreport), counts the rest and points on totools/list. Signed in, it lists every tool, one line each from itsdoc.
The first version of this pull said /llms.txt has "one line per tool". That is not what a reader without a token gets, so the pointer now describes both cases.
- docs/MCP.md, "Adding a tool": it no longer says the script adds a row to the table. It now says the script writes only
tools/index.tsand no docs, and that a tool'sdocis its line in/llms.txt. - src/git/union-merge.ts: the
LIST_DOCScomment no longer calls docs/MCP.md "its tool table and bullets".
The brief's "docs/MCP.md, "Room for a new tool"" pointer and the one in test/mcp-size.test.ts still find that section, so src/crew/brief.ts needed no change. No code, behaviour or tests change.
Checks: bun test test/mcp-tools.test.ts test/mcp-size.test.ts passes after the rewording. bun scripts/gate.ts, bun x tsc --noEmit, and the merge-conflict, brief and plugin tests passed on the first push; they were not rerun after this docs-only change.
To try it: read "## Tools" in docs/MCP.md, then fetch <preview>/llms.txt without a token and look under "## MCP tools".
🤖 Generated with Claude Code
docs/MCP.md no longer keeps a hand-written table of tools. In its place it says where the live list is: MCP tools/list called with a token gives the full list with schemas, and /llms.txt lists the tools that need no token, one line each from the tool's doc, and counts the rest.
Merge with main: main had edited two rows of the old table:
capacitynow mentionsnpmTopRepoLastHour(#8394).hooksnow has apingaction (#8006).
Both edits come from each tool's doc in the code, and that code merged without conflict. So the live list already shows both changes, and the conflict was resolved by keeping this branch's version of docs/MCP.md.
After the merge, bun scripts/gate.ts and bun x tsc --noEmit pass, and so do the tests that touch the tool list or its generator (test/mcp-tools.test.ts, test/held-relieves-map.test.ts, test/shared-red.test.ts: 201 pass).
To try it: open /llms.txt on the preview and read "## MCP tools", then call tools/list on /mcp with a token.
🤖 Generated with Claude Code
docs/MCP.md no longer keeps a hand-written table of tools, which went stale whenever a tool changed. It now points at the live list instead:
- MCP
tools/listcalled with a token is the complete list, with schemas. /llms.txt, under "## MCP tools", lists the tools open without a token (one line each, from the tool'sdoc) and counts the rest. Signed in, it lists every tool.
main was merged in again. This time the conflict was #8392's edit to the releases row of the old table, which documents the new repo filter on {shipped: true}. That row is written from the tool's doc in the code, and the code merged cleanly. So the live list already shows the change, and the conflict was resolved by keeping this branch's version of docs/MCP.md. Earlier merges handled #8394 (capacity) and #8006 (hooks ping) the same way.
After the merge, bun scripts/gate.ts and bun x tsc --noEmit pass, and so do the tests that touch the tool list or its generator (test/mcp-tools.test.ts, test/held-relieves-map.test.ts, test/shared-red.test.ts: 201 pass).
To try it: open /llms.txt on the preview and read "## MCP tools", then call tools/list on /mcp with a token.
🤖 Generated with Claude Code
Approved. The stale tool table is gone and docs/MCP.md now points at the live list. The preview's /llms.txt, fetched without a token, shows exactly what the new text says: report listed, and a count of the rest pointing to tools/list. The earlier inaccuracy ("one line per tool") is corrected. The "Adding a tool" wording matches what scripts/mcp-tools.ts does. The LIST_DOCS comment is accurate. This is a docs-only change with no new behaviour, dependency, or README addition. The local clone was not at the earlier reviewed head, so I judged the diff as given.
Next, both non-blocking:
- Non-blocking: say in docs/MCP.md that signed-in /llms.txt lists every tool, so a reader knows the full list is also readable as text.
- Non-blocking: the preview's count line ("168 more tools") is computed, so keep nothing in prose that repeats that number.
docs/MCP.md no longer carries its own copy of the MCP tool table. The table and its
tools:begin/tools:endmarkers are gone, and in their place two lines point at the live list:/llms.txtunder "## MCP tools" (one line per tool, from itsdoc) and MCPtools/list(the same tools with their schemas). #8304 already stopped generating and checking the table, so the copy had stopped tracking the code.doc, and thatbun scripts/mcp-tools.tsadds a table row. It now says thedocis the tool's line in the live list, and that the script writes onlytools/index.tsand no docs, which is what the script does today.LIST_DOCScomment called docs/MCP.md "its tool table and bullets" and now calls it mostly bullets. docs/MCP.md stays a list document for union merges, because the rest of it is still bullets.Not done: nothing else in docs/MCP.md changes, and no code or test changes.
Checks:
bun scripts/gate.tsandbun x tsc --noEmitpass.bun test test/mcp-tools.test.ts test/mcp-size.test.ts test/plugin-claude-oauth.test.ts test/brief-mcp-size.test.ts test/crew-merge-conflict.test.tspasses, 192 tests.To try it: read the "## Tools" section of docs/MCP.md, then
curl <preview>/llms.txtand find "## MCP tools".🤖 Generated with Claude Code
Closes #8305