Status: served vs planned

Three lists, three different authorities. Nothing on this page is typed by hand — the served list is a real tools/list against the same server production mounts, and npm run surfaces:check fails the build if any of it drifts.

A page that says a tool exists is worse than a page that says nothing about it. An agent can route around a capability the server never claimed; it cannot route around one a page told it to call.

Served — 15 tools

Registered by the running server and callable today. This list is a real tools/list, so it cannot be wrong about what you will be offered.

Specified, not served — 1

These carry a complete definition — description, input schema, output schema — in the tool contract, and no handler. They are published in the contract so a client generated from it sees the shape, and they are NOT registered, so calling one is an error rather than a surprise. Do not build against them.

Proposed — 3

Named in design documents. No definition, no schema, no handler, no date. They are listed here so that a reader who has seen the name somewhere can find out what it means, which is: nothing yet.


How to read the three lists

Served is what you can call today. If it is not on that list, calling it is an error.

Specified, not served is the honest name for a tool that has a complete definition — name, description, input schema, output schema — in the tool contract and no handler behind it. The definition is published so a generated client sees the shape; the tool is not registered, so calling it fails immediately rather than doing something surprising. Do not build against these.

Proposed means named in a design document and implemented nowhere. No schema, no handler, no date. They are listed because a reader who saw the name somewhere deserves to be told what it means, and what it means is: nothing yet.

On a deployment with no Verdict seam

The decision tools are registered only when the Verdict seam is wired. A deployment without it serves the eight analysis tools and none of the decision tools, and this page renders that server's list rather than assuming the full one — the generator asks the server it is rendering for, and never fills in from a constant. [test: packages/mcp/test/status-page.test.ts::the served list follows the registry, including when the Verdict seam is unwired]


See also: The full tool reference · The two loops · How it's different

Status: served vs planned · Hunter-Seeker