MantraChain MCP Server
A server that provides tools for interacting with MantraChain blockchain through the Model Context Protocol, allowing users to manage tokens, stake assets, query balances, and execute various blockchain operations.
README Documentation
MantraChain MCP Server
A Model Context Protocol (MCP) server for interacting with MantraChain (Cosmos SDK) blockchain. This server provides tools for sending tokens, delegating to validators, querying balances, and more using the MCP protocol.
Features
- Send tokens to other addresses (bank send)
- Delegate tokens to validators (staking)
- Query account balances
- Get validator information
- Sign and broadcast arbitrary transactions
- Configure mnemonic and network via environment variables
- Choose between Dukong testnet and Mainnet
- Supports both stdio and HTTP+SSE transport modes
Available Tools
Bank Operations
- bank-send: Send tokens to another address (supports multiple coins per transaction)
- get-balance: Get balance of an address (defaults to your own address if none provided)
- get_evm_balance: Get native token (OM) balance for an EVM address
- get_token_balance: Get ERC20 token balance for an address
- get_nft_balance: Get ERC721 NFT count for an address from a collection
- get_erc1155_balance: Get ERC1155 token balance for a specific token ID
- get_address_from_mnemonic: Get EVM address derived from mnemonic
Staking Operations
- delegate: Delegate/Stake tokens to a validator
- undelegate: Undelegate/Unstake tokens from a validator
- claim-rewards: Claim rewards for a specific validator
- get-validators: Get all validators
- get-delegations: Get current staking information for an address
- get-available-rewards: Get all available rewards for an address
Network Operations
- get-account-info: Get current account information
- get-block-info: Get block information from Cosmos (cometbft) RPC
- get-block-info-evm: Get block information from EVM RPC
- query-network: Execute a generic network query against chain APIs
IBC Operations
- ibc-transfer: Send tokens via IBC transfer
Smart Contract Operations
- cosmwasm-contract-query: Query a CosmWasm smart contract (read-only)
- cosmwasm-contract-execute: Execute a function on a CosmWasm contract (state-changing)
- read_evm_contract: Read data from an EVM contract (view/pure function)
- write_evm_contract: Write data to an EVM contract (state-changing function)
- deploy_evm_contract: Deploy a new EVM contract
- is_contract: Check if an address is a contract or EOA
DEX Operations
- dex-get-pools: Get all available liquidity pools from the DEX
- dex-find-routes: Find available swap routes between two tokens
- dex-simulate-swap: Simulate a token swap to get expected outcome without executing it
- dex-swap: Execute a token swap on the DEX with slippage protection
Transaction Operations
- sign-and-broadcast: Sign and broadcast a generic Cosmos transaction
- get_transaction: Get detailed information about a specific EVM transaction by hash
- get_transaction_receipt: Get EVM transaction receipt by hash
- estimate_gas: Estimate gas cost for a transaction
- transfer_om: Transfer native tokens (OM) via EVM
- transfer_erc20: Transfer ERC20 tokens to another address
- approve_token_spending: Approve another address to spend your ERC20 tokens
- transfer_nft: Transfer an ERC721 NFT to another address
- transfer_erc1155: Transfer ERC1155 tokens to another address
- transfer_token: Transfer ERC20 tokens to an address
Available Resources
- networks://all: JSON resource showing all available networks with their configuration
- openapi://{networkName}: OpenAPI/Swagger specification for the specified network
Running the Server
The server can run in two modes:
-
Stdio Mode (Default): Communicates over standard input/output. This is the default mode when running the server directly or via
npx
.# Using installed package mantrachain-mcp # Using npx npx -y mantrachain-mcp@latest
-
Streamable HTTP Mode: Runs an HTTP server on port 3000, communicating via Server-Sent Events (SSE). Activate this mode using the
--http
flag or the dedicated npm scripts.# Using installed package mantrachain-mcp --http # Using npx export MNEMONIC="YOUR_MNEMONIC" export CUSTOM_NETWORKS="YOUR_CUSTOM_NETWORKS_JSON" npx -y mantrachain-mcp@latest -- --http
MCP Configuration
Installing via Smithery
To install MantraChain MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @allthatjazzleo/mantrachain-mcp --client claude
To integrate with MCP client applications, add the server configuration to your MCP client configuration file:
{
"mcpServers": {
"mantrachain-mcp": {
"command": "npx",
"args": [
"-y",
"mantrachain-mcp@latest"
],
"env": {
"MNEMONIC": "YOUR_MNEMONIC",
"CUSTOM_NETWORKS": "{\"my-custom-net\":{\"rpcEndpoint\":\"https://rpc.custom-network.io\",\"apiEndpoint\":\"https://api.custom-network.io\",\"chainId\":\"my-custom-net-1\",\"prefix\":\"custom\",\"denom\":\"ucustom\",\"gasPrice\":\"0.01\",\"isMainnet\":false}}"
}
}
}
}
Connecting remote MCP server in cline:
{
"mcpServers": {
"mantrachain-mcp-sse": {
"url": "http://localhost:3000/sse",
"transportType": "sse"
}
}
}
If you build the package locally instead of globally
After building the package, you can run it directly from the build directory. Make sure to replace your_path
with the actual path to your build directory.
npm run build
Then, you can use the following configuration:
{
"mcpServers": {
"mantrachain-mcp": {
"command": "node",
"args": [
"your_path/mantrachain-mcp/build/index.js"
],
"env": {
"MNEMONIC": "YOUR_MNEMONIC"
}
}
}
}
Environment Variables
- MNEMONIC: Required. The mnemonic seed phrase for the wallet to use.
- CUSTOM_NETWORKS: Optional. JSON string containing additional network configurations.