본문으로 건너뛰기
cccskills
무료GitHub에 공개

iota-agent-mcp

IOTA blockchain MCP server providing wallet management with human-in-the-loop signing, Move smart contract build/test/publish, and on-chain queries via JSON-RPC and GraphQL. Use when interacting with IOTA network from AI coding agents, managing IOTA wallets, building or publishing Move packages, querying on-chain objects or transactions, or checking epoch and network statistics.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(15)

  • SKILL.md4.6 KB
  • __tests__/helpers.test.ts3.6 KB
  • __tests__/tokenize.test.ts1.7 KB
  • __tests__/tools.test.ts4.4 KB
  • .github/dependabot.yml103 B
  • .gitignore50 B
  • BCOS.md980 B
  • CONTRIBUTING.md1.5 KB
  • jest.config.js324 B
  • LICENSE1.1 KB
  • package-lock.json211.7 KB
  • package.json1.2 KB
  • README.md4.4 KB
  • src/index.ts12.5 KB
  • tsconfig.json506 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

IOTA Agent MCP

MCP server that connects AI coding agents to the IOTA blockchain. Provides 18 tools across wallet operations, Move smart contract development, and on-chain data queries — all via stdio transport with no secrets in the MCP process.

Workflow

  1. Configure the MCP server in your agent's settings (Claude Code, Cursor, VS Code Copilot)
  2. Query on-chain data — fetch objects, transactions, coins, epoch info, or decompile modules
  3. Develop Move contracts — build, test with coverage, generate unsigned publish transactions
  4. Sign and publish — generate unsigned transaction, submit via iota_wallet_sign_execute, check iota_wallet_pending for approval status, verify on-chain with iota_transaction

Signing flow (human-in-the-loop)

Wallet operations that modify state require human approval:

  1. Call iota_wallet_sign_execute with base64-encoded transaction bytes — creates a pending request
  2. Call iota_wallet_pending to confirm the request was queued
  3. The human approves (iota_wallet_approve) or rejects (iota_wallet_reject) via the agent-wallet server
  4. On approval, verify the transaction landed on-chain: call iota_transaction with the returned digest
  5. If rejected, inform the user and do not retry without explicit instruction

Tools

Wallet (8 tools)

  • iota_wallet_address — Get the active wallet address
  • iota_wallet_balance — Check IOTA balance for the active wallet
  • iota_wallet_accounts — List all derived wallet accounts
  • iota_wallet_sign_execute — Sign and execute a transaction (requires human approval via agent-wallet server)
  • iota_wallet_pending — List pending signing requests awaiting approval
  • iota_wallet_approve — Approve a pending signing request by ID
  • iota_wallet_reject — Reject a pending signing request by ID
  • iota_wallet_switch_network — Switch between mainnet, testnet, and devnet

Move CLI (4 tools)

  • iota_cli — Run any IOTA CLI command (e.g. client gas, move new my_project)
  • iota_move_build — Compile a Move package and report build results
  • iota_move_test_coverage — Run Move tests with coverage analysis and summary
  • iota_move_publish_unsigned — Generate unsigned publish transaction for agent-wallet signing

On-Chain Query (6 tools)

  • iota_object — Fetch object data by ID (owner, type, version, content)
  • iota_objects_by_owner — List objects owned by an address
  • iota_transaction — Fetch transaction details by digest (input, effects, events)
  • iota_coins — Get coin objects for gas estimation and token queries
  • iota_epoch_info — Current epoch, checkpoint, and network statistics via GraphQL
  • iota_decompile — Retrieve and decompile a deployed Move module's ABI

Examples

Build and test a Move package:

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"

Query an on-chain object:

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

Publish a Move package with wallet signing:

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."

Configuration

Set environment variables to override defaults:

  • IOTA_WALLET_SERVER — Agent wallet server URL (default: http://localhost:3847)
  • IOTA_RPC_URL — IOTA JSON-RPC endpoint (default: mainnet)
  • IOTA_GRAPHQL_URL — IOTA GraphQL indexer (default: mainnet)

Setup

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"] }
  }
}

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

이 스킬의 문제 신고