A commerce-centric demo featuring Agent Development Kit with Paypal Agent Toolkit via MCPs について
Google ADKとPayPal Agent Toolkitを使うコマースデモです。会話形式の販売前対応、商品提案、PayPalサンドボックスでの注文や配送確認を組み合わせています。
主な機能
- 01会話形式の販売前対応
- 02画像からの商品検索
- 03PayPal注文の作成
- 04注文・配送情報の確認
- 05サブスクリプション操作
活用シーン
- 01画像に基づくフォーマル商品の提案
- 02配送状況と注文詳細の確認
- 03PayPalサンドボックスでの注文
- 04サブスクリプションの作成・管理
MCP 対応
MCPサーバーを介してGoogle ADKをPayPal Agent Toolkitに接続します。MCPツールはPayPalの注文、配送、サブスクリプション操作を扱います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP 経由で PayPal Agent Toolkit と Agent Development Kit を活用する、コマース中心のデモ
この4分間のデモでは、PayPal の Agent Toolkit を MCP 経由で使用し、Google の Agent Development Kit と組み合わせた、購入前の簡単な会話型エンゲージメントを紹介します。
Paypal サンドボックス
developer.paypal.com に登録すると、複数のアプリを設定できます。各アプリには次のものが用意されています。
- API を呼び出すアプリケーション用のクライアント ID とシークレットキー。
- メールアドレスとパスワードを使って sandbox.paypal.com にログインできるサンドボックスアカウント。
- サンドボックスアカウントには、取引のテストに使用できるテスト用クレジットカード、住所、銀行口座情報が用意されています。
Paypal API の使用に関する注意事項
利用可能な API
API コレクションは主にマーチャント向けです。次の6分野にわたる、合計25個の API があります。
- 異議申し立て
- 請求書
- 注文
- サブスクリプション
- 追跡
- 取引
このデモで使用する API
このデモで取得する API は次のとおりです。テスト済みで、機能することを確認しています。 デモでは注文と配送のみを使用します。
- 'orders.create',
- 'orders.get',
- 'orders.capture',
- 'shipment.create',
- 'shipment.get',
- 'subscriptions.create',
- 'subscriptions.show',
- 'subscriptions.cancel'
デモの最後にリモートエージェントが登場する箇所については、arch/paypal_mcp_adk_a2a.svg を参照してください。
このような外部エージェントは定義でき、コードは別の場所に置かれますが、A2A を介して、エージェントの作成方法を知る必要なく、これらの外部エージェントの知能を顧客向けに活用できます。
API の相互依存関係
API の相互依存関係と運用上の注意点は次のとおりです。
- 注文を作成すると、人間がログインして手動で支払うための決済 URL が返されます。
- 注文のキャプチャ呼び出しが成功するのは、購入者が取引を完了した後のみです。
- マーチャントが異議申し立ての承認を呼び出す前に、サンドボックス環境で人間が異議申し立てを作成する必要があります。
- サブスクリプションを作成するには、事前に商品とサブスクリプションプランが作成されている必要があります。
- list_transactions に最新の取引が表示されるまでには遅延があります。
セットアップ
Python パッケージ
Google ADK 0.3.0 以降が必要です。
python3 -m venv ~/.ppmcp_adk
source ~/.ppmcp_adk/bin/activate
pip install "google-adk==0.3.0"
pip install "google-cloud-aiplatform==1.90.0"
または、poetry を使用する場合:
poetry install
MCP クライアントの場合
Node.js のウェブサイトから nodejs と npx をセットアップします。
次のように、node と npx が PATH に設定されていることを確認してください。
$ which node
/Users/USERNAME/.nvm/versions/node/v22.14.0/bin/node
$ which npx
/Users/USERNAME/.nvm/versions/node/v22.14.0/bin/npx
設定
'env.example' を '.env' にコピーし、'.env` ファイルを設定します。
- Google API キー、または Google Cloud プロジェクト ID とロケーションを入力します。
- Paypal サンドボックスの
PAYPAL_CLIENT_IDとPAYPAL_SECRETを確認して入力します。
実際に Paypal サンドボックスに存在する注文情報を挿入します。
paypal_mcp_agent/util.py内の関数load_user_profile()。user_profileとordersの辞書を変更します。 これらはbefore_agent_callbackの実行時に読み込まれます。
ADK Developer UI を実行する
.envファイルがある作業ディレクトリpp_mcp_adkでadk webを実行します。INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)と表示されます。- ブラウザーで http://localhost:8000/dev-ui?app=paypal_mcp_agent を開きます。
サンプルでのやり取り
[ユーザー]: 注文した犬のおもちゃはどこにありますか?
[エージェント]: [get_shipment_tracking APIを呼び出します]
[エージェント]: Dido Dog Toyのご注文(ID:2RH052419P314283P)は、2025-04-24にUPSで発送されました。追跡番号は1Z1234567890123456です。
[ユーザー]: 注文情報も表示してもらえますか?
[エージェント]: [get_order APIを呼び出します]
[エージェント]: ご注文情報は以下のとおりです:
- 注文ID:2RH052419P314283P
- ステータス:COMPLETED
- 商品:Dido Dog Toy
- 数量:3
- 合計金額:30.00 USD
- 配送先住所:1 Main St, San Jose, CA 95131, US
[ユーザー]: (チャットボックスの左にあるクリップアイコンを手動でクリックし、緑色のドレスの画像をチャットボックスに読み込みます。画像は./paypal_mcp_agent/imagesにあります。その後、次のように入力します…)同じスタイルでもっとフォーマルなものをおすすめしてください。
[エージェント]: わかりました。送っていただいた画像のドレスに似たスタイルで、もっとフォーマルなものをお探しですね。 …画像のドレスには、次のような特徴があります:
[エージェント]: [product_searchツールを呼び出します]
…
[エージェント]: おすすめできるドレスを3着見つけました:
…
[ユーザー]: 2着目が気に入りました!
[エージェント]: いいですね…注文しますか?
[ユーザー]: はい、お願いします。
[エージェント]: [create_order APIを呼び出します]
[エージェント]: Floral Mermaid Summer Dressのご注文を承りました!
詳細は以下のとおりです:
注文ID:7EK45304FF8688429
商品名:Floral Mermaid Summer Dress
価格:220 USD
支払いリンク:https://www.sandbox.paypal.com/checkoutnow?token=7EK45304FF8688429

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