MCP setup

Copy the URL. Paste your key. Ask your agent.

Axiru's hosted MCP endpoint gives any header-capable MCP client a pre-execution decision tool for money movement. Three steps to connect; every decision is evaluated against your policies and sealed to the audit ledger. New workspaces start in shadow mode, so nothing is blocked until you flip enforcement on.

Three steps

Connect in about 2 minutes.

Pick your client, copy the endpoint, connect. The endpoint speaks MCP streamable HTTP (protocol 2025-03-26) and authenticates every call with OAuth sign-in from claude.ai or a Bearer API key everywhere else.

Step 1
Get a key, copy the URL

Connecting from claude.ai? You only need the URL: the connector signs you in with OAuth and no key changes hands. From every other client, each call carries a Bearer API key that starts with ak_. Fastest path to a key: the one-POST onboarding under Advanced setup below returns one exactly once, plus a magic link that claims your workspace. Already on Axiru? Ask a workspace admin to mint you a key.

https://www.axiru.com/api/mcp
Step 2
Add the connector to claude.ai

In claude.ai, open Settings, then Connectors, then Add custom connector. Paste the endpoint URL, click Connect, and sign in with your Axiru account when the browser prompts you. The OAuth sign-in stands in for an API key on this client.

Settings, then Connectors
https://www.axiru.com/api/mcp
Step 3
Connect, then just ask

Try: "Before you refund ch_3PLs9k for $220, check it with Axiru." Your agent calls axiru.request_spend_approval, gets back allowed, pending_approval, or denied, and the decision seals into the audit ledger. New workspaces evaluate in shadow mode until you flip enforcement on.

Works today: claude.ai connectors through OAuth sign-in, plus Claude Code, Cursor, Claude Desktop, and any MCP client that can send an Authorization header to a remote server. Not yet: ChatGPT connectors. ChatGPT also requires an OAuth flow, and that tab flips only after our end-to-end connect test passes.

Building an agent instead of using a client? Skip the tabs: your agent can self-onboard with one POST and wire the key itself. Open Advanced setup below, or start from the API docs.

Advanced setup

Agent-driven onboarding for builders.

Everything the three steps abstract away: the discoverable agent.json, the starter intents, the single onboarding POST, and the deterministic orchestrator behind it.

Open advanced setup: agent.json, starter intents, the onboarding POST, and the orchestrator
Discoverable

agent.json: the canonical machine-readable description.

Served at /.well-known/agent.json with a co-published legacy /.well-known/ai-plugin.json. The block below is rendered from the same builder that powers the well-known route, so the doc you copy and the doc an agent fetches can never drift.

GET /.well-known/agent.json
{
  "schema_version": "agent.json/1.0",
  "service": "axiru",
  "name": "Axiru",
  "description_for_model": "Use the Axiru MCP server to request pre-execution decisions on money movement (Stripe refunds/credits/payouts, x402 agent payments, USDC-on-Solana transfers in early access), list pending approvals, approve or reject them, inspect the audit ledger, and fetch workspace setup state. Suitable for agentic finance assistants that need deterministic policy enforcement before execution.",
  "description_for_human": "The governed action layer for money movement: policy-check refunds, credits, payouts, and stablecoin transfers before money moves.",
  "contact_email": "support@axiru.com",
  "legal_info_url": "https://axiru.com/privacy",
  "documentation_url": "https://axiru.com/docs/api",
  "logo_url": "https://axiru.com/logo.svg",
  "base_url": "https://axiru.com",
  "endpoints": {
    "mcp": {
      "url": "https://axiru.com/api/mcp",
      "protocol_version": "2025-03-26",
      "transport": "streamable-http"
    },
    "onboard": {
      "url": "https://axiru.com/api/agent/onboard",
      "method": "POST"
    }
  },
  "auth": {
    "type": "bearer",
    "tokenPrefix": "ak_"
  },
  "starter_intents": [
    {
      "id": "refund_governance",
      "description": "Set up refund governance for a SaaS company."
    },
    {
      "id": "chargeback_review",
      "description": "Stand up chargeback review with shadow mode enabled."
    },
    {
      "id": "audit_only",
      "description": "Read-only audit assistant for an existing Stripe history with no enforcement."
    }
  ],
  "merger_status": "in_progress",
  "siblings": [
    "ifivo"
  ]
}

The MCP endpoint advertises protocol_version 2025-03-26 over the streamable-http transport. Auth is bearer with the ak_ prefix; the legacy ai-plugin.json maps the same auth model down to the user_http / bearer pair for older clients.

Starter intents

Pick the intent. The orchestrator does the rest.

Each intent installs a different starter policy pack. Repeated calls with the same idempotency key return the same tenant, so an agent loop never forks workspaces.

Axiru
Refund governance
intent: "refund_governance"

Spin up refund control with shadow mode on. Stripe refund tool calls evaluate against three starter policies (amount caps, customer segment, suspected-fraud signal) before money moves.

