使用说明
项目简介
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 传输协议,满足不同应用场景的需求。
安装步骤
- 确保已安装 Python 环境。
- 使用 pipx 安装 'thirdweb-mcp' 包 (推荐使用 pipx 隔离环境):
或者使用 pip 安装:pipx install thirdweb-mcppip 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' 等配置为环境变量。
基本使用方法
- 启动服务器: 在终端中运行 'thirdweb-mcp' 命令,并根据需要添加参数,例如:
或者,如果使用 SSE 协议:THIRDWEB_SECRET_KEY=<YOUR_SECRET_KEY> thirdweb-mcp --chain-id 1 --transport stdioTHIRDWEB_SECRET_KEY=<YOUR_SECRET_KEY> thirdweb-mcp --chain-id 1 --transport sse --port 8001 - 配置 MCP 客户端: 将上面提供的 JSON 配置信息填入您的 MCP 客户端配置中,并确保客户端能够连接到服务器。如果使用 'stdio' 传输协议,客户端需要通过标准输入输出与服务器通信。如果使用 'sse' 协议,客户端需要连接到 'http://localhost:8000' (或您配置的端口)。
- 使用 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与计算