Skip to main content
Glama

iota-agent-mcp

BCOS Certified

MCP (Model Context Protocol) server for IOTA blockchain. Enables AI coding agents (Claude Code, Cursor, VS Code Copilot, ChatGPT) to interact directly with the IOTA network.

Tools

18 tools across 3 categories:

Wallet (8 tools)

Tool

Description

iota_wallet_address

Get active wallet address

iota_wallet_balance

Check IOTA balance

iota_wallet_accounts

List all derived accounts

iota_wallet_sign_execute

Sign and execute transactions (human-in-the-loop)

iota_wallet_pending

View pending signing requests

iota_wallet_approve

Approve a pending request

iota_wallet_reject

Reject a pending request

iota_wallet_switch_network

Switch mainnet/testnet/devnet

CLI & Move (4 tools)

Tool

Description

iota_cli

Run any IOTA CLI command

iota_move_build

Build a Move package

iota_move_test_coverage

Run tests with coverage analysis

iota_move_publish_unsigned

Generate unsigned publish transaction

On-Chain Query (6 tools)

Tool

Description

iota_object

Fetch object data by ID

iota_objects_by_owner

List objects owned by an address

iota_transaction

Fetch transaction by digest

iota_coins

Get coin objects for an address

iota_epoch_info

Current epoch and network stats (GraphQL)

iota_decompile

Decompile deployed Move modules

Related MCP server: iota-agent-mcp

Architecture

flowchart LR
    client["AI coding agent<br/>Claude Code, Cursor, VS Code Copilot, ChatGPT"]
    mcp["iota-agent-mcp<br/>stateless stdio MCP server"]
    wallet["Local agent-wallet server<br/>IOTA_WALLET_SERVER<br/>default http://localhost:3847"]
    rpc["IOTA JSON-RPC fullnode<br/>IOTA_RPC_URL<br/>default https://api.mainnet.iota.cafe"]
    gql["IOTA GraphQL indexer<br/>IOTA_GRAPHQL_URL<br/>default https://graphql.mainnet.iota.cafe"]
    cli["iota CLI and Move toolchain<br/>build, test, unsigned publish"]
    rustchain["RustChain / Elyan Labs ecosystem<br/>BCOS and agent workflow context"]

    client <-->|"MCP over stdio"| mcp
    mcp -->|"wallet address, balance, accounts"| wallet
    mcp -->|"sign / approve / reject requests"| wallet
    mcp -->|"object, transaction, coins"| rpc
    mcp -->|"epoch and network stats"| gql
    mcp -->|"execFile without shell"| cli
    rustchain -. "ecosystem docs and certification" .- mcp
  • Stateless — no secrets in the MCP process

  • Human-in-the-loop — wallet ops proxy to a local agent-wallet server with approval flow

  • Dual query — JSON-RPC for object/tx queries, GraphQL for aggregate stats

  • CLI passthrough — Move build/test/publish via iota binary

Quick Start

Install

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

Configuration

Environment variables:

Variable

Default

Description

IOTA_WALLET_SERVER

http://localhost:3847

Agent wallet server URL

IOTA_RPC_URL

https://api.mainnet.iota.cafe

IOTA JSON-RPC endpoint

IOTA_GRAPHQL_URL

https://graphql.mainnet.iota.cafe

IOTA GraphQL indexer

Development

git clone https://github.com/Scottcjn/iota-agent-mcp.git
cd iota-agent-mcp
npm install
npm run build    # Compile TypeScript
npm run dev      # Run with tsx (hot reload)
npm test         # Run tests

License

Apache-2.0


Part of the Elyan Labs Ecosystem

  • BoTTube — AI video platform where 119+ agents create content

  • RustChain — Proof-of-Antiquity blockchain with hardware attestation

  • GitHub

Available Tools

18 tools
iota_cliB

Run an arbitrary IOTA CLI command. Use for operations not covered by other tools.

Inputs: command (required).

iota_coinsC

Get coin objects for an address (useful for gas estimation and token queries)

Inputs: address (required), coin_type.

iota_decompileB

Retrieve and decompile a deployed Move module. Returns the module's ABI (structs, functions, type params).

Inputs: package_id (required), module_name (required).

iota_epoch_infoB

Get current epoch, checkpoint, and network statistics via GraphQL

Inputs: no named parameters.

iota_move_buildC

Build a Move package and report compilation results

Inputs: path.

iota_move_publish_unsignedB

Generate an unsigned publish transaction for a Move package (for agent wallet signing)

Inputs: path, gas_budget.

iota_move_test_coverageB

Run Move tests with coverage analysis. Returns test results and coverage summary.

Inputs: path, filter.

iota_objectB

Fetch on-chain object data by ID. Returns owner, type, version, and content.

Inputs: object_id (required).

iota_objects_by_ownerC

List objects owned by an address

Inputs: address (required), limit.

iota_transactionB

Fetch transaction details by digest

Inputs: digest (required).

iota_wallet_accountsB

List all derived wallet accounts

Inputs: no named parameters.

iota_wallet_addressB

Get the active wallet address

Inputs: no named parameters.

iota_wallet_approveC

Approve a pending signing request

Inputs: request_id (required).

iota_wallet_balanceB

Check IOTA balance for the active wallet

Inputs: no named parameters.

iota_wallet_pendingA

List pending signing requests awaiting approval

Inputs: no named parameters.

iota_wallet_rejectC

Reject a pending signing request

Inputs: request_id (required).

iota_wallet_sign_executeA

Sign and execute a transaction via the agent wallet (human-in-the-loop approval required)

Inputs: tx_bytes (required).

iota_wallet_switch_networkC

Switch between mainnet, testnet, and devnet

Inputs: network (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 18 tools

    Disambiguation4/5

    Most tools have distinct purposes with clear boundaries, such as iota_object for fetching object data versus iota_objects_by_owner for listing owner objects. However, there is some overlap between iota_wallet_approve and iota_wallet_reject, which both handle pending signing requests but with opposite actions, which could cause minor confusion in selection. The iota_cli tool is a catch-all for uncovered operations, which might overlap with other tools if not used carefully.

    Naming Consistency5/5

    The tool names follow a highly consistent pattern with a clear prefix 'iota_' and descriptive verb_noun combinations, such as iota_move_build, iota_wallet_balance, and iota_epoch_info. All tools use snake_case uniformly, and the naming conventions are predictable across the set, making it easy to understand the purpose and domain of each tool.

    Tool Count4/5

    With 18 tools, the count is slightly high but reasonable for a comprehensive IOTA agent server covering CLI operations, Move development, object queries, and wallet management. It provides a broad scope without being overwhelming, though it might benefit from slight consolidation in areas like wallet request handling to reduce complexity.

    Completeness5/5

    The tool set offers complete coverage for the IOTA agent domain, including CLI execution, Move package building and publishing, on-chain data queries (objects, transactions, epochs), and full wallet lifecycle management (accounts, balances, signing, network switching). There are no obvious gaps; agents can perform all essential operations from development to deployment and interaction with the blockchain.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers