iota-agent-mcp
# 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
Scored across 24 tools
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.
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.
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.
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.