Docs · preview
MCP tools
One server, five tools, the same in every host. Transport is Streamable HTTP at https://mcp.enruta.ai/mcp; local stdio is available for development.
| Tool | Purpose | Read or write |
|---|---|---|
request_payment | Ask to pay. Returns the decision, and the mandate and credential on allow. | write |
get_decision | Poll a payment request after a step-up. | read |
list_mandates | Mandates for this agent and their state. | read |
get_record | Fetch a record and its bundle. | read |
verify_record | Run the verifier on a record the agent holds; returns the report. | read |
request_payment
input: {
payee: { name?: string; domain?: string; merchant_id?: string },
amount: { value: string; currency: string },
purpose: string,
checkout?: { protocol: "ucp" | "acp" | "x402" | "mpp" | "card" | "bill"; reference: string },
evidence?: { type: string; ref: string; digest: string }[],
trace?: { ref: string; digest: string }
}
output: {
request_id: string,
decision: { result: "allow" | "step_up" | "deny"; reasons: string[] },
mandate?: { id: string; amount: string; expires_at: string; credential: object },
approval?: { id: string; url: string; expires_at: string },
record_id: string
}Annotations
request_payment is annotated as non-idempotent and open-world so hosts ask before the first call; the other four are read-only. The server never asks the agent for a card number, and it rejects any argument that looks like one.
Authentication
Hosts that support OAuth sign in with the Enruta account and receive an agent-scoped token. Hosts that do not send the agent key as a bearer header. Both are tied to one agent id; the record names it.
The skill
The Claude Code plugin and the ChatGPT plugin ship a skill that tells the agent when to call request_payment (before any checkout completion), what to put in purpose and evidence, and how to behave on step_up and deny. The skill is plain text; you can read it before you install it.