mcpField
P
presign-guard wallet

presign-guard wallet

リモート
wallet.fizzl.eu金融データ01 日前に更新
リポジトリ公式サイト

presign-guard wallet について

presign-guard wallet は、設定した予算内で x402/MPP API の支払いやトークン送金を行う AI エージェント向け MCP ウォレットです。署名前の検査、上限超過時の承認、支払い後の API 応答検査を備えています。

主な機能

  1. 01取引ごと・日ごとの支出上限
  2. 02x402/MPP API の支払い
  3. 03USDC、ETH、POL、BNB の送金
  4. 04署名前の取引・アドレス検査
  5. 05Telegram またはダッシュボードでの超過承認
  6. 06有料 API 応答のインジェクション検査

活用シーン

  1. 01予算内でエージェントから有料 API を利用
  2. 02上限超過の支払いをスマートフォンで承認
  3. 03外部テキストのプロンプトインジェクション確認

MCP 対応

MCP サーバーとして、ウォレット状態、サービス検索、支払い、送金、テキスト検査、支出停止のツールをクライアントに提供します。ローカル実行のウォレットとリモート接続の両方に対応します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://wallet.fizzl.eu/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npmpresign-guard-wallet-mcp0.29.0

ツール

詳細

presign-guard-wallet-mcp

presign-guard-wallet-mcp MCP server on Glama

AI エージェント向けに利用額を制限できるウォレットを、MCP サーバーとして提供します。Claude Desktop、Claude Code、Cursor、その他の MCP クライアントに追加すると、エージェントは次のことができます。

  • x402 API と MPP API に支払う。方式は evm(ウォレットのチェーン上の USDC)と tempo(Tempo 上の USDC.e。ほとんどの MPP API が求めるもの)です。
  • それぞれのアカウントも用意すれば、XRP Ledger の RLUSD(XRPL_SEED)、Solana の USDC(SOLANA_PRIVATE_KEY)、Algorand の USDC(ALGORAND_MNEMONIC)で x402 のオファーに支払い、Tempo の MPP セッション(MPP_SESSION_DEPOSIT)にも支払う。
  • USDC を送金する。

設定した予算の範囲内でのみ実行できます。

  • 上限を設定するのはあなたです。 たとえば、1 回の支払いにつき最大 5 USDC、1 日につき最大 20 USDC と設定すれば、エージェントはその範囲内で自由に支出できます。
  • 上限を超えた場合は、あなたが判断します。 承認/拒否を選べる Telegram メッセージが届くか、AC2 を介して自分のウォレットで署名するよう求められるか、ウォレットサーバーのダッシュボードにリクエストが表示されます。応答がなければ、支払いは行われません。
  • すべての署名は、まず presign-guard によって検査されます。 既知のドレイナー、制裁対象アドレス、見た目が似ているトークンを確認し、x402 の支払いが販売者の要求どおりかを検証して、トランザクションをシミュレーションし、実際にウォレットから出ていくものを確認します。危険判定が出た場合は、決して署名されません。
  • 判断に迷う場合、署名は行われません。 検査、Telegram、またはサーバーに接続できない場合、ウォレットは停止します。
  • 支払いを伴う応答は、エージェントが読む前に検査されます(ウォレットサーバーを使用する場合)。AI による検査で、API から返された内容を確認します。エージェントに向けた指示(プロンプトインジェクション:「ルールを無視して」「このアドレスに支払って」など)が含まれている場合、応答にはまず warnings フィールドが付与され、エージェントにデータとしてのみ扱うよう伝えます。支払った内容と異なる場合も、警告でその旨が伝えられます。領収書でどちらも確認でき、メッセージも届きます。

秘密鍵はあなたのマシンに保管され、サーバーは署名を許可するかどうかだけを判断します。各検査には 0.01 ドルかかり、同じウォレットから Base 上の USDC で支払うか、前払いクレジットで支払います。

