paypay-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PAYPAY_ENV | No | sandbox or production | sandbox |
| MCP_HTTP_HOST | No | Bind address | 127.0.0.1 |
| MCP_HTTP_PORT | No | Port when MCP_TRANSPORT=http | 3000 |
| MCP_TRANSPORT | No | stdio or http | stdio |
| MCP_AUTH_TOKEN | No | Bearer token for HTTP; mandatory for non-loopback binds | |
| PAYPAY_API_KEY | Yes | OPA API Key ID | |
| PAYPAY_API_SECRET | Yes | OPA API Key Secret | |
| PAYPAY_MERCHANT_ID | Yes | Merchant ID | |
| PAYPAY_ENABLE_CANCELS | No | Set to true to expose cancel_payment | |
| PAYPAY_ENABLE_REFUNDS | No | Set to true to expose refund_payment | |
| MCP_HTTP_ALLOWED_ORIGINS | No | Comma-separated CORS allowlist |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_qr_codeA | Create a dynamic PayPay QR code that a customer can scan to pay.
Returns the QR code both as a URL (deeplink + hosted image) and as an inline PNG image.
Use 顧客がスキャンして支払うためのPayPay動的QRコードを作成します。
QRコードのURL(ディープリンクとホストされた画像)とインラインPNG画像の両方を返します。
顧客が支払いを完了するまで |
| get_payment_detailsA | Fetch the current status and details of a payment by merchantPaymentId.
Returns status: CREATED | AUTHORIZED | COMPLETED | REFUNDED | FAILED | CANCELED.
Use this for one-off status checks. For active polling, prefer merchantPaymentIdで指定した取引の現在のステータスと詳細を取得します。
ステータス: CREATED / AUTHORIZED / COMPLETED / REFUNDED / FAILED / CANCELED。
単発の確認に使用してください。継続的な確認は |
| wait_for_paymentA | Poll PayPay until a payment reaches a terminal state (COMPLETED, AUTHORIZED, REFUNDED, FAILED, CANCELED) or the timeout elapses. Uses PayPay's recommended 2–3s polling interval by default. Returns the final status and full payment detail. 取引が終了状態(COMPLETED / AUTHORIZED / REFUNDED / FAILED / CANCELED)に達するかタイムアウトするまで、PayPayをポーリングします。 PayPay推奨の2〜3秒間隔をデフォルトで使用します。 最終ステータスと取引詳細を返します。 |
| delete_qr_codeA | Invalidate a QR code before it is paid. Cannot be used after payment has completed. Use this when an order is canceled before checkout, or to clean up expired codes. 支払い前のQRコードを無効化します。決済完了後は使用できません。 注文がキャンセルされた場合や、期限切れのコードを整理する際に使用してください。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| accept_single_payment | Walks through creating a QR code and waiting for the customer to pay. 単発の決済を受け付けるフロー。 |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| opa_reference | Endpoint map, base URLs, auth scheme, and status vocabulary for the PayPay Open Payment API. |
| payment_states | PayPay payment lifecycle and the cancel-vs-refund decision rule, including the 00:14:59 JST window. |
| current_config | Non-secret view of the active config: environment, merchant ID, base URL, transport. Credentials are never exposed. |
TDQS
Scored across 4 tools
create_qr_code and delete_qr_code are clearly distinct lifecycle actions, and get_payment_details vs wait_for_payment are differentiated as one-off status checks vs polling. There is slight conceptual overlap between the two payment-status tools, but the descriptions make the intended use clear.
All tool names follow a consistent verb-first snake_case pattern: create_qr_code, get_payment_details, delete_qr_code, wait_for_payment. The naming is predictable and easy to reason about.
Four tools is appropriate for a narrowly scoped PayPay QR code payment server. The count feels focused rather than sparse, with no redundant or filler tools.
The core lifecycle is covered: create a QR code, poll/wait for payment, fetch payment details, and invalidate an unpaid QR code. A refund/cancel operation is absent even though REFUNDED appears in the status enum, but this is likely beyond the server's primary checkout-focused scope.