Communitygithub.com

Scottcjn/iota-agent-mcp

IOTAブロックチェーン用MCPサーバー。AIエージェントからウォレット管理、Moveスマートコントラクトのビルド/テスト/公開、JSON-RPCおよびGraphQLによるオンチェーンクエリを可能にします。IOTAネットワークとの対話、ウォレット管理、Moveパッケージの開発・公開、オンチェーンデータのクエリに利用します。

iota-agent-mcp とは?

IOTA Agent MCPは、AIコーディングエージェントとIOTAブロックチェーンを接続するMCPサーバーです。ウォレット操作、Moveスマートコントラクト開発、オンチェーンデータクエリのための18種類のツールを提供し、標準入出力(stdio)を介して動作するため、MCPプロセス内にシークレットを保持しません。Claude Code、Cursor、VS Code CopilotなどのAIエージェントから利用でき、ウォレットのアドレス確認や残高照会、アカウント管理、トランザクション署名・実行(人間の承認が必要なhuman-in-the-loop方式)、ネットワーク切り替えが可能です。さらに、Moveパッケージのビルドやテスト(カバレッジ分析付き)、未署名の公開トランザクション生成、オブジェクトやトランザクション、コイン、エポック情報、デプロイ済みモジュールの逆コンパイルといったオンチェーンクエリをサポートします。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add Scottcjn/iota-agent-mcp

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

IOTA Agent MCP

AIコーディングエージェントをIOTAブロックチェーンに接続するMCPサーバー。ウォレット操作、Moveスマートコントラクト開発、オンチェーンデータクエリのための18個のツールを提供し、すべて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で拒否(agent-walletサーバー経由)
  4. 承認された場合、トランザクションがオンチェーンに記録されたことを確認:返されたダイジェストでiota_transactionを呼び出す
  5. 拒否された場合、ユーザーに通知し、明示的な指示なしに再試行しない

ツール

ウォレット(8ツール)

  • iota_wallet_address — アクティブなウォレットアドレスを取得
  • iota_wallet_balance — アクティブウォレットのIOTA残高を確認
  • iota_wallet_accounts — 派生したすべてのウォレットアカウントを一覧表示
  • iota_wallet_sign_execute — トランザクションに署名して実行(agent-walletサーバー経由で人間の承認が必要)
  • 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 — agent-wallet署名用の未署名公開トランザクションを生成

オンチェーンクエリ(6ツール)

  • iota_object — オブジェクトデータをIDで取得(所有者、タイプ、バージョン、コンテンツ)
  • iota_objects_by_owner — アドレスが所有するオブジェクトを一覧表示
  • iota_transaction — トランザクション詳細をダイジェストで取得(入力、影響、イベント)
  • iota_coins — ガス推定およびトークンクエリ用のコインオブジェクトを取得
  • 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 tx bytes)

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

設定

環境変数を設定してデフォルトを上書きします:

  • IOTA_WALLET_SERVER — Agentウォレットサーバーの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"] }
  }
}

関連スキル