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
- Configure the MCP server in your agent's settings (Claude Code, Cursor, VS Code Copilot)
- Query on-chain data — fetch objects, transactions, coins, epoch info, or decompile modules
- Develop Move contracts — build, test with coverage, generate unsigned publish transactions
- Sign and publish — generate unsigned transaction, submit via
iota_wallet_sign_execute, checkiota_wallet_pendingfor approval status, verify on-chain withiota_transaction
Signing flow (human-in-the-loop)
Wallet operations that modify state require human approval:
- Call
iota_wallet_sign_executewith base64-encoded transaction bytes — creates a pending request - Call
iota_wallet_pendingto confirm the request was queued - The human approves (
iota_wallet_approve) or rejects (iota_wallet_reject) via the agent-wallet server - On approval, verify the transaction landed on-chain: call
iota_transactionwith the returned digest - If rejected, inform the user and do not retry without explicit instruction
Tools
Wallet (8 tools)
iota_wallet_address— Get the active wallet addressiota_wallet_balance— Check IOTA balance for the active walletiota_wallet_accounts— List all derived wallet accountsiota_wallet_sign_execute— Sign and execute a transaction (requires human approval via agent-wallet server)iota_wallet_pending— List pending signing requests awaiting approvaliota_wallet_approve— Approve a pending signing request by IDiota_wallet_reject— Reject a pending signing request by IDiota_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 resultsiota_move_test_coverage— Run Move tests with coverage analysis and summaryiota_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 addressiota_transaction— Fetch transaction details by digest (input, effects, events)iota_coins— Get coin objects for gas estimation and token queriesiota_epoch_info— Current epoch, checkpoint, and network statistics via GraphQLiota_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"] }
}
}
レビュー
まだレビューはありません。使ってみた感想をお寄せください。