mcpField
P
paypay-mcp

paypay-mcp

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

paypay-mcp について

paypay-mcpは、MCPクライアントをPayPay Open Payment APIに接続し、QRコード決済を扱うサーバーです。決済状況の確認、キャンセル、返金に対応し、資金を動かす操作は設定で有効化します。

主な機能

  1. 01動的なPayPay QRコードの作成
  2. 02決済状況の確認と完了待ち
  3. 03未決済QRコードの無効化
  4. 04全額・一部返金の実行
  5. 05状態が不明な決済のキャンセル

活用シーン

  1. 01PayPay決済用QRコードの作成
  2. 02決済が完了したか確認
  3. 03決済前にQRコードを無効化
  4. 04有効化した場合の返金やキャンセル

MCP 対応

PayPay決済ツールとAPI参照リソースをMCPクライアントに提供します。stdioとStreamable HTTPに対応し、返金・キャンセルのツールは明示的に有効化するまで無効です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mrslbt-paypay": {
"command": "npx",
"args": [
"-y",
"paypay-mcp"
]
}
}
}
起動コマンドnpx -y paypay-mcp

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

パッケージ
npmpaypay-mcp0.2.1

ツール

4

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
amountintegerはい金額(JPY、整数、小数なし)。金額(円、整数)。
code_typeenumいいえQRコードの種類。現在は ORDER_QR のみサポートされています。ORDER_QR
order_itemsarrayいいえPayPayアプリに表示する任意の商品明細。商品明細(任意)。
redirect_urlstringいいえユーザーが PayPayアプリで支払いを完了した後のリダイレクト先。
redirect_typeenumいいえリダイレクトの開き方:ブラウザー(WEB_LINK)またはアプリ(APP_DEEP_LINK)。WEB_LINK | APP_DEEP_LINK
is_authorizationbooleanいいえtrue の場合、事前承認(今すぐ資金を確保し、後で売上を確定)です。事前承認(preauth)フラグ。
order_descriptionstringはい顧客が支払う対象。注文内容。
merchant_payment_idstringいいえこの支払いの一意のID。省略すると自動生成(UUID)されます。異なる注文で同じIDを再利用すると失敗します。注文ごとの一意のID。省略時は自動生成。

詳細

paypay-mcp

npm version npm downloads MCP Badge License: MIT

PayPay Open Payment API 用の Model Context Protocol サーバーです。

Claude Desktop、Claude Code、Cursor、Windsurf、Zed、ChatGPT Apps SDK、およびその他の MCP 互換クライアントで動作します。ツールの説明は英語と日本語で提供されています。

ステータス

v0.2.x — 本番環境で利用できる状態ですが、大規模な運用実績はまだありません。

PAYPAY_ENV=production を設定し、承認済みの加盟店認証情報を使用すると、PayPay の本番用 Open Payment API に対してサーバーが正常に動作します。現実の運用で意味のある取引量はまだ処理していません。実際の決済をこのサーバー経由で行う場合は、バージョンを固定し、事前にソースを確認してください。

ツール

ツール説明
create_qr_code動的な PayPay QR コードを作成します。決済 URL、ディープリンク、レンダリング済み PNG を返します。
get_payment_details決済の現在のステータスを取得します。
wait_for_payment決済が終端状態になるまでポーリングします。
delete_qr_code決済前に QR コードを無効化します。
refund_payment全額または一部を返金します。PAYPAY_ENABLE_REFUNDS=true を設定しない限り無効です。
cancel_payment状態が不明な場合(タイムアウトまたはエラー)に決済をキャンセルします。PAYPAY_ENABLE_CANCELS=true を設定しない限り無効です。

プロンプト

accept_single_payment、refund_last_payment、debug_stuck_payment。

リソース

URI説明
paypay://docs/opa-referencePayPay OPA API のエンドポイント一覧、認証方式、ステータスの用語です。
paypay://docs/payment-states決済のライフサイクルと、キャンセルと返金を選択する際の判断基準です。
paypay://config/current現在の設定(env、merchantId、baseUrl、transport)の非機密情報を表示します。

インストール

ワンクリック:

Cursor にインストール VS Code にインストール

または npm 経由:

npm install -g paypay-mcp

設定

認証情報は PayPay Developer Dashboard から取得できます。