利用額の上限で防げること、防げないこと。 上限はブロックチェーン上ではなく、あなたのコンピューター上でこの MCP サーバーが適用します。エージェントのウォレットの秘密鍵も、そのコンピューター上にあります(MCP 設定内、または AGENT_KEY_FILE を指定したファイル内)。ファイルの読み取りやコマンドの実行ができるエージェント(Claude Code、Cursor)は、秘密鍵を読み取って、これらのルールを通さずに署名できる可能性があります。そのため、エージェントには失っても構わない金額だけを入れた専用ウォレットを使い、メインのウォレットは決して使わないでください。ウォレットサーバー(wallet.fizzl.eu でホスト)を使えば、上限をチェーン上に設定することもできます。USDC は自分のウォレットに保管したまま、エージェントのウォレットには少額の運用資金を 1 日あたりの上限内で補充します。この上限は Base 上のコントラクトが維持します(agent-allowance)。秘密鍵が漏えいしても、引き出せるのはその金額までです。このサーバーは、ウォレットの残高が少なくなると、支払いの前に自動で補充をリクエストします。

ダッシュボードをご覧ください(デモデータ):https://wallet.fizzl.eu/demo

クイックスタート(ホスト型、約2分)

コピーするキーはありません。ウォレットがコンピューター上で独自のキーを作成し、コードを使ってアカウントにリンクします。wallet.fizzl.eu のホスト型ウォレットが利用制限、承認、領収書を管理します。無料で始められます。

  1. キーを使わずに、アプリにインストールします。
    • Claude Desktop:fizzl-wallet.mcpb をダウンロードして開きます。Claude Desktop がインストールします(Node.js が同梱されています)。
    • Claude Code:claude mcp add wallet -- npx -y [email protected]
    • Cursor およびその他の MCP クライアント:{ "mcpServers": { "wallet": { "command": "npx", "args": ["-y", "[email protected]"] } } }
  2. エージェントに尋ねます: 「ウォレットの状態は?」 エージェントが独自のウォレットを作成し(キーは ~/.fizzl/agent-key に保存されます。読み取れるのはあなただけで、どこにも送信されません)、リンクと10分間有効なコードを回答します。
  3. **リンクを開き、wallet.fizzl.eu にサインインして、**メールアドレス、パスキー、Xaman、またはウォレットを使い、コードを入力します。 エージェントに名前を付けます。ウォレットはウォレットサーバー用のキーを自動的に取得するため、再起動は不要です。
  4. エージェントのウォレットに数ドル分の USDC を入れます(ダッシュボードに入金用のボタンがあります)。ほとんどの呼び出しは1セント以下です。次に、*「天気 API を探して、アムステルダムの天気予報を取得して」*のように尋ねます。有料 API を見つけ、利用制限内で支払いを行い、領収書を表示します。

その後、ダッシュボードで Telegram を接続すると、利用制限を超える操作をスマートフォンから承認できます。また、Test my setup を押すと、まだ不足しているものを確認できます。

キーを自分で貼り付けますか? ダッシュボードの「Agents」→「Add agent」に、キーが入力済みのアプリ用セットアップが表示されます。すべてを自分で運用したい場合は、以下のセットアップをご覧ください。

ChatGPT、ウェブ版またはスマートフォン版の Claude、あるいは Grok で使う

これらのアプリはローカルの MCP サーバーを実行できないため、代わりにリモートコネクターを使います。URL https://wallet.fizzl.eu/mcp を指定してカスタムコネクターを追加し、Fizzl ウォレットにサインインしてください。これにより、アプリは有料 API を検索して支払いを要求できますが、自動で支払うことはありません。支払いには毎回、あなた自身のウォレット(Base または Solana 上の USDC、または Xaman の RLUSD)での署名が必要です。アプリごとの手順:https://wallet.fizzl.eu/connector

ツール

