Xendit Mcp について
Xendit Mcpは、残高、請求書、取引、振込などのXendit決済APIをAIエージェントに提供します。読み取り専用が初期設定で、段階的な確認と安全制限により資金移動を制御します。
主な機能
- 01残高・請求書・取引の照会
- 02有効化時の請求書作成と失効
- 03振込の準備と確認
- 04金額上限と口座許可リストの設定
- 05ワークスペースモードの設定案内
活用シーン
- 01残高や未払い請求書の確認
- 02顧客向け決済リンクの作成
- 03承認後の振込処理
MCP 対応
MCPクライアントにXenditのツール、プロンプト、リソースを公開します。請求書の書き込みと資金移動は初期状態で無効で、振込には設定と承認コードが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
xendit-mcp
Xendit 決済 API 用の Model Context Protocol サーバーです。インドネシア、フィリピン、タイ、ベトナム、マレーシアで、請求書による決済リンク、送金/支払い、残高、取引に対応しています。
インストール
npm install -g xendit-mcp
または、npx xendit-mcp を使って必要なときに実行できます。
0.1.x からのアップグレード
0.2.0 では、デフォルトの動作に互換性のない変更が導入されています。 0.1.x を使用していて、請求書の作成や一回限りの送金がすぐに使えることを前提としていた場合、これらのツールはデフォルトで無効になっています。
以前の動作に戻すには、MCP 設定の env に次の項目を設定します。
XENDIT_ENABLE_INVOICE_MUTATIONS=true
XENDIT_ENABLE_DISBURSEMENTS=true
XENDIT_ENABLE_LEGACY_ONE_SHOT_DISBURSEMENT=true
送金を有効にする場合は、4 つの安全ゲート(XENDIT_MAX_DISBURSEMENT_AMOUNT、XENDIT_MAX_DAILY_AMOUNT、XENDIT_ALLOWED_ACCOUNTS、XENDIT_APPROVAL_CODE)も設定する必要があります。設定しないと、サーバーは起動を拒否します。
推奨する移行方法は、以前の一回限りの送金を再度有効にするのではなく、新しい 2 段階の送金フロー(prepare_disbursement → 承認コードを使った confirm_disbursement)を採用することです。詳しくは安全性を参照してください。
ユーザー向けのモード
製品の利用方法を 3 つのモードで考えてください。
read-only:残高、請求書の読み取り、取引の読み取りinvoices:読み取り専用にcreate_invoiceとexpire_invoiceを追加guarded-payouts:請求書モードにprepare_disbursementとconfirm_disbursementを追加
技術に詳しくないユーザーにとって、使いやすいヘルパーは次のとおりです。
npx xendit-mcp doctor
npx xendit-mcp setup
doctorは現在のモード、有効な機能、まだブロックされている機能を表示します。setupは、希望するモードに合わせて Claude Code または Claude Desktop 用の設定スニペットを生成します。
設定
- Xendit Dashboard に登録します。
- Settings → API Keys に移動し、キーを生成します。
- 開発にはテストキー(
xnd_development_...)、本番環境にはライブキーを使用します。
| 変数 | 必須 | 説明 |
|---|---|---|
XENDIT_API_KEY | はい | テストまたはライブの API キー |
XENDIT_ENABLE_INVOICE_MUTATIONS | いいえ | true に設定すると、create_invoice、expire_invoice、create_payment_link プロンプトが有効になります。より安全な読み取り専用の動作にするため、デフォルトでは無効です。 |
XENDIT_ENABLE_DISBURSEMENTS | いいえ | true に設定すると、送金ツール(金銭の移動)が有効になります。デフォルトでは無効です。 |
XENDIT_ALLOW_LIVE | いいえ | true に設定すると、ライブ/本番用キー(プレフィックス xnd_production_、iluma_production_、sk_live_)が使用可能になります。デフォルトでは拒否されます。 |
XENDIT_MAX_DISBURSEMENT_AMOUNT | いいえ | 1 回の送金呼び出しに対する上限です。0 に設定するか省略すると、無効になります。 |
XENDIT_MAX_DAILY_AMOUNT | いいえ | 送金呼び出し全体に対する、直近 24 時間の上限です。0 に設定するか省略すると、無効になります。 |
XENDIT_ALLOWED_ACCOUNTS | いいえ | CHANNEL_CODE:ACCOUNT_NUMBER 形式のカンマ区切りの許可リストです。例:ID_BCA:1234567890。 |
XENDIT_PREPARE_TTL_SECONDS | いいえ | 準備済み送金トークンの有効期間です。デフォルトは 300、最大値は 86400 です。 |
XENDIT_APPROVAL_CODE | いいえ | XENDIT_ENABLE_DISBURSEMENTS=true の場合に必須です。confirm_disbursement と従来の一回限りの送金に必要な、人による承認コードです。信頼できないプロンプトのコンテキストに含めないでください。 |
XENDIT_ENABLE_LEGACY_ONE_SHOT_DISBURSEMENT | いいえ | 以前の一回限りの create_disbursement ツールを意図的に使う場合にのみ、true に設定します。デフォルトでは無効です。 |
ガイド付きセットアップ
環境変数を手動で編集したくない場合は、次を実行してください。
npx xendit-mcp setup
使用しているクライアントと希望するモードを尋ねた後、シークレットのプレースホルダーを含む、すぐに貼り付けられる Claude 設定スニペットを出力します。
Claude で MCP がすでに接続されている場合は、Claude に次の使用を依頼することもできます。
get_workspace_modeguided_setup
guided_setup は、利用可能な場合、Claude Code で MCP のエリシテーションを使用するため、ユーザーには生の設定詳細ではなくフォームが表示されます。
Claude Desktop
claude_desktop_config.json を編集します。
{
"mcpServers": {
"xendit": {
"command": "npx",
"args": ["-y", "xendit-mcp"],
"env": {
"XENDIT_API_KEY": "your-api-key"
}
}
}
}
Claude Code
claude mcp add xendit --env XENDIT_API_KEY=your-api-key -- npx -y xendit-mcp
Cursor
Claude Desktop と同じ形式で ~/.cursor/mcp.json に追加します。
ツール
| ツール | 説明 |
|---|---|
get_workspace_mode | 有効な Xendit モード、有効になっている機能、さらに機能を有効にするための最も安全な次の手順を説明します。 |
guided_setup | read-only、invoices、または guarded-payouts 用の Claude Code または Claude Desktop の設定スニペットを生成します。 |
get_balance | 種類(CASH、HOLDING、TAX)別のアカウント残高を取得します。 |
list_invoices | ステータス、日付範囲、または通貨で絞り込んだ請求書を一覧表示します。 |
get_invoice | 単一の請求書を取得します。 |
create_invoice | 支払い用の請求書を作成し、支払いリンクを返します。XENDIT_ENABLE_INVOICE_MUTATIONS=true が設定されていない場合は無効です。 |
expire_invoice | 有効な請求書を失効させます。XENDIT_ENABLE_INVOICE_MUTATIONS=true が設定されていない場合は無効です。 |
list_transactions | 支払い、支払い実行、返金、送金、残高調整を一覧表示します。 |
prepare_disbursement | 出金呼び出しを準備し、有効期間の短い確認トークンを返します。XENDIT_ENABLE_DISBURSEMENTS=true が設定されていない場合は無効です。 |
confirm_disbursement | 事前に準備された出金トークンを実行します。approvalCode が必要です。XENDIT_ENABLE_DISBURSEMENTS=true が設定されていない場合は無効です。 |
cancel_disbursement | 準備済みの出金トークンをキャンセルします。XENDIT_ENABLE_DISBURSEMENTS=true が設定されていない場合は無効です。 |
create_disbursement | 従来の一括支払い実行/出金です。approvalCode と、明示的な従来方式のオプトインが必要です。XENDIT_ENABLE_DISBURSEMENTS=true と XENDIT_ENABLE_LEGACY_ONE_SHOT_DISBURSEMENT=true の両方が設定されていない場合は無効です。 |
get_disbursement | 支払い実行/出金のステータスを確認します。XENDIT_ENABLE_DISBURSEMENTS=true が設定されていない場合は無効です。 |
list_disbursement_banks | ID_BCA や PH_BPI などの支払いチャネルを一覧表示します。XENDIT_ENABLE_DISBURSEMENTS=true が設定されていない場合は無効です。 |
プロンプト
| プロンプト | 説明 |
|---|---|
check_balance | アカウント残高を報告します。 |
recent_payments | 過去 N 日間に受け取った支払いを表示します。 |
create_payment_link | 顧客向けの支払いリンクを生成します。XENDIT_ENABLE_INVOICE_MUTATIONS=true が設定されていない場合は無効です。 |
unpaid_invoices | 未払いの請求書を一覧表示します。 |
daily_summary | 今日の支払い状況を表示します。 |
リソース
| リソース | URI | 説明 |
|---|---|---|
| 対応銀行 | xendit://banks | インドネシアとフィリピンで一般的な支払いチャネルの別名です。 |
| セットアップガイド | xendit://setup | 現在のモード、セットアップコマンド、各モードの平易な説明です。 |
| API 情報 | xendit://info | Xendit API の概要とドキュメントへのリンクです。 |
クエリの例
What's my current Xendit balance?
Saldo Xendit saya berapa?
With `XENDIT_ENABLE_INVOICE_MUTATIONS=true`:
Create an invoice for Rp 500,000 for "Website design deposit".
Buatkan invoice Rp 500.000 untuk "Deposit desain website".
Show me all unpaid invoices.
Tampilkan semua invoice yang belum dibayar.
XENDIT_ENABLE_DISBURSEMENTS=true の場合:
Prepare a Rp 1,000,000 payout to Ahmad at BCA, then wait for my confirmation.
Siapkan payout Rp 1.000.000 ke Ahmad di BCA, lalu tunggu konfirmasi saya.
List available payout channels in the Philippines.
環境
Xendit はテスト用と本番用の API キーを別々に発行します。テストキーは Xendit のサンドボックスに対して動作するため、実際の資金は移動しません。本番キー(xnd_production_...、iluma_production_...、sk_live_...)は本番環境に対して動作します。
安全性
このサーバーは、Xendit API を通じて実際のお金を移動できます。主な安全対策は次のとおりです。
- デフォルトでは読み取り専用です。
XENDIT_ENABLE_INVOICE_MUTATIONS=trueを設定しない限り、請求書の書き込みツールは無効です。送金ツールはXENDIT_ENABLE_DISBURSEMENTS=trueを設定しない限り無効です。 - デフォルトでは本番キーを拒否します。
xnd_production_、iluma_production_、sk_live_のプレフィックスが付いたキーは、XENDIT_ALLOW_LIVE=trueを設定しない限り、起動時に拒否されます。必ず最初に開発用キー(xnd_development_...)でテストしてください。 - 送金はフェイルクローズです。 送金を有効にした場合、
XENDIT_MAX_DISBURSEMENT_AMOUNT、XENDIT_MAX_DAILY_AMOUNT、XENDIT_ALLOWED_ACCOUNTS、XENDIT_APPROVAL_CODEが設定されていないと、サーバーは起動を拒否します。 - 人間が介在するフローです。
confirm_disbursementでは、ステージング済みトークンと別途指定するapprovalCodeの両方が必要です。 - 従来のワンショット送金はデフォルトで無効です。
XENDIT_ENABLE_LEGACY_ONE_SHOT_DISBURSEMENT=trueを設定しない限り、create_disbursementは登録されません。 - ハード上限と許可リストがあります。
XENDIT_MAX_DISBURSEMENT_AMOUNT、XENDIT_MAX_DAILY_AMOUNT、XENDIT_ALLOWED_ACCOUNTSを設定すると、送金が実行される前にフェイルクローズできます。 - 冪等性があります。 送金呼び出しでは、
externalIdがIdempotency-Keyとして使用されるため、安全に再試行しても重複送金は発生しません。 - セットアップ用ヘルパーは常に利用できます。
get_workspace_modeとguided_setupは読み取り専用モードでも公開されるため、ユーザーは何がブロックされているか、次のモードを安全に有効にする方法を確認できます。 - 重要な制限事項です。 信頼できないモデルコンテキストに機密性の高い読み取りツールや書き込みツールを公開した場合、どの MCP サーバーもプロンプトインジェクションを完全に防ぐことはできません。これらのデフォルト設定でリスクは軽減されますが、このサーバーは信頼できるエージェントのワークフローにのみ接続してください。
こうした制限を有効にしていても、送金リクエストはツール呼び出しを承認する前に確認してください。モデルの出力に由来するツール入力は、信頼できないものとして扱ってください。
送金のライフサイクル
承認された送金が、必ずしもすぐに成功または失敗するとは限りません。Xendit は次のいずれかのステータスを返しますが、終端状態になるまで数秒から数分かかる場合があります。
ACCEPTED— Xendit に受け付けられ、チャネルで処理中ですREQUESTED— 送金先チャネルに送信され、チャネルからの応答を待っていますSUCCEEDED— 資金が届けられましたFAILED— 最終的な失敗です(例:INVALID_DESTINATION、REJECTED_BY_CHANNEL、INSUFFICIENT_BALANCE)
一部の送金先では(PHP サンドボックスでのテスト時に確認)、REQUESTED の状態がしばらく続いてから FAILED に移行します。最終状態を判断する前に、必ず get_disbursement で再取得してください。confirm_disbursement の初回応答を、資金が届けられた証拠として扱わないでください。
サンドボックスでの検証範囲
0.2.0 は、Xendit サンドボックスで IDR と PHP の開発用キーを使って検証済みです(2026 年 5 月 25 日)。検証済みのフローは次のとおりです。
- 請求書の作成/取得/一覧表示/期限切れ(IDR + PHP)
- 送金チャネルの検出(PHP)
- 保護された送金の
prepare → confirm → get(IDR + PHP) - 送金の失敗理由
INVALID_DESTINATIONとREJECTED_BY_CHANNEL(PHP のみ — IDR のサンドボックスキーはbalance: 0だったため、IDR の失敗ケースでは送金先固有の失敗ではなくINSUFFICIENT_BALANCEが発生しました)
タイ、ベトナム、マレーシアでの動作は、実際のサンドボックスキーを使った検証がまだ完了していません。動作は同様と考えられますが、テスト済みとは言えません。
Claude Code の任意の強化策
Claude Code は PreToolUse フックをサポートしており、confirm_disbursement などの機密性の高いツールに対して、追加の承認ダイアログを強制できます。これにより、モデルコンテキスト外に第 2 の制御手段を設けられます。
.claude/settings.json の設定例:
{
"hooks": {
"PreToolUse": [
{
"matcher": "mcp__xendit__confirm_disbursement",
"hooks": [
{
"type": "command",
"command": "printf '%s' '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"ask\",\"permissionDecisionReason\":\"Human review required before confirm_disbursement.\"}}'"
}
]
}
]
}
}
免責事項
これは非公式のコミュニティ製 MCP サーバーです。Xendit との提携、承認、後援関係はありません。Xendit はそれぞれの所有者の商標です。ご自身の責任でご使用ください。作者は、誤用、プロンプトインジェクション、バグによる資金の損失について、一切の責任を負いません。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。