Communitygithub.com

Scottcjn/iota-agent-mcp

專為 IOTA 區塊鏈設計的 MCP 伺服器,提供錢包管理、Move 智能合約構建/測試/發布及鏈上查詢功能,適用於 AI 編碼代理工具。

iota-agent-mcp 是什麼?

IOTA Agent MCP 是一個 MCP 伺服器,專為將 AI 編碼代理(如 Claude Code、Cursor、VS Code Copilot)連接到 IOTA 區塊鏈而設計。它提供 18 種工具,涵蓋錢包操作、Move 智能合約開發以及鏈上數據查詢,所有操作皆透過 stdio 傳輸,且 MCP 進程中不含任何秘密資訊。其獨特的「人在迴圈」簽署流程,確保所有修改狀態的錢包操作都需經過人工審批,從而增強安全性。開發者可以使用它來查詢物件、交易、餘額、紀元和網路統計,建置和測試 Move 合約、產生未簽署的交易,並透過專屬的錢包伺服器進行離線簽署。支援主網、測試網和開發網,並可通過環境變數自訂 RPC 端點。

相容平台✓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 or .vscode/mcp.json
{
  "servers": {
    "iota": { "command": "npx", "args": ["iota-agent-mcp"] }
  }
}

相關技能