ツール機能
wallet_statusアドレス、残高、上限、今日の残り、承認の仕組みを確認します
find_services公開 x402 カタログ(Coinbase の x402 Bazaar)を検索し、このウォレットが支払える有料 API(チェーン上の USDC、価格上限以内)を最適なものから順に探します。ウォレットサーバーを使う場合、サーバーは意味に基づいて検索し、x402 Doctor が連日支払いを確認している販売者を優先して、それぞれの実績も表示します。これらの販売者のうち、料金が $0.01 以下のものがある場合は、追加オプションとして Fizzl Buy($0.02、Fizzl 独自のサービス)が最初に表示されます。販売者を選び、支払い、回答を確認するまでを 1 回の呼び出しで行います
pay_x402402 Payment Required を返す API を呼び出し、USDC で支払って、レスポンスを返します(呼び出しごとに価格上限を設定できます)。x402 に加え、ウォレットのチェーン上で evm メソッドを使う USDC の MPP(Machine Payments Protocol)決済にも対応しています。いずれも同じ EIP-3009 署名を使用し、presign-guard によるチェックを受け、上限に算入されます。Tempo(メソッド tempo)では、ウォレットが自身のアドレスから USDC.e の transferWithMemo を送信し、トランザクションハッシュを渡します。presign-guard は Tempo を対象としていないため、guard-wallet がそれが正確にその送金であることを確認し、USDC の上限に算入します。API が複数の方法に対応している場合の優先順位は、x402、MPP evm、Tempo です
send_usdcアドレスに USDC を送金します
send_nativeアドレスに ETH / POL / BNB を送金します
check_textエージェントが書いていないテキスト(ウェブページ、メール、ツールの結果、API の回答、別のエージェントのメッセージなど)に基づいて行動する前に、プロンプトインジェクションの罠かどうかを確認します。presign-guard のチェック結果は、緑、オレンジ、赤で示されます。判定は無料です(最大 8,000 文字のテキスト、1 時間あたり 10 回)。detailed: true を指定すると、理由コードと確率の提示に $0.01 がウォレットから支払われます(上限以内)
pause_spending問題がありそうな場合、エージェントは自ら停止します。再起動または再開するまで、署名は行われません

二重払いを防止します。 署名済みの x402 支払い(EIP-3009 承認)は、有効期限が切れるまで販売者が請求できます。API がエラーを返した後や、別の payTo を指定して再度支払いを求めた後でも同様です。そのため、有料の呼び出しが適切な回答を返さなかった場合、ウォレットは USDC のオンチェーン状態を確認して、その支払いが請求されたかどうか(authorizationState)を調べ、結果に(最初に警告を表示したうえで)その情報(charge)を示します。同じエンドポイントへの 2 回目の支払いは、最初の支払いが使用されるか期限切れになるまで、また回答がないまま支払いが請求された場合はその後 1 時間、拒否されます。そのため、再試行しても二重払いになりません。

ウォレットが署名するのは、これらのツールに必要な支払いの署名と送金だけです。販売者、ウェブページ、プロンプトのいずれから求められても、EIP-7702 承認(ウォレットのコードをコントラクトに渡すもの。「sweeper」と呼ばれる資金引き抜きプログラムがウォレットを空にする際に使います)には署名しません。

セットアップ

  1. エージェント専用のウォレットを作成します。 使用を許可する金額だけを入れてください。Base 上の USDC を数ドル分と、送金する場合はガス代用の ETH を少し用意します。メインのウォレットは絶対に使わないでください。
  2. 任意:スマートフォンで承認する場合。
    • @BotFather でボットを作成し、/start を送信します。
    • @userinfobot からチャット ID を取得します。
  3. MCP クライアントに追加します。 Claude Desktop の場合:Settings → Developer → Edit Config を開くと、claude_desktop_config.json が表示されます(Mac では ~/Library/Application Support/Claude/、Windows では %APPDATA%\Claude\)。次の内容を追加します。
{
  "mcpServers": {
    "wallet": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": {
        "AGENT_KEY": "0x…the agent wallet's private key…",
        "LIMIT_USDC_PER_TX": "5",
        "LIMIT_USDC_PER_DAY": "20",
        "TELEGRAM_BOT_TOKEN": "123456:ABC…",
        "TELEGRAM_CHAT_ID": "123456789"
      }
    }
  }
}

キーをこのファイルに置きたくない場合は、あなただけが読み取れるファイルに保存し、AGENT_KEY の代わりに "AGENT_KEY_FILE": "/full/path/to/that/file" を設定します。

Claude Code の場合、キーはプロンプトに従ってファイルに保存します(画面には表示されず、シェルの履歴や Claude の設定にも残りません)。