変数必須説明
PAYPAY_API_KEYはいOPA API Key ID
PAYPAY_API_SECRETはいOPA API Key Secret
PAYPAY_MERCHANT_IDはいMerchant ID
PAYPAY_ENVいいえsandbox(デフォルト)または production
PAYPAY_ENABLE_REFUNDSいいえtrue に設定すると refund_payment を公開します。デフォルトでは無効です。
PAYPAY_ENABLE_CANCELSいいえtrue に設定すると cancel_payment を公開します。デフォルトでは無効です。
MCP_TRANSPORTいいえstdio(デフォルト)または http
MCP_HTTP_PORTいいえMCP_TRANSPORT=http の場合のポート。デフォルトは 3000 です。
MCP_HTTP_HOSTいいえバインドアドレス。デフォルトは 127.0.0.1 です。パブリックアドレスへのバインドには MCP_AUTH_TOKEN が必要です。
MCP_AUTH_TOKENいいえ設定されている場合、受信 HTTP リクエストに必要なベアラートークンです。ループバック以外へのバインドでは必須です。
MCP_HTTP_ALLOWED_ORIGINSいいえカンマ区切りの CORS 許可リスト。デフォルト:なし。
Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "paypay": {
      "command": "npx",
      "args": ["-y", "paypay-mcp"],
      "env": {
        "PAYPAY_API_KEY": "a_...",
        "PAYPAY_API_SECRET": "...",
        "PAYPAY_MERCHANT_ID": "...",
        "PAYPAY_ENV": "sandbox"
      }
    }
  }
}
Claude Code
claude mcp add paypay -e PAYPAY_API_KEY=... -e PAYPAY_API_SECRET=... -e PAYPAY_MERCHANT_ID=... -- npx -y paypay-mcp
Cursor

Claude Desktop と同じ形式で ~/.cursor/mcp.json に追加します。

リモートホスティング

HTTP モードで実行します。パブリックバインドには MCP_AUTH_TOKEN が必要です。設定されていない場合、サーバーは起動を拒否します。

MCP_TRANSPORT=http \
  MCP_HTTP_HOST=0.0.0.0 \
  MCP_AUTH_TOKEN="$(openssl rand -hex 32)" \
  MCP_HTTP_ALLOWED_ORIGINS="https://claude.ai,https://your-app.example.com" \
  PAYPAY_ENV=sandbox \
  PAYPAY_API_KEY=... PAYPAY_API_SECRET=... PAYPAY_MERCHANT_ID=... \
  npx paypay-mcp

エンドポイント:POST http(s)://<host>:3000/mcp(Streamable HTTP トランスポート)。クライアントは Authorization: Bearer <MCP_AUTH_TOKEN> を送信します。CORS はデフォルトで無効です。

ローカルテストでは認証トークンを省略できます。その場合、サーバーは 127.0.0.1 にバインドされ、ループバック接続のみを受け付けます。

環境

デフォルトは Sandbox です。Production を利用するには、PayPay の加盟店登録(事業者確認と契約)が必要です。また、PAYPAY_ENV=production を明示的に設定して有効にする必要があります。

制約

  • 金額は整数の JPY です。
  • 支払いは、支払い試行の翌日 00:14:59 JST までキャンセルできます。それ以降は返金を使用してください。
  • 1 件の注文に対して、加盟店が設定した上限まで、固有の merchantRefundId を持つ複数の一部返金を実行できます。
  • TLS 1.2 以降が必要です(Node 20 以降)。

開発

git clone https://github.com/mrslbt/paypay-mcp.git
cd paypay-mcp
npm install
cp .env.example .env
npm run dev
npm test
npm run smoke
npm run build

ロードマップ

v0.2:PreAuth + Capture、ContinuousPayments、DirectDebit、AccountLink QR、Webhook 署名検証、照合ツール。

v0.3:Native Payment(App Invoke + ユーザー JWT 認証)、Visa 提携エンドポイント、OpenTelemetry トレーシング。

安全性

このサーバーは PayPay OPA API を介して実際の資金を動かすことができます。主な安全対策は次のとおりです。

  • 返金とキャンセルのツールはデフォルトで無効です。 refund_payment と cancel_payment は、PAYPAY_ENABLE_REFUNDS=true または PAYPAY_ENABLE_CANCELS=true の場合にのみ登録されます。ツールの入力が信頼できないコンテンツの影響を受けない、信頼できるエージェントのコンテキストでのみ有効にしてください。
  • デフォルトは Sandbox です。 Production の利用には、PAYPAY_ENV=production の明示的な設定と、PayPay の加盟店登録の完了が必要です。必ず最初に Sandbox でテストしてください。
  • 呼び出しごとに固有の merchantPaymentId と merchantRefundId を使用してください。 PayPay はこれらの ID で重複を排除するため、同じ ID を再利用すると、処理が失敗するか、以前の支払いが対象になります。新しい支払いや返金ごとに、新しい ID を生成してください。
  • ツールには MCP の安全性アノテーションが付いています。 読み取り専用ツール(get_payment_details、wait_for_payment)には readOnlyHint が設定され、資金の移動や破壊的な操作を行うツール(refund_payment、cancel_payment、delete_qr_code)には destructiveHint が設定されているため、対応クライアントは呼び出し前に警告できます。これらは参考情報であり、実際の保護策は上記の有効化条件です。

これらの制限が有効な場合でも、資金を動かすリクエストは、ツール呼び出しを承認する前に必ず確認してください。モデルの出力に由来するツール入力は、信頼できないものとして扱ってください。

免責事項

これは非公式のコミュニティ開発 MCP サーバーです。PayPay Corporation との提携、同社による推奨または後援を受けていません。PayPay は各所有者の登録商標です。ご自身の責任でご利用ください。作者は、誤用、プロンプトインジェクション、またはバグによる資金の損失について一切責任を負いません。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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