agent-pay-gate
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Fallback port used when GATE_PORT is not set and the host provides PORT. | |
| GATE_PORT | No | Port to listen on. Falls back to PORT when the host sets it. | 8787 |
| GATE_BASE_URL | No | Public address, used in links and PayPal return URLs. Falls back to RENDER_EXTERNAL_URL. | http://localhost:<port> |
| MAX_ORDER_USD | No | Largest order an agent may place. | 20 |
| MERCHANT_NAME | No | Name shown to the buyer. | Slow Morning Coffee |
| PAYPAL_LOCALE | No | Language of the PayPal approval screen. | en-US |
| QUOTE_TTL_MIN | No | Minutes before an unapproved quote expires. | 15 |
| AI_AGENT_MODEL | No | Model for the built-in shopping agent. Needs tool calling. | seed-2-0-pro-260328 |
| AI_REVIEW_MODEL | No | Model used for the order check. | seed-2-0-lite-260428 |
| DAILY_LIMIT_USD | No | Agent-placed spending allowed per 24 hours. | 60 |
| PAYPAL_API_BASE | No | PayPal REST API base URL. | https://api-m.sandbox.paypal.com |
| PAYPAL_CLIENT_ID | No | PayPal sandbox app client ID. Empty means mock mode. | |
| AI_REVIEW_API_KEY | No | Key for the order check model. Empty turns the check off. | |
| AI_REVIEW_BASE_URL | No | OpenAI-compatible API base URL for the order check model. | BytePlus ModelArk |
| AGENT_TURNS_PER_DAY | No | Cap on built-in agent turns for the whole server per day. | 600 |
| MCP_ALLOWED_ORIGINS | No | Extra browser origins allowed to call /mcp, comma separated. Other origins get 403. | |
| RENDER_EXTERNAL_URL | No | Fallback public address used when GATE_BASE_URL is not set on Render. | |
| PAYPAL_CLIENT_SECRET | No | PayPal sandbox app client secret. Empty means mock mode. | |
| AGENT_TURNS_PER_10_MIN | No | Cap on built-in agent turns per visitor per 10 minutes. | 20 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_productsA | List what Slow Morning Coffee sells, with SKUs and prices in USD. |
| create_quoteA | Build an order and get a fixed quote. This charges nothing. The total is locked to this quote; to change anything, create a new quote. Orders over the merchant's limits for agents are refused here. |
| request_paymentA | Create a PayPal payment request for a quote and get an approval link for the human. You cannot approve or pay it yourself: give the link to the user and wait. Do not open the link or try to complete checkout. |
| check_paymentB | Check whether the human approved the payment. If they did and the approved amount matches the quote exactly, the gate captures it and the order becomes PAID. Calling this again never charges twice. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool occupies a distinct, sequential stage of a single flow: browse catalog, build a quote, request a PayPal approval link, then check approval status. The descriptions explicitly police the boundaries (create_quote charges nothing, request_payment cannot self-approve, check_payment never double-charges), leaving no realistic misselection.
All four tools follow a strict verb_noun snake_case pattern: list_products, create_quote, request_payment, check_payment. The verbs (list/create/request/check) accurately signal the side effects of each step.
Four tools is exactly the surface needed for a quote-and-pay gate, with no filler or redundant variants. Every tool is required to complete the end-to-end purchase flow.
The happy path is fully covered from catalog to PAID order, but there is no way to cancel or void a stale quote, list existing quotes/orders, or re-fetch a quote by ID after losing its handle. These are workable gaps since a new quote can always be created, but they limit recovery and history access.