Protocol
MCP, spoken properly
Supported revisions
2026-07-28 | preferred — current specification |
2025-11-25 | supported |
2025-06-18 | supported |
2025-03-26 | supported |
The server is sessionless: a stale Mcp-Session-Id is ignored rather than an error, and every request stands alone. inspect_mcp_connection reports exactly what the server observed about your client — resolved revision, advertised capabilities, authorization shape — as a paste-ready card.
The Tasks extension
Long-running work — Standard Statement creation, submission settlement — runs as durable Tasks. Clients that advertise the official MCP Tasks extension io.modelcontextprotocol/tasks (SEP-2663) get native tasks/get polling and task-shaped results. Ordinary clients get the same durability through the tasks_get tool. Task ids survive disconnects; lost submission ids are recoverable with list_submissions.
A versioned surface
The tool catalog is versioned by hash. service_status returns surface.surface_hash; clients cache the catalog against it and echo it back as _meta["ai.finstat/surface-hash"] for a precise stale-or-current answer. Every surface change ships with a curated release note, and the announced hash must match the newest note — the build refuses to deploy otherwise.
Recent surface changes
2026-08-23annotations-carry-titles | Every tool descriptor now carries its display name in annotations.title, mirroring the top-level title it always had (MCP directory validators read the annotations field). Names, schemas, behaviours, and hints are unchanged. |
2026-08-21standard-three-species-surface | Standard Document verification, opening, and submission now share one closed three-species authentication path. The public presentation and interchange tools are render_standard_statement and export_standard_statement. Workspace guidance says create or recover; ordinary Task polling is tasks_get and native polling is tasks/get. |
2026-08-21status-without-internals | service_status stops describing infrastructure: migrations now report healthy + applied_count only (no ledger filenames), the private registry image_tag is gone, and envelope_key_id left the payload (sealed envelopes still carry their kid). Build identity, protocol posture, and the surface hash remain. |
2026-08-21long-waits | wait_for_workspace_idle now waits up to 300 seconds (was 55), and a blocking tasks/get holds up to 300 seconds (was 25) — one call can ride out a normal settle instead of a poll dance. |
2026-08-21transfer-first-intake | create_standard_statements now says it plainly: the transfer program (create_upload_sessions -> PUT -> handle) is the reliable intake; inline content_base64 is for small sources because many clients cap tool arguments in the tens of KB. Submission tasks also report live progress counts while working, settle failed when nothing landed, and state failures in the settled message. |
2026-08-19list-events-filters | list_events now takes real selectors — kind, account_id, party_id, chart_id, date_from/date_to (event dates derived from the underlying documents), include_retired — plus limit and keyset cursor pagination; responses carry next_cursor when more events remain. |
2026-08-19v6-review-report-schema-honesty | Review items now derive unidentified endpoints and unposted opening balances, and resolve_review_items performs real closed-choice dismissals. list_report_options reports the honest six unfiltered workspace views. list_events returns live chart outcomes. Closed input vocabularies are schema enums, review decisions and grading artifacts have closed item schemas, and the guides no longer advertise retired names as live tools. service_status now pairs the live hosted descriptor hash with the hash pinned to this release note. |
2026-08-16v6-unresolved-owner-pending | A chart whose owner does not resolve no longer writes passed. Those events stay pending until a party answers. list_charts adds owner_unresolved and a warning on that chart. |
2026-08-16v6-account-fiduciary | Instrument accounts store owner and fiduciary party pointers. list_workspace_accounts follows both. Owner is whose instrument; fiduciary is who holds or issues it. Catalog id stays on the party. |
2026-08-16v6-chart-entity-keys | Chart entity may declare optional taxId and lei. create_standard_chart title-cases the owner, does not mint a party, and returns owner.on_submit reuse|found from a name lookup. Admit resolves with entity.type and stores owner_party_id. list_charts still shows name, party_id, and display only. |
2026-08-16v6-list-charts-follow | list_charts entity now carries the stored mention plus the followed party (party_id, display) and owner_disagreement_count for bound instruments whose followed owner is not the chart's. |
Live surface 62644355c35b · engine 0.1.0.0