Communitygithub.com

Scottcjn/iota-agent-mcp

IOTA 区块链 MCP 服务器,提供钱包管理(含人工确认签名)、Move 智能合约的构建/测试/发布以及通过 JSON-RPC 和 GraphQL 的链上查询。适用于 AI 编码代理与 IOTA 网络交互的场景。

iota-agent-mcp 是什么?

IOTA Agent MCP 是一个 MCP 服务器,专为将 AI 编码代理(如 Claude Code、Cursor、VS Code Copilot)与 IOTA 区块链连接而设计。它提供了 18 个工具,涵盖钱包操作、Move 智能合约开发和链上数据查询。所有操作均通过标准输入/输出(stdio)传输,MCP 进程中不存储任何机密信息。其核心特性是“人机协同”签名流程:任何修改状态的交易都需先生成未签名的交易,然后由代理提交签名请求,经人工在代理钱包服务器上批准或拒绝后方可执行。该技能支持钱包地址查询、余额检查、账户列表、网络切换、Move 包编译/测试/覆盖率分析、未签名发布交易生成,以及通过对象 ID、所有者地址、交易摘要、代币信息、纪元统计和模块反编译等方式进行链上查询。开发者可通过环境变量 `IOTA_WALLET_SERVER`、`IOTA_RPC_URL` 和 `IOTA_GRAPHQL_URL` 自定义 RPC 和 GraphQL 端点。安装方式为 `npm install -g iota-agent-mcp`,并可在 Claude Code、Cursor 或 VS Code 的 MCP 配置文件中添加。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add Scottcjn/iota-agent-mcp

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

IOTA Agent MCP

MCP 服务器,将 AI 编码代理连接到 IOTA 区块链。提供 18 个工具,涵盖钱包操作、Move 智能合约开发和链上数据查询——全部通过标准输入/输出(stdio)传输,MCP 进程中不存储任何机密。

工作流程

  1. 在代理设置中配置 MCP 服务器(Claude Code、Cursor、VS Code Copilot)
  2. 查询链上数据 — 获取对象、交易、代币、纪元信息或反编译模块
  3. 开发 Move 合约 — 构建、测试(含覆盖率)、生成未签名发布交易
  4. 签名并发布 — 生成未签名交易,通过 iota_wallet_sign_execute 提交,检查 iota_wallet_pending 的审批状态,通过 iota_transaction 验证链上结果

签名流程(人机协同)

修改状态的交易需要人工批准:

  1. 调用 iota_wallet_sign_execute 并传入 base64 编码的交易字节——创建一个待处理请求
  2. 调用 iota_wallet_pending 确认请求已排队
  3. 人工通过代理钱包服务器批准(iota_wallet_approve)或拒绝(iota_wallet_reject)
  4. 批准后,验证交易是否已上链:使用返回的摘要调用 iota_transaction
  5. 如果被拒绝,通知用户,未经明确指示不得重试

工具

钱包(8 个工具)

  • iota_wallet_address — 获取当前钱包地址
  • iota_wallet_balance — 检查当前钱包的 IOTA 余额
  • iota_wallet_accounts — 列出所有衍生的钱包账户
  • iota_wallet_sign_execute — 签名并执行交易(需要人工通过代理钱包服务器批准)
  • iota_wallet_pending — 列出等待批准的待处理签名请求
  • iota_wallet_approve — 按 ID 批准待处理的签名请求
  • iota_wallet_reject — 按 ID 拒绝待处理的签名请求
  • iota_wallet_switch_network — 在主网、测试网和开发网之间切换

Move CLI(4 个工具)

  • iota_cli — 运行任意 IOTA CLI 命令(例如 client gas、move new my_project)
  • iota_move_build — 编译 Move 包并报告构建结果
  • iota_move_test_coverage — 运行 Move 测试并进行覆盖率分析和总结
  • iota_move_publish_unsigned — 生成未签名发布交易供代理钱包签名

链上查询(6 个工具)

  • iota_object — 按 ID 获取对象数据(所有者、类型、版本、内容)
  • iota_objects_by_owner — 列出某个地址拥有的对象
  • iota_transaction — 按摘要获取交易详情(输入、效果、事件)
  • iota_coins — 获取用于 gas 估算和代币查询的代币对象
  • iota_epoch_info — 通过 GraphQL 获取当前纪元、检查点和网络统计信息
  • iota_decompile — 检索并反编译已部署 Move 模块的 ABI

示例

构建并测试 Move 包:

iota_move_build(path: "./my_move_project")
→ "BUILDING my_move_project ... Build Successful"

iota_move_test_coverage(path: "./my_move_project")
→ "## Test Results\nRunning Move unit tests ... 5 tests passed\n\n## Coverage Summary\n85.7% coverage"

查询链上对象:

iota_object(object_id: "0xabc123...")
→ { "owner": "0xdef456...", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "version": 42, "content": {...} }

发布 Move 包并使用钱包签名:

iota_move_publish_unsigned(path: "./my_move_project", gas_budget: "500000000")
→ "AAACAQBk..." (base64 交易字节)

iota_wallet_sign_execute(tx_bytes: "AAACAQBk...")
→ "Request queued (id: req-1). Awaiting human approval."

配置

设置环境变量以覆盖默认值:

  • IOTA_WALLET_SERVER — 代理钱包服务器 URL(默认:http://localhost:3847)
  • IOTA_RPC_URL — IOTA JSON-RPC 端点(默认:主网)
  • IOTA_GRAPHQL_URL — IOTA GraphQL 索引器(默认:主网)

设置

npm install -g iota-agent-mcp
// Claude Code: ~/.claude/settings.json
{
  "mcpServers": {
    "iota": { "command": "iota-agent-mcp" }
  }
}
// Cursor / VS Code: .cursor/mcp.json 或 .vscode/mcp.json
{
  "servers": {
    "iota": { "command": "npx", "args": ["iota-agent-mcp"] }
  }
}

相关技能