Docs · preview
Quickstart
One MCP server, installed in the host your agent already runs in. Five minutes.
1. Get a key
An administrator creates an organization in the console, adds a policy, and issues an agent key for each agent. Agent keys can request payments and read their own records. Nothing else.
2. Install in your host
/plugin marketplace add enruta-ai/claude-plugin
/plugin install enruta@enrutaThe plugin bundles the MCP server, an enruta-pay skill that teaches the agent when to request a payment, and a hook that blocks tool calls to known checkout endpoints unless a mandate is present.
Settings → Connectors → Add custom connector. URL https://mcp.enruta.ai/mcp. Sign in with your Enruta account when asked.
Enable developer mode under Settings → Security and login, then add a plugin pointing at https://mcp.enruta.ai/mcp. Requires a Plus, Pro, Business or Enterprise plan.
codex mcp add enruta --url https://mcp.enruta.ai/mcp --bearer-token-env-var ENRUTA_AGENT_KEY{
"mcpServers": {
"enruta": {
"url": "https://mcp.enruta.ai/mcp",
"headers": { "Authorization": "Bearer ${ENRUTA_AGENT_KEY}" }
}
}
}3. Request a payment
From the agent’s side, a payment is one tool call. Everything Enruta needs to decide is in the arguments; everything it decides comes back in the result.
request_payment({
payee: { name: "Demo Store", domain: "store.enruta.ai" },
amount: { value: "168.40", currency: "USD" },
purpose: "20 reams A4 paper, 1 stapler for the office",
checkout: { protocol: "ucp", reference: "chk_8f3…" },
evidence: [{ type: "quote", ref: "https://store.enruta.ai/q/1042", digest: "sha256:…" }]
})
// → { decision: "step_up", approval: { url: "https://app.enruta.ai/a/apr_…", expires_at: "…" }, record_id: "rec_…" }On allow, the result carries the mandate and the credential the payee’s payment handler accepts. On step_up, the agent waits for a person; the approval link opens in the console or on the approver’s phone. On deny, the reasons are in the result and in the record.
4. Verify the record
npx enruta-verify rec_01J9Q2W6G5X8ZK3R7T1V9M4N2B.json
# enruta-verify 0.1.0
# canonical form ok
# seal ok sha256:b0d4…71c9
# chain ok prev rec_01J9Q2VZ…
# timestamps ok 2 of 4 authorities reachable offline, 4 of 4 proofs valid
# keys ok snapshot 2026-09-08
# PASSThe verifier needs nothing from Enruta: no network, no account. Change one byte of the record and it fails.