chainlist-mcp
Provides access to EVM chain information from Chainlist.org, including RPC URLs, chain IDs, explorers, and native tokens like Ethereum, enabling AI agents to retrieve detailed blockchain data through the getChainById and getChainsByKeyword tools.
Returns structured blockchain data in Markdown format, with tabulated representations of RPC endpoints and explorers for improved readability.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@chainlist-mcpget details for chain ID 137"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
rpcandexplorersfor readability.
Related MCP server: wallet-inspector-mcp
Installation
Prerequisites
Python: Version 3.10 or higher.
uv: Recommended for managing Python projects and dependencies (install via
pip install uvor follow uv documentation).
Steps
Clone the Repository:
git clone https://github.com/kukapay/chainlist-mcp.git cd chainlist-mcpInstall Dependencies:
uv syncInstalling 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-mcpwith 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
limitmatching 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.
Available Tools
2 toolsgetChainByIdA
Retrieve information about a blockchain by its chain ID, returned as Markdown.
**Parameters**:
- `chain_id` (integer): The unique identifier of the blockchain (e.g., 1 for Ethereum Mainnet).
**Returns**:
- A Markdown-formatted string containing the chain's details (Name, Chain ID, Native Currency, TVL, RPC Endpoints, Explorers) or an error message if no chain is found.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it retrieves information, returns Markdown-formatted details or an error message if not found, and lists the specific details included (Name, Chain ID, etc.). However, it doesn't mention potential rate limits, authentication needs, or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by clearly labeled sections for parameters and returns. Every sentence adds value, with no redundant or unnecessary information, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema, no annotations), the description is complete. It explains what the tool does, when to use it, parameter details, return format, and error handling. No additional information is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must fully compensate. It provides comprehensive parameter semantics: it names the parameter ('chain_id'), specifies its type ('integer'), gives a clear example ('1 for Ethereum Mainnet'), and explains its purpose ('unique identifier of the blockchain'). This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Retrieve information about a blockchain') and resource ('by its chain ID'), distinguishing it from the sibling tool 'getChainsByKeyword' which searches by keyword rather than ID. The purpose is unambiguous and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('by its chain ID') and implies an alternative with the sibling tool name 'getChainsByKeyword', suggesting that tool should be used for keyword-based searches. This provides clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getChainsByKeywordA
Retrieve information about blockchains matching a keyword (case-insensitive partial match), returned as Markdown.
**Parameters**:
- `keyword` (string): The keyword or partial name of the blockchain to search for (e.g., 'eth' for Ethereum).
- `limit` (integer, optional): Maximum number of matching chains to return (default: 5).
**Returns**:
- A Markdown-formatted string listing up to `limit` matching chains with their details (Name, Chain ID, Native Currency, TVL, RPC Endpoints, Explorers) or an error message if no chains are found.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behaviors: case-insensitive partial matching, Markdown return format, default limit value, and error handling for no matches. It doesn't mention rate limits, authentication needs, or pagination, but covers essential operational traits adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. The parameter and return sections are well-structured with bullet points, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema coverage, the description provides good completeness: it explains purpose, parameters, return format, and error cases. However, it doesn't detail the exact structure of the Markdown output (e.g., field order or formatting specifics), leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate. It provides detailed semantics for both parameters: 'keyword' is explained with examples and matching behavior, and 'limit' specifies optionality, default value, and purpose. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Retrieve information about blockchains') and resource ('blockchains matching a keyword'), distinguishing it from the sibling tool 'getChainById' which presumably retrieves by ID rather than keyword. It specifies case-insensitive partial matching and Markdown formatting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (searching by keyword/partial name) and implies usage vs. 'getChainById' (keyword vs. ID). However, it doesn't explicitly state when NOT to use it or name alternatives beyond the sibling tool, missing explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
- First observed
getChainById - First observed
getChainsByKeyword
TDQS
The two tools have clearly distinct purposes: getChainById retrieves a specific chain by numeric ID, while getChainsByKeyword searches for chains by textual keyword with partial matching. There is no overlap in functionality or confusion about when to use each tool.
Both tools follow a consistent verb_noun pattern with 'get' as the verb and descriptive noun phrases (ChainById, ChainsByKeyword). They use consistent camelCase naming throughout, making them predictable and easy to understand.
With only two tools, the server feels minimal for a blockchain information service. While the tools cover basic lookup functionality, the scope seems thin compared to what might be expected for comprehensive chain data access (e.g., missing tools for listing all chains, filtering by other attributes, or getting trending/popular chains).
The tools provide core lookup capabilities by ID and keyword search, but there are notable gaps. Missing operations include listing all available chains, filtering by attributes like TVL or currency, and accessing additional chain metadata beyond the basic details provided. This limits the server's usefulness for broader blockchain exploration tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
AlicenseCqualityCmaintenanceAn MCP server providing unified access to blockchain operations, bridging, swapping, and crypto trading strategies for AI agents.37178GPL 3.0- AlicenseAqualityDmaintenanceAn MCP server that empowers AI agents to inspect any wallet’s balance and onchain activity across major EVM chains and Solana chain.39MIT
- AlicenseAqualityDmaintenanceAn MCP server that powers AI agents with indexed blockchain data from The Graph.3MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents real-time access to DeFi across multiple chains, enabling non-custodial crypto trading, portfolio queries, and transaction execution.147MIT
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/kukapay/chainlist-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server