@deonpay/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEONPAY_DEBUG | No | Set to 1 to log every HTTP request/response to stderr. | 0 |
| DEONPAY_BASE_URL | No | Override for self-hosted or staging deployments. | https://deonpay.mx |
| DEONPAY_API_TOKEN | Yes | Your DeonPay API token (dp_...). Generate from Settings -> MCP Connections. | |
| DEONPAY_TIMEOUT_MS | No | Request timeout in milliseconds. | 30000 |
| DEONPAY_ENABLE_DESTRUCTIVE | No | Set to 1 to enable destructive write operations (refunds, cancellations, deletes). | 0 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| deonpay_list_linksA | List payment links for the authenticated merchant. Use this when the user asks 'show me my payment links', 'what links did I create last week', or wants to find a link by name. Supports filtering by status (active/paused/expired/deleted), type (single/recurring/unlimited), free-text search across name/short_code/reference, and a date range. Returns a paginated list — each item includes id, short_code, name, amount in centavos, status, type, url, and aggregated stats (total_payments, successful_payments, total_revenue). Note: amounts are always in centavos (1 MXN = 100). |
| deonpay_get_linkA | Fetch a single payment link by its UUID or short_code. Returns the full link payload including line_items (enriched with product data when product_id is present), customization, custom_fields, expiration, usage limits and aggregated stats. Use this when the user references a link by name/short_code from a previous list, or when they paste a https://deonpay.mx/pay/<short_code> URL. |
| deonpay_list_link_transactionsA | List all transactions associated with a specific payment link. Use this when the user asks 'who paid for this link', 'how much did link X collect', or wants to inspect failed attempts on a single link. Returns paginated transactions with customer info, card brand/last_four, amount in centavos and status. The link can be referenced by UUID or short_code. |
| deonpay_create_linkA | Create a new payment link. Use this when the user says 'create a link for $X for product Y' or 'genera un link de pago para...'. Amounts are in centavos: $500 MXN = 50000. You can pass either a fixed amount OR line_items (the API sums quantity * unit_amount automatically). Type defaults to 'single' (one-shot). Optional fields cover MSI (months without interest), max_uses, expires_at, custom_fields and visual customization. The response includes the public payment URL the user can share. |
| deonpay_update_linkA | Update an existing payment link by UUID or short_code. Only send the fields you want to change — others are preserved. Common uses: pause a link (status='paused'), change its amount, extend the expiration, or rename it. The customization object is MERGED with the existing one (it does not replace it), so you can update a single visual key without losing the rest. Type cannot typically be changed once payments exist. |
| deonpay_create_checkout_sessionA | Create an ephemeral checkout session (Stripe-style). Use this when integrating an e-commerce flow: the user wants a one-time payment URL tied to a specific cart and a success_url to land on after payment. The response contains |
| deonpay_list_transactionsA | List transactions for the merchant with rich filtering. Use this for queries like 'how many sales today', 'show failed transactions this week', 'find payments from cliente@x.com', or 'transactions over $1000 MXN with Visa cards'. Filters include status, source_type (link/checkout), customer_email (partial match), merchant_reference (exact), card_brand (visa/mastercard/amex), date_from/to (ISO), and amount_min/max (centavos). Returns paginated results with customer, card, amount, payment_link summary and timestamps. Amounts in centavos. |
| deonpay_get_transactionA | Fetch the full detail of a single transaction by UUID. Returns everything in the list view PLUS the NetPay timeline (each step in the charge / 3DS flow with duration_ms and error info), netpay charge_id / transaction_token, full metadata, refund details (when applicable), and IP/user-agent of the payer. Use this when debugging a failure, building a refund decision, or when the user asks 'what happened with transaction X'. |
| deonpay_list_productsA | List products in the merchant catalog. Use this when the user asks 'what products do I have', 'find product X', or wants to inspect inventory. Supports search across name/sku/description, filtering by is_active, and basic sorting (sort_by + sort_order). Each item includes id, name, unit_amount in centavos, currency, sku, is_active, stock_tracking and stock_quantity. |
| deonpay_get_productA | Fetch a single product by UUID OR by SKU (if you pass a non-UUID string the API resolves it as a SKU). Returns name, description, unit_amount in centavos, currency, image_url, sku, is_active, stock_tracking, stock_quantity and metadata. |
| deonpay_create_productA | Create a new product in the catalog. Use this when the user says 'add a product called X for $Y' or wants to register inventory items they'll later attach to payment links / checkout sessions. unit_amount is in CENTAVOS and must be at least 1000 ($10.00 MXN minimum on creation). SKU must be unique within the merchant. To track stock, set stock_tracking=true AND provide stock_quantity (>= 0). |
| deonpay_update_productA | Update an existing product (resolved by UUID or SKU). Only fields you send are changed. Use this for price adjustments, renaming, toggling is_active, updating stock_quantity, or swapping the image_url. Note: under the hood the API uses HTTP PATCH (not PUT). |
| deonpay_list_subscriptionsA | List subscription PLANS (the recurring templates, not individual subscribers). Use this when the user asks 'what subscription plans do I have', 'show me my recurring products', or 'find the Premium plan'. Each item includes id, name, amount in centavos, currency, interval_type (daily/weekly/biweekly/monthly/yearly), interval_count, trial_days, status (active/paused/archived) plus aggregated stats: active_subscribers and total_revenue. Use deonpay_list_customer_subscriptions to drill into actual subscribers of a plan. |
| deonpay_get_subscriptionA | Fetch a single subscription plan by UUID, including aggregated stats (active_subscribers, total_subscribers) and the most recent 10 recurring charges across all subscribers. Use this when the user wants a quick health view of a specific plan ('how is the Premium plan doing this month'). For per-subscriber detail use deonpay_list_customer_subscriptions filtered by subscription_id. |
| deonpay_create_subscriptionA | Create a new subscription PLAN (template). Use this when the user wants to set up a recurring charge: 'create a $299 monthly plan called Premium'. Required: name, amount (centavos, min 100 = $1 MXN), interval_type. Important: in production the merchant must have an On-Demand NetPay key configured for the active environment, otherwise this returns ondemand_key_missing. trial_days > 0 enables a free trial period (charges a $10 MXN card-validation tx on the first day to verify the card). Optional flags allow_customer_cancel/pause/advance_payments control the customer self-service portal. |
| deonpay_list_customer_subscriptionsA | List individual customer subscriptions (the per-customer rows, NOT the plans). Use this to answer 'who is currently subscribed to plan X', 'how many trialing subscribers do I have', or 'find subscribers on past_due'. Filter by subscription_id (the plan), customer_email (exact, case-insensitive), and status (active/paused/cancelled/past_due/completed/trialing). Each item includes the plan denormalized as a |
| deonpay_get_customer_subscriptionA | Fetch a single customer subscription by UUID. Includes the plan denormalized, the last 20 recurring charges (each with status success/failed/skipped/completed, charge_type auto/manual/renewal_link, attempt_number, error_message and timestamps), and cancellation flags. Use this when investigating a specific subscriber's history or a failed charge ('why did Juan's subscription go past_due?'). |
| deonpay_list_customersA | List the merchant's customers (people who have completed at least one non-validation transaction). Use this for questions like 'who are my top customers', 'how many recurring buyers do I have', 'find customers with email containing X'. Sort by 'recent' (last transaction, default), 'revenue' (most spent), or 'transactions' (most active). Each row includes email, name, phone, first_seen_at, last_seen_at, total_transactions, total_spent in centavos, active_subscriptions and saved_cards_count. |
| deonpay_get_customerA | Fetch a customer's full profile by email. Returns basic info, saved_cards (safe metadata only — never the vault token), active_subscriptions (status active/trialing/past_due/paused), and the last 20 transactions (excluding $10 MXN card-validation charges). Use this when the user asks 'show me everything about cliente@x.com' or 'what cards does this customer have on file'. The email is URL-encoded automatically — pass the plain email. |
| deonpay_get_merchant_metricsA | Fetch a curated set of business metrics for the merchant. Use this as the FIRST tool for high-level questions: 'how much have I sold this month', 'what is my MRR', 'how is my conversion rate trending', 'how many active subscribers do I have'. Returns: revenue (gross/net/refunded in centavos), transactions (total/successful/failed/conversion_rate as %/average_ticket in centavos), subscriptions snapshot (active_subscribers, trialing_subscribers, past_due, mrr in centavos, churn_rate as %), and revenue_mix (recurring vs one_time, in centavos). IMPORTANT: subscriptions.active/trialing/past_due AND mrr are SNAPSHOTS — they ignore |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hectortemich/deonpay-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server