# 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.

<!-- hs:gen:status -->
## 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.

- `hs_describe_capabilities`
- `hs_provide_dataset`
- `hs_rank_topk`
- `hs_poll_task`
- `hs_explain_levers`
- `hs_explain_drivers`
- `hs_model_quality`
- `hs_context_brief`
- `hs_score_entity`
- `hs_score_batch`
- `hs_verify_verdict`
- `hs_report_outcome`
- `hs_attest_action`
- `hs_action_evidence`
- `hs_drift_status`

## 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.

- `hs_export_bundle`

## 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.

- `hs_schedule_refresh`
- `hs_find_analysis`
- `hs_export_outcomes`
<!-- hs:end -->

---

## 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](/docs/tools) · [The two loops](/docs/two-loops) ·
[How it's different](/docs/how-its-different)
