authoryze

Give your AI agent a spending limit.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Request Purchase: Submit a purchase request. Returns approved, pending_review, denied (with reason), or failed (a recoverable error, safe to retry, though some failures such as a missing Privacy.com k
  • Check Status: Check the current status of a purchase request. Read-only: it never issues, draws, or reveals a card. Returns the status (and the denial reason when denied). When approved, it reports a
  • Get Spending Summary: Get current spending vs. configured limits. Per-agent fields (daily_spent, weekly_spent, monthly_spent, total_budget_spent) reflect rules set on this agent. The optional user_agg

What data it sees

Do you need an account

No: the server works without sign-in

Give your AI agent a spending limit. Authoryze issues single-use virtual cards with per-merchant and per-amount controls you approve before the agent can spend. Works with Claude, ChatGPT, Cursor, and Claude Code. OAuth 2.1 with DCR or API key. Built on Visa Intelligent Commerce and Mastercard Agent Pay.

How to connect

How to connect authoryze to Claude

The server address to paste into Claude settings:

https://authoryze--authoryze.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect authoryze to ChatGPT

The server address to paste into ChatGPT settings:

https://authoryze--authoryze.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect authoryze to Cursor

The server address to paste into Cursor settings:

https://authoryze--authoryze.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (4)

Raw names from tools/list. Only developers need these.

request_purchaseSubmit a purchase request. Returns approved, pending_review, denied (with reason), or failed (a recoverable error, safe to retry, though some failures such as a missing Privacy.com key need the account owner to fix a setting first). A request that looks like a duplicate of another recent purchase on the account (same merchant and amount) is NOT auto-approved — it is escalated to pending_review for the account owner to approve, so poll check_status rather than retrying. IMPORTANT for retries: pass a stable idempotency_key that identifies this one distinct purchase intent, and reuse the SAME key if you retry after a timeout or error. Retries with the same key never issue a second card or charge a second fee — they return the original request's result. Use a fresh key only for a genuinely new, separate purchase.
check_statusCheck the current status of a purchase request. Read-only: it never issues, draws, or reveals a card. Returns the status (and the denial reason when denied). When approved, it reports a `retrievable` boolean: true means the single-use card has not been drawn yet, so call retrieve_card ONCE when you are ready to pay; false means the card was already retrieved and cannot be shown again (start a new purchase if you need another). Safe to poll while a request is pending_review or processing.
get_spending_summaryGet current spending vs. configured limits. Per-agent fields (daily_spent, weekly_spent, monthly_spent, total_budget_spent) reflect rules set on this agent. The optional user_aggregate object reports the owner's cross-agent caps — these apply across every agent on the account and will deny a purchase even if this agent's per-agent rules are not exceeded. Only configured limits appear in the response.
retrieve_cardDraw and return the single-use virtual card for an APPROVED purchase request. Call this exactly ONCE, only when you are ready to pay. The card details (number, expiry, CVC) are returned inline and shown a SINGLE time — store them immediately and complete the purchase. Drawing the card consumes the purchase's spending envelope, so do NOT call this speculatively, to poll status (use check_status for that), or more than once. There is no re-draw: a second call returns already_retrieved. If the request is not yet approved, call check_status and wait until it is.