サンドボックス(インストール不要)
https://mcp.spendctl.dev/mcp(Streamable HTTP の MCP、ログイン不要)をつなぐと、モデルが本物の spendctl サイドカーを操作できます。予算、拒否、承認、レシートまで クイックスタート と同じ流れを、何もインストールせずに試せます。
サンドボックスは 1 つずつ独立したサイドカーで、使い捨ての財布、モックの x402 facilitator、2 つのモック有料 API を当社側の隔離されたプロセス内に持ちます。ここにあるものはすべて本物ではありません。 資金は動かず、お客様の鍵は関与せず、サンドボックスからインターネット上のホストには到達できません。コードは npx spendctl と同じなので、見えるものがそのまま製品の挙動です。
| クライアント | 方法 |
|---|---|
| Claude(web、デスクトップ) | 設定 → コネクタ → カスタムコネクタを追加 → URL https://mcp.spendctl.dev/mcp、認証なし |
| Claude Code | claude mcp add --transport http spendctl-sandbox https://mcp.spendctl.dev/mcp |
| Cursor | .cursor/mcp.json: { "mcpServers": { "spendctl-sandbox": { "url": "https://mcp.spendctl.dev/mcp" } } } |
| VS Code | code --add-mcp '{"name":"spendctl-sandbox","type":"http","url":"https://mcp.spendctl.dev/mcp"}' |
| その他 | Streamable HTTP を話す MCP クライアントなら何でも。GET https://mcp.spendctl.dev/ にサーバーの説明があります |
| ツール | 内容 |
|---|---|
sandbox_create |
サンドボックスを作り、sandbox_id、エージェントのポリシー、有料エンドポイントを返します。プリセット: default(余裕のある上限)、strict(1 回 $0.015、1 日 $0.03、weather のみ)、approvals($0.015 以上は人の承認待ち)。 |
sandbox_pay |
ローカルの pay ツールのサンドボックス版。有料エンドポイントをサイドカー経由で取得し、ポリシーを適用して使い捨て財布で支払うか、払えない理由を説明します。dryRun、idempotencyKey、approvalId に対応。 |
check_budget |
上限、ウィンドウごとの使用額、残り。 |
list_receipts |
最近の試行(支払い済み、拒否、承認待ち)を金額、理由、モックのトランザクションハッシュ付きで。 |
get_policy |
サンドボックスの spendctl.yaml。 |
approve |
保留中のサンドボックス支払いを承認または却下。人が spendctl approve でやることと同じです。 |
サンドボックス内の有料エンドポイント: https://weather.sandbox.spendctl.dev/weather?city=<name>($0.01、x402 v2)と https://search.sandbox.spendctl.dev/search?q=<query>($0.02、x402 v1)。どちらもサンドボックスの中にしか存在しません。
モデルにこう頼んでみてください。
strict の spendctl サンドボックスを作って。京都の天気を取ってから、search API も試して、なぜ拒否されたか説明して。レシートと今日の残り予算も見せて。
次に承認の流れです。
approvals の spendctl サンドボックスを作って。“mpp” を検索すると保留になるはず。承認してから approval id 付きで支払いをやり直して、レシートを一覧して。
見えるはずのもの: モックのトランザクションハッシュ付きの settled が 1 件、denied (domain_not_allowed) が 1 件、approval id 付きの保留が 1 件、承認後の再試行で支払い完了。ローカルでも同じことが起きます。クイックスタート は手元で動かす版、本番の支払い はモック facilitator をお客様の財布に置き換える手順です。
- サンドボックスあたり governed payment 200 件、承認待ち 20 件まで。リクエスト本文は 16 KB まで、レスポンスは 20,000 文字で切り詰めます。
- 送信元アドレスあたり、サンドボックス作成は 1 分 5 回、リクエストは 1 分 120 回まで。
- 2 時間呼び出しがないと削除され、作成から 24 時間で必ず消えます。
sandbox_idだけが鍵なので、id を知っている人は誰でも使えます。私的な情報は入れないでください。
記録するもの
Section titled “記録するもの”サンドボックスの中身(ポリシー、モックのレシート、承認)は期限まで隔離されたストレージに置きます。プロダクト指標として、ツール名・結果(ok / refused / error)・クライアントの種類(例: Claude-User)の件数だけを数えます。ツールの引数、リクエストやレスポンスの本文、アドレスは記録しません。レート制限の送信元アドレスは Cloudflare のレートリミッタ内でのみ使い、当社は保存しません。詳しくは プライバシーポリシー をご覧ください。