SEP submission: Tool Outcome Attestation extension (dev.agentstatus/toa)
Summary
Extensions Track SEP submission for Tool Outcome Attestation (TOA).
MCP defines how clients invoke tools. It does not define a shared, negotiable way to require attested delivery outcomes. Protocol success (JSON-RPC ok / HTTP 200) is not delivery success.
This issue tracks a ready SEP + reference implementation. A direct pull request into seps/ could not be opened: this repository currently limits PR creation to collaborators.
Extension
- Id (incubating):
dev.agentstatus/toa(SEP-2133 reverse-DNS foragentstatus.dev) - Type: Extensions Track
- Primary protocol target:
2026-07-28(server/discover+ per-request clientCapabilities) - Evidence format: portable signed
toa/0.1(offline verify; no vendor account required to verify)
SEP text (ready to land under seps/)
- Branch: https://github.com/dulrajnr/mcp-sep-toa/tree/sep/tool-outcome-attestation
- File:
seps/0000-tool-outcome-attestation.md - Also mirrored: https://github.com/Carmel-Labs-Inc/toa/blob/main/mcp-extension/seps/0000-tool-outcome-attestation.md
Reference implementation
https://github.com/Carmel-Labs-Inc/toa
Includes schema + offline verify, wire binding validate/attach, MCP Python SDK ToaAttachExtension, conformance T1–T10, and E2E against official mcp 2.1+ (2026-07-28 advertise → attach → require → fail-closed, including stdio subprocess).
Relation to ATSA (SEP-2809)
Complementary, not competing:
| ATSA | TOA | |
|---|---|---|
| When | Before dispatch | On / after tool result |
| Object | Server admission / identity | Tool call delivery outcome |
Ask
- A collaborator opens the SEP PR from
dulrajnr:mcp-sep-toa:sep/tool-outcome-attestationintoseps/(or invites collaborator access so the author can). - Security IG tracks this next to ATSA without conflating admission and outcome.
- Sponsor per SEP workflow when someone is willing to champion it.
Prior context
Docs-only optional verify in modelcontextprotocol/conformance#479 was closed with guidance to propose an extension with tests. This is that submission.
Source: modelcontextprotocol/modelcontextprotocol