Initia MCP
OfficialProvides a comprehensive set of EVM-compatible tools for interacting with Initia L2 rollups (MiniEVM), including contract deployment, function execution, event log querying, and transaction management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Initia MCPshow me my total portfolio balance across all Initia chains"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@initia/mcp
MCP server and CLI for the Initia blockchain ecosystem. Tools for querying chain state, managing assets, and executing transactions across Initia L1 and L2 rollups (MiniEVM, MiniMove, MiniWasm).
Two interfaces, one codebase:
@initia/mcp— MCP server (stdio transport, for Claude Desktop / LLM agents)initctl— CLI (for humans and scripts)
Quick Start
npm install
npm run buildCLI (initctl)
# Global install
npm install -g .
initctl chain list
# Or run directly without global install
node dist/cli.js chain list
# Or via npx (after npm install)
npx initctl chain listClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"initia": {
"command": "npx",
"args": ["-y", "@initia/mcp"],
// optional — see Environment Variables below
"env": {
"INITIA_KEY": "your mnemonic words ...",
"INITIA_NETWORK": "mainnet"
}
}
}
}Claude Code
claude mcp add initia -s user -- npx -y @initia/mcp
# optional — see Environment Variables below
claude mcp add initia -s user \
-e INITIA_KEY="your mnemonic words ..." \
-e INITIA_NETWORK=mainnet \
-- npx -y @initia/mcpCodex
Add to codex.json (or pass via codex --mcp-config codex.json):
{
"mcpServers": {
"initia": {
"command": "npx",
"args": ["-y", "@initia/mcp"],
// optional — see Environment Variables below
"env": {
"INITIA_KEY": "your mnemonic words ...",
"INITIA_NETWORK": "mainnet"
}
}
}
}Gemini CLI
Add to .gemini/settings.json:
{
"mcpServers": {
"initia": {
"command": "npx",
"args": ["-y", "@initia/mcp"],
// optional — see Environment Variables below
"env": {
"INITIA_KEY": "your mnemonic words ...",
"INITIA_NETWORK": "mainnet"
}
}
}
}CLI
# Query
initctl chain list
initctl token search --symbol USDC
initctl move view --module-address 0x1 --module-name coin --function-name balance --args '["0x1"]'
# Transaction (interactive confirm)
initctl bank send --to init1abc... --amount 1000000 --denom uinit
# Transaction (skip confirm)
initctl bank send --to init1abc... --amount 1000000 --denom uinit --yes
# JSON output (for scripts)
initctl token search --symbol INIT --json
# Shell completion
eval "$(initctl completion bash)" # bash
eval "$(initctl completion zsh)" # zsh
initctl completion fish | source # fishEnvironment Variables
Variable | Required | Default | Description |
| No | — | Mnemonic (12/24 words), hex private key ( |
| No |
| HD derivation index (for mnemonic/ledger) |
| No |
| Ledger app: |
| No |
|
|
| No |
| Skip confirmation for mutations (MCP only) |
| No |
|
|
| No |
| Use Scan API for enhanced chain data |
Without a signer key, read-only tools still work. Mutation tools return SIGNER_REQUIRED.
Tools (107)
Chain & Account (10)
Tool | Description |
| List all supported chains (L1 + L2 rollups) |
| Get chain VM type, features, and endpoints |
| Current on-chain gas prices (L1 or L2) |
| Account info and balances |
| Aggregated balances across all chains |
| Validate bech32 or EVM address format |
| Convert between bech32 and hex |
| Staking delegations, rewards, and unbonding |
| Pending staking rewards across validators |
| Simulate a transaction and estimate gas |
Token & Denom (7)
Tool | Description |
| Search tokens by symbol across all chains |
| List registered tokens on a chain |
| Token metadata (name, symbol, decimals) for any type |
| Token balance for native, ERC20, CW20, or Move FA |
| Format raw amount with decimals |
| Classify denomination type (native, ibc, evm, etc.) |
| On-chain bank module metadata |
Transaction (3)
Tool | Description |
| Get transaction by hash with VM-aware decoding |
| Search transactions (CometBFT query syntax) |
| Recent transactions for an address |
Validator & Staking (7)
Tool | Description |
| List validators with status and voting power |
| Detailed validator information |
| Network bonded/unbonded token totals |
| Current annual token provisions (inflation) |
| Delegate, undelegate, redelegate, or claim rewards |
| Vote on a governance proposal |
| List or get governance proposals |
Bridge (14)
Tool | Description |
| Find optimal cross-chain transfer route |
| Execute a cross-chain transfer via router |
| Track cross-chain transfer progress |
| List bridgeable L2 chains |
| List assets available for routing |
| Direct L1↔L2 OPInit deposit/withdraw |
| Query withdrawal status |
| OPInit bridge configuration |
| L1↔L2 token pair mappings |
| Token pair lookup |
IBC (3)
Tool | Description |
| List IBC channels or find channel between two chains |
| Compute IBC denomination hash from path |
| Send tokens via IBC |
Username (4)
Tool | Description |
| Resolve .init names ↔ addresses |
| Full .init username record |
| NFT metadata for .init username |
| Check username availability |
Move VM (14)
Tool | Description |
| List modules deployed at an address |
| Get module ABI (functions, structs) |
| List resources held by an address |
| Query a specific resource |
| Call a view function (read-only) |
| Execute an entry function |
| Deploy module or run script |
| Query a table entry |
| List DEX liquidity pool pairs |
| Denom ↔ metadata conversion |
| BCS serialization utilities |
EVM (10)
Tool | Description |
| Call a contract function (read-only) |
| Send a state-changing transaction |
| Deploy a contract |
| Query event logs |
| Get transaction receipt |
| Get block information |
| Get contract bytecode (Minievm only) |
| Read storage slot (Minievm only) |
| Decode revert reason |
| Decode event logs with ABI |
CosmWasm (12)
Tool | Description |
| Query a smart contract |
| Execute a smart contract function |
| Upload contract bytecode |
| Instantiate a contract |
| Migrate to a new code ID |
| Admin management |
| Contract/code metadata |
| List contracts from a code ID |
| Migration history |
| Raw key-value state |
VIP (16)
Tool | Description |
| Current VIP stage and timing |
| Lock-staking positions |
| Gauge voting power |
| Vesting schedules with reward breakdowns |
| Vote allocations per bridge |
| Claimable VIP rewards |
| Lock-staking management |
| Extend lock duration |
| Gauge voting |
| Reward claiming |
| LP + lock-delegate in one tx |
| Stableswap LP + lock-delegate |
Event Parsing (3)
Tool | Description |
| Parse Cosmos events from a transaction |
| Decode Move module events |
| Decode CosmWasm contract events |
Ledger (2)
Tool | Description |
| Check Ledger device connection |
| Display address on device for verification |
Bank (1)
Tool | Description |
| Send tokens (supports batch sends) |
Architecture
src/
├── index.ts # MCP server entry point (stdio)
├── cli.ts # CLI entry point (initctl)
├── tools/
│ ├── registry.ts # ToolRegistry — shared by MCP and CLI
│ ├── groups.ts # Group definitions (24 groups)
│ ├── index.ts # Side-effect imports for all tool files
│ ├── tx-executor.ts # Mutation flow (dry-run → simulate → broadcast)
│ ├── vm-guard.ts # VM compatibility checks
│ └── *.ts # Tool modules (registry.register() calls)
├── mcp/
│ └── adapter.ts # Registry → McpServer binding
├── cli/
│ ├── adapter.ts # Registry → citty commands + zodToCittyArgs
│ ├── format.ts # TTY / JSON output formatting
│ ├── confirm.ts # Mutation y/N prompt
│ └── completion.ts # Shell completion (bash/zsh/fish)
├── initia/
│ └── chain-manager.ts # Chain context creation, caching
├── config/ # Environment config, chain aliases
├── schemas/ # Shared Zod parameter schemas
├── errors.ts # Typed error codes
├── response.ts # Response serialization
└── logger.ts # Structured JSON loggingTools are registered once in a transport-agnostic ToolRegistry. The MCP and CLI adapters consume the same registry independently — adding a tool to a *.ts file automatically exposes it in both interfaces.
Smart Defaults
Validator by name: Tools accepting a validator address also accept the moniker name (case-insensitive, auto-resolved)
"me" address: Address parameters accept
"me","self","my", or"signer"to resolve to the configured signerVM guard: Contract tools enforce VM compatibility — calling
move_viewon a MiniEVM chain returns aWRONG_VMerror with suggested alternatives
Development
npm run dev # Run MCP server with tsx (hot reload)
npm test # Unit + integration tests
npm run test:smoke # E2E tests against testnet
npm run lint # ESLint + tsc --noEmitLicense
Apache-2.0
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/initia-labs/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server