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

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

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

opened this

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 that bun scripts/mcp-tools.ts adds a table row. It now says the doc is the tool's line in the live list, and that the script writes only tools/index.ts and no docs, which is what the script does today.
  • src/git/union-merge.ts: the LIST_DOCS comment 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

Closes #8305

commented

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 that bun scripts/mcp-tools.ts adds a table row. It now says the doc is the tool's line in the live list, and that the script writes only tools/index.ts and no docs, which is what the script does today.
  • src/git/union-merge.ts: the LIST_DOCS comment 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

Changes requested — before the latest push

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.

commented

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/list called 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 just report), counts the rest and points on to tools/list. Signed in, it lists every tool, one line each from its doc.

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.ts and no docs, and that a tool's doc is its line in /llms.txt.
  • src/git/union-merge.ts: the LIST_DOCS comment 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

commented

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:

  • capacity now mentions npmTopRepoLastHour (#8394).
  • hooks now has a ping action (#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

commented

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/list called 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's doc) 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

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:

  1. 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.
  2. Non-blocking: the preview's count line ("168 more tools") is computed, so keep nothing in prose that repeats that number.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs