SAAX Protocol
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Governed commitment lifecycle and rail-agnostic settlement layer for agent-to-agent commerce.
| Author | io.github.bryantrudy24 |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 178 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"SAAX Protocol": {
"url": "https://www.saax-protocol.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (11)
get_protocol_infoReturns the SAAX Protocol version, available capability count, and the URL to the specification. Call this when an agent needs a one-time overview of the protocol. For pricing, use get_routing_fee. For the full capability list, use list_capabilities. For a liveness check, use ping.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_routing_feeReturns the current routing fee schedule. Call this before initiating a routing request to determine the expected cost. For capability discovery, use list_capabilities. For protocol overview, use get_protocol_info.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
pingReturns a lightweight liveness response. Call this to verify the endpoint is reachable. Do not use for discovery, capability listing, or pricing — use get_protocol_info, list_capabilities, or get_routing_fee instead.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
route_requestSubmits a capability request and returns ranked supplier matches. Commitment creation with payment runs through the HTTP POST /route endpoint, not this tool. Use list_capabilities first to discover available capabilities. For commitment lookup after routing, use get_commitment.
Parameters:
capability(required) — string — The capability demanded, e.g. 'security scan'budget— number — Maximum budget in USDC the buyer will paydeadline— number — Deadline in seconds from now for delivery
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_commitmentReturns the full commitment object for a given commitment ID — including terms, state, manifest hash, and evidence references. Call this when an agent needs the complete commitment record. For status-only polling, use get_commitment_status. For listing all commitments for a subscriber, use list_commitments.
Parameters:
commitmentId(required) — string — The commitment id (0x-prefixed or agent-id style) to look up
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_capabilitiesReturns the capabilities currently indexed by the SAAX Router, with supplier counts per capability. Call this to discover what can be routed. For pricing of a specific capability, use get_routing_fee. For protocol overview, use get_protocol_info.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_commitmentsReturns all commitments associated with a subscription email. Requires an active SAAX Premium subscription. Call this to retrieve commitment history for a subscriber. For a single commitment by ID, use get_commitment. For status-only checks, use get_commitment_status.
Parameters:
subscriptionEmail(required) — string — The subscription email (must have an active SAAX Premium subscription)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_commitment_statusReturns only the current lifecycle state for a given commitment ID, plus the recommended next action for the calling agent. Call this before retrying any commitment that timed out — an unknown outcome is a status check, not another POST. The next_action field tells the agent whether to retry, poll, or stop. For the full commitment record, use get_commitment.
Parameters:
commitmentId(required) — string — The commitment id to poll for its lifecycle state
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_commitmentCreates a governed commitment between a buyer and a seller and persists it to the SAAX commitment store. The commitment is settlement-rail-neutral: settlementRail is metadata only (x402, mpp, ap2, acp, or unspecified) and is NEVER a prerequisite. Returns the new commitment id (saax_<hash>), createdAt, status, and the settlementRail. Call this BEFORE any payment flow to establish the governed commitment record. Once created, use get_commitment to read the manifest.
Parameters:
buyerId(required) — string — The buyer's identity: 0x-address or agent idsellerId(required) — string — The seller's identity: 0x-address or agent idterms(required) — object — The commercial terms: deliverable, price, deadlineacceptanceCriteria(required) — array — Objective acceptance criteria for fulfillmentrecoveryPolicy— object — Recovery policy on failuresettlementRail— string — The settlement rail as metadata. Never a prerequisite; 'unspecified' is valid.evidenceRequirements— array — Evidence the seller must supply
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_evidence_verificationVerifies external evidence against a commitment's acceptance criteria. Requires an active SAAX Premium subscription. For authority proof validation, use get_authority_validation.
Parameters:
subscriptionEmail(required) — string — The subscription email (must have an active SAAX Premium subscription)evidence(required) — The evidence object (evidenceId, evidenceType, issuer, subject, payload, payloadHash, signature, verificationScheme, commitmentId, acceptanceCriterionId, ...)commitment(required) — The commitment object the evidence binds tocriterion(required) — The verification policy / acceptance criterion
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_authority_validationValidates an authority proof against a commitment. Requires an active SAAX Premium subscription. For evidence verification, use get_evidence_verification.
Parameters:
subscriptionEmail(required) — string — The subscription email (must have an active SAAX Premium subscription)proof(required) — The AuthorityProof object (proofType, issuer, subject, scope, validFrom, validUntil, signature, verificationScheme, verificationMaterial)commitment(required) — The commitment or requested action the proof must authorize
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.