mcpField
A
AgentPay VN

AgentPay VN

ローカル
github.com/phuocdu金融データ11 週間前に更新

AgentPay VN について

AgentPay VNは、会話内で決済を受け付けるAIエージェント向けのVietQR基盤です。商店やボット開発者がQRコードを発行し、銀行取引の監視で入金を確認できます。資金は直接商店の口座に入り、プラットフォームは保管しません。

主な機能

  1. 01VietQR決済リクエストとチェックアウトリンクの作成
  2. 02決済状態の確認と入金待機
  3. 03Webhookによる決済イベント通知
  4. 04サンドボックスキーと決済シミュレーション
  5. 05同期・非同期のPython SDK

活用シーン

  1. 01チャットでQRコードや決済リンクを送る
  2. 02入金確認後に商品やサービスを提供する
  3. 03サンドボックスで決済フローを試す
  4. 04決済Webhookを受信して検証する

MCP 対応

MCPサーバーは、サンドボックス登録、決済リクエスト作成、決済確認、入金待機、最近の決済一覧のツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"phuocdu-agentpay-vn": {
"command": "uvx",
"args": [
"agentpay-vn"
],
"env": {
"AGENTPAY_API_KEY": "<AGENTPAY_API_KEY>",
"AGENTPAY_BASE_URL": "<AGENTPAY_BASE_URL>"
}
}
}
}
起動コマンドuvx agentpay-vn
設定が必要な環境変数
AGENTPAY_API_KEYシークレットAgentPay API key (ap_live_* or ap_test_*). Optional — call the register_sandbox tool to self-issue a free sandbox key.
AGENTPAY_BASE_URLAPI base URL.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiagentpay-vn1.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

AgentPay VN

PyPI version License: MIT MCP Registry phuocdu/agentpay-vn MCP server

AI エージェント向けの VietQR 決済インフラ — あらゆる会話の中で支払いを受け付けられます。

AgentPay VN を使うと、AI エージェント(Claude、GPT、カスタムボット)が決済用 QR コードを生成してユーザーに送り、入金があったときに自動で確認できます。資金を保有したり、触れたりすることは一切ありません。資金は支払者の銀行口座から加盟店の口座へ直接移動します。AgentPay は決済確認のために銀行取引フィードを読み取るだけです。

ステータス: 早期アクセス/セルフホスト可能 — Sổ Nợ AI と同じスウォーム上で稼働しています。


仕組み

AI Agent                   AgentPay API              Bank feed (SePay)
   |                            |                           |
   |-- create_payment_request ->|                           |
   |<- { qr_image_url, id } ----|                           |
   |                            |                           |
   |-- send QR to user -------->|                           |
   |                            |      user scans & pays    |
   |                            |<-- webhook (bank txn) ----|
   |                            |-- match AP* pay_code      |
   |                            |-- status → settled        |
   |<-- await_settlement done --|                           |
   |                            |                           |
   |-- deliver order / unlock ->|                           |
  1. 作成 — エージェントが POST /v1/payment-requests を呼び出し、VietQR 画像の URL とチェックアウトページを取得します。
  2. 送信 — エージェントが QR 画像を埋め込むか、チャットでチェックアウトリンクをユーザーに送信します。
  3. 待機 — エージェントが await_settlement()(または MCP ツール)を呼び出し、status = settled になるまでポーリングします。
  4. 提供 — 決済が確認されてから、エージェントが商品やサービスを提供します。

AgentPay は資金を保有しません。 QR コードは加盟店の銀行口座番号を直接指定します。プラットフォームは、照合対象の送金を検出するために銀行取引フィードを監視するだけです。


クイックスタート

1. インストール
pip install agentpay-vn
2. API キーを取得 — アカウントは不要です

サンドボックスキーはセルフサービスで、すぐに発行されます。

curl -X POST https://agentpay.servicesai.vn/v1/sandbox/register \
  -H "Content-Type: application/json" -d '{"shop_name": "My Bot"}'