mkdir -p ~/.fizzl && (umask 077; printf 'Agent wallet key: '; stty -echo; read -r k; stty echo; echo; printf '%s\n' "$k" > ~/.fizzl/agent-key)
claude mcp add wallet -e AGENT_KEY_FILE=$HOME/.fizzl/agent-key -e LIMIT_USDC_PER_TX=5 -e LIMIT_USDC_PER_DAY=20 -- npx -y [email protected]

上記のように、バージョン(@0.29.0)を固定してください。バージョンを指定せずに npx -y を使うと、起動のたびに最新リリースを取得し、そのコードがキーにアクセスします。リリースは npm provenance を使用して GitHub Actions から公開されます。npm audit signatures で検証できます。

たとえば、エージェントに次のように依頼します:「ウォレットを確認してから、https://ichimoku-signal.fizzl.eu/signal/BTC-USDT から BTC シグナルを取得して」。

または、エージェント自身にサービスを探させます:「0.10 ドル未満でビットコインのトレンドシグナルを取得できる有料 API を探して、1 回分を購入して」。エージェントは find_services で x402 カタログを検索し、サービスを選んで、設定した上限の範囲内で pay_x402 を使って支払います。

すべてのエージェントで共通の予算を設定する

ウォレットサーバーを実行し、ダッシュボードでエージェントキーを作成します。次の機能を利用できます。

  • すべてのエージェントで共通の料金ルールと 1 日の予算
  • ダッシュボードと Telegram での承認
  • アクティビティログ

その後、LIMIT_* と TELEGRAM_* の代わりに次の変数を使用します。

"env": {
  "AGENT_KEY": "0x…",
  "WALLET_SERVER_URL": "https://your-wallet-server.example",
  "WALLET_SERVER_KEY": "awk_…"
}

設定

