以商务为中心的演示,通过MCP使用Paypal代理工具包开发代理工具包
Paypal沙盒
当您注册时 developer.paypal.com,您可以设置多个应用程序,每个应用程序都有自己的应用程序:
- 调用API的应用程序的客户端ID和密钥。
- 一个带有电子邮件和密码的沙盒帐户,可以登录 沙盒.paypal.com.
- 沙盒帐户具有可用于测试交易的测试信用卡、地址和银行详细信息。
使用Paypal API的注意事项
可用API
API的收集主要以商家为中心。总共有25个API,涵盖:
- 争议
- 发票
- 订单
- 订阅
- 追踪
- 交易
在这个演示中
此演示仅获得以下API,它们经过测试并发现功能正常。 只有订单和发货是演示的一部分:
- '订单创建',
- “命令,得到”,
- “命令。捕获”,
- '装运.创建',
- '装运。获取',
- '订阅.创建',
- '订阅.显示',
- '订阅。取消'
看 arch/paypal_mcp_adk_a2a.svg 对于演示末尾提到的远程代理。 这些外部代理可以在其他地方定义,它们的代码也可以存在,但通过A2A,您的代理可以为您的客户利用这些外部代理的智能,而不需要知道它们是如何制造的。
API相互依赖性
以下是API相互依存关系和操作事项的列表:
- 创建订单会返回一个付款URL,供用户登录并手动付款。
- 只有在消费者完成交易后,调用订单捕获才会成功。
- 人类必须首先在沙盒环境中创建争议,然后商家才能呼叫接受争议索赔。
- 只有存在以前创建的产品和订阅计划,才能创建订阅。
- 显示最新消息的list_transactions中存在延迟。
设置
Python包
需要谷歌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 install对于MCP客户端
从Node.js设置nodejs和npx 网站
确保你有类似的东西,那个节点和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沙盒中实际存在的订单信息:
- 在函数中
load_user_profile()在...之内paypal_mcp_agent/util.py. - 修改
user_profile和orders字典。
它们是在 before_agent_callback.
运行ADK开发者界面
- 跑
adk web,在工作目录中pp_mcp_adk,在哪里.env文件是。 - 它将显示
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*\]
【代理人】:以下是您的订单信息:
- 订单编号:2RH052419P314283P
- 状态:已完成
- 商品:Dido狗狗玩具
- 数量:3
- 总金额:30.00美元
- 配送地址:美国加利福尼亚州圣何塞市主街1号,邮编95131
\[用户\]:(手动点击聊天框左侧的回形针图标,将绿色连衣裙图片加载到聊天框中。图片位于 ./paypal_mcp_agent/images,然后是…)推荐同样风格的更正式的东西。
【代理人】好的,我明白了。你正在寻找更正式的衣服,但风格与你发送的图片中的裙子相似。 …图像中的连衣裙具有以下特点:
【代理人】: \[*电话 product_search 工具*\]
...
【代理人】我找到了三件你可能感兴趣的衣服:
...
\[用户\]我喜欢第二条裙子!
【代理人】太棒了..你想点吗?
\[用户\]是的,我们开始吧。
【代理人】: \[*电话 create_order API*\]
【代理人】:您订购的花美人鱼夏装已经下单!
Here are the details:
Order ID: 7EK45304FF8688429
Item Name: Floral Mermaid Summer Dress
Cost: 220 USD
Payment Link: https://www.sandbox.paypal.com/checkoutnow?token=7EK45304FF8688429