目次
なぜStripe MCPが2026年の決済エージェント標準になりつつあるのか
Stripeはグローバルなdeveloper-first決済プラットフォームで、Payments・Subscriptions・Invoicing・Connect・Issuingなど決済ライフサイクル全域を網羅している。2024年末に Stripe Agent Toolkit を公開、2025年から2026年にかけて公式MCPサーバーとして拡張し、2026年4月のStripe Sessionsで v0.3.3 として OAuth+DCR対応・Restricted API Keyの統合などを発表した。
KanseiLinkのデータでは、Stripe(stripe-global)は信頼スコア0.7・AEOグレードA・公式MCPステータス。Agent Toolkitは Python と TypeScript の両方で提供され、OpenAI Agents SDK・LangChain・CrewAI・Vercel AI SDK の主要エージェントフレームワークから直接呼べる。決済はインフラ性が高くロックインも強い領域だが、Stripeはここで『AIエージェント時代の標準』のポジションを早期に取りに来ている。
Stripeは『公式リモート(mcp.stripe.com) + ローカル(npx -y @stripe/mcp) + Agent Toolkit(SDK統合)』の3層構成を取り、エージェントフレームワークがどれを使っていてもStripeを叩ける形を提供している。Anthropic主導のMCP標準が広がる中で、SaaS側がリモートホスト+OAuth DCRに収束する流れの代表例であり、これはLinear・Notion・Slack・GitHubと同じ方向だ。
アーキテクチャ — リモート(mcp.stripe.com)とローカル(@stripe/mcp)
Stripeは公式に2系統のMCPを用意している。
1. リモートホスト型: mcp.stripe.com
Stripe社が運用するリモートMCPサーバー。MCPクライアント(Claude Desktop / Cursor / その他MCP対応エージェント)は OAuth + Dynamic Client Registration(DCR) で接続できる。アプリの事前登録は不要で、初回接続時にユーザーがブラウザでStripeにログインしスコープを承認するだけで利用開始できる。
// MCPクライアント設定の例 (リモート)
{
"mcpServers": {
"stripe": {
"url": "https://mcp.stripe.com",
"transport": "http"
}
}
}
2. ローカル(stdio)型: npx -y @stripe/mcp
自社ネットワーク内に閉じたい・CI環境で動かしたい・Restricted API Keyを環境変数で渡したい——というケース向けのstdio起動型パッケージ。Stripe API Keyを環境変数 STRIPE_SECRET_KEY 等で注入する。
// MCPクライアント設定の例 (ローカル)
{
"mcpServers": {
"stripe": {
"command": "npx",
"args": ["-y", "@stripe/mcp", "--tools=all"],
"env": {
"STRIPE_SECRET_KEY": "rk_test_xxxxx"
}
}
}
}
Stripe MCP 主要諸元 (KanseiLink + Stripe公式 2026-05時点)
(v0.3.3)
(live)
(live)
(stripe-global)
認証 — Restricted API Keyが本番の標準
Stripeの認証は『API Key as Bearer Token』方式で、Authorizationヘッダーに Bearer sk_xxx あるいは Bearer rk_xxx を載せる。キーには複数の種類があり、エージェント運用での選び方が安全性を大きく左右する。
| キーの種類 | プレフィックス | 権限スコープ | エージェント運用 |
|---|---|---|---|
| Secret Key | sk_test_ / sk_live_ |
全権限(顧客削除・全額返金まで全て可) | 非推奨 |
| Restricted API Key | rk_test_ / rk_live_ |
リソース単位のRead/Write/None | 推奨 |
| Publishable Key | pk_test_ / pk_live_ |
クライアントサイド(トークン化のみ) | フロント専用 |
Secret Key(sk_)は全権限を持つ。LLMがハルシネートしてcustomers.delete や refunds.create を実行すると本番顧客データや金銭損失を生む。エージェントごとに専用のRestricted API Key(rk_)を発行し、必要な操作だけを許可 する運用が標準。Stripe公式は『2026年5月以降にアカウントを作成した場合は最初からRAKを発行しているはずだが、それ以前のアカウントはRAKへ移行せよ』と明記している(docs.stripe.com)。
OAuth + Dynamic Client Registration の効果
リモートMCPサーバー(mcp.stripe.com)はMCP仕様の Dynamic Client Registration(DCR)に準拠している。従来は『OAuthアプリの個別登録 → Client ID/Secret 発行 → コールバックURL設定 → 環境変数注入』が必要だったが、DCRではMCPクライアントが初回接続時に自動的にOAuthクライアントを動的登録 する。ユーザーは『Stripeにログインしてスコープ承認するだけ』。これはLinear・Notion等と同じ最新パターンで、エージェント運用の摩擦を大幅に削っている。
Stripe APIの構造的な罠 — Form-encoded / 最小通貨単位 / Idempotency-Key
Stripe APIには『普通のJSON APIではない』構造的な特徴が3つあり、エージェント開発で必ずぶつかる。
罠1: リクエストはForm-encoded、レスポンスはJSON
Stripeのリクエストボディは application/x-www-form-urlencoded。Content-Type を application/json で送ると失敗する。エージェントフレームワークの多くはデフォルトでJSONを送るため、Stripeを直接叩くカスタムコードを書く場合は明示的にform-encodedに切り替える必要がある。公式MCPサーバー経由ならこの差分は内部で吸収される ため、可能なら公式MCPを優先する根拠の一つだ。
POST /v1/payment_intents HTTP/1.1
Host: api.stripe.com
Authorization: Bearer rk_test_xxxxx
Content-Type: application/x-www-form-urlencoded # ← JSONではない
amount=2000¤cy=jpy&payment_method_types[]=card&
description=Order%20%231234
罠2: 金額は『最小通貨単位の整数』
Stripeは全通貨で整数を扱う。USD・EURのような2桁小数の通貨は『100倍した値』、JPYのような小数を持たない通貨は『そのままの値』。エージェントがユーザーから『2,000円』『$20』のような自然言語を受け取った場合、通貨ごとに変換ロジックを分岐する必要がある。
amount=2000, currency=jpy→ ¥2,000amount=2000, currency=usd→ $20.00amount=2000, currency=eur→ €20.00
『1000円』をユーザーから受け取り、currencyのデフォルトをusd のままamount=1000 を渡すと、$10.00を課金してしまう(本来¥1,000のところを $10 ≒ ¥1,500)。エージェントは『通貨と金額を必ずセットで扱い、変換責任を明示する』 設計が必須。Stripeの公式テストカード(4242 4242 4242 4242)で正しい金額が落ちるかをCI段階で必ず検証する。
罠3: Idempotency-Keyで二重課金を構造的に防ぐ
決済は『二重実行が許されない』典型操作。StripeはこれをHTTPヘッダー Idempotency-Key で設計している。同じキーで再送されたリクエストは、Stripe側で『初回の結果』を返し、二重課金を起こさない。
POST /v1/payment_intents HTTP/1.1
Authorization: Bearer rk_live_xxxxx
Idempotency-Key: order_1234_attempt_1 # ← トランザクション単位で生成
Content-Type: application/x-www-form-urlencoded
amount=2000¤cy=jpy&payment_method=pm_xxxxx&confirm=true
エージェントが本番でリトライを組む際の最小ルールは: (1)決済操作には必ず冪等キーを付ける、(2)キーはトランザクション単位で生成しUUIDで管理、(3)リトライ時は同じキーを使う。これでネットワーク不安・タイムアウト由来の二重課金は構造的に防げる。
25ツール・主要オブジェクト — Payment Intents・Subscriptions・Invoices
Stripe公式MCP v0.3.3 は約25ツールを提供し、決済ライフサイクル全域をカバーする。主要なツール群は以下:
- Payment Intents: 支払い意図の作成・確認・キャンセル (Charges API は非推奨)
- Customers: 顧客の作成・更新・検索
- Products / Prices: 商品・価格の管理
- Invoices: 請求書の作成・取得・finalize / send
- Subscriptions: サブスクリプションの作成・更新・キャンセル
- Refunds: 返金処理(全額・部分)
- Payment Links: 共有可能な決済リンクの生成
- Documentation Search: Stripeドキュメントの知識ベース検索
レガシーの Charges API ではなく、必ず Payment Intents API を使う。3D Secure / SCA / 国内決済(PayPay等)の自動ルーティングは Payment Intents 経由でのみ動作する。新規エージェント実装は最初から POST /v1/payment_intents で組むこと。
決済エージェント開発で詰まる8つのポイント
❌ 1. Secret Keyをそのまま注入
RAKに移行し、エージェントが必要な操作だけ許可。Stripe ダッシュボード > Developers > API keys からリソース単位で権限を絞る。
❌ 2. JSON で送ってしまう
Content-Type は application/x-www-form-urlencoded。公式MCPサーバー経由なら自動で扱われるが、直接叩く場合は注意。
❌ 3. 金額の単位ミス(USD/JPYの混同)
USDは100倍、JPYはそのまま。通貨と金額をペアで扱う型を導入する。
❌ 4. Idempotency-Keyを使わない
リトライで二重課金を起こさないため、決済操作には必ず冪等キーを付ける。
❌ 5. Webhookシグネチャ未検証
Webhookエンドポイントは必ず Stripe-Signature ヘッダーをendpoint secretで検証する。検証なしのWebhookは偽造リクエストを受け入れてしまう。
❌ 6. テストモードと本番モードの取り違え
sk_test_ / rk_test_ はテストモード、sk_live_ / rk_live_ は本番モード。エージェント環境変数で明確に分離し、混在を防ぐ。
❌ 7. cursor-based pagination の誤実装
Stripeのページネーションは starting_after=<最後のオブジェクトID> 方式。デフォルト10件、最大100件。全件取得は明示的にループする必要がある。
❌ 8. エラーオブジェクトのパース忘れ
Stripeのエラーは {"error":{"type":"card_error","code":"card_declined","message":"..."}} 形式。HTTP 402(payment required)は『カード拒否』の合図。type / codeで分岐し、ユーザーに何を伝えるかを設計する。
PAY.JP・Square・LINE Payとの比較
| サービス | MCPステータス | 認証 | 主要ユースケース | 日本市場 |
|---|---|---|---|---|
| Stripe | 公式リモート + ローカル | API Key (RAK推奨) / OAuth DCR | グローバルEC・SaaS課金 | PayPay連携対応 |
| PAY.JP | API only | API Key | 国内ECの決済 | 国内特化 |
| Square | 3rdパーティMCP | OAuth 2.0 / Personal Access Token | 店舗POS + EC | 飲食・小売店舗 |
| LINE Pay | API only | API Key | QRコード決済・モバイル | 国内モバイル決済 |
『グローバルにスケールするSaaSやEC』ならStripeが第一選択、『日本国内ECで国内銀行口座への売上振込・電子帳簿対応』ならPAY.JP、『店舗POS + 短期売掛』ならSquare、『LINEユーザーへのQR決済』ならLINE Pay、という棲み分けが2026年の現実解。エージェント連携の成熟度はStripeが頭一つ抜けており、新規エージェント設計はStripeを軸に置き、国内特殊要件のあるユーザーセグメントだけ補完するパターンが多い。
本番投入前チェックリスト
- Secret Keyではなく
rk_live_Restricted API Keyを発行している - エージェントが必要なリソース(Payments・Customersなど)のみ書き込み権限を付与している
- Content-Type は form-encoded、レスポンスは JSON である前提で実装している
- 通貨と金額を必ずペアで扱う型・ヘルパー関数を導入している
- 決済操作には必ず
Idempotency-Keyヘッダーを付与し、UUIDで管理している - Webhookエンドポイントで
Stripe-Signatureをendpoint secretで検証している - テストモード(sk_test_/rk_test_)と本番モードを環境変数で明確に分離している
- Payment Intents APIを使い、レガシーの Charges API は使っていない
- エラーレスポンスの
type/codeを分岐ロジックに組み込んでいる - テストカード番号(4242 4242 4242 4242, 4000 0000 0000 0002)で正常/拒否ケースをCIに含めている
FAQ
Q1. Stripe公式MCPと3rdパーティMCPはどちらを選ぶべきですか?
原則は公式(mcp.stripe.com または @stripe/mcp)です。KanseiLinkデータでは公式の stripe-global は信頼スコア0.7・AEOグレードAで、3rdパーティの stripe-jp(同0.6・成功率73%・33件報告)を上回ります。3rdパーティを選ぶのは『公式が提供していないカスタムツール』が必要な特殊ケースに限定するのが妥当です。
Q2. Restricted API Keyのスコープ設計はどう始めるべきですか?
『最小権限の原則』で組みます。新規顧客の決済を扱うエージェントなら Customers: Write / Payment Intents: Write / Charges: Read 程度から始め、必要に応じて拡張。Refunds や Subscriptions を扱うのは別キーに分離するのが安全。Stripe ダッシュボードで複数のRAKを発行し、エージェント単位で割り当てます。
Q3. テスト環境でPayPay等の国内決済を試せますか?
テストモード(sk_test_)でPayPayを含む payment_method を選択するテストカード/フローが提供されています。本番環境で日本円・PayPayを使うには、Stripe Japanアカウントの本番有効化(法人情報・本人確認)が必要です。
Q4. Subscriptionsをエージェントで自動管理する際の注意点は?
(1)プラン変更時の按分(proration)を proration_behavior で明示する、(2)失敗時の dunning(再試行)ロジックはStripeのSmart Retriesに任せる、(3)解約はユーザー意図を必ず確認しエージェントの暴走による誤キャンセルを防ぐ。Stripe Billingの自動催促を活用し、エージェントは『判断と承認』を担う層に留めるのが現実的です。
Q5. KanseiLink上でStripe公式(stripe-global)はなぜ AAA ではなく A なのですか?
2026-05時点で stripe-global の usage_count が 0件で実エージェント挙動データが未蓄積のためです。技術仕様・MCPステータスは A グレード相当ですが、実エージェントが本番でどれくらい成功したか(サンプル数)が貯まると AAA に昇格する可能性は十分あります。エージェント開発者が report_outcome でデータを返してくれると業界全体の検証が早まります。
Q6. 公式MCPサーバーがアクセス制限される国・地域はありますか?
本記事公開時点で、Stripe MCPサーバー自体に地域制限は確認されていません。ただしStripeアカウント自体は対応国・通貨に制約があるため、エージェントが扱える決済範囲はアカウントの所在国・サポート通貨に依存します。グローバル展開を前提とするなら Stripe Connect のマルチアカウント戦略も検討してください。
本記事のStripe MCPに関する技術情報(エンドポイント・認証方式・レート制限・ツール数・キー種類)はKanseiLink MCP get_service_detail(stripe-global)、get_service_tips(stripe-global / stripe-jp)が2026-05-19時点で返したデータと、Stripe公式ドキュメント(docs.stripe.com、docs.stripe.com/mcp、docs.stripe.com/agents)に基づきます。「Restricted API Keyの推奨」「2026年5月以降アカウントは最初からRAK発行」はStripe公式ドキュメントが2026-05時点で明記している方針として確認しました。「25ツール」「v0.3.3 @ Stripe Sessions April 2026」は複数のサードパーティ解説記事(skywork.ai、chatforest.com)が一致する数値として記載していますが、Stripe公式のリリースノートで最新版を確認することを推奨します。KanseiLink stripe-globalデータは usage_count: 0 で実エージェント挙動データは未蓄積、stripe-jpデータは33件報告・成功率73%ですが single_source_bias 警告があり代表性に注意。価格・仕様・APIスキーマは予告なく変更される可能性があるため、本番運用時は公式ドキュメントの最新版をご確認ください。