Indonesia Payments MCP — server MCP agar agen AI bisa menerima pembayaran di Indonesia
Use it in 60 seconds
Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, or any MCP-capable agent):
{
"mcpServers": {
"indonesia-payments": {
"type": "http",
"url": "https://mcp-id.wishpool.app/mcp"
}
}
}
Nothing to install. Credentials, when you need them, travel as HTTP headers on each request and are never stored — see the threat model.
Or run it yourself
Would you rather not send production credentials to a server you do not control? Deploy this identical code to your own account and point your agent at your own URL:
git clone https://github.com/junter1989k-ai/indonesia-payments-mcp && cd indonesia-payments-mcp && npx vercel --prod
MIT-licensed. Self-hosting removes us from the picture entirely, at no cost and with no loss of function.
Live · MCP endpoint:
https://mcp-id.wishpool.app/mcp· Listed on the official MCP Registry asapp.wishpool/indonesia-payments-mcp· Sister servers: Taiwan · Japan · Korea · India
English below. / Bahasa Indonesia di bawah.
A remote MCP server that lets any AI agent (Claude, ChatGPT, Cursor…) accept payments in Indonesia:
- 📱 GoPay / QRIS / ShopeePay / DANA — the e-wallet & QR rails Indonesia actually uses
- 🏦 Bank transfer virtual accounts — BCA / BNI / BRI / Permata / Mandiri (echannel)
- 🏪 Alfamart / Indomaret — cash payment codes at convenience stores
- 💳 Credit card
- 🔍 Payment status check — pull-based, no webhook needed; no confirm step, payment completes automatically
v0.1 routes through Midtrans Snap, a major Indonesian payment gateway with a hosted checkout page. The provider registry is built for aggregation — more Indonesian gateways join behind the same tools.
⚖️ Stateless translation layer: funds always flow buyer → Midtrans → merchant directly. This server never holds, moves, or stores funds or credentials — no database at all.
Why this exists
Indonesian payment rails — GoPay, QRIS, VA transfers, Alfamart cash codes — are built for humans clicking through web pages. An AI agent has no agent-ready API for "let my Indonesian customer pay". This MCP server translates that flow into tools an agent can call.
Quick start
MCP endpoint: https://mcp-id.wishpool.app/mcp (Streamable HTTP, stateless JSON-RPC)
Add the server URL in any remote-MCP client (Claude Desktop / Claude Code / Cursor…), then send your Midtrans key as a header on each request:
| Header | Value |
|---|---|
x-midtrans-server-key | Your Midtrans server key. SB-Mid-server-... = sandbox (no real money, free from dashboard.midtrans.com); Mid-server-... = production. Mode auto-detected from the SB- prefix; optional x-midtrans-mode header overrides. |
No public demo key exists for Midtrans, so bring your own — a sandbox key takes a minute to get and never moves real money (test payments complete via simulator.sandbox.midtrans.com).
Tools
| Tool | What it does |
|---|---|
create_payment_link | Create an IDR hosted-checkout link (gopay / qris / shopeepay / dana / credit_card / bca_va / bni_va / bri_va / permata_va / echannel / alfamart / indomaret). Returns the Snap URL. |
query_payment_status | Check status by order_id: paid=true on settlement (or capture + fraud accept). |
Develop
node test/serve.js # local server (http://localhost:3214/mcp)
node test/e2e.js # protocol + validation suite (probes real Midtrans auth errors)
Zero runtime dependencies; Node ≥ 18.
English summary
Remote MCP server for Indonesia payments: GoPay, QRIS, ShopeePay, DANA, credit card, bank virtual accounts, Alfamart/Indomaret — via Midtrans Snap's hosted checkout. Bring-your-own credentials (x-midtrans-server-key), stateless, never touches funds, MIT-licensed, zero dependencies. Endpoint: https://mcp-id.wishpool.app/mcp.
Part of a family: Taiwan (ECPay 綠界 / NewebPay 藍新 + e-invoices) · Japan (KOMOJU — konbini / PayPay) · Korea (Toss Payments — cards / KakaoPay·NaverPay) · India (Razorpay Payment Links — UPI / cards).