MIDL MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MIDL_NETWORK | No | Network selection (mainnet or testnet) | testnet |
| MIDL_RPC_URL | No | Custom RPC endpoint (defaults to staging) | https://rpc.staging.midl.xyz |
| MIDL_PRIVATE_KEY | Yes | Private key for signing transactions |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| midl_get_network_infoA | Get current MIDL network information including chain ID, RPC URL, explorer URLs, and current block height. Use this to verify network connectivity and configuration. |
| midl_get_system_contractsA | Get all MIDL system contract addresses. These are predeployed contracts for core protocol functionality like bridging, staking, and runes. |
| midl_get_blockA | Get block information by number or latest. Returns block hash, timestamp, transaction count, and gas details. |
| midl_get_evm_balanceA | Get the EVM layer BTC balance. If no address provided, returns balance of connected wallet. Returns balance in wei and formatted BTC. |
| midl_get_btc_balanceA | Get the Bitcoin L1 balance. If no address provided, returns balance of connected wallet payment address. Returns confirmed and unconfirmed balances. |
| midl_get_token_balanceA | Get ERC20 token balance for an address. Returns balance along with token metadata (symbol, name, decimals). |
| midl_read_contractA | Read data from a smart contract. Requires contract address, ABI, and function name. Returns the function result. |
| midl_write_contractB | Execute a state-changing function on a smart contract via MIDL intention flow. For payable functions, include value parameter (in wei). |
| midl_get_logsB | Get event logs from the blockchain. Can filter by contract address and block range. Returns raw log data. |
| midl_verify_contractA | Verify contract source code on Blockscout explorer. Requires contract address, source code, and compiler settings. |
| midl_get_utxosA | Get unspent transaction outputs (UTXOs). If no address provided, uses connected wallet payment address. |
| midl_get_transactionA | Get Bitcoin transaction details by txid. |
| midl_get_transaction_receiptA | Get EVM transaction receipt including status, gas used, and logs. |
| midl_get_fee_rateA | Get current Bitcoin fee rates (sat/vB) for different confirmation targets. |
| midl_deploy_contractA | Deploy a smart contract. Three options:
|
| midl_transfer_evmB | Transfer native BTC on the EVM layer to another address. |
| midl_transfer_tokenB | Transfer ERC20 tokens to another address. |
| midl_send_raw_transactionA | Send a raw signed transaction to the network. Returns full transaction receipt. |
| midl_convert_btc_to_evmA | Derive EVM address from Bitcoin public key (compressed 33-byte or uncompressed 65-byte hex). In MIDL, each BTC key deterministically maps to one EVM address via keccak256. |
| midl_get_rune_erc20_addressA | Get the ERC20 contract address for a Rune. Each Rune has a deterministic ERC20 address derived via CREATE2. |
| midl_estimate_gasA | Estimate gas required for an EVM transaction before sending. |
| midl_get_runesA | Get all Runes held by a Bitcoin address. If no address provided, uses connected wallet ordinals address. |
| midl_get_rune_balanceA | Get the balance of a specific Rune. If no address provided, uses connected wallet ordinals address. |
| midl_transfer_runeA | Transfer Runes to another Bitcoin address. |
| midl_bridge_rune_to_erc20A | Bridge a Rune from Bitcoin layer to its ERC20 representation on EVM. The ERC20 tokens will be credited after validator confirmation (~10 minutes). |
| midl_bridge_erc20_to_runeA | Bridge an ERC20 token back to its native Rune on Bitcoin (withdrawal). The Runes will be credited to your Bitcoin address after validator confirmation. |
| midl_bridge_btc_to_evmA | Bridge BTC from the Bitcoin layer to the EVM layer. Creates a deposit transaction that sends BTC to the TSS multisig, which validators process to credit your EVM address. |
| midl_bridge_evm_to_btcA | Withdraw BTC from the EVM layer back to the Bitcoin layer. Creates a withdrawal transaction that validators process to send BTC to your specified Bitcoin address. |
| midl_get_bridge_statusA | Track the status of a BTC→EVM bridge transaction. Shows BTC confirmations, validator processing, and EVM credit status with helpful suggestions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/midl-ai/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server