# -> { "api_key": "ap_test_...", "expires_at": "..." }

export AGENTPAY_API_KEY=ap_test_xxx

Python からは register_sandbox() を呼び出します。エージェントからは、register_sandbox MCP ツールを呼び出すだけです。キーが発行され、セッションに適用されます。

サンドボックスキーの有効期間は 7 日間です。実際の資金は移動せず、同じ email を指定して同じエンドポイントを呼び出すと更新されます。実際の決済には ap_live_* キーが必要です。このキーの取得には、ベトナムの銀行口座を持つ加盟店としての登録が必要です。agentpay.servicesai.vn から登録してください。

3. 決済を受け付ける(3 行)
from agentpay.client import AsyncAgentPayClient, await_settlement
import asyncio

async def main():
    async with AsyncAgentPayClient("ap_test_xxx") as client:
        pr = await client.create_payment_request(amount=50_000, description="Order #1")
        print(pr["checkout_url"])          # send this link to your user
        result = await await_settlement(client, pr["id"], timeout=120)
        assert result["status"] == "settled"

asyncio.run(main())

実行可能な完全版は examples/quickstart.py をご覧ください。


MCP サーバーのセットアップ

AgentPay には MCP サーバーが付属しているため、MCP 対応の AI エージェントであれば、追加のコードなしでツールとして呼び出せます。

Claude Desktop/Claude Code

claude_desktop_config.json に追加します(または examples/claude_desktop_config.json を使用します)。

{
  "mcpServers": {
    "agentpay": {
      "command": "python",
      "args": ["-m", "agentpay.mcp_server"],
      "env": {
        "AGENTPAY_API_KEY": "ap_test_xxx",
        "AGENTPAY_BASE_URL": "https://agentpay.servicesai.vn/v1"
      }
    }
  }
}

または、インストール済みのコンソールスクリプトを使用します。

{
  "mcpServers": {
    "agentpay": {
      "command": "agentpay-mcp",
      "env": { "AGENTPAY_API_KEY": "ap_live_xxx" }
    }
  }
}
利用可能な MCP ツール
ツール説明
register_sandbox無料の ap_test_* キーをセルフサービスで発行します。キーが設定されていない場合は、最初に呼び出してください
create_payment_request指定した金額の VietQR コードを生成します
check_payment決済リクエストの現在のステータスを取得します
await_settlement入金またはタイムアウトまでポーリングします(最大 600 秒)
list_recent_payments直近 N 件の決済済み取引を一覧表示します

エージェントスキル(Claude Code、Cursor、その他のエージェント)

MCP サーバーはエージェントに ツール を提供します。同梱の スキル は、いつ課金するか、VND 金額をどう書式設定するか、そして status = settled になるまで何も出荷してはならないというルールを判断するための指針を提供します。詳細は skills/agentpay-vn/SKILL.md をご覧ください。

このリポジトリは Claude Code のプラグインマーケットプレイスでもあるため、スキルと MCP サーバーを 1 回の手順でまとめてインストールできます。

claude plugin marketplace add phuocdu/agentpay-vn
claude plugin install agentpay-vn@agentpay-vn

Claude Code は API キーの入力を求めます(settings.json ではなく、OS の認証情報ストアに保存されます)。サンドボックスから始める場合は空欄のままにしてください。エージェントは最初の課金時に register_sandbox を呼び出します。

その他のエージェントでは、skills/agentpay-vn/ をそのエージェントがスキルを読み込む場所にコピーし、上記の手順に従って MCP サーバーを追加してください。


Python SDK

同期
from agentpay.client import AgentPayClient

with AgentPayClient("ap_live_xxx") as client:
    # Create
    pr = client.create_payment_request(
        amount=150_000,
        description="Consulting session 30 min",
        ttl_minutes=30,
        idempotency_key="session-abc-123",
    )

    # Poll manually
    import time
    for _ in range(60):
        pr = client.get_payment_request(pr["id"])
        if pr["status"] != "pending":
            break
        time.sleep(5)

    # Reconcile
    txns = client.list_transactions(limit=10)
