
Monapay Mcp
vn.monapay由 monapay.vn 發布v0.6.2更新於 Oct 24, 2026
MONA Pay for AI agents: create VietQR, check bank transfers, webhooks & HMAC. Vietnam bank API, VND
概覽
MONA Pay 的 MCP 伺服器,讓 AI 助理建立 VietQR 與結帳連結、查詢越南盾入帳轉帳,並設定 webhook 與通知。
- 可以做什麼
- 查看帳戶狀態、資料與方案,並透過 OTP 綁定 ACB 銀行帳戶、建立虛擬帳戶
- 建立、查看、篩選與取消代管結帳工作階段及動態 VietQR
- 依虛擬帳戶列出與查詢入帳交易,並取得指定日期區間的彙總與每日資料
- 建立、更新、刪除與測試 webhook,讀取投遞紀錄與統計,並在本機驗證 HMAC 簽章
- 管理電子郵件與 Zalo 群組通知設定,送出測試並查看投遞紀錄
- 產生或輪換 API 金鑰,並產生 PHP、Node 或 Python 的 webhook 接收端程式碼片段
- 適用情境
- 適合在專案中整合 MONA Pay 時使用:實作銀行轉帳自動確認、為訂單產生 VietQR 或結帳連結,或在開發過程中設定與排查 webhook 及通知投遞。
- 執行需求
- 透過 npx 以 stdio 在本機執行,需要 Node.js 18 或更新版本。需要 MONA Pay API 金鑰:MONAPAY_CLIENT_ID 與 MONAPAY_CLIENT_SECRET,於 MONA Pay 後台建立。MONAPAY_BASE_URL 為選用,預設使用正式環境 API。需要可連線至 MONA Pay API 的網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Monapay Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
monapay-mcp
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.
Install
Requires Node.js 18 or later and a MONA Pay API key (client ID and client secret, created in the MONA Pay dashboard).
Claude Code
Cursor (.cursor/mcp.json) and Claude Desktop (claude_desktop_config.json)
Codex (~/.codex/config.toml)
Configuration
Client credentials are recommended over username/password, because accounts with 2FA enabled cannot log in with a password.
Usage
Tools
Resources and prompt
monapay://docs/llms: machine-readable index of the MONA Pay docs.monapay://docs/{slug}: one docs page as Markdown, for examplemonapay://docs/webhooks/tich-hop-webhook.- Prompt
integrate-monapay(argumentslanguage,framework): a 6-step plan for the agent to integrate MONA Pay into the current project.
Example
"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.
Link a bank account with OTP
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.
- Call
monapay_link_bank_startwith the ACB account number, phone number, customer type, VA prefix and identifier. It returnsacb_request_id, and ACB sends the first OTP. - Ask the user for the OTP and call
monapay_link_bank_verify_otp. It returnsvirtual_account_idand the VA number. - Call
monapay_notification_registerwithvirtual_account_id. ACB sends the second OTP. - Ask the user for the second OTP and call
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.
Zalo group notifications
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.
Key rotation
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.
Webhook signature
X-Mona-Signature: sha256=<hex>, where hex = HMAC-SHA256(secret, "<X-Mona-Timestamp>.<raw_body>"). 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.
Development
Agent guide: https://monapay.vn/ai-agent · Documentation: https://monapay.vn/docs
License
MIT
MONA Pay is part of MONA Cloud by The MONA Group.
來源:README.md,提交 be66409
工具
0版本歷史
2- v0.6.2最新Oct 5, 2026
- v0.6.1Sep 19, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分