paymongo-mcp
PayMongo MCP — accept online payments in the Philippines from an AI assistant
If you were looking for a way to take GCash, GrabPay or card payments from Claude or another AI assistant, send a customer a payment link, refund an order or wire up webhooks without writing gateway code, this is it. 24 tools cover payment intents, sources, payments, refunds, checkout sessions, payment links, webhooks, payment methods and customers over the PayMongo API via Basic Auth.
Tools (24)
Payments
Tool | Description |
| Create a payment intent |
| Get a payment intent by ID |
| Create a GCash/GrabPay source |
| Get a source by ID |
| Charge a source to create a payment |
| List payments (cursor pagination) |
Refunds
Tool | Description |
| Refund a payment |
| Get a refund by ID |
| List refunds (cursor pagination) |
Checkout & Links
Tool | Description |
| Create a hosted checkout session |
| Get a checkout session by ID |
| Create a no-code Payment Link |
| Get a link by ID or reference number |
| Archive / unarchive a link |
Webhooks
Tool | Description |
| Register a webhook endpoint |
| List webhooks |
| Get a webhook by ID |
| Update URL/events, enable/disable |
| Verify the |
Payment Methods & Customers
Tool | Description |
| Create a payment method (e.g. a card) |
| Get a payment method by ID |
| Create a customer |
| Get a customer by ID |
| List customers (cursor pagination) |
Quick Start
{
"mcpServers": {
"paymongo": {
"command": "npx",
"args": ["-y", "@theyahia/paymongo-mcp"],
"env": {
"PAYMONGO_SECRET_KEY": "<YOUR_PAYMONGO_SECRET_KEY>"
}
}
}
}Environment Variables
Variable | Required | Description |
| Yes | Secret API key from the PayMongo dashboard ( |
| No | Must be |
The server reads the secret key lazily — it can start and list its tools without a key set, so a missing key surfaces as a tool-call error rather than a startup crash.
Amounts
All amounts are integers in centavos (the smallest currency unit):
10000 = ₱100.00. PayMongo's minimum is typically 2000 (₱20.00) and varies by
method.
Safety: test vs live keys
PayMongo keys are either test (sk_test_…) or live (sk_live_…). To
prevent an AI agent from accidentally moving real money, the money-moving tools
(create_payment, create_refund, create_payment_intent, create_source,
create_checkout, create_link, create_payment_method) are refused when a
live key is configured unless you opt in with:
PAYMONGO_ALLOW_LIVE=trueRead-only tools (get_*, list_*) always work. Tools are also tagged with MCP
annotations (readOnlyHint / destructiveHint) so clients can auto-approve
reads and warn on destructive actions.
Webhooks
Create a webhook to receive async payment events (e.g. source.chargeable,
payment.paid):
create_webhook { "url": "https://your.app/paymongo/hook", "events": ["payment.paid", "source.chargeable"] }The response includes a per-webhook signing secret (whsk_…). Store it. When
PayMongo POSTs an event, verify the Paymongo-Signature header before
trusting the body — pass the raw request body, the header value, and the signing
secret to verify_webhook_signature:
verify_webhook_signature {
"payload": "<raw request body, exactly as received>",
"signature_header": "t=...,te=...,li=...",
"webhook_signing_secret": "whsk_...",
"mode": "test"
}It computes HMAC-SHA256(timestamp + "." + body) and compares it (timing-safe)
against the te (test) or li (live) segment. This tool runs entirely locally
and needs no API key. Pass tolerance_seconds to also reject stale timestamps
(replay protection).
Demo Prompts
"Create a payment intent for 100 PHP"
"Create a GCash source for 50 PHP with success/fail redirect URLs"
"Create a payment link for 250 PHP for 'Consulting fee'"
"List recent payments"
"Refund 25 PHP from payment pay_123"
"Register a webhook at https://example.com/hook for payment.paid"
Development
npm ci
npm run typecheck # tsc --noEmit
npm run build # tsc -> dist/
npm test # vitest
npm run dev # run from source with tsxLicense
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/theYahia/paymongo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server