Skip to main content
Glama

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

Installation

  1. Clone the repository:

git clone [your-repo-url]
cd mcp-etherscan-server
  1. Install dependencies:

npm install
  1. Create a .env file in the root directory:

ETHERSCAN_API_KEY=your_api_key_here
  1. Build the project:

npm run build

Running the Server

Start the server:

npm start

The 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

check-balance

Get native token balance for any address

get-transactions

Recent transactions with timestamps and values

get-token-transfers

ERC20 token transfers with token details

get-internal-transactions

Internal transactions with trace details

get-mined-blocks

Blocks mined by an address with rewards

get-beacon-withdrawals

ETH 2.0 staking withdrawals

Token Tools (V2)

Tool

Description

get-token-info

Comprehensive token metadata and social links

get-token-holders

Top token holders with balances

get-token-portfolio

All token balances for an address

Contract Tools

Tool

Description

get-contract-abi

Contract ABI in JSON format

get-contract-source

Verified source code and metadata

get-contract-creation

Creator address and deployment tx

verify-contract

Submit contract for verification

check-verification

Check verification status

verify-proxy

Verify proxy contract

get-verified-contracts

Recently verified contracts

Block Tools

Tool

Description

get-block-details

Block info (hash, gas, transactions)

get-block-reward

Block and uncle rewards

Network Tools (V2)

Tool

Description

get-gas-prices

Current gas prices in Gwei

get-network-stats

ETH supply, price, market cap

get-daily-stats

Daily transaction statistics

get-logs

Event logs with topic filtering

list-networks

All 72+ supported networks

Utility Tools

Tool

Description

get-ens-name

Resolve address to ENS name

Using with Claude Desktop

To add this server to Claude Desktop:

  1. 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"
          }
        }
      }
    }
  2. The Etherscan tools will now be available in your Claude conversations

Example Usage in Claude

Check the balance of 0x742d35Cc6634C0532925a3b844Bc454e4438f44e on Ethereum
Show me recent transactions for vitalik.eth on mainnet
Get token holders for USDC on Polygon
List all supported networks

Specifying 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 42161

Documentation

Comprehensive API documentation is available in the docs/ directory:

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 suites

Building

npm run build    # Compile TypeScript
npm run test     # Run tests
npm start        # Start server

Adding 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/api

  • Requires chainid parameter for all requests

  • Supports 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 tools
check-balanceA

Check the ETH balance of an Ethereum address across 70+ supported networks

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address (0x format)
networkNoNetwork name (e.g., 'ethereum', 'arbitrum', 'base') or chain ID number (default: ethereum mainnet)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
guidYesGUID from verification request
networkNoNetwork name or chain ID (default: ethereum mainnet)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
offsetNoNumber of results per page
addressYesEthereum address
networkNoNetwork name or chain ID
endBlockNoEnding block number
startBlockNoStarting block number

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork name or chain ID (default: ethereum mainnet)
blockNumberYesBlock number to query

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork name or chain ID (default: ethereum mainnet)
blockNumberYesBlock number to query

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesContract address (0x format)
networkNoNetwork name or chain ID (default: ethereum mainnet)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesContract address (0x format)
networkNoNetwork name or chain ID (default: ethereum mainnet)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesContract address (0x format)
networkNoNetwork name or chain ID (default: ethereum mainnet)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order
endDateYesEnd date in YYYY-MM-DD format
networkNoNetwork name or chain ID
startDateYesStart date in YYYY-MM-DD format

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address (0x format)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork name or chain ID (default: ethereum mainnet)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
offsetNoNumber of results per page (max 100)
addressYesEthereum address (0x format)
networkNoNetwork name or chain ID (default: ethereum mainnet)
endBlockNoEnding block number
startBlockNoStarting block number

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topic0NoEvent signature hash (first topic)
topic1NoFirst indexed parameter
topic2NoSecond indexed parameter
topic3NoThird indexed parameter
addressNoContract address to filter logs
networkNoNetwork name or chain ID
toBlockNoEnd block number
fromBlockNoStart block number

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
offsetNoNumber of results per page (max 100)
addressYesEthereum address (0x format)
networkNoNetwork name or chain ID (default: ethereum mainnet)
endBlockNoEnding block number
blockTypeNoType of blocks to queryblocks
startBlockNoStarting block number

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork name or chain ID

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
offsetNoNumber of results per page
networkNoNetwork name or chain ID
contractAddressYesToken contract address

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork name or chain ID
contractAddressYesToken contract address

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address
networkNoNetwork name or chain ID

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of transfers to return (max 100)
addressYesEthereum address (0x format)
networkNoNetwork name or chain ID (default: ethereum mainnet)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of transactions to return (max 100)
addressYesEthereum address (0x format)
networkNoNetwork name or chain ID (default: ethereum mainnet)

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number for pagination
offsetNoNumber of results per page (max 100)
sortByNoSort by field

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter networks by type

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork name or chain ID (default: ethereum mainnet)
evmVersionNoEVM version
sourceCodeYesContract source code
licenseTypeNoLicense type
contractNameYesContract name
optimizationNoWhether optimization was used
compilerVersionYesCompiler version (e.g. v0.8.0)
contractAddressYesContract address (0x format)
optimizationRunsNoNumber of optimization runs
constructorArgumentsNoABI-encoded constructor arguments

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesProxy contract address (0x format)
networkNoNetwork name or chain ID (default: ethereum mainnet)
expectedImplementationNoExpected implementation address (0x format)

TDQS

C2.6/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

B3.4/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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