Repository navigation
MCP tool groups chosen in AGENTS.md or env switches; release 5.2.0 - #10
Merged
Merged
Conversation
Implements the suite's tool-group convention. The 31 MCP tools are in six groups: core (always on: bootstrap, lookups, dependencies, file wikis, update_maps), notes (record_change and the journal), health, map (resolution and barrel diagnostics), cycles, status (repeats of bootstrap). - Agents choose per project: the first fenced `agent-tools` block in AGENTS.md at the server's root may hold `wikifier: tools <list>` and `wikifier: disable <list>`. WIKIFIER_TOOLS / WIKIFIER_DISABLE override those lines key by key. - Hidden tools leave tools/list; calling one returns isError naming the switch or block line to change. - An env mistake (unknown name, core in DISABLE) prints one line and exits 2. A block mistake is a warning in the initialize instructions and list_core_tools, and that line is ignored. - The server stats AGENTS.md before every request and sends notifications/tools/list_changed before the response when the exposed list changed. With a block or a switch, initialize advertises tools.listChanged and ends with the groups line. - With neither, initialize and tools/list are byte-identical to the 5.1.0 release (tests/fixtures/mcp_default_5.1.0.jsonl). The CLI ignores all of it. tools/list: 22.7 KB all on; 18.2 KB without notes, 17.0 without health, 20.8 without map, 21.9 without cycles, 19.4 without status; 16.8 KB (22 tools) for `disable map, cycles, status`; 6.6 KB for `tools core`. tests/tool_groups.rs runs the real server: default unchanged, filters by group and tool name, refusal text, exit 2, core protected, block precedence and warnings, the live list_changed notice, and the fence parser. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMYkogM3QWVjMLzWKGyjuJ
Version 5.2.0 in Cargo.toml/Cargo.lock and the docs that name it. CHANGELOG "5.2.0 - 2026-11-05". README gets "Tool groups" (table, overlaps, env example, sizes) and "Choosing groups"; AGENTS.md and skills/run.md get "Choosing groups": what each group is for, when to turn it off, and the line to add. Wikifier's own AGENTS.md shows the lines in a text fence, not an agent-tools block, so dogfooding here keeps every tool. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMYkogM3QWVjMLzWKGyjuJ
Generated by the wikifier binary (record-change, mark-green, update-maps), not edited by hand. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMYkogM3QWVjMLzWKGyjuJ
…ext. Per the updated convention, initialize advertises capabilities.tools.listChanged: true on every server, so an agent can add an agent-tools block mid-session and the client refetches the list without a restart. It is the only field of the default initialize reply that differs from 5.1.0; the golden test now applies just that change. An agent-tools block inside another fenced block (a docs example) was already read as text; a new test pins it for this repository, which dogfoods its own server: the "Choosing groups" examples in AGENTS.md switch nothing and the repo keeps all 31 tools. The test helper no longer unwraps writes to a server that already exited 2, which failed with a broken pipe on Linux CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMYkogM3QWVjMLzWKGyjuJ
Generated by the wikifier binary, not edited by hand. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMYkogM3QWVjMLzWKGyjuJ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the suite's tool-group convention for wikifier and prepares 5.2.0. No tag pushed.
Groups (31 tools):
core(always on)noteshealthmapcyclesstatusHow agents choose them:
```agent-toolsblock in AGENTS.md at the server's root (WIKIFIER_PROJECT_ROOT, else the cwd) may holdwikifier: tools …/wikifier: disable ….WIKIFIER_TOOLS/WIKIFIER_DISABLEoverride those lines key by key.corein DISABLE) prints one line and exits 2. A block mistake becomes a warning in theinitializeinstructions andlist_core_tools, and that line is ignored.notifications/tools/list_changedbefore the response when the exposed list changes.initializealways advertisestools.listChanged: true. With a block or a switch, its instructions also end with the groups line.tools/listis byte-identical to 5.1.0, andinitializediffers only bylistChanged. Both are checked againsttests/fixtures/mcp_default_5.1.0.jsonl. A block nested in another fence (a docs example) is text; a test pins that this repo's own AGENTS.md examples switch nothing. The CLI ignores all of it.tools/list size:
noteshealthmapcyclesstatusdisable map, cycles, statustools coreDocs:
skills/run.md: "Choosing groups".textfence, so dogfooding keeps every tool.Tests:
tests/tool_groups.rs(16 tests, run against the realwikifier mcp). 102 tests pass locally, clippy is clean, and Rust 1.83 checks.🤖 Generated with Claude Code
https://claude.ai/code/session_01CMYkogM3QWVjMLzWKGyjuJ