Etherscan MCP
@xiaok/etherscan-mcp
Etherscan의 API 및 서비스와 상호 작용하기 위한 동적 MCP 서버입니다.
서버 실행
mcp-cli 로 테스트
서버를 테스트하고 디버깅하는 가장 빠른 방법은 fastmcp dev 사용하는 것입니다.
지엑스피1
이렇게 하면 터미널에서 MCP 서버를 테스트하고 디버깅하기 위해 mcp-cli 로 서버가 실행됩니다.
MCP Inspector 으로 검사하세요
또 다른 방법은 공식 MCP Inspector 사용하여 웹 UI로 서버를 검사하는 것입니다.
npx fastmcp inspect server.tsRelated MCP server: MCP Etherscan Server
자주 묻는 질문
Claude Desktop과 함께 사용하는 방법?
https://modelcontextprotocol.io/quickstart/user 가이드를 따르고 다음 구성을 추가하세요.
{
"mcpServers": {
"my-mcp-server": {
"command": "npx",
"args": ["tsx", "/PATH/TO/YOUR_PROJECT/src/index.ts"],
"env": {
"ETHERSCAN_API_KEY": "********"
}
}
}
}API 문서
https://docs.etherscan.io/etherscan-v2
지원 체인 목록: https://docs.etherscan.io/etherscan-v2/getting-started/supported-chains 모든 체인에서 모든 엔드포인트를 지원하는 것은 아닙니다. 지원 목록은 다음에서 확인하세요: https://forms.blockscan.com/public/grid/3E9QiN00NLhCQVibiP3Z-Bpqhmd7zGXsgapEKJupxiI
할 일
완전히 테스트하다
Available Tools
6 toolsget_chain_idB
Get the chain ID for a given chain name
| Name | Required | Description | Default |
|---|---|---|---|
| chain_name | Yes | The name of the chain to get the chain ID for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' data, implying a read-only operation, but doesn't clarify aspects like error handling (e.g., what happens if the chain name is invalid), performance (e.g., speed or rate limits), or output format. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
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 a single, clear sentence with no wasted words. It is front-loaded with the core purpose ('Get the chain ID'), making it easy to understand at a glance. Every part of the sentence contributes directly to explaining the tool's function.
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 (one parameter, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on behavioral traits, usage context, or output. For a simple lookup tool, this might suffice, but it doesn't provide a complete picture for an agent to use it effectively without additional inference.
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 input schema has 100% description coverage, with the parameter 'chain_name' fully documented. The description adds no additional semantic meaning beyond what the schema provides (e.g., it doesn't explain what a 'chain name' entails or provide examples). Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 ('Get') and resource ('chain ID'), and specifies the input ('for a given chain name'). However, it doesn't differentiate this tool from its siblings (like get_filtered_rpc_list or get_token_balance), which all appear to be blockchain-related queries but serve different functions.
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 no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or specific contexts for usage, nor does it reference sibling tools. The agent must infer usage based solely on the tool name and description without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filtered_rpc_listC
Get a filtered list of RPC endpoints for a given chain ID
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | The chain ID to get the RPC endpoints for | |
| isOpenSource | No | Filter by isOpenSource | |
| tracking | No | Filter by tracking (none, yes, limited, unspecified) |
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 states it's a read operation ('Get'), but doesn't cover aspects like rate limits, authentication needs, response format, or potential side effects. This leaves significant gaps in understanding how the tool behaves in practice.
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 a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded with the core action and resource, making it highly concise and well-structured.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what the filtered list returns, how results are formatted, or any behavioral constraints. For a tool with three parameters and no structured output information, more context is needed to fully understand its 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?
Schema description coverage is 100%, so the schema fully documents the three parameters. The description adds no additional meaning beyond implying filtering functionality, which is already clear from the schema's parameter descriptions. This meets the baseline for high schema coverage.
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 action ('Get a filtered list') and resource ('RPC endpoints for a given chain ID'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_chain_id' or 'get_token_balance', which operate on different resources, so it doesn't fully address sibling distinction.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for filtering, or compare to other tools that might retrieve similar data, leaving the agent without usage direction beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_balanceC
Get the balance of a specific token for a specific address
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | The chain ID | |
| token_address | Yes | The address of the token | |
| address | Yes | The address to check the balance for |
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 states the tool's function but omits critical details like whether it's a read-only operation, potential rate limits, error conditions (e.g., invalid addresses), or the format of the returned balance. This leaves significant gaps in understanding how the tool behaves.
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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action, making it easy to parse and understand quickly.
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 lack of annotations and output schema, the description is insufficient for a tool with three required parameters. It doesn't explain what the balance output looks like (e.g., numeric value, units) or address common use cases, leaving the agent with incomplete context for effective tool invocation.
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 input schema has 100% description coverage, clearly documenting all three parameters. The description adds no additional semantic context beyond what the schema provides, such as examples or constraints (e.g., address formats). This meets the baseline for high schema coverage but doesn't enhance parameter understanding.
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 action ('Get the balance') and resource ('of a specific token for a specific address'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_token_holders' or 'get_total_supply', which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives like 'get_token_holders' or 'get_total_supply'. It lacks context about prerequisites, such as whether the token must be deployed on the specified chain, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_holdersC
Get the token holders for a given token address
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | The chain ID | |
| token_address | Yes | The address of the token |
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 states what the tool does but lacks details on permissions, rate limits, pagination, or return format (e.g., list of holders with balances). This is inadequate for a tool that likely returns sensitive or complex data.
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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity of token holder data, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'token holders' means (e.g., addresses with balances), how results are structured, or any limitations, leaving significant gaps for the agent to handle.
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 100%, so the schema already documents both parameters ('chain_id' and 'token_address'). The description adds minimal value by mentioning 'token address' but doesn't provide additional context like format examples or constraints beyond the 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 ('Get') and resource ('token holders'), and identifies the key input ('token address'). However, it doesn't differentiate from sibling tools like 'get_token_holders_count' or 'get_token_balance', which reduces clarity about its unique function.
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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_token_holders_count' for counts or 'get_token_balance' for individual balances, leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_holders_countC
Get the number of token holders for a given token address
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | The chain ID | |
| token_address | Yes | The address of the token |
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 but only states the basic function. It doesn't mention whether this is a read-only operation, potential rate limits, error conditions, or what the return value looks like (e.g., integer count, formatted string). This leaves significant gaps for a tool that likely queries blockchain data.
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 a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple query tool, making it easy to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain the return type (e.g., integer, JSON object), error handling, or dependencies on sibling tools. For a blockchain query tool with potential complexity, this leaves the agent under-informed about behavioral expectations.
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 100%, so the input schema fully documents both parameters (chain_id and token_address). The description adds no additional meaning beyond implying these parameters are required, which the schema already states. This meets the baseline for high schema coverage.
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 action ('Get') and resource ('number of token holders for a given token address'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_token_holders' (which might return detailed holder data rather than just a count), leaving room for ambiguity.
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 no guidance on when to use this tool versus alternatives like 'get_token_holders' or 'get_token_balance'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_total_supplyB
Get the total supply of a token given its address
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | The chain ID | |
| token_address | Yes | The address of the token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states what the tool does but lacks behavioral details like whether it's a read-only operation, potential rate limits, error handling, or authentication needs. For a tool with no annotations, this is a significant gap in transparency.
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 a single, efficient sentence that directly states the tool's purpose without any wasted words. It's front-loaded and appropriately sized for its function.
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 moderate complexity (2 required parameters) and no annotations or output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavior, usage context, or return values, which are needed for full completeness in this context.
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 100%, with clear descriptions for both parameters (chain_id and token_address). The description adds no additional meaning beyond the schema, such as format examples or constraints. Baseline 3 is appropriate since the schema does the heavy lifting.
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 verb 'Get' and the resource 'total supply of a token', specifying it requires a token address. It distinguishes from siblings like get_token_balance (which gets balance for a specific address) or get_token_holders (which lists holders). However, it doesn't explicitly mention how it differs from siblings like get_token_holders_count, which might be related but not identical.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, such as when to choose this over other token-related tools like get_token_balance or get_token_holders. This leaves the agent without explicit usage instructions.
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.
6 tool updates
- First observed
get_chain_id - First observed
get_filtered_rpc_list - First observed
get_token_balance - First observed
get_token_holders - First observed
get_token_holders_count - First observed
get_total_supply
TDQS
Scored across 6 tools
Most tools have distinct purposes targeting different token-related queries, but get_token_holders and get_token_holders_count could be confused as they both retrieve holder information. The descriptions clarify the difference (list vs count), but the overlap in naming might cause misselection.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_chain_id, get_token_balance). The naming is highly predictable and readable throughout the set, with no deviations in style or convention.
With 6 tools, the count is reasonable for an Etherscan-focused server, covering chain info, RPC endpoints, and token data. It feels slightly thin for a full blockchain explorer, but it's well-scoped for the provided token and chain utilities.
The tools cover token balances, holders, and supply, plus chain and RPC info, but there are notable gaps for a broader Etherscan domain. Missing operations include transaction lookups, contract interactions, and gas/price queries, which are common in blockchain tools, limiting coverage to a narrow subset.
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
An MCP server that integrates with Discord to provide AI-powered features.
An MCP server that provides congressional transcripts
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn API server that implements the Model Completion Protocol (MCP) for Cryo blockchain data extraction, allowing users to query Ethereum blockchain data through any MCP-compatible client.1091MIT
- AlicenseBqualityDmaintenanceAn MCP server providing comprehensive access to Ethereum blockchain data across 72+ networks via Etherscan's V2 API. It enables users to check balances, track transactions, analyze smart contracts, and monitor gas prices through natural language.24211MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that bridges AI models with Ethereum blockchains via all JSON-RPC calls, enabling natural language queries for block numbers, balances, transactions, and smart contract data.2021MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that exposes blockchain data as native tools for AI agents, enabling read-only queries like wallet balances and token holdings on Ethereum, Polygon, and Base.MIT