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 |
Capabilities
Features and capabilities supported by this server
| 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
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