thirdweb MCP Server

使用说明

项目简介

thirdweb MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,它利用 thirdweb AI 提供的强大区块链数据分析 (Insight)、引擎 (Engine) 服务以及自然语言处理 (Nebula) 能力,旨在为大语言模型 (LLM) 应用提供丰富的区块链上下文信息和操作工具。通过标准化的 MCP 协议,该服务器可以轻松集成到任何兼容 MCP 协议的 LLM 客户端中,实现自然语言驱动的 Web3 应用。

主要功能点

  • 区块链数据查询: 提供丰富的区块链数据查询工具,包括链上事件、交易记录、多种代币(ERC20, ERC721, ERC1155)信息、NFT 数据、合约 ABI 和元数据等,支持多链数据聚合。
  • 智能合约交互: 支持通过 thirdweb Engine 服务与智能合约进行交互,包括读取合约状态 (read_contract) 和执行合约写入操作 (write_contract),以及发送原生代币交易 (send_transaction)。
  • 自然语言处理: 集成 thirdweb Nebula 自然语言服务,允许用户通过自然语言指令查询区块链信息或执行链上操作。
  • 灵活的工具集成: 提供可扩展的工具框架,方便集成更多 thirdweb AI 或自定义的区块链工具。
  • 标准 MCP 协议: 遵循 MCP 协议标准,易于与各种 LLM 客户端集成,实现即插即用。
  • 多种传输协议: 支持 Stdio 和 SSE 传输协议,满足不同应用场景的需求。

安装步骤

  1. 确保已安装 Python 环境。
  2. 使用 pipx 安装 'thirdweb-mcp' 包 (推荐使用 pipx 隔离环境):
    pipx install thirdweb-mcp
    或者使用 pip 安装:
    pip install thirdweb-mcp

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 thirdweb MCP Server。请根据您的实际需求配置 'args' 中的参数。

{
  "serverName": "thirdweb MCP Server",
  "command": "thirdweb-mcp",
  "args": [
    "--transport", "stdio",  // 可选 'stdio' 或 'sse',默认为 'stdio'。'stdio' 适用于命令行客户端,'sse' 适用于 Web 应用。
    "--port", "8000",       // 仅当 transport 为 'sse' 时有效,指定 SSE 服务器端口,默认为 8000。
    "--secret-key", "${THIRDWEB_SECRET_KEY}", // 必填。您的 thirdweb API Secret Key,用于访问 Insight 和 Nebula 服务。请在 thirdweb 控制台 (https://thirdweb.com/dashboard) 获取。建议设置为环境变量。
    "--chain-id", "1",     // 可选。区块链网络 ID,例如 1 代表以太坊主网,137 代表 Polygon。可以指定多个 chain-id,用逗号分隔,例如 "1,137"。用于配置 Insight 服务默认查询的网络。建议设置为环境变量 THIRDWEB_CHAIN_ID。
    "--engine-url", "${THIRDWEB_ENGINE_URL}", // 可选。thirdweb Engine URL,如果需要使用 Engine 服务(例如执行交易)则为必填。请在 thirdweb 控制台获取。建议设置为环境变量 THIRDWEB_ENGINE_URL。
    "--engine-auth-jwt", "${THIRDWEB_ENGINE_AUTH_JWT}", // 可选。thirdweb Engine JWT 认证令牌,如果需要使用 Engine 服务则为必填。请在 thirdweb 控制台获取。建议设置为环境变量 THIRDWEB_ENGINE_AUTH_JWT。
    "--engine-backend-wallet-address", "${THIRDWEB_ENGINE_BACKEND_WALLET_ADDRESS}" // 可选。Engine 后端钱包地址,用于指定 Engine 服务执行交易的默认钱包。建议设置为环境变量 THIRDWEB_ENGINE_BACKEND_WALLET_ADDRESS。
  ]
}

参数说明:

  • 'transport': 指定 MCP 服务器使用的传输协议,'stdio' 为标准输入输出,'sse' 为 Server-Sent Events。
  • 'port': 当 'transport' 为 'sse' 时,指定服务器监听的端口号。
  • 'secret-key': 必填。thirdweb API Secret Key,用于访问 thirdweb Insight 和 Nebula 服务,请务必替换为您的 Secret Key。
  • 'chain-id': 区块链网络 ID,用于配置 Insight 服务默认查询的网络,可以指定多个。
  • 'engine-url': thirdweb Engine URL,如果需要使用 Engine 服务则为必填。
  • 'engine-auth-jwt': thirdweb Engine JWT 认证令牌,如果需要使用 Engine 服务则为必填。
  • 'engine-backend-wallet-address': Engine 后端钱包地址,用于指定 Engine 服务执行交易的默认钱包。

环境变量配置 (推荐): 为了安全和方便,建议将 'THIRDWEB_SECRET_KEY', 'THIRDWEB_CHAIN_ID', 'THIRDWEB_ENGINE_URL', 'THIRDWEB_ENGINE_AUTH_JWT', 'THIRDWEB_ENGINE_BACKEND_WALLET_ADDRESS' 等配置为环境变量。

基本使用方法

  1. 启动服务器: 在终端中运行 'thirdweb-mcp' 命令,并根据需要添加参数,例如:
    THIRDWEB_SECRET_KEY=<YOUR_SECRET_KEY> thirdweb-mcp --chain-id 1 --transport stdio
    或者,如果使用 SSE 协议:
    THIRDWEB_SECRET_KEY=<YOUR_SECRET_KEY> thirdweb-mcp --chain-id 1 --transport sse --port 8001
  2. 配置 MCP 客户端: 将上面提供的 JSON 配置信息填入您的 MCP 客户端配置中,并确保客户端能够连接到服务器。如果使用 'stdio' 传输协议,客户端需要通过标准输入输出与服务器通信。如果使用 'sse' 协议,客户端需要连接到 'http://localhost:8000' (或您配置的端口)。
  3. 使用 LLM 客户端: 在 LLM 客户端中,您可以向模型发出自然语言指令,例如 "查询 thirdweb.eth 的当前余额" 或 "将 0.5 ETH 发送到 0x...", 服务器将根据指令调用相应的 thirdweb AI 工具,并将结果返回给 LLM 客户端。

示例查询:

  • "What's the current balance of thirdweb.eth?" (查询 ENS 名称 thirdweb.eth 关联地址的当前余额)
  • "Get the latest transactions for contract address 0x..." (获取指定合约地址的最新交易记录)
  • "Transfer 10 USDC to 0x..." (使用配置的 Engine 后端钱包发送 10 USDC 代币到指定地址 - 需要配置 Engine 服务和相关工具)

请参考 thirdweb AI 和 MCP 协议的文档,以获取更详细的工具列表和使用方法。

服务器信息