Axiru
Chargeback review
intent: "chargeback_review"

Stand up dispute-evidence routing in shadow mode. Decisions are logged to the ledger; nothing is submitted automatically until enforcement is turned on.

Axiru
Subscription pause / cancel review
intent: "subscription_pause_review"

Pre-execution review for subscription pause, cancel, and proration tool calls. Currently plumbing only: routes through the policy engine; native dashboard surface is on the roadmap.

Folded from iFivo
Payment-action governance
intent: "payment_action_governance"

General-purpose payment-tool intercept for any rail registered through @axiru/agt-extension. Same engine, same ledger, same policy templates.

Read-only
Audit-only assistant
intent: "audit_only"

No enforcement, no policy install. Just a ledger reader so an external agent can answer questions about historical Stripe activity through MCP.

Single call

POST /api/agent/onboard: request and response.

Unauthenticated by design: the endpoint mints shadow-mode-only tenants. Rate-limited to 10 requests per 60 seconds per identifier so a runaway agent loop cannot fork workspaces.

curl
curl -X POST https://www.axiru.com/api/agent/onboard \
  -H 'content-type: application/json' \
  -d '{"intent":"refund_governance","contact_email":"ops@example.com","company_name":"Example Inc.","agent_id":"claude-3.7-sonnet","vertical":"saas","idempotency_key":"<= 16-char stable key generated by the agent"}'
JavaScript / TypeScript
const res = await fetch("https://www.axiru.com/api/agent/onboard", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    "intent": "refund_governance",
    "contact_email": "ops@example.com",
    "company_name": "Example Inc.",
    "agent_id": "claude-3.7-sonnet",
    "vertical": "saas",
    "idempotency_key": "<= 16-char stable key generated by the agent"
  }),
});
const { tenant_id, api_key, magic_link, human_summary } = await res.json();
200 OK response
{
  "tenant_id": "ws_2c8a...",
  "api_key": "ak_live_...",
  "mcp_endpoint": "https://www.axiru.com/api/mcp",
  "starter_policies": [
    {
      "id": "recommended-default",
      "slug": "conservative-smb",
      "name": "Conservative starter (auto-allow <$100, escalate above)"
    },
    {
      "id": "intent-refund_governance",
      "slug": "intent-refund_governance",
      "name": "Intent template · refund governance"
    }
  ],
  "simulation_url": "https://www.axiru.com/preview/replay?ws=ws_2c8a...",
  "magic_link": "https://www.axiru.com/auth/magic?token=...",
  "human_summary": "I created a shadow-mode workspace for Example Inc. Click this once to finish setup."
}

The api_key is returned exactly once. Hand the magic_link straight to the human; the rest goes to the agent loop. human_summary is a one-liner the agent can relay verbatim so the user sees consistent language across providers.

Deterministic orchestrator

Four steps, every time, in the same order.

The orchestrator lives in @intentledger/agent-core/onboarding. Each step is idempotent and side-effect-injected through an OnboardingHost so Axiru and any sibling service can reuse the engine.

01 · workspace

Mint a shadow-mode-only tenant keyed off the contact email + agent id + idempotency key. Repeated calls with the same idempotency key return the same tenant.

returns: tenant_id
02 · api_key

Mint a tenant-scoped API key prefixed `ak_`. Stored as a SHA-256 hash; the plaintext is returned exactly once in this response.

returns: api_key (use immediately on /api/mcp)
03 · starter_policies

Install starter policies for the chosen intent. All start in shadow mode; the engine evaluates and logs decisions but does not block tool calls until enforcement is flipped.

returns: policy_ids[]
04 · magic_link

Sign a single-use magic link the human clicks to claim the workspace, complete Stripe Connect, and graduate from shadow mode to enforced.

returns: magic_link (one click, one human)
Safety

Shadow mode is the default. Always.

Every workspace minted through /api/agent/onboard starts with policies installed in shadow mode. The engine evaluates every decision and writes to the ledger, but tool calls are not blocked and money does not move until the human clicks the magic link, completes Stripe Connect, and explicitly flips enforcement.

  • No silent enforcement. Shadow mode is on for every starter intent, no exceptions.
  • No bearer key without a human. The api_key is tenant-scoped and the magic link is the gate to graduate to a real money-moving workspace.
  • Idempotent by design. Same idempotency key in, same tenant out; agent loops cannot multiply workspaces.
  • Rate-limited fail-closed. The endpoint declines when Redis is unavailable; it never silently skips the limit.
Next step

Discoverable. Idempotent. Safe by default.

Three properties every external-agent integration should have. Axiru ships them on day one.

Start in shadow mode first. Move to live enforcement later.

We use cookies for analytics and marketing measurement. You can reject non-essential cookies at any time.

Privacy policy
Connect Axiru over MCP in three steps | Axiru