使用说明

项目简介

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 协议的文档,以获取更详细的工具列表和使用方法。

信息

分类

AI与计算