lookup_contract
Look up a smart contract by address. Returns token info if available on CoinGecko.
Turn any verified smart contract's ABI into a working MCP server with one command.
LABSCO SUMMARY
The unit here is the generate command: hand it a contract address, get a server whose tools are that contract's functions, with the Solidity-to-JSON-Schema type mapping done for you. The safety default worth knowing is that state-changing calls simulate first and return a gas estimate before executing, and PRIVATE_KEY is only needed if you actually want it to sign and send.
Abi-to-mcp — a generator that reads a contract's ABI and emits a complete MCP server whose tools are that contract's functions, with events exposed as resources.
pip install abi-to-mcp and Python 3.10+. The generated server needs RPC_URL (an Ethereum RPC endpoint) to run; PRIVATE_KEY is optional and only for signing transactions, ETHERSCAN_API_KEY optional for fetching verified ABIs. Generate with abi-to-mcp generate <address> -o <dir>, install the output's requirements, and point your client at its server.py.
Follow the published steps — pip install abi-to-mcp
USE CASES
Generate a server from the contract's address and connect it; every function becomes a callable tool.
Ask about reserves or routes and let the generated read tools answer from the chain.
The generated write tools simulate first and return a gas estimate before anything is sent.
Query the events the generator exposed as resources.
Listed in project docs. Your client may show a different list.
lookup_contractLook up a smart contract by address. Returns token info if available on CoinGecko.
get_token_by_contractGet token metadata and market data by contract address.
get_priceGet current price for one or more cryptocurrencies. Returns price, market cap, 24h volume, and 24h change.
search_coinsSearch for coins, exchanges, or categories by name or symbol.
get_coin_detailGet detailed information for a specific cryptocurrency including description, links, and market data.
BEFORE YOU INSTALL
5 tools named in the project's documentation. These five are the tools of the project's hosted deployment at https://modelcontextprotocol.name/mcp/ucai. A server you generate yourself with abi-to-mcp has one tool per function of the contract you point it at instead.
Of the 2 documented clients, 1 runs the server on your machine and 1 connects to a hosted endpoint.
INSTALLATION
pip install abi-to-mcp
abi-to-mcp generate 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D -o ~/uniswap-server
cd ~/uniswap-server && pip install -r requirements.txthttps://modelcontextprotocol.name/mcp/ucaiAdd this hosted endpoint to your MCP client.
{
"mcpServers": {
"uniswap": {
"command": "python",
"args": [
"/Users/<YOUR_USERNAME>/uniswap-server/server.py"
],
"env": {
"RPC_URL": "https://eth.llamarpc.com"
}
}
}
}server.py is written by the generate step above — in the output folder you chose (/Users/YOU/uniswap-server in the example; the example generates a server for the Uniswap router contract; pass your own contract address to generate). This block does not set PRIVATE_KEY or ETHERSCAN_API_KEY. Add "PRIVATE_KEY" to its env only if the generated server should sign transactions, and export ETHERSCAN_API_KEY in your shell before running abi-to-mcp generate if the ABI is to be fetched from Etherscan.
{
"mcpServers": {
"ucai": {
"type": "http",
"url": "https://modelcontextprotocol.name/mcp/ucai"
}
}
}Connects to the project's hosted deployment and its five fixed lookup tools (contract lookup, token data, prices, coin search, coin details). It does not generate a server for your own contract — for that, use the generate steps on this page.