非同期
from agentpay.client import AsyncAgentPayClient, await_settlement

async with AsyncAgentPayClient("ap_live_xxx") as client:
    pr = await client.create_payment_request(amount=75_000, description="eBook download")
    result = await await_settlement(client, pr["id"], timeout=300)
    if result["status"] == "settled":
        send_download_link(result["metadata"].get("email"))
Webhook の検証
import hashlib, hmac

def verify_webhook(raw_body: bytes, signature_header: str, secret: str) -> bool:
    expected = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, signature_header)

Webhook エンドポイントを登録します:

ep = client.register_webhook(
    url="https://your-server.com/webhooks/agentpay",
    events=["payment.settled", "payment.expired"],
)
print(ep["secret"])  # store this — shown only once

API リファレンス

  • OpenAPI 仕様: agentpay-openapi.yaml
  • ベース URL: https://agentpay.servicesai.vn/v1
  • 認証: Authorization: Bearer ap_live_xxx(サンドボックスでは ap_test_xxx)
主なエンドポイント
メソッドパス説明
POST/v1/payment-requests決済リクエストを作成
GET/v1/payment-requests/{id}ステータスを取得
POST/v1/payment-requests/{id}/cancel保留中のリクエストをキャンセル
GET/v1/transactions決済済みの取引を一覧表示
POST/v1/webhook-endpointsWebhook URL を登録
POST/v1/sandbox/simulate-settlement決済をシミュレート(サンドボックスのみ)
GET/pay/{pay_code}公開チェックアウトページ(HTML、モバイル対応)

セルフホスティング

AgentPay は、Sổ Nợ AI の FastAPI バックエンドの一部として動作します。

必要条件
  • Docker Swarm クラスター(Sono と同じ)
  • MongoDB(Sono と共有)
  • SePay の銀行フィードアカウント(本番決済用)
  • agentpay.servicesai.vn の vhost を設定した Nginx
環境変数
変数デフォルト説明
AGENTPAY_BASE_URLhttps://agentpay.servicesai.vnチェックアウトリンクの公開ベース URL
MONGO_URImongodb://localhost:27017Sono から継承
BILLING_WEBHOOK_TOKEN—SePay の Webhook トークン(継承)
API キーを作成する(管理者)
curl -X POST https://sono.servicesai.vn/api/admin/agentpay/keys \
  -H "Authorization: Bearer <admin-jwt>" \
  -H "Content-Type: application/json" \
  -d '{"org_id": "<shop-user-id>", "name": "My bot", "livemode": true}'

レスポンスには完全なキーが含まれます。すぐに保存してください。キーが表示されるのは一度だけです。


レート制限

ティア月間決済件数リクエスト数/分
Free50120

設計原則

  1. 資金を預からない — QR コードは加盟店の銀行口座に直接紐付いています。AgentPay は取引フィードを読み取るだけで、資金には一切触れません。

  2. 冪等性 — POST /payment-requests に Idempotency-Key ヘッダーを指定すると、重複を作成せずに安全に再試行できます(重複排除期間は24時間)。

  3. HMAC による Webhook 検証 — 送信されるすべての Webhook は、AgentPay-Signature ヘッダー内で HMAC-SHA256(whsec_..., raw_body) により署名されます。処理する前に必ず検証してください。

  4. サンドボックス — ap_test_* キーと POST /v1/sandbox/simulate-settlement を使って、実際の取引なしで開発やテストを行えます。

  5. 信頼境界を最小限にする — MCP サーバーは、API キー以外にローカルの秘密情報を持たない薄い REST クライアントです。エージェントキーが侵害された場合でも、公開されるのは1つのテナントの決済リクエスト作成権限だけです。


ライセンス

MIT © 2026 ServicesAI — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。