Skip to content

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.

READY wave 0 · p2 · implementation profile · parallel safe

Part of a-provider-carries-the-contract-natively — Each agent client carries the contract through its own extension points, generated once and checked for drift.

Ready. Every dependency is done, so majordomus plan start I3307 will be accepted.

Objective

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.

Why

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.

Current state

mcp/protocol.rs prepares the listing once and includes outputSchema per tool; no budget exists.

Desired state

A budget in policy, a gate, and a measured listing size in the MCP projection.

Scope

  • 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

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • 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

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test mcp_conformance
  • bash test/run.sh 940_mcp_says_nothing_its_capability_does_not

Evidence required

  • case_tools_list_is_bounded

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3307.yaml. Read it back with majordomus plan show I3307.

Searches the titles and descriptions of every page this site publishes.