変数
AGENT_KEYエージェント自身のウォレットの秘密鍵(16 進数 64 文字、0x の有無は問いません)。設定しない場合、ウォレットはコードで連携します。独自の鍵を生成し、各ツールがウォレットサーバーのダッシュボードで入力するコードを返します
AGENT_KEY_FILEAGENT_KEY の代わりに指定します。鍵を格納したファイルへのパス(~/ が使用できます)です。クライアントの設定やシェルの履歴に鍵が残りません。自分だけが読み取れるように設定してください(chmod 600)。そうでない場合、サーバーが警告します。XRPL_SEED_FILE、ALGORAND_MNEMONIC_FILE、SOLANA_PRIVATE_KEY_FILE も同様に使用できます
LIMIT_USDC_PER_TX、LIMIT_USDC_PER_DAYUSDC の上限(支払いと送金の合計)です。上限またはウォレットサーバーの設定が必要です
LIMIT_NATIVE_PER_TX、LIMIT_NATIVE_PER_DAYネイティブコインの上限です。設定しない場合、送金には承認が必要です
ALLOW_LIST任意:受取人、支出先、コントラクトをカンマ区切りで指定すると、それらだけに制限されます(0x、XRPL の r…、または Algorand のアドレス。各アドレスは検証されます)。それ以外への支払いや署名には、上限を超える金額の場合と同様に承認が必要です。ウォレットサーバーを使う場合は、そちらで許可リストを設定してください
TELEGRAM_BOT_TOKEN、TELEGRAM_CHAT_IDTelegram で承認します。これら(または AC2)がない場合、上限を超える操作は拒否されます
AC2_OWNERTelegram の代わりに、AC2(エージェントが所有者に承認を求めるための Algorand Foundation のプロトコル)を使って、自分のウォレットで署名して承認します。Algorand アドレスを指定します。このアドレスの署名だけが承認として有効で、署名済みの承認は支払いに紐づけて保存されます。同じマシンで AC2 サービス(ac2-cli)を実行し、ウォレットとペアリングする必要があります(ac2 pair)。サービスが実行されていない場合、上限を超える操作には署名されません。AC2_APPROVALS=on を指定すると、ペアリング済みウォレットのアドレスが使われます。サービスのソケットが ~/.ac2/ac2d.sock にない場合は、AC2_DAEMON_SOCKET を指定します
WALLET_SERVER_URL、WALLET_SERVER_KEY上記の代わりにウォレットサーバーを使用します
FIZZL_DIRAGENT_KEY を設定しない場合に、ウォレットが agent-key と、連携後に wallet-server.json を保存する場所です(デフォルトは ~/.fizzl)。1 台のコンピューターで複数のエージェントを実行する場合は、エージェントごとにディレクトリを分けてください
LINKINGoff:AGENT_KEY を設定しない場合に、コードで連携しません。サーバーはセットアップモードで起動します(ツールの一覧を表示し、それぞれのツールが鍵の追加方法を案内します)
CHAINbase(デフォルト)、ethereum、optimism、arbitrum、polygon、または bsc
MAX_PAYMENT_USD1 回の pay_x402 呼び出しで支払える上限額です(デフォルトは 1)。上限に加えて適用されます
X402_DISCOVERY_URLx402 カタログの find_services が検索する対象です(デフォルトは Coinbase の Bazaar 検索 API)
PRESIGN_CREDIT_KEY前払いクレジット(pgc_…)で $0.01 のチェック料金を支払います
MANDATE / MANDATE_FILE任意:所有者が署名した支出委任状(x402 authority ドラフト)を JSON { mandate, alg: "Ed25519", sig } で指定するか、そのファイルへのパスを指定します。以降、x402 の支払いはこの委任状に基づいて行われ(nonce にその紐付けが記録されます)、委任状の範囲外(perPayment または cap を超える支払い、別の受取人やトークン、期限切れ)の支払いは presign-guard に拒否されます。wallet_status で確認できます。ウォレットサーバーを使い、MANDATE を指定していない場合は、所有者がダッシュボードでこのエージェントに設定した委任状が使われます(サーバーから取得され、実行中の合計額もサーバーが保持します)
RPC_URLチェーン用の独自 RPC
TEMPOTempo での支払いを無効にするには off を指定します(デフォルトは有効です。MPP の tempo 料金は Tempo 上で同じアドレスから USDC.e で支払われます。Tempo に USDC.e を用意してください。約 $0.001 の手数料もそこから支払われます)
TEMPO_CHAIN4217(Tempo、デフォルト)または 42431(Moderato テストネット。pathUSD で支払います)
TEMPO_RPC_URL独自の Tempo RPC(デフォルトは https://rpc.tempo.xyz)
XRPL_SEED任意:エージェント自身の XRP Ledger アカウントのシード(s…。支出可能額だけを入れた別アカウント)。XRP Ledger 上で RLUSD を使った x402 オファーへの支払いが有効になります。t54 のファシリテーター(XRPL AI Hub)を利用する販売者も対象です。支払われるのは Ripple が発行した RLUSD のみで、XRP は支払われません。USDC の上限に算入され、すべての Payment は事前に presign-guard で確認されます。API が両方に対応している場合は、先にチェーン上の USDC が使われます。このアカウントには RLUSD のトラストライン、RLUSD、および手数料用の少量の XRP が必要です。委任状の適用中は使われません
SOLANA_PRIVATE_KEY任意:エージェント自身の Solana アカウント(ウォレットからエクスポートした Base58 形式の秘密鍵、または solana-keygen ファイルのバイト配列。支出可能額だけを入れた別アカウント)。Solana 上で USDC を使った x402 オファーへの支払いが有効になります。presign-guard がトランザクション(命令とシミュレーション)を確認した後、販売者へのエージェントの USDC 送金だけに署名されます。ネットワーク手数料は販売者のファシリテーターが支払うため、SOL は不要です。USDC の上限に算入されます。API が両方に対応している場合は、先にチェーン上の USDC が使われます。委任状の適用中は使われません。presign-guard-wallet 0.16 以降が必要です
SOLANA_NETWORKmainnet(デフォルト)または devnet
SOLANA_RPC_URL独自の Solana RPC(デフォルトは公開 mainnet または devnet の RPC)
ALGORAND_MNEMONIC任意:エージェント自身の Algorand アカウント(25 語のニーモニック。支出可能額だけを入れた別アカウント)。Algorand 上で USDC を使った x402 オファーへの支払いが有効になります。エージェントの販売者への USDC 送金だけに署名されます(ALGO の送金、クローズアウト、リキーは行いません)。ネットワーク手数料は販売者のファシリテーターが支払い、USDC の上限に算入されます。API が両方に対応している場合は、先にチェーン上の USDC が使われます。このアカウントは USDC(ASA 31566704)にオプトインしている必要があります。委任状の適用中は使われません。presign-guard-wallet 0.12 以降が必要です
ALGORAND_NETWORKmainnet(デフォルト)または testnet
ALGORAND_ALGOD_URL独自の algod ノード(デフォルトは AlgoNode の無料ノード)
MPP_SESSION_DEPOSIT任意:Tempo 上での MPP セッション支払いを有効にします(例:presign-guard)。サービスへの最初の呼び出し時に、この額の USDC.e をデポジットとして支払いチャネルを開き、以降の呼び出しでは署名済みバウチャーを使うため、呼び出しごとのトランザクションは発生しません。デポジットを使い切ると、同じ額が追加されます。すべてのデポジットは署名時に USDC の上限に算入されます。バウチャーで支出できるのはデポジット額までです。API がセッションを提供している場合に使用されます。close_sessions を実行するとチャネルが閉じられ、未使用のデポジットが返金されます。presign-guard-wallet 0.11 以降が必要です
MPP_SESSION_FILE開いているチャネルを再起動後も保持するファイルの場所(デフォルトは ~/.presign-guard-wallet/mpp-sessions.json)
XRPL_NETWORKmainnet(デフォルト)または testnet
XRPL_WS_URL独自の XRPL ノード(デフォルトは wss://xrplcluster.com)
AGENT_LABELTelegram と AC2 の承認リクエストに表示される名前(デフォルトは mcp-agent)
1 つの Telegram bot が同時に実行できるサーバーは 1 つだけで、bot に webhook を設定してはいけません。1 つの bot で複数のエージェントを実行するには、wallet server を使用してください。
コードでリンクする

AGENT_KEY(または AGENT_KEY_FILE)を指定しない場合、wallet が自動でセットアップします。

  1. 最初のツール呼び出し時に、エージェントの wallet のキーを ~/.fizzl/agent-key(または FIZZL_DIR)に作成します。このキーはあなただけが読み取れます。すでにキーがある場合は、それを使用します。
  2. wallet server(WALLET_SERVER_URL、デフォルトは https://wallet.fizzl.eu)に、その wallet のアドレスだけを使ってコードを要求します。コードを入力するまで、すべてのツールがリンクとコードを返します。
  3. ダッシュボードにサインインし、コードを入力してエージェントに名前を付けます。エージェントのアドレスは自動的に入力されます。
  4. wallet は、自身だけが保持する秘密トークンを使ってポーリングし、wallet server 用のキーを一度だけ取得して、キーと同じ場所にある wallet-server.json に保存します。その後は再起動せずに動作します。次回の起動時には両方のファイルを読み込みます。

コードだけではトークンがなければ役に立たず、どちらも有効期限は 10 分です。ダッシュボードでエージェントを削除した場合、または別のアカウントにリンクしたい場合は、wallet-server.json を削除して、wallet のステータスを再度確認してください。

領収書

すべての支払いには、支払いの目的が記録されます。pay_x402 の URL と、エージェントが指定した場合はその reason です。wallet server を使うと、各支払いの領収書に次の情報も表示されます。

  • 金額と受取人。
  • presign-guard による署名済みの判定。
  • 承認。
  • x402 の決済。
  • エージェントが受け取った内容:API の応答(最大 16,000 文字)。領収書にはプレーンテキストで表示されます。

Telegram の承認リクエストにも、支払いの目的が記載されます。デモで領収書を確認するには、「Purchases」の下にある購入をクリックしてください。

拒否された場合

ツールはエージェントが読み取ってあなたに伝えられるエラーを返します。例:

  • Not done (over_limit): 8 USDC is over the limit of 5 per transaction (denied by the owner)。
  • Not done (red): not signed: red (known_drainer)。
  • Not done (orange): not signed: orange (SIMULATION_FAILS):シミュレーションでトランザクションが失敗すると判定されたため、送信されません。

こちらも利用できます

ライセンス

MIT

コメント

MCP は初めてですか?

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

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