MCP Etherscan Server
Provides access to blockchain data on the Abstract network via Etherscan's V2 API, including tools for checking balances, transaction history, and contract details.
Enables retrieval of BNB Chain blockchain information such as account balances, transaction logs, and smart contract source code through the Etherscan V2 API.
Integrates comprehensive Ethereum mainnet data tools, allowing for balance checking, transaction history tracking, ENS resolution, and gas price monitoring via the Etherscan V2 API.
Allows interaction with Fantom network data using the Etherscan V2 API, supporting tools for native token balances, token transfers, and block details.
Provides blockchain data tools for the Optimism Layer 2 network, including account activity, token portfolio analysis, and contract verification via the Etherscan V2 API.
Facilitates access to Polygon blockchain data through the Etherscan V2 API, enabling users to track ERC20/ERC721 transfers, view top token holders, and query contract events.
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., "@MCP Etherscan ServerShow me the token portfolio for vitalik.eth"
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.
MCP Etherscan Server
An MCP (Model Context Protocol) server that provides Ethereum blockchain data tools via Etherscan's V2 API. Supports 72+ blockchain networks with a single API key, including Ethereum, Arbitrum, Base, Polygon, Optimism, and many more.
Features
Core Features
Multi-Chain Support: 72+ networks (Ethereum, L2s, sidechains, testnets)
Balance Checking: Get native token balance for any address
Transaction History: View recent transactions with detailed information
Token Transfers: Track ERC20/ERC721/ERC1155 token transfers
Contract Tools: Fetch ABIs, source code, verify contracts
Gas Prices: Monitor current gas prices across networks
ENS Resolution: Resolve Ethereum addresses to ENS names
V2 API Features (New)
Beacon Withdrawals: Track ETH 2.0 staking withdrawals
Token Info: Get comprehensive token metadata and social links
Token Holders: View top holders for any token
Token Portfolio: Get all token balances for an address
Event Logs: Query contract events with advanced filtering
Network Stats: ETH supply, price, market cap data
Daily Statistics: Historical transaction counts
Related MCP server: Etherscan MCP
Supported Networks
72+ networks including:
Category | Networks |
Ethereum | Mainnet, Sepolia, Holesky, Hoodi |
Layer 2 | Arbitrum, Optimism, Base, zkSync, Scroll, Linea, Mantle, Blast |
Sidechains | Polygon, BNB Chain, Avalanche, Fantom, Gnosis |
Emerging | Berachain, Sonic, Taiko, Unichain, World, Abstract |
See docs/api/NETWORK_SUPPORT.md for the complete list.
Prerequisites
Node.js >= 18
An Etherscan API key (get one at https://etherscan.io/apis)
One API key works for all 72+ networks!
Installation
Clone the repository:
git clone [your-repo-url]
cd mcp-etherscan-serverInstall dependencies:
npm installCreate a
.envfile in the root directory:
ETHERSCAN_API_KEY=your_api_key_hereBuild the project:
npm run buildRunning the Server
Start the server:
npm startThe server will run on stdio, making it compatible with MCP clients like Claude Desktop.
How It Works
This server implements the Model Context Protocol (MCP) to provide tools for interacting with Ethereum blockchain data through Etherscan's API. Each tool is exposed as an MCP endpoint that can be called by compatible clients.
Available Tools (24 Total)
Account Tools
Tool | Description |
| Get native token balance for any address |
| Recent transactions with timestamps and values |
| ERC20 token transfers with token details |
| Internal transactions with trace details |
| Blocks mined by an address with rewards |
| ETH 2.0 staking withdrawals |
Token Tools (V2)
Tool | Description |
| Comprehensive token metadata and social links |
| Top token holders with balances |
| All token balances for an address |
Contract Tools
Tool | Description |
| Contract ABI in JSON format |
| Verified source code and metadata |
| Creator address and deployment tx |
| Submit contract for verification |
| Check verification status |
| Verify proxy contract |
| Recently verified contracts |
Block Tools
Tool | Description |
| Block info (hash, gas, transactions) |
| Block and uncle rewards |
Network Tools (V2)
Tool | Description |
| Current gas prices in Gwei |
| ETH supply, price, market cap |
| Daily transaction statistics |
| Event logs with topic filtering |
| All 72+ supported networks |
Utility Tools
Tool | Description |
| Resolve address to ENS name |
Using with Claude Desktop
To add this server to Claude Desktop:
In Claude Desktop settings, add this server configuration:
{ "mcpServers": { "etherscan": { "command": "node", "args": ["/path/to/mcp-etherscan-server/build/index.js"], "env": { "ETHERSCAN_API_KEY": "your_api_key_here" } } } }The Etherscan tools will now be available in your Claude conversations
Example Usage in Claude
Check the balance of 0x742d35Cc6634C0532925a3b844Bc454e4438f44e on EthereumShow me recent transactions for vitalik.eth on mainnetGet token holders for USDC on PolygonList all supported networksSpecifying Networks
All tools support a network parameter. You can use:
Network slug:
"ethereum","polygon","arbitrum","base"Chain ID:
1,137,42161,8453
Check balance of 0x... on arbitrum
Check balance of 0x... with chainId 42161Documentation
Comprehensive API documentation is available in the docs/ directory:
API Index - Overview of all endpoints
Network Support - Complete list of 72+ networks
Development
Project Structure
src/
├── index.ts # Entry point
├── server.ts # MCP server with 24 tools
├── config/
│ └── networks.ts # 72+ network configurations
├── api/
│ └── v2-request-builder.ts # V2 API request builder
├── services/
│ └── etherscanService.ts # Etherscan API service
├── types/
│ └── index.ts # TypeScript type definitions
└── __tests__/ # Test suitesBuilding
npm run build # Compile TypeScript
npm run test # Run tests
npm start # Start serverAdding New Networks
Networks are configured in src/config/networks.ts. The V2 API automatically handles the chainid parameter.
V2 API Migration
This server uses Etherscan's V2 API which:
Uses a unified endpoint:
https://api.etherscan.io/v2/apiRequires
chainidparameter for all requestsSupports 72+ networks with a single API key
Deprecates the old per-network API URLs
See Etherscan V2 Migration Guide for details.
License
MIT License - See LICENSE file for details
Available Tools
24 toolscheck-balanceA
Check the ETH balance of an Ethereum address across 70+ supported networks
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum address (0x format) | |
| network | No | Network name (e.g., 'ethereum', 'arbitrum', 'base') or chain ID number (default: ethereum mainnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions support for many networks but omits details like return format (e.g., wei vs. ether), error handling for invalid addresses, or any rate limits.
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, front-loaded sentence with no extraneous words. It conveys the core purpose efficiently.
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 output schema, the description should ideally explain what the tool returns (e.g., balance in wei). It also lacks details on optional parameters or default behavior. However, for a simple balance check, it is minimally adequate.
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 covers 100% of parameters with descriptions. The description adds the context of '70+ supported networks' beyond the schema's default network listing, but this is a minor addition. Baseline is 3 due to 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 uses a specific verb ('Check') and resource ('ETH balance of an Ethereum address'), and it explicitly distinguishes itself from sibling tools by highlighting support for '70+ supported networks', which none of the siblings mention.
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 implies when to use the tool (to check ETH balance), but it does not provide explicit guidance on when not to use it or mention any alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check-verificationB
Check the status of a contract verification request
| Name | Required | Description | Default |
|---|---|---|---|
| guid | Yes | GUID from verification request | |
| network | No | Network name or chain ID (default: ethereum mainnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It states it 'check the status' implying a read operation, but lacks details on idempotency, authentication, rate limits, or what happens with invalid GUIDS.
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?
Extremely concise at one sentence, front-loading the key action. Could include slightly more context without becoming verbose.
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?
The description fails to explain how this tool fits into the verification workflow (e.g., that the GUID comes from verify-contract) or what the response contains (e.g., status values like 'verified', 'failed'). No output schema provided.
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 coverage is 100%, so baseline is 3. The description does not add additional meaning beyond the schema's parameter descriptions.
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 ('check') and the resource ('status of a contract verification request'), distinguishing it from sibling tools like 'verify-contract' which initiate verification.
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?
No guidance on when to use this tool versus alternatives (e.g., verify-contract). Does not mention that it should be used after submitting a verification request or that it is a polling operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-beacon-withdrawalsB
Get beacon chain withdrawals for an Ethereum address (ETH 2.0 staking withdrawals)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| offset | No | Number of results per page | |
| address | Yes | Ethereum address | |
| network | No | Network name or chain ID | |
| endBlock | No | Ending block number | |
| startBlock | No | Starting block number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It only states the action without mentioning pagination behavior, rate limits, authentication needs, or the response structure. The tool likely returns a list of withdrawals, but no details are given.
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 sentence that is both concise and informative for its purpose. There are no redundant words or unnecessary elaboration.
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 that the tool has 6 parameters (including pagination and filtering) and no output schema or annotations, the description is too brief. It fails to explain how pagination works, the meaning of startBlock/endBlock, or the expected format of the output. A more complete description would clarify these aspects.
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 coverage is 100% with clear parameter descriptions. The description adds minimal value beyond the schema; it only mentions the function's subject. Baseline score of 3 is appropriate as the description does not enhance understanding of the parameters.
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 specifies the verb ('Get'), the resource ('beacon chain withdrawals'), and the context ('for an Ethereum address (ETH 2.0 staking withdrawals)'. This uniquely identifies the tool's purpose and distinguishes it from sibling tools like get-transactions or get-block-details.
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, such as when an address has staking withdrawals or when other ETH-related queries might be more appropriate. It lacks any mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-block-detailsC
Get detailed information about a specific block
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network name or chain ID (default: ethereum mainnet) | |
| blockNumber | Yes | Block number to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as read-only nature, side effects, authentication requirements, or rate limits. It only states the core action.
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 concise sentence that is front-loaded and to the point, but it could be slightly more informative without being verbose.
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 output schema, the description does not explain what 'detailed information' includes, leaving the agent uncertain about return values. It adequately covers the input but not the output.
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 coverage is 100% with descriptions for both parameters. The tool description adds no extra meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
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 'Get detailed information about a specific block' clearly states the verb and resource, but 'detailed information' is vague and doesn't distinguish it from siblings like 'get-block-reward' or 'get-beacon-withdrawals'.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of when-not or context for choosing among sibling tools like 'get-block-reward' or 'get-beacon-withdrawals'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-block-rewardC
Get reward information for a specific block
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network name or chain ID (default: ethereum mainnet) | |
| blockNumber | Yes | Block number to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry this burden. It only states the action without disclosing behavioral traits like read-only nature, response shape, or any restrictions.
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?
A single, direct sentence with no fluff. While minimal, it is appropriately concise for a simple query tool.
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?
With no output schema and low description detail, the agent lacks information about return structure or field semantics. The description is too sparse given the sibling tools and potential complexity of reward data.
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 coverage is 100% with descriptions for both parameters. The tool description adds no extra meaning beyond the schema, meeting the baseline for high 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 verb 'get' and the resource 'reward information for a specific block', distinguishing it from sibling tools like get-block-details which likely provide broader block data.
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?
No guidance is provided on when to use this tool vs alternatives like get-block-details or get-beacon-withdrawals. The context signals and sibling list exist but description offers no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-contract-abiB
Get the ABI for a smart contract
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Contract address (0x format) | |
| network | No | Network name or chain ID (default: ethereum mainnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description only states the action; it does not mention read-only nature, error conditions, or any side effects. This leaves the agent unaware of important behavioral traits.
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, well-formed sentence with no extraneous information. Every word earns its place.
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?
For a tool with 2 parameters and no output schema, the description is too minimal. It does not hint at the return format (likely JSON ABI), nor does it help the agent choose among 24 sibling tools. More context 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?
Both parameters are fully described in the input schema (100% coverage). The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.
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), the resource (ABI), and the subject (a smart contract). This is specific and distinct from sibling tools like get-contract-source which retrieves source code.
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?
No guidance is given on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use, or how it differs from related tools like get-contract-source or get-contract-creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-contract-creationC
Get creation information for a specific contract address
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Contract address (0x format) | |
| network | No | Network name or chain ID (default: ethereum mainnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as error handling, rate limits, or the nature of the creation info returned. The description carries the full burden but only gives a minimal statement.
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 sentence, which is concise and front-loaded with the key verb and resource, but it lacks any additional structure or elaboration.
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?
The tool has no output schema and the description does not explain what the creation information includes or any other contextual details, making it incomplete for an agent to fully understand the tool's behavior.
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?
Despite 100% schema coverage, the description adds no meaning beyond what the schema already provides. The 'address' parameter is implied but the 'network' parameter is not mentioned, leaving its significance unclear.
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 'creation information for a specific contract address', which distinguishes it from sibling tools that deal with other contract aspects like ABI or source code.
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-contract-abi or get-contract-source, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-contract-sourceA
Get the source code and metadata for a verified smart contract
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Contract address (0x format) | |
| network | No | Network name or chain ID (default: ethereum mainnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fails to disclose behavioral details such as what happens if the contract is not verified, rate limits, or the format of the returned data. It only states it 'gets' the source code and metadata, which is minimal.
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 unnecessary words. It is front-loaded and efficient.
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 output schema, the description mentions 'source code and metadata' but lacks details on the specific fields or structure. It does not address the requirement for the contract to be verified or error handling. Some context is provided but incomplete.
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 baseline is 3. The description does not add any extra meaning beyond the schema; both parameters are already described in the schema. No additional context is provided.
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 'source code and metadata for a verified smart contract'. It is specific and distinguishes the tool from siblings like get-contract-abi (which returns ABI only) and check-verification (which checks verification status).
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 implies the tool is for verified contracts but does not explicitly state when to use it versus alternatives like get-contract-abi or check-verification. No guidance is given on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-daily-statsB
Get daily transaction count statistics for a date range
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order | |
| endDate | Yes | End date in YYYY-MM-DD format | |
| network | No | Network name or chain ID | |
| startDate | Yes | Start date in YYYY-MM-DD format |
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 does not explicitly state that this is a read-only operation, nor does it mention any behavioral traits like rate limits, authentication requirements, or data scope (e.g., global vs per user). The word 'Get' implies read-only, but clarity is lacking.
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, concise sentence that states the purpose without any unnecessary words. It is well front-loaded.
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?
The description is minimal and covers the core purpose, but given the lack of an output schema, it does not describe the return structure (e.g., an array of daily counts, totals). For a stats tool, this could be more complete to guide the agent on expected output.
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 already documents all parameters. The description reinforces the date range context but adds no new semantic information beyond what the schema provides. Baseline 3 is appropriate.
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 uses a specific verb 'Get' and resource 'daily transaction count statistics', with clear scope 'for a date range'. This clearly distinguishes it from sibling tools like 'get-transactions' (individual transactions) and 'get-network-stats' (network-wide metrics).
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?
No explicit guidance on when to use this tool versus alternatives. The description only states what it does, without mentioning when not to use or recommending siblings for specific cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-ens-nameA
Get the ENS name for an Ethereum address (mainnet only)
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum address (0x format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'get ENS name' without disclosing that address must have a reverse record, rate limits, or error handling. Minimal behavioral info.
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?
Single sentence with no fluff. Perfectly front-loaded and concise for a simple tool.
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?
Adequate for a one-param, no-output-schema tool, but lacks explanation of return value format or behavior when no ENS name exists. Sufficient but not thorough.
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 coverage is 100% with a clear pattern and description for 'address'. The description adds no extra meaning beyond the schema, meeting baseline for high 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?
Description clearly states the action (get ENS name) and resource (Ethereum address), with the constraint 'mainnet only', which distinguishes it from other blockchain-related sibling tools.
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?
Implied usage: use when needing to resolve an ENS name from an address. No explicit guidance on when not to use or alternatives among 23 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-gas-pricesB
Get current gas prices in Gwei
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network name or chain ID (default: ethereum mainnet) |
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 only states 'Get current gas prices in Gwei', but does not disclose how the data is fetched, whether it is cached, rate limits, or error handling. The behavioral transparency is minimal.
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 concise sentence that earns its place by stating the purpose. However, it could include more detail without losing conciseness, such as mentioning the possible return format.
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 output schema, the description should hint at the return value (e.g., whether it returns a single number or an object with slow/average/fast prices). It lacks this context, making it incomplete for an agent to understand the output.
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 already fully describes the single parameter ('network' with default). The description adds no additional meaning about the parameter beyond what the schema provides. With 100% coverage, baseline is 3.
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 that the tool retrieves current gas prices in Gwei, using a specific verb and resource. It distinguishes itself from sibling tools like 'check-balance' or 'get-network-stats' by focusing on gas prices.
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?
There is no guidance on when to use this tool versus alternatives, such as 'get-network-stats' which might include gas prices. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-internal-transactionsB
Get internal transactions for an Ethereum address
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| offset | No | Number of results per page (max 100) | |
| address | Yes | Ethereum address (0x format) | |
| network | No | Network name or chain ID (default: ethereum mainnet) | |
| endBlock | No | Ending block number | |
| startBlock | No | Starting block number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose any behavioral traits such as side effects, authentication needs, or rate limits beyond the basic read operation.
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?
Single sentence, front-loaded with the core purpose. No wasted words.
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?
With 6 parameters and no output schema or annotations, the description is too brief. It does not explain internal transactions, pagination, or return format.
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 already documents all parameters. The description adds no additional parameter meaning beyond the one-liner.
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), resource (internal transactions), and scope (for an Ethereum address). It distinguishes from siblings like 'get-transactions' by specifying 'internal'.
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?
No guidance on when to use this tool versus alternatives like 'get-transactions' or 'get-token-transfers'. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-logsB
Get event logs filtered by address and/or topics with advanced filtering options
| Name | Required | Description | Default |
|---|---|---|---|
| topic0 | No | Event signature hash (first topic) | |
| topic1 | No | First indexed parameter | |
| topic2 | No | Second indexed parameter | |
| topic3 | No | Third indexed parameter | |
| address | No | Contract address to filter logs | |
| network | No | Network name or chain ID | |
| toBlock | No | End block number | |
| fromBlock | No | Start block number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the behavioral disclosure burden. It indicates a read operation but omits details about permissions, rate limits, pagination, or result format. This leaves the agent underinformed.
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, focused sentence with no extraneous words. It efficiently communicates the core purpose.
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 8 parameters and no output schema or annotations, the description is minimal. It covers the high-level purpose but lacks details on return values, filtering behavior, or usage patterns, making it only moderately complete.
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 coverage is 100% with all parameters described, so the baseline is 3. The description adds 'advanced filtering options' but provides no additional meaning beyond what the schema already conveys.
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 'event logs', and specifies filtering by address and/or topics. It distinguishes itself from sibling tools like 'get-transactions' or 'get-block-details' which operate on different data types.
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, or any prerequisites. It simply states what it does without context for selecting it over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-mined-blocksB
Get blocks mined by an address
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| offset | No | Number of results per page (max 100) | |
| address | Yes | Ethereum address (0x format) | |
| network | No | Network name or chain ID (default: ethereum mainnet) | |
| endBlock | No | Ending block number | |
| blockType | No | Type of blocks to query | blocks |
| startBlock | No | Starting block number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral transparency. It merely states the action without disclosing behavior such as pagination, error handling, return format, or data freshness. The schema contains parameters, but the description itself is too minimal.
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 very concise at one sentence, front-loading the core action. It is efficient with no wasted words, though it could include slightly more detail without losing conciseness.
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 has 7 parameters and no output schema or annotations, the description is too brief to be complete. An agent cannot fully understand the tool's capability (pagination, block range, network selection) without reading the entire schema.
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 each parameter is described. The description adds no additional meaning beyond the schema, which is acceptable. It does not explain parameter relationships or usage, keeping the score at baseline 3.
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 'Get blocks mined by an address' uses a specific verb and resource, clearly stating the tool's function. It distinguishes itself from sibling tools like get-block-details and get-block-reward by focusing on blocks mined by a specific address.
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-block-details or get-transactions. It lacks any context about prerequisites, appropriate scenarios, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-network-statsA
Get network statistics including ETH supply, ETH2 staking, price, and market cap
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network name or chain ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only states the tool gets statistics, but does not mention any side effects, authentication needs, rate limits, or response characteristics. This is insufficient for a tool with no annotations.
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, front-loaded sentence that efficiently conveys the tool's purpose with specific examples. No redundant information.
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 output schema and one simple parameter, the description is partially complete. It lacks details on acceptable network values and output format, but the context of sibling tools may help the agent infer expected behavior.
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 covers 100% of the single parameter with a description. The tool description does not add additional meaning beyond 'network name or chain ID', so it meets the baseline for high schema coverage without extra value.
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 retrieves network statistics, listing specific data points (ETH supply, staking, price, market cap). This differentiates it from sibling tools that focus on other entities like blocks or transactions.
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?
No explicit guidance on when to use this tool versus alternatives like get-daily-stats or list-networks. The description implies it is for network-level statistics, but lacks direct comparison or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-token-holdersB
Get top token holders for an ERC20 token with their balances and ownership percentage
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| offset | No | Number of results per page | |
| network | No | Network name or chain ID | |
| contractAddress | Yes | Token contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as rate limits, pagination behavior, data freshness, or what happens if the token has no holders. Minimal disclosure beyond the action.
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?
Single sentence, 12 words, front-loaded with the main purpose. No unnecessary words or repetition.
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?
Despite 4 parameters and no output schema, the description does not explain the ordering, pagination behavior, definition of 'top', or return value structure. Insufficient for a tool with multiple parameters.
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 coverage is 100%, and the schema already documents each parameter well. The description adds no extra meaning or context about how parameters affect results (e.g., pagination, network selection).
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', the resource 'top token holders', and specifies the output fields (balances and ownership percentage). It distinguishes from sibling tools like get-token-info and get-token-transfers.
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?
No guidance on when to use this tool versus alternatives, no mention of prerequisites or typical use cases. The description lacks exclusion criteria or context about what 'top' means.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-token-infoA
Get comprehensive information about an ERC20/ERC721/ERC1155 token including metadata and social links
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network name or chain ID | |
| contractAddress | Yes | Token contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. The description implies a read-only operation ('get') but does not explicitly state side effects, authentication needs, or rate limits. It adds minimal behavioral context beyond the verb itself.
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, well-structured sentence that immediately conveys the tool's purpose without unnecessary words. Every word earns its place.
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?
There is no output schema, so the description should compensate by detailing the return structure. It mentions 'metadata and social links' but not specific fields. For a tool with many siblings, this description is adequate but not fully complete for an agent to understand the exact output format.
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%, with both parameters having descriptions. The tool description adds that the response includes 'metadata and social links' but does not elaborate on parameter meaning. The schema already covers parameter details, so the description provides marginal additional value.
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 retrieves comprehensive information about ERC20/ERC721/ERC1155 tokens, including metadata and social links. It uses a specific verb and resource, distinguishing it from sibling tools like get-token-holders or get-token-transfers.
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 does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, it lacks 'when to use' or 'when not to use' instructions, which would aid an agent in selecting the correct tool among the many get-* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-token-portfolioA
Get all token balances for an address across ERC20/ERC721/ERC1155 standards
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum address | |
| network | No | Network name or chain ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden but only states the tool returns balances across standards. It does not disclose limits, whether it includes zero balances, pagination, support for native ETH, or performance implications, leaving significant gaps.
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?
A single, front-loaded sentence that conveys the tool's purpose without unnecessary words. Every element earns its place.
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 parameter count (2) and lack of output schema/annotations, the description is adequate but not complete. It does not address response format, error handling, or practical usage details for a portfolio retrieval tool.
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 coverage is 100% (both parameters described). The description adds value beyond the schema by specifying 'across ERC20/ERC721/ERC1155 standards', clarifying the scope. However, it does not elaborate on parameter constraints or usage nuances beyond schema defaults.
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 'Get all token balances for an address across ERC20/ERC721/ERC1155 standards' clearly specifies the action (get balances) and the resource (address) with explicit token standards, differentiating it from siblings like get-token-holders or get-token-info.
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 (e.g., get-token-transfers, get-token-info). It implies usage for portfolio retrieval but lacks explicit when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-token-transfersC
Get ERC20 token transfers for an Ethereum address
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of transfers to return (max 100) | |
| address | Yes | Ethereum address (0x format) | |
| network | No | Network name or chain ID (default: ethereum mainnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral details beyond the basic function. No annotations are provided, so the description should cover aspects like read-only nature, rate limits, or authentication requirements, but it does not.
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 that gets straight to the point. It is appropriately concise, though it could be slightly expanded to include key caveats like pagination limits.
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?
Without an output schema, the description should describe the return format (e.g., list of transfers with fields like token, amount, block). It does not, leaving the agent without knowledge of what data is returned.
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?
Parameter schema coverage is 100%, so the schema already documents all parameters. The description adds no additional context or constraints beyond what the schema provides. Baseline of 3 is appropriate.
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 it retrieves ERC20 token transfers for a given Ethereum address. It distinguishes from sibling tools like 'get-transactions' (native transactions) and 'get-token-info' (token metadata). However, it does not specify direction (incoming/outgoing) or pagination behavior, leaving some 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?
No guidance is provided on when to use this tool versus alternatives like 'get-token-portfolio' or 'get-token-info'. There is no mention of prerequisites, common use cases, or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-transactionsC
Get recent transactions for an Ethereum address across 70+ supported networks
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of transactions to return (max 100) | |
| address | Yes | Ethereum address (0x format) | |
| network | No | Network name or chain ID (default: ethereum mainnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits such as whether pending transactions are included, rate limits, or authentication needs. It only mentions 'recent' and '70+ networks', lacking details on API key requirements, pagination, or result ordering.
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 sentence with minimal waste. It is front-loaded with the key action but lacks structured information. It could be improved by separating the purpose from supporting details like the number of networks.
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 and the lack of an output schema, the description is incomplete. It does not describe the return format (e.g., fields in each transaction), which is essential for agent understanding. The tool's context among many siblings adds to the need for more detail.
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% coverage, so each parameter has a description. The tool description adds no additional meaning beyond the schema. For example, it does not clarify that 'limit' is optional or that 'network' defaults to Ethereum mainnet, which the schema already covers.
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 identifies the action ('Get recent transactions') and specifies the resource ('Ethereum address'). It also distinguishes this tool from siblings like check-balance or get-token-transfers by focusing on general transactions. However, 'recent' is somewhat ambiguous without a specific time range.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or exclusions. The description simply states what the tool does without contextualizing its appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-verified-contractsC
Get recently verified contracts
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | Page number for pagination | |
| offset | No | Number of results per page (max 100) | |
| sortBy | No | Sort by field |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not mention that this is a read-only operation, any required permissions, rate limits, or the nature of the response. The description is minimal and does not add behavioral context beyond the name.
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 sentence with no wasted words. It is concise and front-loaded. However, it could be slightly expanded without losing conciseness to improve clarity.
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 3 parameters, no output schema, and no annotations, the description is insufficient. It does not explain pagination behavior, sort order, or response format. The agent lacks important context to effectively use the tool.
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 coverage is 100%, so the input schema already describes all parameters with descriptions. The description adds no additional meaning to the parameters, meeting the baseline of 3.
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 'Get recently verified contracts' clearly identifies the action (get) and resource (verified contracts). It distinguishes from sibling tools like 'get-transactions' or 'get-logs', but could be more specific about what 'recently' means and that it returns a paginated list.
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?
No guidance is provided on when to use this tool vs. alternatives. For example, it does not distinguish from 'get-contract-source' or 'verify-contract'. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-networksA
List all supported blockchain networks (70+) with their chain IDs and native currencies
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter networks by type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must disclose behavior. It states the tool lists networks and mentions the filter parameter, but omits details like output format, pagination, or side effects. Adequate for a simple read-only list.
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?
A single sentence that front-loads the verb and resource, with no extraneous words. Every word earns its place.
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 low complexity (one optional param, no output schema), the description is fairly complete: it specifies what is returned (network names, chain IDs, native currencies) and the scope (70+ networks). Slightly lacking in output format details, but acceptable.
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 coverage is 100% with a well-described enum parameter. The description does not add meaning beyond the schema, meeting the baseline expectation.
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 lists all supported blockchain networks (70+) and specifies included details (chain IDs, native currencies). It has a specific verb ('List') and resource, distinguishing it from sibling tools like get-network-stats.
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?
No guidance is provided on when to use this tool versus alternatives such as get-network-stats. The description lacks any mention of usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify-contractB
Submit a contract for source code verification
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network name or chain ID (default: ethereum mainnet) | |
| evmVersion | No | EVM version | |
| sourceCode | Yes | Contract source code | |
| licenseType | No | License type | |
| contractName | Yes | Contract name | |
| optimization | No | Whether optimization was used | |
| compilerVersion | Yes | Compiler version (e.g. v0.8.0) | |
| contractAddress | Yes | Contract address (0x format) | |
| optimizationRuns | No | Number of optimization runs | |
| constructorArguments | No | ABI-encoded constructor arguments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without explaining side effects, return behavior, asynchronicity, or any costs. The minimal description leaves the agent uninformed about critical behavioral aspects.
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 sentence, very concise with no fluff. It is front-loaded with the key information. However, it could be slightly more informative without becoming verbose.
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 complexity (10 parameters, no output schema) and context of blockchain verification, the description is insufficient. It should explain what happens after submission (e.g., asynchronous, can check status with 'check-verification'), expected outcome, or any common pitfalls.
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?
All 10 parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The description adds no additional context beyond 'Submit a contract for source code verification', so it does not improve 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 'Submit a contract for source code verification' clearly states the action and resource, making it easy to understand what the tool does. It distinguishes from siblings like 'check-verification' (read-only) and 'verify-proxy' (different verification type).
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 or when not to use this tool, nor does it mention any prerequisites (e.g., contract must be deployed) or alternative tools. Given the many sibling tools, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify-proxyC
Submit a proxy contract for verification
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Proxy contract address (0x format) | |
| network | No | Network name or chain ID (default: ethereum mainnet) | |
| expectedImplementation | No | Expected implementation address (0x format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states the action. It does not disclose whether the tool is read-only or destructive, nor what 'verification' entails (e.g., on-chain call, status return).
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 sentence, which is concise but lacks sufficient detail for a tool with 3 parameters. It is not verbose but also not informative beyond the name.
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?
Although the schema documents parameters well, the description does not explain what happens after submission, what the return value is (no output schema), or any side effects. The tool feels incomplete for an agent to use confidently.
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 coverage is 100% with descriptions for all three parameters. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.
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 'Submit a proxy contract for verification' clearly indicates the action and resource, distinguishing from sibling 'verify-contract' which likely handles non-proxy contracts. However, it could be more explicit about the verification outcome.
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?
No guidance on when to use this tool versus alternatives like 'verify-contract'. The description does not mention prerequisites or context for proxy verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a unique aspect of Ethereum blockchain data: balances, blocks, contracts, tokens, transactions, and more. Descriptions clearly differentiate similar tools like get-transactions, get-internal-transactions, and get-token-transfers.
Most tools follow a 'get_' prefix pattern, but there are a few using 'check_', 'list_', and 'verify_'. While all are verb_noun, the inconsistency in verb choice prevents a perfect score.
24 tools is slightly above the typical 3-15 range, but the broad domain of Ethereum data (accounts, blocks, contracts, tokens, etc.) justifies the count. Each tool serves a distinct purpose.
The surface covers nearly all common Etherscan API operations: balance, transactions, blocks, contract verification, token data, logs, ENS, gas, and network stats. No obvious gaps for the intended domain.
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
Etherscan MCP — multichain block-explorer API (Etherscan V2)
Ethereum MCP: Chainlink feeds, gas, ERC-20, ENS, ABI, contract calls, ERC-8004, EAS.
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server that fetches on-chain blockchain data via the Ankr API, allowing LLMs to retrieve token balances for wallet addresses on specific networks.1253MIT
- AlicenseBqualityCmaintenanceAn MCP server that provides access to Etherscan blockchain data APIs, allowing users to query Ethereum blockchain information through natural language.68518MIT
- 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.1721MIT
- AlicenseAqualityFmaintenanceProvides MCP tools to query Etherscan for Ethereum blockchain data—ETH balances, ERC-20 tokens, transactions, contract ABIs, and gas prices—without requiring an API key.820MIT
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/dennisonbertram/mcp-etherscan-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server