{"serverInfo":{"name":"Allowance MCP","version":"0.1.4","description":"Payment security for AI agents. Allowance lets agents request scoped human approval, receive limited virtual cards, complete checkout, and report receipts without exposing the human's real card.","homepage":"https://useallowance.com/mcp","repository":"https://github.com/useallowance/allowance-mcp-public","icon":"https://raw.githubusercontent.com/useallowance/allowance-mcp-public/main/assets/allowance-logo-green-bg.jpg","image":"https://raw.githubusercontent.com/useallowance/allowance-mcp-public/main/assets/social-card.png"},"authentication":{"required":true,"schemes":["oauth2"]},"tools":[{"name":"create_one_time_card","description":"Create a scoped one-time card number for a human who explicitly wants card details now. This is not the default \"buy/order this for me\" checkout flow; use request_purchase_approval for agent-managed shopping and checkout.\n\nInputs: expected_cents is the card spend cap in cents. merchant and reason are optional; when omitted, Allowance uses generic one-time-card labels for the approval request. Include merchant_url when known.\n\nThis tool returns immediately after creating the approval request. If the response is pending, it includes approval_url, approval_link, and user_message. Show user_message to the human, then immediately call wait_for_one_time_card with the returned allowance_request_id in the same turn. Do not stop after creating the request, and do not wait for the human to say they approved.","inputSchema":{"type":"object","properties":{"expected_cents":{"type":"integer","description":"Expected purchase amount in cents, including estimated tax and shipping."},"merchant":{"type":"string","description":"Merchant or store where the agent intends to make the purchase."},"reason":{"type":"string","description":"Human-readable approved purchase intent and criteria. It is shown to the human; Allowance does not parse or enforce it."},"currency":{"type":"string","description":"Three-letter ISO currency code for the expected amount."},"merchant_url":{"type":"string","description":"Optional product, cart, or checkout URL for the intended purchase."},"expires_at":{"type":"string","description":"Optional ISO 8601 timestamp for when the approval request should expire."},"allowance_expires_at":{"type":"string","description":"Optional allowance expiry: an ISO 8601 date/time, \"default\" (or null) for 24 hours after approval, or \"max\" for two weeks after approval."},"timeout_seconds":{"type":"number","description":"Maximum number of seconds to wait before returning the current status."},"checkout_merchant":{"type":"string","description":"Merchant name shown at checkout where the card will be used."},"checkout_url":{"type":"string","description":"Optional checkout page URL where the card will be used."}},"required":["expected_cents"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Create One-Time Card","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"wait_for_one_time_card","description":"Wait for a pending one-time-card request, then issue the scoped card and return a secure reveal link after approval. Use this immediately after create_one_time_card returns a pending allowance_request_id, and use it again with the same id if a wait times out while the human is still approving.\n\nInputs: allowance_request_id is the id returned by create_one_time_card. expected_cents is the card spend cap in cents. timeout_seconds controls how long this call waits for iPhone approval before returning pending; default is 120 seconds and the maximum is 600 seconds. checkout_merchant and checkout_url are optional checkout context for issuing the card after approval.\n\nIf approved and ready, show only reveal_url to the human. Never show a card number, payment expiry, CVV, or an internal attempt id in chat. The reveal link is short-lived; its expiration is validated when opened, so this tool does not return a separate expiry. If card authorization is required, ask the human to approve on their phone and call wait_for_one_time_card again with the same allowance_request_id. If the request is still pending at timeout, show user_message to the human, then call wait_for_one_time_card again with the same allowance_request_id.","inputSchema":{"type":"object","properties":{"allowance_request_id":{"type":"string","description":"Allowance request identifier returned when the request was created."},"expected_cents":{"type":"integer","description":"Expected purchase amount in cents, including estimated tax and shipping."},"timeout_seconds":{"type":"number","description":"Maximum number of seconds to wait before returning the current status."},"checkout_merchant":{"type":"string","description":"Merchant name shown at checkout where the card will be used."},"checkout_url":{"type":"string","description":"Optional checkout page URL where the card will be used."}},"required":["allowance_request_id","expected_cents"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Wait for One-Time Card","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"request_purchase_approval","description":"Create an iPhone approval request for a specific purchase intent. This does not issue a card or move money. expected_cents is the approved all-in ceiling; reason is the human-readable approved intent and criteria; merchant is optional and only restricts the card when supplied. Include merchant_url when known. allowance_expires_at accepts an ISO 8601 date/time, null or \"default\" for 24 hours from approval, or \"max\" for two weeks from approval.\n\nIf the response is pending, it includes approval_url and approval_link for the human to approve in Allowance. Immediately call wait_for_purchase_approval with the returned allowance_request_id. Do not create a duplicate request while one is pending. If the response is failed, explain the failure naturally and stop unless the human changes the request.","inputSchema":{"type":"object","properties":{"expected_cents":{"type":"integer","description":"Expected purchase amount in cents, including estimated tax and shipping."},"reason":{"type":"string","description":"Human-readable approved purchase intent and criteria. It is shown to the human; Allowance does not parse or enforce it."},"merchant":{"type":"string","description":"Merchant or store where the agent intends to make the purchase."},"requires_shipping":{"type":"boolean","description":"Whether the intended purchase requires a shipping address."},"currency":{"type":"string","description":"Three-letter ISO currency code for the expected amount."},"merchant_url":{"type":"string","description":"Optional product, cart, or checkout URL for the intended purchase."},"expires_at":{"type":"string","description":"Optional ISO 8601 timestamp for when the approval request should expire."},"allowance_expires_at":{"type":"string","description":"Optional allowance expiry: an ISO 8601 date/time, \"default\" (or null) for 24 hours after approval, or \"max\" for two weeks after approval."}},"required":["expected_cents","reason"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Request Purchase Approval","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"wait_for_purchase_approval","description":"Wait for a purchase approval request to become approved, denied, canceled, expired, failed, or timed out. Use this immediately after request_purchase_approval returns a pending allowance_request_id, and use it again with the same id if a wait times out while the human is still approving.\n\nIf approved, the result is authoritative for allowance_id, requires_shipping, and shipping_overridden_by_user. Complete checkout using your available capability. If denied, canceled, expired, or failed, tell the human and do not retry automatically.","inputSchema":{"type":"object","properties":{"allowance_request_id":{"type":"string","description":"Allowance request identifier returned when the request was created."},"timeout_seconds":{"type":"number","description":"Maximum number of seconds to wait before returning the current status."}},"required":["allowance_request_id"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Wait for Purchase Approval","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_checkout_context","description":"Fetch the approved checkout context: allowance metadata, final shipping truth, contact details, shipping address, and billing address. Use only after approval and only when checkout asks for contact, shipping, or billing fields.\n\nUse the returned contact fields for name, email, and phone. Use shipping only when final requires_shipping is true. Use billing when the merchant asks for billing fields. Do not ask the human to reconfirm these non-secret details after approval unless the tool returns missing data. This tool never returns card number, expiry, or CVV.","inputSchema":{"type":"object","properties":{"allowance_id":{"type":"string","description":"Allowance identifier returned by an approved request."}},"required":["allowance_id"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Get Checkout Context","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"issue_card","description":"Issue scoped virtual card credentials for an approved checkout allowance. Keep the returned card fields private by default. Use only when the merchant payment form is visible and ready for card entry with the final amount known. Do not call while still browsing products, cart, login, shipping, delivery, discounts, or review pages; issued cards have a short TTL.\n\nPass allowance_id, expected_cents for the final charge, checkout_merchant as shown on the checkout page, and checkout_url when available. Type returned card credentials directly into the merchant form through browser automation unless the human explicitly asks to see them; then show the returned card number, payment expiry, CVV, network, and limit in chat. If status is pending_auth, ask the human to approve on their phone, then call complete_purchase_auth. If the amount exceeds approval, stop and ask the human to update the allowance in the app before continuing.","inputSchema":{"type":"object","properties":{"allowance_id":{"type":"string","description":"Allowance identifier returned by an approved request."},"expected_cents":{"type":"integer","description":"Expected purchase amount in cents, including estimated tax and shipping."},"checkout_merchant":{"type":"string","description":"Merchant name shown at checkout where the card will be used."},"checkout_url":{"type":"string","description":"Optional checkout page URL where the card will be used."}},"required":["allowance_id","expected_cents","checkout_merchant"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Issue Card","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"complete_purchase_auth","description":"Complete a payment/card authorization challenge after issue_card returned pending_auth. Use only for that case. Ask the human to approve on their phone, then call this with allowance_id and attempt_id.\n\nIf this returns card credentials, type them directly into the merchant form unless the human explicitly asks to see them; then show the returned card number, payment expiry, CVV, network, and limit in chat. If checkout still needs contact/address fields, use get_checkout_context separately.","inputSchema":{"type":"object","properties":{"allowance_id":{"type":"string","description":"Allowance identifier returned by an approved request."},"attempt_id":{"type":"string","description":"Purchase attempt identifier returned when a virtual card was issued."}},"required":["allowance_id","attempt_id"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Complete Purchase Auth","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"report_purchase_result","description":"Close out a local checkout attempt after the merchant succeeds or fails. Always call this for local checkout, including failures after a card was issued.\n\nFor success, pass status=\"success\", allowance_id, attempt_id, and charged_cents. For failure, pass status=\"failure\" or status=\"failed\", allowance_id, attempt_id, error_code, and merchant_message when available. error_code must be one of: card_declined, card_declined_avs, card_declined_cvv, checkout_abandoned, checkout_error, checkout_timeout, item_unavailable, merchant_rejected, price_mismatch, unsupported_card. If the payment processor or merchant returns a code outside this list, use checkout_error and include the raw merchant message when useful.","inputSchema":{"type":"object","properties":{"allowance_id":{"type":"string","description":"Allowance identifier returned by an approved request."},"attempt_id":{"type":"string","description":"Purchase attempt identifier returned when a virtual card was issued."},"status":{"type":"string","description":"Purchase result status."},"charged_cents":{"type":"integer","description":"Final charged amount in cents after checkout completed."},"error_code":{"type":"string","enum":["card_declined","card_declined_avs","card_declined_cvv","checkout_abandoned","checkout_error","checkout_timeout","item_unavailable","merchant_rejected","price_mismatch","unsupported_card"],"description":"Machine-readable purchase failure reason from the supported error-code list."},"merchant_message":{"type":"string","description":"Optional checkout or card-decline message shown by the merchant."}},"required":["allowance_id","attempt_id","status"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Report Purchase Result","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"manage_allowances","description":"View or manage existing allowances. This is account management, not part of the normal purchase checkout path.\n\nUse action=\"list\" to list allowances. List output is intentionally concise and limited by default; summarize the returned rows and use action=\"get\" with allowance_id to inspect one allowance in full detail, including after the human updates a cap in the app. Use action=\"purchase_attempts\" with allowance_id to inspect attempts. Use action=\"pause\" or action=\"revoke\" only when the human explicitly asks for that account-management action. Revocation is permanent and cannot be undone; get explicit human confirmation before revoke.","inputSchema":{"type":"object","properties":{"action":{"type":"string","description":"Operation to perform within this grouped Allowance tool."},"allowance_id":{"type":"string","description":"Allowance identifier returned by an approved request."},"limit":{"type":"integer","description":"Maximum number of list items to return in concise MCP output."}},"required":[],"additionalProperties":false},"outputSchema":{"type":"object","description":"Allowance tool result. Responses include ok/error status plus tool-specific fields such as request ids, allowance ids, next actions, checkout state, or API response body.","additionalProperties":true,"properties":{"ok":{"type":"boolean","description":"Whether the Allowance API call or local validation succeeded."},"body":{"type":"object","description":"Raw Allowance API response body when one is available.","additionalProperties":true},"approval_url":{"type":["string","null"],"description":"Universal link for the human to approve an allowance request."},"approval_link":{"type":["string","null"],"description":"Alias for approval_url, matching existing CLI naming."},"error":{"type":["string","object","array","null"],"description":"Human-readable or structured error details when the call fails."},"status":{"type":["string","null"],"description":"Current request, allowance, purchase, or fulfillment status."},"phase":{"type":["string","null"],"description":"High-level phase for multi-step request or checkout flows."},"request_id":{"type":["string","null"],"description":"Alias for the allowance request identifier."},"allowance_request_id":{"type":["string","null"],"description":"Allowance request identifier used for polling or lookup."},"allowance_id":{"type":["string","null"],"description":"Allowance identifier used for cards, checkout, and management."},"attempt_id":{"type":["string","null"],"description":"Purchase attempt identifier for card authorization or reporting."},"display_amount":{"type":["string","null"],"description":"Human-readable currency amount for the request or checkout."},"checkout_mode":{"type":["string","null"],"description":"Checkout mode selected by Allowance, such as local or remote."},"merchant_url":{"type":["string","null"],"description":"Merchant URL associated with the approval or checkout flow."},"action_required":{"type":["string","null"],"description":"Immediate action category the agent or human should take."},"next_action":{"type":["string","null"],"description":"Specific next tool call or workflow step to perform."},"next_step":{"type":["string","null"],"description":"Human-readable instruction for continuing or stopping the flow."},"sensitive":{"type":["boolean","null"],"description":"Whether the result contains sensitive card details."},"display_policy":{"type":["string","null"],"description":"Guidance for displaying sensitive one-time-card details."},"can_purchase":{"type":["boolean","null"],"description":"Whether the current session can complete a purchase at the merchant."},"remote_status":{"type":["string","null"],"description":"Current remote fulfillment status when no-browser checkout is active."},"merchants":{"type":["array","object","null"],"description":"Supported remote merchants returned by Allowance."}}},"annotations":{"title":"Manage Allowances","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}}],"resources":[],"prompts":[]}