Authoryze
Server Details
Give your AI agent a spending limit: approval controls and single-use virtual cards.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- kevinfee3/authoryze-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.7/5 across 4 of 4 tools scored.
Each tool has a distinct role in the purchase lifecycle: submitting, checking status, retrieving the card, and viewing spending limits. The descriptions carefully separate read-only status checks from the one-time card draw.
All tool names follow a clear verb_noun pattern: check_status, get_spending_summary, request_purchase, retrieve_card. The style is consistent and each verb accurately signals the action.
Four tools cover the full purchase request workflow without unnecessary extras. Each tool addresses a distinct and necessary step, and the count feels appropriately scoped for the server's purpose.
The core lifecycle of request, status check, card retrieval, and spending visibility is well covered. Minor gaps exist, such as no explicit way to cancel a pending request or list historical purchases, but agents can work around these.
Available Tools
4 toolscheck_statusCheck purchase request statusARead-onlyInspect
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 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.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | The request_id returned by request_purchase |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description explains the meaning of the retrievable boolean and the status values, and clarifies that it never issues, draws, or reveals a card. This adds significant behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a bit verbose but well-structured, covering all necessary aspects without unnecessary fluff. It is front-loaded with the primary purpose and then details conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a status-checking tool, the description covers all essential aspects: what it does, what the returned boolean means, how to proceed, and when polling is safe. It is complete for the given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The request_id parameter is described as 'The request_id returned by request_purchase', which links it to a sibling tool and provides context. Since schema coverage is 100%, the description adds value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the current status of a purchase request, which is distinct from sibling tools like retrieve_card (which retrieves the card) and get_spending_summary (which shows spending).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call retrieve_card once when approved and retrievable is true, and notes it is safe to poll while pending. This gives clear when-to-use guidance and directs to the appropriate sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spending_summaryGet spending summaryARead-onlyInspect
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_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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds valuable behavioral context: only configured limits appear, the optional user_aggregate object covers account-wide caps, and those caps can deny a purchase even when per-agent rules are not exceeded. This goes well beyond the annotation and clarifies how the read-only result should be interpreted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, with the main purpose front-loaded and each subsequent sentence adding meaningful detail about response behavior. No filler or repetition of annotation/structured data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the responsibility of explaining the response. It names the relevant fields, distinguishes per-agent from account-wide limits, and notes the conditional presence of limits. This is sufficient for an agent to correctly invoke and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics burden for the description to carry. The description instead explains the meaning of the response fields and the optional user_aggregate object, which is appropriate given the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get current spending vs. configured limits') and lists the exact fields returned. It is clearly distinct from siblings like request_purchase (a mutation) and retrieve_card (card data), so an agent can tell what this tool is for without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about what the tool returns and explains the per-agent versus cross-agent distinction, making its purpose obvious. It does not explicitly state when not to use it or name alternatives, but with only zero parameters and clearly distinct siblings, the implied usage is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_purchaseRequest a purchaseADestructiveInspect
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 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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Purchase amount in the specified currency | |
| currency | No | ISO 4217 currency code, defaults to USD | |
| description | Yes | What is being purchased | |
| merchant_url | Yes | Merchant domain (e.g. amazon.com, aws.amazon.com). Required. Used for whitelist/blacklist matching with subdomain support, so 'amazon.com' on the whitelist allows aws.amazon.com. | |
| category_hint | No | Merchant category slug (e.g. cloud_compute, software_saas) | |
| justification | Yes | Why this purchase is needed. Required for all requests | |
| merchant_name | No | Optional human-readable merchant name (e.g. 'AWS', 'GitHub') | |
| idempotency_key | No | Stable key for this one purchase intent. Reuse the SAME key when retrying so retries don't double-charge or double-issue a card (the server dedups on it atomically). Generate a fresh key only for a genuinely new purchase. Independent of the key, the server also runs a best-effort near-duplicate check on (merchant, amount) across the whole account and escalates suspected duplicates to owner approval; passing a stable key is still strongly recommended because it is the only fully atomic protection against concurrent double-submits. | |
| merchant_country_code | Yes | ISO 3166-1 alpha-2 country code of the MERCHANT (the store being purchased from, not the user's country). Required. Examples: 'US', 'GB', 'DE', 'CA', 'AU'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, so the mutation is known, but the description goes much further. It discloses the exact return states (approved, pending_review, denied with reason, failed), explains the duplicate-detection behavior (escalated to pending_review rather than auto-approved), and details idempotency guarantees for retries (no double card or fee). It also surfaces a specific failure mode (missing Privacy.com key) and its remedy. This is exceptional transparency beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph but is well-structured: it opens with the core action, then covers return values, retry safety, duplicate handling, and idempotency guidance in logical order. Every sentence adds necessary information for correct invocation and error recovery. It is longer than minimal but not padded; the complexity of the tool justifies the length. A slight improvement would be breaking into bullets, but it remains highly readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 params, 5 required, no output schema), the description is thorough. It explains the return states and error handling, which substitutes for an output schema. It covers retry behavior and duplicate escalation. It does not explicitly detail prerequisites like authentication, but that is likely implicit in the platform context. For a mutation tool with this much nuance, the description is nearly complete, missing only minor operational details like timeout expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with every parameter described, so the baseline is 3. The description adds behavioral context for idempotency_key and merchant_url (whitelist matching), but these are already covered in the schema descriptions with comparable detail. The description does not introduce new parameter semantics beyond the schema; it reinforces but doesn't extend them, so 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'Submit a purchase request.' This clearly states the action and what it acts on. The tool's function is unambiguous and distinct from siblings like check_status, get_spending_summary, and retrieve_card, which are all read-oriented; there is no confusion about which one to invoke for creating a purchase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs when to use this tool versus alternatives: after submitting, 'poll check_status rather than retrying' directly names the sibling used for follow-up. It also provides retry guidance (reuse same idempotency_key) and clarifies when a fresh key is appropriate ('only for a genuinely new, separate purchase'). These are concrete, actionable usage guidelines that leave no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retrieve_cardRetrieve the single-use cardADestructiveInspect
Draw 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.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | The request_id returned by request_purchase |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the destructiveHint annotation by explaining the one-time nature, spending-envelope consumption, lack of re-draw, and the already_retrieved error response on second call. This tells the agent the real-world consequences before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the primary action, then layers critical usage rules and consequences with very little waste. It is dense but every sentence serves a different purpose—precondition, timing, side-effect, fallback behavior, and alternative tool routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool, the description covers the relevant facets an agent needs: exactly what it does, when to call it, what consuming side effect exists, what to do if called again, and what to do if the purchase is not approved. No important invocation context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: request_id is already described as 'The request_id returned by request_purchase'. The description adds contextual significance by tying the parameter to an approved purchase, but does not need to repeat schema information. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Draw and return'), the exact resource ('single-use virtual card'), and a strict precondition ('for an APPROVED purchase request'). It also distinguishes itself from sibling tools, especially check_status, so an agent can tell when to select this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides very explicit when-to-use rules: call exactly once, only when ready to pay, and not speculatively. It names check_status as the correct alternative for polling or when the request is not yet approved, leaving no ambiguity about usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- FlicenseAqualityDmaintenanceSpending limits for AI agents. Create budgets, enforce limits, track spend across x402, cards, MPP, or any payment rail.719
- -licenseNot gradedqualityCmaintenanceEnables AI agents to manage and use prepaid virtual Visa cards with hard budget limits for secure online transactions. It provides tools for creating cards, checking balances, and retrieving payment credentials with human-in-the-loop approvals.1

Shatale MCP Serverofficial
AlicenseAqualityAmaintenanceAI-native payment infrastructure that enables AI agents to make purchases, issue virtual cards, and manage spending within delegated budgets and policy controls.756MIT- AlicenseNot gradedqualityBmaintenanceAgentPay is the authorization layer between an AI agent and real spending. You define the rules — spending caps, allowed merchants, time windows — and every purchase attempt the agent makes is checked against them in real time. Approved transactions go through. Anything outside the mandate is blocked and logged. No more babysitting every agent action. No more runaway charges.MIT