使用说明

项目简介

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应用后端独立部署。

安装步骤

  1. 克隆仓库

    git clone https://github.com/Danielmark001/iota_evm_mcp_server.git
    cd iota_evm_mcp_server
  2. 安装依赖

    推荐使用 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: 额外的配置说明,提示用户关于运行模式和更多信息。

基本使用方法

  1. 启动服务器

    Stdio 模式 (默认):

    bun start
    # 或开发模式,支持热重载
    bun dev

    HTTP 模式:

    bun start:http
    # 或开发模式,支持热重载
    bun dev:http

    HTTP 模式服务器默认监听 'http://0.0.0.0:3001',可以通过修改 '.env' 文件中的 'PORT' 和 'HOST' 变量进行配置。

  2. MCP客户端连接

    配置MCP客户端连接到已启动的 IOTA EVM MCP 服务器。对于 Stdio 模式,客户端和服务器通过标准输入输出流进行通信。对于 HTTP 模式,客户端需要配置服务器的 HTTP 地址 ('http://服务器IP:端口/sse') 和消息端点 ('http://服务器IP:端口/messages')。

  3. 使用工具和资源

    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' 等) 时,请务必妥善保管私钥,避免泄露。服务器端不会存储任何私钥信息。

信息

分类

数据库与文件