LabscoMCP early access ↗
BrainDAOMCP SERVER · OFFICIAL PROJECT

MCP-ABI

Load any EVM contract's ABI and every function becomes an MCP tool — reads for free, writes when you supply a signing key.

by BrainDAO ↗Chain State, Explorers & Contract Tooling✓ Official

LABSCO SUMMARY

Any contract, one server — the private key is the risk.

Generating tools from the ABI is the right abstraction: a new contract is a config change rather than a new integration, and the model gets real function names and validated arguments instead of a generic "call contract" tool. The line to draw is the wallet key. Without it this is a safe read-only explorer of contract state; with it, every state-changing function in the ABI becomes something a model can invoke against a real chain.

What it is

An MCP server that generates its own tool set from a contract ABI at runtime. Give it the ABI and address of any Ethereum-compatible smart contract and each function in that ABI becomes a callable tool, so a model can read contract state and execute transactions without anyone hand-writing an integration per contract.

What you get

  • Tools generated from the loaded ABI, named on the pattern {contractname}_{functionname} — for an ERC-20 token loaded as USDC that produces the likes of usdc_balanceOf, usdc_totalSupply, usdc_transfer and usdc_approve
  • View and pure functions become query tools that cost no gas and need no wallet; state-changing functions become execution tools that require one
  • One parameter schema across every generated tool — an args array holding the function arguments in order — so the model does not have to learn a different shape per function
  • Arguments validated against the ABI specification before the call goes out
  • Read responses returning the decoded result; write responses returning the transaction hash, block number, gas used and status
  • Any EVM-compatible chain, selected with a chain ID and an optional custom RPC endpoint

Requirements

Two settings are required: CONTRACT_ABI, the contract's ABI as a JSON string, and CONTRACT_ADDRESS, the deployed address. CONTRACT_NAME is optional and becomes the tool-name prefix. Write functions need WALLET_PRIVATE_KEY — a private key in your MCP client's configuration, which is the thing to think about before enabling them; leave it out and the server is read-only. CHAIN_ID and RPC_URL are optional and default to Fraxtal. Run it with npx @iqai/mcp-abi, or build from source with pnpm install && pnpm run build. ISC licensed. The author's own disclaimer applies: this executes real transactions, so test on a testnet before mainnet.

Setup effort

One command — npx @iqai/mcp-abi