I3307 — The default MCP tools/list stays within a declared byte budget, and a full schema is fetched per tool
Declare a byte budget for the default tools/list, carry compact descriptions and no output schemas in it, serve the full schema per tool on demand, and fail a gate when the listing exceeds the budget.
PŘIPRAVENO vlna 0 · p2 · profil implementation · bezpečné souběžně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3307 bude přijato.
Cíl
Declare a byte budget for the default tools/list, carry compact descriptions and no output schemas in it, serve the full schema per tool on demand, and fail a gate when the listing exceeds the budget.
Proč
An audit on 2026-10-08 measured 166 tools and 1.79 MB in tools/list; on 2026-10-18 the shared server's MCP instructions announced 192 tools. Every client pays the listing in context on connect. Rebound to the new intent criterion #mcp-listing-bounded, because the plugin carries the MCP server and every client pays its tools/list on connect. Milestone mcp-transports-are-reliable belongs to no intent, so moving this issue there would leave it unbound. It extends milestone mcp-transports-are-reliable. Sources: chatgpt-majordomus:c193#1.
Aktuální stav
mcp/protocol.rs prepares the listing once and includes outputSchema per tool; no budget exists.
Cílový stav
A budget in policy, a gate, and a measured listing size in the MCP projection.
Rozsah
- apps/majordomus-cli/src/mcp
- docs/MCP.md
- .ai/repo/benchmarks/rust/policy.yaml
- .ai/repo/benchmarks/rust/README.md
- apps/majordomus-cli/src/capability/builtin/mcp.rs
- apps/majordomus-cli/tests/mcp_conformance.rs
- test/cases/940_mcp_says_nothing_its_capability_does_not.sh
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- The default listing is measured and under budget
- Every tool's full schema is retrievable on demand
- Adding a tool that breaks the budget fails the gate
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test mcp_conformance
- bash test/run.sh 940_mcp_says_nothing_its_capability_does_not
Požadované důkazy
- case_tools_list_is_bounded
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3307.yaml. Read it back with majordomus plan show I3307.