Chainlist MCP Server
An MCP server that gives AI agents fast access to verified EVM chain information, including RPC URLs, chain IDs, explorers, and native tokens — sourced from Chainlist.org.
Features
- Efficient Data Fetching: Caches Chainlist API data to minimize requests.
- Flexible Search: Case-insensitive keyword matching using regex for
getChainsByKeyword
. - Structured Output: Markdown responses with tabulated
rpc
andexplorers
for readability.
Installation
Prerequisites
- Python: Version 3.10 or higher.
- uv: Recommended for managing Python projects and dependencies (install via
pip install uv
or follow uv documentation).
Steps
Clone the Repository:
git clone https://github.com/kukapay/chainlist-mcp.git cd chainlist-mcp
Install Dependencies:
uv sync
Installing to Claude Desktop:
Install the server as a Claude Desktop application:
uv run mcp install cli.py --name "Chainlist MCP"
Configuration file as a reference:
{ "mcpServers": { "Chainlist MCP": { "command": "uv", "args": [ "--directory", "/path/to/chainlist-mcp", "run", "main.py" ] } } }
Replace
/path/to/chainlist-mcp
with your actual installation path.
Usage
The server exposes two tools via the MCP protocol, accessible through MCP-compatible clients or the MCP Inspector.
Tools
getChainById
- Description: Retrieves details of a blockchain by its chain ID.
- Parameters:
chain_id
(integer): The unique identifier of the blockchain (e.g., 1 for Ethereum Mainnet).
- Returns: A Markdown string with chain details or an error message.
Example Prompt (in an MCP client):
Get the details for the blockchain with chain ID 1.
Example Response:
**Chain Details**
- **Name**: Ethereum Mainnet
- **Chain ID**: 1
- **Native Currency**: Ether (ETH, 18 decimals)
- **TVL**: 134376951329.85631
**RPC Endpoints**:
| URL | Tracking |
|----------------------------------------------|----------|
| https://eth.llamarpc.com | none |
| https://go.getblock.io/... | none |
...
**Explorers**:
| Name | URL | Standard |
|------------|----------------------------|----------|
| etherscan | https://etherscan.io | EIP3091 |
...
getChainsByKeyword
- Description: Searches for blockchains by keyword (case-insensitive partial match).
- Parameters:
keyword
(string): The keyword or partial name to search (e.g., 'eth').limit
(integer, optional): Maximum number of results (default: 5).
- Returns: A Markdown string listing up to
limit
matching chains or an error message.
Example Prompt (in an MCP client):
Find blockchains with 'eth' in their name, limit to 2 results.
Example Response:
**Matching Chains**
### Chain 1
**Chain Details**
- **Name**: Ethereum Mainnet
- **Chain ID**: 1
- **Native Currency**: Ether (ETH, 18 decimals)
- **TVL**: 134376951329.85631
**RPC Endpoints**:
| URL | Tracking |
|----------------------------------------------|----------|
| https://eth.llamarpc.com | none |
...
**Explorers**:
| Name | URL | Standard |
|------------|----------------------------|----------|
| etherscan | https://etherscan.io | EIP3091 |
...
### Chain 2
**Chain Details**
- **Name**: Ethereum Goerli
- **Chain ID**: 5
- **Native Currency**: Ether (ETH, 18 decimals)
- **TVL**: N/A
**RPC Endpoints**:
| URL | Tracking |
|----------------------------------------------|----------|
| https://goerli.infura.io/... | yes |
...
**Explorers**:
| Name | URL | Standard |
|------------|----------------------------|----------|
| etherscan | https://goerli.etherscan.io | EIP3091 |
...
License
This project is licensed under the MIT License. See the LICENSE file for details.