SAAX Protocol MCP
An MCP server for the Solvent Applied Autonomous Exchange Protocol that enables agent-to-agent commerce by creating verifiable commitment records. It supports signed discovery, preflight checks, buyer acceptance, and settlement linkage for autonomous actors without necessarily moving funds immediately.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://www.saax-protocol.com/mcpWhat its tools do
13 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Verify provider capability via signed discovery
- Create verifiable commitments with agreed terms
- Accept commitments using onboarded buyer keys
- Resolve settled transactions back to commitment IDs
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- saax-protocol 1.0.3
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 13 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
13 advertised
get_protocol_info — Get SAAX Protocol information
Returns 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}get_routing_fee — Get SAAX routing fee
Returns 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}ping — Ping
Returns 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}route_request — Route a demand to ranked suppliers
Submits 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"capability"
],
"properties": {
"budget": {
"type": "number",
"description": "Maximum budget in USDC the buyer will pay"
},
"deadline": {
"type": "number",
"description": "Deadline in seconds from now for delivery"
},
"capability": {
"type": "string",
"description": "The capability demanded, e.g. 'security scan'"
}
}
}get_commitment — Get a commitment manifest
Returns 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"commitmentId"
],
"properties": {
"commitmentId": {
"type": "string",
"description": "The commitment id (0x-prefixed or agent-id style) to look up"
}
}
}list_capabilities — List routed capabilities
Returns 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}list_commitments — List commitments for a subscriber
Returns 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subscriptionEmail"
],
"properties": {
"subscriptionEmail": {
"type": "string",
"description": "The subscription email (must have an active SAAX Premium subscription)"
}
}
}get_commitment_status — Get a commitment's lifecycle state
Returns 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"commitmentId"
],
"properties": {
"commitmentId": {
"type": "string",
"description": "The commitment id to poll for its lifecycle state"
}
}
}create_commitment — Create a rail-neutral commitment
Creates 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"buyerId",
"sellerId",
"terms",
"acceptanceCriteria"
],
"properties": {
"terms": {
"type": "object",
"required": [
"deliverable",
"price",
"deadline"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency",
"decimals"
],
"properties": {
"amount": {
"type": "string",
"description": "Price amount as a decimal string, e.g. '0.10'"
},
"currency": {
"type": "string",
"description": "Currency symbol, e.g. USDC"
},
"decimals": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Asset decimals (USDC = 6)"
}
}
},
"deadline": {
"type": "string",
"description": "ISO-8601 deadline for fulfillment"
},
"deliverable": {
"type": "string",
"description": "The deliverable / capability description"
}
},
"description": "The commercial terms: deliverable, price, deadline"
},
"buyerId": {
"type": "string",
"description": "The buyer's identity: 0x-address or agent id"
},
"sellerId": {
"type": "string",
"description": "The seller's identity: 0x-address or agent id"
},
"recoveryPolicy": {
"type": "object",
"required": [
"refundOnFailure"
],
"properties": {
"maxRetries": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"refundOnFailure": {
"type": "boolean"
},
"compensationPercent": {
"type": "string"
}
},
"description": "Recovery policy on failure"
},
"settlementRail": {
"enum": [
"x402",
"mpp",
"ap2",
"acp",
"unspecified"
],
"type": "string",
"default": "unspecified",
"description": "The settlement rail as metadata. Never a prerequisite; 'unspecified' is valid."
},
"acceptanceCriteria": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Objective acceptance criteria for fulfillment"
},
"evidenceRequirements": {
"type": "array",
"items": {
"type": "string"
},
"description": "Evidence the seller must supply"
}
}
}get_evidence_verification — Verify evidence against acceptance criteria
Verifies external evidence against a commitment's acceptance criteria. Requires an active SAAX Premium subscription. For authority proof validation, use get_authority_validation.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subscriptionEmail",
"evidence",
"commitment",
"criterion"
],
"properties": {
"evidence": {
"description": "The evidence object (evidenceId, evidenceType, issuer, subject, payload, payloadHash, signature, verificationScheme, commitmentId, acceptanceCriterionId, ...)"
},
"criterion": {
"description": "The verification policy / acceptance criterion"
},
"commitment": {
"description": "The commitment object the evidence binds to"
},
"subscriptionEmail": {
"type": "string",
"description": "The subscription email (must have an active SAAX Premium subscription)"
}
}
}get_authority_validation — Validate an authority proof
Validates an authority proof against a commitment. Requires an active SAAX Premium subscription. For evidence verification, use get_evidence_verification.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subscriptionEmail",
"proof",
"commitment"
],
"properties": {
"proof": {
"description": "The AuthorityProof object (proofType, issuer, subject, scope, validFrom, validUntil, signature, verificationScheme, verificationMaterial)"
},
"commitment": {
"description": "The commitment or requested action the proof must authorize"
},
"subscriptionEmail": {
"type": "string",
"description": "The subscription email (must have an active SAAX Premium subscription)"
}
}
}prepare_commitment — Prepare a free, nonbinding signed proposal (preflight)
Prepares a free, NONBINDING signed proposal (preflight) for a desired SAAX capability. Validates capability, schema/version/digest, units, and the exact supported network/asset/rail/mode combination; returns a provider-signed proposal binding the request digest and normalized terms. Creates NO agreement, payment, custody deposit, service execution, resource reservation, or spending authority. A provider signature is NOT buyer acceptance. No preflight fee. Errors are typed DSC_* codes.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"profileVersion",
"capability",
"schema",
"units",
"financialProfile",
"clientNonce",
"issuedAt"
],
"properties": {
"units": {
"type": "object",
"required": [
"amount",
"unit"
],
"properties": {
"unit": {
"type": "string",
"description": "Explicit unit (e.g. micro-units of settlement asset)"
},
"amount": {
"type": "string",
"description": "Integer-string settlement amount in the declared unit"
}
},
"description": "Amount + unit"
},
"schema": {
"type": "object",
"required": [
"id",
"version",
"digest"
],
"properties": {
"id": {
"type": "string",
"description": "Schema id (e.g. https://saax-protocol.com/schemas/commitment-manifest/v1)"
},
"digest": {
"type": "string",
"description": "sha256:<64 hex> schema digest"
},
"version": {
"type": "string",
"description": "Schema version"
}
},
"description": "Expected commitment schema"
},
"issuedAt": {
"type": "string",
"description": "ISO-8601 client timestamp"
},
"capability": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Provider capability id"
}
},
"description": "Desired capability"
},
"clientNonce": {
"type": "string",
"minLength": 8,
"description": "Caller-chosen nonce (echoed; replay idempotency)"
},
"constraints": {
"type": "object",
"properties": {
"deadline": {
"type": "string",
"description": "ISO-8601 deadline"
},
"maxAmount": {
"type": "string",
"description": "Integer-string max amount"
}
},
"description": "Optional constraints"
},
"profileVersion": {
"type": "string",
"description": "SAAX Discovery profile version (e.g. 1.0.0)"
},
"intendedParties": {
"type": "object",
"properties": {
"buyer": {
"type": "string",
"description": "0x buyer address"
},
"seller": {
"type": "string",
"description": "0x seller address"
}
},
"description": "Intended parties"
},
"financialProfile": {
"type": "object",
"required": [
"network",
"asset",
"rail",
"mode"
],
"properties": {
"mode": {
"type": "string",
"description": "Payment mode"
},
"rail": {
"type": "string",
"description": "Rail: x402, mpp, ap2, acp, ach, card, internal-ledger, unknown"
},
"asset": {
"type": "string",
"description": "CAIP-19 asset id"
},
"network": {
"type": "string",
"description": "CAIP-2 network id (e.g. eip155:8453)"
}
},
"description": "Financial axes"
}
}
}accept_commitment — Accept a signed proposal and create exactly one authenticated commitment
Accepts a signed preflight proposal with explicit buyer authorization and creates exactly ONE authenticated SAAX commitment. Revalidates the proposal (trusted provider key, profile version, expiry, combination, manifest digest), verifies the BUYER'S SIGNATURE over the exact proposal digest and terms digest, durably accepts once (single-writer store), and returns the operation + commitment. Creates NO payment authorization, custody funding, service execution, or release. A buyer acceptance is NOT a payment authorization or evaluator release verdict. Errors are typed DSC_* codes. Idempotent: same idempotencyKey + same request returns the same operation; same key + different request -> DSC_NONCE_CONFLICT; a single-use proposal cannot be re-accepted under a new key -> DSC_PROPOSAL_REUSED.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"proposal",
"acceptance",
"idempotencyKey"
],
"properties": {
"proposal": {
"type": "object",
"description": "The signed proposal returned by prepare_commitment (full object incl. signature)",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"acceptance": {
"type": "object",
"description": "The buyer acceptance contract (schemaVersion acceptance-v1, action accept_commitment, domain saax:acceptance:v1, signed by the buyer)",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"description": "Caller-scoped idempotency key (>= 8 chars)"
}
}
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1605 ms
- 95th percentile latency
- 1605 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1605 ms · metadata changed · 13 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http saax-protocol-mcp https://www.saax-protocol.com/mcpCodex
codex mcp add saax-protocol-mcp --url https://www.saax-protocol.com/mcpCursor
{
"mcpServers": {
"saax-protocol-mcp": {
"url": "https://www.saax-protocol.com/mcp"
}
}
}Cline
{
"mcpServers": {
"saax-protocol-mcp": {
"type": "streamableHttp",
"url": "https://www.saax-protocol.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"saax-protocol-mcp": {
"type": "http",
"url": "https://www.saax-protocol.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http saax-protocol-mcp https://www.saax-protocol.com/mcpClaude Desktop
https://www.saax-protocol.com/mcpWindsurf
{
"mcpServers": {
"saax-protocol-mcp": {
"serverUrl": "https://www.saax-protocol.com/mcp"
}
}
}Let your agent find its tools
Find servers like SAAX Protocol MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.