app.wishpool/korea-payments-mcp
README.md
<!-- mcp-name: app.wishpool/korea-payments-mcp -->
# Korea Payments MCP — 한국에서 AI 에이전트가 결제 링크를 만들 수 있는 MCP 서버
<!-- 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": {
"korea-payments": {
"type": "http",
"url": "https://mcp-kr.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/korea-payments-mcp)
```bash
git clone https://github.com/junter1989k-ai/korea-payments-mcp && cd korea-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-kr.wishpool.app/mcp` · Listed on the [official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=wishpool) as `app.wishpool/korea-payments-mcp` · Sister servers: [Taiwan](https://github.com/junter1989k-ai/taiwan-payments-mcp) · [Japan](https://github.com/junter1989k-ai/japan-payments-mcp) · [Indonesia](https://github.com/junter1989k-ai/indonesia-payments-mcp) · [India](https://github.com/junter1989k-ai/india-payments-mcp)
**English below. / 한국어는 아래를 참고하세요.**
A remote **MCP server** that lets any AI agent (Claude, ChatGPT, Cursor…) accept payments in **Korea**:
- 💳 **Card 카드** — the checkout window also shows easy-pay wallets (**KakaoPay 카카오페이 / NaverPay 네이버페이 / Toss Pay**) enabled on the merchant contract
- 🏦 **Virtual account 가상계좌 / instant bank transfer 계좌이체 / carrier billing 휴대폰**
- 🔍 **Payment status check** — pull-based, no webhook needed
- ✅ **confirm_payment** — Toss's required approval step, exposed honestly as a tool
v0.1 routes through **[Toss Payments](https://www.tosspayments.com)** (토스페이먼츠), a major Korean payment gateway. The provider registry is built for aggregation — more Korean gateways join behind the same tools.
> ⚖️ **Stateless translation layer**: funds always flow buyer → Toss Payments → merchant directly. This server never holds, moves, or stores funds or credentials — no database at all.
## Why this exists
Korean payment rails — Toss checkout, KakaoPay/NaverPay wallets, 가상계좌 virtual accounts — are built for humans clicking through web pages. An AI agent has no agent-ready API for "let my Korean customer pay". This MCP server translates that flow into tools an agent can call.
## Quick start
MCP endpoint: `https://mcp-kr.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 Toss Payments key as a header on each request:
| Header | Value |
|---|---|
| `x-toss-secret-key` | Your Toss Payments secret key. `test_sk_...` / `test_gsk_...` = test mode (no real money, free after signing up at [developers.tosspayments.com](https://developers.tosspayments.com)); `live_sk_...` = production. |
No public demo key exists for Toss Payments, so bring your own — a test key takes a minute to get and never moves real money.
## The Toss flow (three steps, honestly)
Toss Payments separates *authentication* from *approval*:
1. `create_payment_link` → buyer opens `payment_url` and authenticates
2. Poll `query_payment_status` → status becomes `IN_PROGRESS`
3. `confirm_payment` within **10 minutes** (same amount = built-in tamper check) → `DONE`
Virtual accounts: confirm issues the account (`WAITING_FOR_DEPOSIT`); `DONE` arrives after the buyer deposits.
## Tools
| Tool | What it does |
|---|---|
| `create_payment_link` | Create a KRW checkout link (card / virtual_account / transfer / mobile_phone). Returns the hosted checkout URL. |
| `query_payment_status` | Check status: READY / IN_PROGRESS / WAITING_FOR_DEPOSIT / DONE / CANCELED / ABORTED / EXPIRED. |
| `confirm_payment` | Approve the payment after buyer authentication (required Toss step). |
## Develop
```bash
node test/serve.js # local server (http://localhost:3213/mcp)
node test/e2e.js # protocol + validation suite (probes real Toss auth errors)
```
Zero runtime dependencies; Node ≥ 18.
---
## English summary
Remote MCP server for **Korea payments**: card (with KakaoPay / NaverPay / Toss Pay wallets), virtual account (가상계좌), instant bank transfer, carrier billing — via Toss Payments' hosted checkout. Bring-your-own credentials (`x-toss-secret-key`), stateless, never touches funds, MIT-licensed, zero dependencies. Endpoint: `https://mcp-kr.wishpool.app/mcp`.
Part of a family: [Taiwan Payments MCP](https://github.com/junter1989k-ai/taiwan-payments-mcp) (ECPay 綠界 / NewebPay 藍新 + government e-invoices) · [Japan Payments MCP](https://github.com/junter1989k-ai/japan-payments-mcp) (KOMOJU — konbini / PayPay) · [Indonesia Payments MCP](https://github.com/junter1989k-ai/indonesia-payments-mcp) (Midtrans Snap — GoPay / QRIS / Alfamart) · [India Payments MCP](https://github.com/junter1989k-ai/india-payments-mcp) (Razorpay Payment Links — UPI / cards).
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing