使用说明
项目简介
IOTA EVM MCP服务器是一个基于Model Context Protocol (MCP) 构建的后端服务,旨在为AI Agent提供访问区块链网络(特别是IOTA和EVM兼容链)的标准化接口。它通过MCP协议,将区块链的复杂操作抽象为易于AI Agent理解和调用的资源 (Resources) 和 工具 (Tools),并支持使用 Prompt 模板 (Prompts) 定制交互模式,简化AI应用与区块链的集成。
主要功能点
- 多链支持: 兼容包括IOTA、以太坊在内的30多个EVM兼容网络,实现跨链数据访问和操作。
- 资源管理: 提供链信息、区块数据、交易详情、账户余额(原生代币和ERC20代币)、NFT数据等多种区块链资源的读取能力。
- 工具注册: 集成丰富的区块链工具,包括查询链信息、解析ENS域名、获取区块/交易详情、查询/转移代币(ETH/ERC20/NFT/ERC1155)、合约交互(读取/写入合约、合约验证)、估算Gas费等,方便AI Agent执行链上操作。
- IOTA网络深度集成: 特别支持IOTA EVM、IOTA Testnet和Shimmer网络,提供IOTA网络专属的资源和工具,例如查询IOTA网络信息、IOTA代币余额、IOTA质押信息等。
- Prompt模板: 内置多种Prompt模板,如区块浏览器、交易分析、地址分析、智能合约交互指导等,方便用户快速构建基于区块链的AI应用场景。
- 灵活部署: 支持Stdio和HTTP两种传输协议,可以嵌入到CLI工具或作为Web应用后端独立部署。
安装步骤
-
克隆仓库
git clone https://github.com/Danielmark001/iota_evm_mcp_server.git cd iota_evm_mcp_server -
安装依赖
推荐使用 Bun:
bun install或者使用 npm:
npm install
服务器配置
MCP客户端需要配置MCP服务器的启动命令 (command) 及其参数 (args) 才能连接到 IOTA EVM MCP服务器。以下是基于仓库信息生成的 JSON 格式配置信息,请复制到你的MCP客户端配置中。
{ "serverName": "IOTA EVM MCP Server", "command": "bun", "args": [ "start" ], "description": "启动 IOTA EVM MCP 服务器 (Stdio 模式)", "notes": "默认使用 stdio 模式,适用于嵌入 CLI 工具等场景。如需 HTTP 模式,请参考基本使用方法。" }
参数注释:
- serverName: MCP 服务器的名称,可以自定义。
- command: 运行 MCP 服务器的命令,这里使用 'bun' (如果使用 npm,则为 'node')。
- args: 传递给启动命令的参数,'start' 参数用于启动 Stdio 模式的服务器。
- description: 对该配置的描述,方便用户理解其用途。
- notes: 额外的配置说明,提示用户关于运行模式和更多信息。
基本使用方法
-
启动服务器
Stdio 模式 (默认):
bun start # 或开发模式,支持热重载 bun devHTTP 模式:
bun start:http # 或开发模式,支持热重载 bun dev:httpHTTP 模式服务器默认监听 'http://0.0.0.0:3001',可以通过修改 '.env' 文件中的 'PORT' 和 'HOST' 变量进行配置。
-
MCP客户端连接
配置MCP客户端连接到已启动的 IOTA EVM MCP 服务器。对于 Stdio 模式,客户端和服务器通过标准输入输出流进行通信。对于 HTTP 模式,客户端需要配置服务器的 HTTP 地址 ('http://服务器IP:端口/sse') 和消息端点 ('http://服务器IP:端口/messages')。
-
使用工具和资源
MCP客户端可以使用服务器提供的 工具 (Tools) 和 资源 (Resources) 与区块链网络进行交互。具体的工具和资源列表请参考仓库的 'API Reference' 文档(仓库中未提供独立的API文档链接,请参考 'README.md' 中的 "API Reference" 部分)。例如,可以使用 'get_iota_balance' 工具查询 IOTA 账户余额,或使用 'evm://{network}/block/latest' 资源获取指定EVM网络的最新区块信息。
示例 (使用 Javascript 代码调用工具):
const mcpClient = new McpClient({ endpoint: "http://localhost:3001", // HTTP 模式下配置服务器地址 }); // 调用 IOTA 专属工具 const response = await mcpClient.callTool("get_iota_balance", { address: "0x1234...", network: "iota", }); console.log(response);注意: 使用需要私钥的 工具 (如 'transfer_eth', 'transfer_erc20' 等) 时,请务必妥善保管私钥,避免泄露。服务器端不会存储任何私钥信息。
信息
分类
数据库与文件