链上交互代理服务

一个基于Model Context Protocol(MCP)的服务,集成Coinbase AgentKit,通过Claude Desktop和其他MCP兼容客户端提供AI驱动的链上交互功能。

  • by ManojBaasha
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ManojBaasha/mcp-onchain-agent

使用说明

MCP链上代理

A. 模型上下文协议(MCP) 集成的服务器 Coinbase代理工具包 通过Claude Desktop和其他MCP兼容客户端提供AI驱动的链上交互。

特性

  • MCP服务器:通过模型上下文协议公开AgentKit工具
  • 全面的错误处理:用于调试的详细日志记录和错误消息
  • 多客户端支持:与Claude Desktop、MCP Jam和其他MCP调试器配合使用
  • CDP集成:使用Coinbase开发者平台(CDP)进行钱包管理和链上运营
  • 测试网实用程序:包括用于请求测试网资金的实用程序脚本

项目结构

mcp-onchain-agent/
├── src/
│   ├── index.ts              # MCP server entry point
│   └── getAgentKit.ts        # AgentKit configuration and initialization
├── server_wallet/
│   └── main.ts               # Utility script for testnet faucet requests
├── build/                    # Compiled output (generated)
├── claude_desktop_config.json    # Claude Desktop configuration (not tracked)
├── mcp_debugger_config.example.json  # Example config for MCP debuggers
└── package.json

先决条件

  • Node.js(建议使用v22+)
  • CDP API证书:
    • CDP_API_KEY_ID
    • CDP_API_KEY_SECRET
    • CDP_WALLET_SECRET

安装

npm install

配置

环境变量

服务器需要以下环境变量(通过MCP客户端配置设置):

必修的:

  • CDP_API_KEY_ID -您的CDP API密钥ID
  • CDP_API_KEY_SECRET -您的CDP API密钥秘密
  • CDP_WALLET_SECRET -您的CDP钱包密码

可选:

  • NETWORK_ID -网络ID(默认值: base-sepolia)
  • ADDRESS -钱包地址(如果使用现有钱包)
  • OWNER_ADDRESS -钱包所有者地址
  • RPC_URL -自定义RPC端点
  • PAYMASTER_URL -赞助交易的支付宝URL
  • IDEMPOTENCY_KEY -请求的Idempotency密钥

用法

构建服务器

npm run build

这将TypeScript编译为JavaScript build/ 目录。

与Claude Desktop一起使用

  1. 复制 claude_desktop_config.json 到您的Claude Desktop配置目录:

    cp claude_desktop_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
    
  2. 编辑配置文件并将您的CDP凭据添加到 env 部分。

  3. 重新启动Claude Desktop并开始使用链上工具!

与MCP调试器一起使用(MCP Jam等)

  1. 参考 mcp_debugger_config.example.json 对于配置格式。

  2. 在MCP调试器中,使用以下命令配置服务器:

    • 命令: node
    • 参数: ["/path/to/mcp-onchain-agent/build/index.js"]
    • 环境变量:在中设置所有必需的变量 env 章节
  3. 服务器将详细的启动信息记录到stderr,MCP调试器可以捕获这些信息以进行故障排除。

测试网实用程序

这 server_wallet/ 目录包含一个用于请求测试网资金的实用程序脚本:

cd server_wallet
npm install
# Set up .env file with CDP credentials
npx tsx main.ts

此脚本从Base Sepolia和Ethereum Sepolia测试网请求测试网令牌(ETH、USDC、EURC、CB-BTC)。

发展

编码结构

  • src/index.ts:主MCP服务器实现

    • 使用stdio传输设置MCP服务器
    • 处理工具列表和执行
    • 提供详细的错误记录
  • src/getAgentKit.ts:AgentKit配置

    • 初始化CDP智能钱包提供程序
    • 配置操作提供程序(ERC20、WETH、Pyth等)
    • 处理环境变量验证
    • 提供有用的错误消息

错误处理

服务器包括全面的错误处理:

  • 启动日志记录:将每个初始化步骤记录到stderr
  • 环境验证:检查所需的环境变量
  • 结构化错误:调试器的JSON格式错误输出
  • 有用的信息:使用故障排除指南清除错误消息

调试

当服务器无法启动时,请检查stderr输出:

  1. Starting MCP server... -服务器初始化开始
  2. Initializing AgentKit... -AgentKit配置开始
  3. Environment check: -显示设置了哪些环境变量(不暴露秘密)
  4. 错误消息,详细说明问题所在

可用工具

服务器通过MCP公开AgentKit工具,包括:

  • 钱包操作(余额检查、转账)
  • ERC20代币操作
  • WETH操作
  • Pyth价格推送
  • CDP API操作
  • 智能钱包操作
  • X402操作

看 AgentKit文档 获取完整的工具文档。

故障排除

“连接已关闭”错误

这通常意味着环境变量没有正确传递:

  1. 验证MCP客户端配置中是否设置了所有必需的环境变量
  2. 检查stderr日志中的“环境检查”输出
  3. 确保 ADDRESS 和 OWNER_ADDRESS 要么设置正确,要么留空(不是“值”)

“找不到具有给定地址的智能帐户”

指定地址的钱包不存在。要么:

  • 首先使用CDP创建钱包
  • 删除 ADDRESS 环境变量,允许提供者创建/查找钱包
  • 使用钱包所在的其他地址

“缺少必需的环境变量”

确保设置了所有三个必需的变量:

  • CDP_API_KEY_ID
  • CDP_API_KEY_SECRET
  • CDP_WALLET_SECRET

了解更多

许可证

私有项目-详见package.json。