Skip to main content
Glama
README.md
# iota-agent-mcp

> MCP Server for the IOTA blockchain — enables AI coding agents (Claude Code, Cursor, VS Code Copilot, ChatGPT) to interact with IOTA directly.

Built in response to [iotaledger/iota-rust-sdk#986](https://github.com/iotaledger/iota-rust-sdk/issues/986).

## Tools (16 total)

### Wallet
| Tool | Description |
|------|-------------|
| `iota_wallet_address` | Get current wallet address |
| `iota_wallet_balance` | Check IOTA balance |
| `iota_wallet_accounts` | List all wallet accounts |
| `iota_wallet_pending` | View pending tx approvals |
| `iota_wallet_approve` | Approve pending transaction |
| `iota_wallet_reject` | Reject pending transaction |
| `iota_wallet_switch_network` | Switch mainnet/testnet/devnet |
| `iota_wallet_sign_execute` | Sign & execute transaction |

### CLI / Move Dev
| Tool | Description |
|------|-------------|
| `iota_cli` | Run any `iota` CLI command |
| `move_build` | Build a Move package |
| `move_test` | Run Move unit tests |
| `move_test_coverage` | Run tests + coverage report |
| `move_publish_unsigned` | Build publish tx (unsigned) |

### On-chain Query
| Tool | Description |
|------|-------------|
| `iota_object` | Fetch object by ID |
| `iota_objects_by_owner` | List objects by owner |
| `iota_get_coins` | Get coin objects for address |
| `iota_transaction` | Fetch transaction by digest |
| `iota_coin_metadata` | Get coin type metadata |
| `iota_package_info` | Get Move package ABIs |
| `iota_resolve_name` | Resolve IOTA Name Service |
| `iota_get_price` | Current IOTA price (CoinGecko) |
| `iota_graphql_query` | Raw GraphQL query |
| `iota_epoch_info` | Epoch, checkpoint, network stats |
| `iota_decompile` | Decompile Move module |

## Setup

```bash
npm install -g iota-agent-mcp
```

Add to your Claude/Cursor MCP config:

```json
{
  "mcpServers": {
    "iota": {
      "command": "iota-mcp",
      "env": {
        "IOTA_RPC_URL": "https://api.mainnet.iota.cafe",
        "IOTA_WALLET_SERVER": "http://localhost:3847"
      }
    }
  }
}
```

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `IOTA_RPC_URL` | `https://api.mainnet.iota.cafe` | IOTA JSON-RPC endpoint |
| `IOTA_GRAPHQL_URL` | `https://graphql.mainnet.iota.cafe` | IOTA GraphQL endpoint |
| `IOTA_WALLET_SERVER` | `http://localhost:3847` | Local agent wallet server |

## Networks

| Network | RPC |
|---------|-----|
| Mainnet | `https://api.mainnet.iota.cafe` |
| Testnet | `https://api.testnet.iota.cafe` |
| Devnet  | `https://api.devnet.iota.cafe` |

## Build from source

```bash
git clone https://github.com/dearsealx-blip/iota-agent-mcp
cd iota-agent-mcp
npm install
npm run build
node dist/index.js
```

## Related

- [iota-agent-skills](https://github.com/dearsealx-blip/iota-agent-skills) — OpenClaw skills for IOTA development
- [sui-mcp](https://github.com/EasonC13-agent/sui-mcp) — Original Sui MCP server (inspiration)
- [IOTA docs](https://docs.iota.org)

## License

MIT

TDQS

B3.4/5.0

Scored across 24 tools

Disambiguation4/5

Most tools have distinct purposes (price, wallet, Move, objects). Pairs like move_test and move_test_coverage overlap, and iota_cli can perform any CLI operation, creating potential misselection. Descriptions help, but the presence of a catch-all reduces clarity.

Naming Consistency4/5

Uses a consistent prefix (iota_, move_) and snake_case. However, some names are nouns (iota_wallet_address) while others are verb phrases (move_publish_unsigned), and iota_cli is a vague outlier.

Tool Count3/5

24 tools is above the typical range (3-15) and falls in the heavy category, though the breadth of IOTA functionality (wallet, Move, chain) may justify it.

Completeness4/5

Covers wallet management, Move development, chain queries, and GraphQL. Missing explicit publish/execute for Move, but iota_cli and sign_execute fill the gap. Overall, a robust surface.

Maintenance

ActivityInactive
ResponsivenessNo issues