GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
MONA Pay for AI agents: create VietQR, check bank transfers, webhooks & HMAC. Vietnam bank API, VND
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
MONAPAY_CLIENT_ID, MONAPAY_CLIENT_SECRET, MONAPAY_BASE_URL「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"monapay": {
"command": "npx",
"args": [
"-y",
"monapay-mcp",
"-y"
],
"env": {
"MONAPAY_CLIENT_ID": "your-value",
"MONAPAY_CLIENT_SECRET": "your-value",
"MONAPAY_BASE_URL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add monapay --env MONAPAY_CLIENT_ID=your-value --env MONAPAY_CLIENT_SECRET=your-value --env MONAPAY_BASE_URL=your-value -- npx -y monapay-mcp -y動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"monapay": {
"command": "npx",
"args": [
"-y",
"monapay-mcp",
"-y"
],
"env": {
"MONAPAY_CLIENT_ID": "your-value",
"MONAPAY_CLIENT_SECRET": "your-value",
"MONAPAY_BASE_URL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"monapay": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"monapay-mcp",
"-y"
],
"env": {
"MONAPAY_CLIENT_ID": "your-value",
"MONAPAY_CLIENT_SECRET": "your-value",
"MONAPAY_BASE_URL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
MONAPAY_BASE_URL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名はドメイン monapay.vn で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:MONAPAY_CLIENT_ID, MONAPAY_CLIENT_SECRET
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.6.2)がレジストリに届いたのは34 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
An MCP server that lets AI coding agents such as Claude Code, Cursor and Codex (or any MCP client) work with MONA Pay while coding: link a bank account, create checkout links and VietQR codes, look up incoming transfers, configure and test webhooks, email and Zalo group notifications, and verify webhook signatures.
Published on npm as monapay-mcp and in the MCP Registry as vn.monapay/monapay-mcp.
Requires Node.js 18 or later and a MONA Pay API key (client ID and client secret, created in the MONA Pay dashboard).
npx -y monapay-mcp # starts the server over stdio
claude mcp add monapay \
-e MONAPAY_CLIENT_ID=your_client_id \ -e MONAPAY_CLIENT_SECRET=your_client_secret \ -- npx -y monapay-mcp
.cursor/mcp.json) and Claude Desktop (claude_desktop_config.json){
"mcpServers": { "monapay": { "command": "npx", "args": ["-y", "monapay-mcp"], "env": { "MONAPAY_CLIENT_ID": "client_id", "MONAPAY_CLIENT_SECRET": "client_secret" } } } }
~/.codex/config.toml)[mcp_servers.monapay]
command = "npx" args = ["-y", "monapay-mcp"] env = { MONAPAY_CLIENT_ID = "client_id", MONAPAY_CLIENT_SECRET = "client_secret" }
| Variable | Required | Meaning |
|---|---|---|
MONAPAY_CLIENT_ID | yes (recommended) | client_id of an API key created in the dashboard |
MONAPAY_CLIENT_SECRET | yes (recommended) | client_secret, shown once; used to obtain the OAuth token and authorize write actions |
MONAPAY_USERNAME | legacy | MONA Pay username, used only when client credentials are not set |
MONAPAY_PASSWORD | legacy | Password; does not work for accounts with 2FA enabled |
MONAPAY_BASE_URL | no | Defaults to https://api.monapay.vn |
Client credentials are recommended over username/password, because accounts with 2FA enabled cannot log in with a password.
| Tool | What it does |
|---|---|
monapay_quickstart | Entry point: checks account state (bank/VA linked, webhook configured) and returns the next steps |
monapay_whoami | Verifies the connection and returns the account name and plan |
monapay_me | Profile of the logged-in account |
monapay_link_bank_start · monapay_link_bank_verify_otp | Link an ACB account and create a virtual account (first OTP) |
monapay_notification_register · monapay_notification_verify_otp | Turn on incoming-transfer notifications (second OTP) |
monapay_list_bank_accounts · monapay_list_virtual_accounts | Linked bank accounts and their virtual accounts (VA) |
monapay_get_payment_profile · monapay_set_payment_profile | View or set the profile used by the hosted checkout page |
monapay_create_checkout · monapay_get_checkout · monapay_list_checkouts · monapay_cancel_checkout | Create, inspect, filter and cancel hosted checkout sessions |
monapay_create_qr · monapay_cancel_qr | Create or cancel a dynamic VietQR for an order |
monapay_list_transactions | Incoming transactions for a VA (up to 100 per page), for reconciliation |
monapay_get_transaction | Find one incoming transaction by transaction_code or ID within a VA |
monapay_get_transactions_summary | Incoming totals, transaction count and daily data for a date range |
monapay_sandbox_transaction | Create a fake incoming transaction; webhooks, Telegram, email and Zalo fire as for a real one. Without a VA, a sandbox VA is issued |
monapay_list_webhooks · monapay_create_webhook · monapay_update_webhook · monapay_delete_webhook | Webhook configs (NONE, API_KEY or HMAC_SHA256; HMAC recommended) |
monapay_test_webhook · monapay_webhook_logs · monapay_webhook_stats | Send a dummy webhook, per-delivery history, success rate / P95 |
monapay_list_email_configs · monapay_create_email_config · monapay_update_email_config · monapay_delete_email_config | Email notification configs with 1 to 10 recipients |
monapay_verify_email · monapay_resend_email_verification · monapay_test_email | Verify a recipient with a 6-digit code, resend the code, send a test email |
monapay_email_logs · monapay_email_stats | Delivery metadata, success rate / P95 and error groups |
monapay_list_email_suppressions · monapay_remove_email_suppression | View and remove suppressed addresses |
monapay_list_zalo_groups · monapay_create_zalo_group · monapay_update_zalo_group · monapay_delete_zalo_group | Zalo group notification configs |
monapay_test_zalo_group · monapay_zalo_group_logs | Send a test message and read Zalo group delivery history |
monapay_retry_transaction | Re-send the webhook or Telegram notification for a transaction |
monapay_generate_key | Generate a new client_secret |
monapay_rotate_key | Rotate the secret of the current key when it may be exposed |
monapay_verify_signature | Verify a webhook signature locally, with no network call |
monapay_generate_webhook_snippet | Webhook receiver code for PHP, Node or Python, with a sample payload |
monapay://docs/llms: machine-readable index of the MONA Pay docs.monapay://docs/{slug}: one docs page as Markdown, for example monapay://docs/webhooks/tich-hop-webhook.integrate-monapay (arguments language, framework): a 6-step plan for the agent to integrate MONA Pay into the current project."Integrate automatic bank transfer confirmation into this Laravel site with MONA Pay."
The agent calls monapay_whoami, gets receiver code with monapay_generate_webhook_snippet(language="php"), writes the endpoint into the project, registers it with monapay_create_webhook(auth_type="HMAC_SHA256", secret_key=...), fires monapay_test_webhook, reads monapay_webhook_logs to confirm the endpoint returns 200, then uses monapay_create_checkout for each order and waits for CHECKOUT_PAID.
ACB sends each OTP to the account holder's registered phone. The agent must ask the user at steps 2 and 4 and never guess an OTP.
monapay_link_bank_start with the ACB account number, phone number, customer type, VA prefix and identifier. It returns acb_request_id, and ACB sends the first OTP.monapay_link_bank_verify_otp. It returns virtual_account_id and the VA number.monapay_notification_register with virtual_account_id. ACB sends the second OTP.monapay_notification_verify_otp. Incoming transfers are now forwarded to your configured webhooks.If an OTP is wrong or expired, call the previous step again to get a new code.
The group must contain the MONA bot (Gấu Mona), which is added by the MONA team. group_id is 10 to 25 digits and comes from MONA Account/PMS.
Call monapay_create_zalo_group with group_id, a friendly name and the events to receive: TRANSACTION_IN, CHECKOUT_PAID, WEBHOOK_FAILED, VA_CREATED. You can limit it to one virtual_account_id, send a test with monapay_test_zalo_group and check delivery with monapay_zalo_group_logs.
Zalo does not render Markdown, so message_template must be plain text. It supports {amount}, {description}, {virtual_account_number}, {transaction_code} and {transfer_date}; the {{amount}} form also works.
monapay_rotate_key uses the current secret to rotate the key that matches MONAPAY_CLIENT_ID. The old secret stops working immediately; update MONAPAY_CLIENT_SECRET in your MCP config and restart the client.
X-Mona-Signature: sha256= , where hex = HMAC-SHA256(secret, " . "). Reject requests whose timestamp is more than 300 seconds off and compare in constant time. transaction_code stays the same across retries, so use it as the deduplication key.
npm install
npm test # build + node --test
MONAPAY_CLIENT_ID=... MONAPAY_CLIENT_SECRET=... MONAPAY_BASE_URL=https://api.monapay.vn npm run smoke
Agent guide: https://monapay.vn/ai-agent · Documentation: https://monapay.vn/docs
MIT
MONA Pay is part of MONA Cloud by The MONA Group.