app.wishpool/vietnam-payments-mcp
README.md
<!-- mcp-name: app.wishpool/vietnam-payments-mcp -->
# Vietnam Payments MCP — let AI agents accept MoMo payments in Vietnam
<!-- install-cta -->
## Use it in 60 seconds
Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, or any MCP-capable agent):
```json
{
"mcpServers": {
"vietnam-payments": {
"type": "http",
"url": "https://mcp-vn.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](https://mcp.wishpool.app/trust).
### 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:
[](https://vercel.com/new/clone?repository-url=https://github.com/junter1989k-ai/vietnam-payments-mcp)
```bash
git clone https://github.com/junter1989k-ai/vietnam-payments-mcp && cd vietnam-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-vn.wishpool.app/mcp` · Listed on the [official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=wishpool) as `app.wishpool/vietnam-payments-mcp` · Part of a 10-country family: [Taiwan](https://github.com/junter1989k-ai/taiwan-payments-mcp) · [Japan](https://github.com/junter1989k-ai/japan-payments-mcp) · [Korea](https://github.com/junter1989k-ai/korea-payments-mcp) · [Indonesia](https://github.com/junter1989k-ai/indonesia-payments-mcp) · [India](https://github.com/junter1989k-ai/india-payments-mcp) · [Brazil](https://github.com/junter1989k-ai/brazil-payments-mcp) · [Philippines](https://github.com/junter1989k-ai/philippines-payments-mcp) · [Thailand](https://github.com/junter1989k-ai/thailand-payments-mcp) · [Malaysia](https://github.com/junter1989k-ai/malaysia-payments-mcp)
A remote **MCP server** that lets any AI agent (Claude, ChatGPT, Cursor…) accept payments in **Vietnam**:
- 📱 **MoMo wallet QR** — the biggest e-wallet in Vietnam
- 💳 **ATM cards / credit cards** on the MoMo hosted page
- 🎁 **Zero-setup demo** — no credentials needed to try it (public MoMo sandbox, test money only)
- 🔍 **Payment status check** — pull-based, no webhook needed; **no confirm step**
v0.2 **aggregates two Vietnamese gateways**: **[MoMo](https://momo.vn)** (default; zero-setup sandbox demo) and **[VNPay](https://vnpay.vn)** (signed HMAC-SHA512 redirect URLs; send `x-vnpay-tmn-code` + `x-vnpay-hash-secret` and it is auto-selected).
> ⚖️ **Stateless translation layer**: funds always flow buyer → MoMo → merchant directly. This server never holds, moves, or stores funds or credentials — no database at all. Requests are signed per-call with HMAC-SHA256 in memory.
## Quick start
MCP endpoint: `https://mcp-vn.wishpool.app/mcp` (Streamable HTTP, stateless JSON-RPC)
Try it with **no headers at all** — the public MoMo sandbox demo works immediately. For real payments:
| Header | Value |
|---|---|
| `x-momo-partner-code` / `x-momo-access-key` / `x-momo-secret-key` | Your MoMo business credentials (from [business.momo.vn](https://business.momo.vn)). |
| `x-momo-mode` | `test` to use the MoMo test host with your own sandbox merchant (optional; default production). |
## Tools
| Tool | What it does |
|---|---|
| `create_payment_link` | Create a VND payment (1,000–50,000,000₫). Returns the MoMo hosted `payment_url` + `order_id`. |
| `query_payment_status` | Check by `order_id`: PAID / PENDING / FAILED. |
| `refund_payment` | Refund a paid MoMo payment (full or partial). By `order_id` (looks up the transId; full refund if `amount` omitted) or `trans_id` + `amount`. MoMo only. |
## Develop
```bash
node test/serve.js # local server (http://localhost:3220/mcp)
node test/e2e.js # e2e incl. a REAL sandbox create+query against MoMo test host
```
Zero runtime dependencies; Node ≥ 18. MIT license.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing