Skip to main content
Glama

โ›ฝ EVM MCP Server

Complete EVM JSON-RPC access in your AI workflow. Query any EVM-compatible network (Ethereum, Polygon, Arbitrum, Optimism, BSC, and more) through any node provider. Works with Infura, Alchemy, QuickNode, local nodes, and more.

An MCP (Model Context Protocol) server that provides comprehensive access to Ethereum Virtual Machine (EVM) JSON-RPC methods for AI coding environments like Cursor and Claude Desktop.

Why Use EVM MCP?

  • ๐ŸŒ Any EVM Network โ€“ Ethereum, Polygon, Arbitrum, Optimism, BSC, Avalanche, and more

  • ๐Ÿ”Œ Any Node Provider โ€“ Infura, Alchemy, QuickNode, local nodes, or custom RPC

  • ๐Ÿ“Š 20+ RPC Methods โ€“ Complete access to blockchain data, transactions, and contracts

  • โšก Easy Setup โ€“ One-click install in Cursor or simple manual setup

  • ๐Ÿ”ง Flexible Configuration โ€“ Works with any JSON-RPC compatible endpoint

Related MCP server: MCP Crypto Wallet EVM

Quick Start

Ready to interact with EVM blockchains? Install in seconds:

Install in Cursor (Recommended):

๐Ÿ”— Install in Cursor

Or install manually:

npm install -g @jamesanz/evm-mcp
# Or from source:
git clone https://github.com/JamesANZ/evm-mcp.git
cd evm-mcp && npm install && npm run build

Features

๐Ÿ”ข Blockchain Data

  • eth_blockNumber โ€“ Get latest block number

  • eth_getBalance โ€“ Get account balance

  • eth_getTransactionCount โ€“ Get transaction count (nonce)

  • eth_getBlockByNumber โ€“ Get block information

  • eth_getTransactionByHash โ€“ Get transaction details

  • eth_getTransactionReceipt โ€“ Get transaction receipt

  • eth_getCode โ€“ Get contract bytecode

  • eth_getStorageAt โ€“ Get storage value

๐Ÿ”„ Transactions

  • eth_call โ€“ Execute contract call

  • eth_estimateGas โ€“ Estimate gas for transaction

  • eth_sendRawTransaction โ€“ Send signed transaction

  • eth_gasPrice โ€“ Get current gas price

๐Ÿงช Transaction Simulation (read-only, never broadcasts)

Craft transactions in natural language and simulate them against forked/overridden EVM state. Reports whether a transaction would succeed or revert, the revert reason in plain English, estimated gas, and balance/state changes. Supports address aliases and ENS names (e.g. alice.eth). By default the sender is funded with virtual ETH so a simulation can run "from" any address; set fund: false to use real balances.

  • simulate_native_transfer โ€“ Simulate sending native currency (e.g. "Transfer 100 ETH from A to B")

  • simulate_erc20_transfer โ€“ Simulate an ERC20 transfer with human amounts (e.g. "Transfer 10 USDC to alice.eth from fun.eth")

  • simulate_contract_call โ€“ Encode a function signature + args and simulate the call

  • simulate_transaction โ€“ Simulate a raw transaction (from/to/value/data)

  • encode_function_data โ€“ Encode calldata from a human-readable signature (pure helper, no RPC)

These tools only use eth_call, eth_estimateGas, and debug_traceCall (when the provider supports it). They never sign or send a real transaction. Real state diffs are used when debug_traceCall is available; otherwise changes are inferred from the decoded intent.

๐Ÿ“Š Events & Logs

  • eth_getLogs โ€“ Get event logs

๐ŸŒ Network

  • list_supported_networks โ€“ List configured networks and providers

  • list_known_addresses โ€“ List configured wallet aliases and known token/contract addresses

  • eth_chainId โ€“ Get chain ID

  • net_version โ€“ Get network version

  • net_listening โ€“ Check if listening

  • net_peerCount โ€“ Get peer count

๐ŸŒ Web3

  • web3_clientVersion โ€“ Get client version

  • web3_sha3 โ€“ Hash data with Keccak-256

Installation

Cursor (One-Click)

Click the install link above or use:

cursor://anysphere.cursor-deeplink/mcp/install?name=evm-mcp&config=eyJldm0tbWNwIjp7ImNvbW1hbmQiOiJucHgiLCJhcmdzIjpbIi15IiwiQGphbWVzYW56L2V2bS1tY3AiXX19

Manual Installation

Requirements: Node.js 18+ and npm

# Clone and build
git clone https://github.com/JamesANZ/evm-mcp.git
cd evm-mcp
npm install
npm run build

# Set provider API keys
export INFURA_API_KEY="your-infura-api-key"
export DEFAULT_NETWORK="ethereum"
export DEFAULT_PROVIDER="infura"

# Run server
npm start

Claude Desktop

Add to claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "evm-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/evm-mcp/build/index.js"],
      "env": {
        "INFURA_API_KEY": "your-infura-api-key",
        "DEFAULT_NETWORK": "ethereum",
        "DEFAULT_PROVIDER": "infura",
        "RPC_PROVIDER_ORDER": "infura,alchemy"
      }
    }
  }
}

Restart Claude Desktop after configuration.

Configuration

Environment Variables

Variable

Required

Description

INFURA_API_KEY

One of*

Infura project API key (built-in preset)

ALCHEMY_API_KEY

One of*

Alchemy app API key (built-in preset)

DEFAULT_NETWORK

No

Default chain slug or chain ID (default: ethereum)

DEFAULT_PROVIDER

No

Provider slug to prefer (infura, alchemy, or custom)

RPC_PROVIDER_ORDER

No

Comma-separated provider fallback order (default: infura,alchemy)

CUSTOM_PROVIDERS

One of*

JSON array of user-defined providers

CUSTOM_NETWORKS

One of*

JSON array of user-defined networks

KNOWN_ADDRESSES

No

JSON array of known tokens/contracts (network-scoped)

WALLET_ADDRESSES

No

JSON array of personal wallet and contract aliases

*At least one provider API key, custom provider, or custom network with rpcUrl is required.

Built-in Providers (Infura / Alchemy)

Set an API key and the server builds RPC URLs automatically for supported networks:

{
  "INFURA_API_KEY": "your-infura-key",
  "DEFAULT_NETWORK": "ethereum",
  "DEFAULT_PROVIDER": "infura",
  "RPC_PROVIDER_ORDER": "infura,alchemy"
}

Each RPC tool accepts an optional network parameter (slug, name, or chain ID). When omitted, DEFAULT_NETWORK is used.

{
  "tool": "eth_chainId",
  "arguments": { "network": "polygon" }
}

Use list_supported_networks to discover configured networks and providers.

Custom Providers (CUSTOM_PROVIDERS)

Register any RPC provider by supplying a base URL template and network-specific URLs:

"CUSTOM_PROVIDERS": "[{\"slug\":\"quicknode\",\"apiKeyEnv\":\"QUICKNODE_API_KEY\",\"baseUrl\":\"https://rpc.example.com/v1/{apiKey}\",\"networkUrls\":{\"ethereum\":\"https://eth.quiknode.pro/{apiKey}/\",\"polygon\":\"https://polygon.quiknode.pro/{apiKey}/\"}}]"
  • Absolute networkUrls values are used directly (with {apiKey} substitution).

  • Relative paths (starting with /) are appended to baseUrl.

Custom Networks (CUSTOM_NETWORKS)

Register arbitrary chains by name:

"CUSTOM_NETWORKS": "[{\"name\":\"HyperEVM\",\"slug\":\"hyperevm\",\"chainId\":999,\"rpcUrl\":\"https://rpc.hyperliquid.xyz/evm\"}]"

Or route through a provider by setting provider and adding the network slug to that provider's networkUrls.

Known Addresses (KNOWN_ADDRESSES)

Register tokens and contracts by name so tools accept aliases like USDC instead of raw hex addresses. Each entry is scoped to a network:

"KNOWN_ADDRESSES": "[{\"name\":\"USDC\",\"address\":\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\"network\":\"ethereum\",\"type\":\"token\",\"decimals\":6,\"aliases\":[\"usd-coin\"]}]"

Field

Required

Description

name

yes

Primary lookup key

address

yes

Checksummed contract address

network

yes

Chain slug, name, chain ID, or network alias

type

no

token or contract (default: contract)

decimals

no

Token decimals for formatted balances

aliases

no

Extra lookup keys

When eth_getBalance is called with a token alias, the server uses the first configured wallet in WALLET_ADDRESSES as the token holder.

Wallet Addresses (WALLET_ADDRESSES)

Register personal wallets and contracts by alias so you can say "check my personal wallet" instead of pasting hex:

"WALLET_ADDRESSES": "[{\"name\":\"my-wallet\",\"address\":\"0x42ea529282DDE0AA87B42d9E83316eb23FE62c3f\",\"aliases\":[\"personal\",\"my wallet\"],\"description\":\"Main EOA\"}]"

Field

Required

Description

name

yes

Primary lookup key

address

yes

Wallet or contract address

network

no

Scope alias to one chain (default: all chains)

aliases

no

Extra lookup keys

description

no

Human-readable note

Address aliases work in eth_getBalance, eth_getCode, eth_call, eth_getLogs, and other tools that accept address parameters. Use list_known_addresses to discover configured aliases.

Migration from RPC_URL

- "RPC_URL": "https://mainnet.infura.io/v3/KEY"
- "CHAIN_ID": "1"
+ "INFURA_API_KEY": "KEY"
+ "DEFAULT_NETWORK": "ethereum"
+ "DEFAULT_PROVIDER": "infura"

Configuration changes require restarting the MCP server.

Supported Built-in Networks

  • Ethereum: Mainnet, Sepolia

  • Polygon: Mainnet, Amoy

  • Arbitrum: One, Sepolia

  • Optimism: Mainnet, Sepolia

  • BNB Smart Chain: Mainnet, Testnet

  • Avalanche: C-Chain

  • Base: Mainnet, Sepolia

  • Any EVM-compatible chain via CUSTOM_NETWORKS

Usage Examples

Get Latest Block Number

Query the current block number:

{
  "tool": "eth_blockNumber",
  "arguments": {}
}

Get Account Balance

Check an address balance using a hex address or configured alias:

{
  "tool": "eth_getBalance",
  "arguments": {
    "address": "personal",
    "blockNumber": "latest"
  }
}

Get Transaction Details

View transaction information:

{
  "tool": "eth_getTransactionByHash",
  "arguments": {
    "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
  }
}

Call Smart Contract

Execute a contract call:

{
  "tool": "eth_call",
  "arguments": {
    "to": "0xA0b86a33E6441c8C06DDD46C310c0eF8D9441C8F",
    "data": "0x70a08231000000000000000000000000742d35Cc6634C0532925a3b8D6Ac6e2F0C4C9B7C"
  }
}

Get Event Logs

Query contract events:

{
  "tool": "eth_getLogs",
  "arguments": {
    "fromBlock": "0x1234567",
    "toBlock": "latest",
    "address": "0xA0b86a33E6441c8C06DDD46C310c0eF8D9441C8F",
    "topics": [
      "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
    ]
  }
}

Use Cases

  • Blockchain Analytics โ€“ Query transaction data, balances, and contract states

  • DeFi Applications โ€“ Monitor token balances, transaction receipts, and smart contract calls

  • NFT Projects โ€“ Track transfers, metadata, and collection statistics

  • Development Tools โ€“ Debug transactions, estimate gas, and test smart contracts

  • Monitoring โ€“ Watch for specific events and transaction patterns

  • Research โ€“ Analyze blockchain data across multiple EVM networks

Technical Details

Built with: Node.js, TypeScript, MCP SDK, Ethers.js
Dependencies: @modelcontextprotocol/sdk, ethers, zod
Platforms: macOS, Windows, Linux

Environment Variables: See Configuration above.

Contributing

โญ If this project helps you, please star it on GitHub! โญ

Contributions welcome! Please open an issue or submit a pull request.

License

MIT License โ€“ see LICENSE.md for details.

Support

If you find this project useful, consider supporting it:

โšก Lightning Network

lnbc1pjhhsqepp5mjgwnvg0z53shm22hfe9us289lnaqkwv8rn2s0rtekg5vvj56xnqdqqcqzzsxqyz5vqsp5gu6vh9hyp94c7t3tkpqrp2r059t4vrw7ps78a4n0a2u52678c7yq9qyyssq7zcferywka50wcy75skjfrdrk930cuyx24rg55cwfuzxs49rc9c53mpz6zug5y2544pt8y9jflnq0ltlha26ed846jh0y7n4gm8jd3qqaautqa

โ‚ฟ Bitcoin: bc1ptzvr93pn959xq4et6sqzpfnkk2args22ewv5u2th4ps7hshfaqrshe0xtp

ฮž Ethereum/EVM: 0x42ea529282DDE0AA87B42d9E83316eb23FE62c3f

Available Tools

19 tools
eth_blockNumberA

Returns the number of the most recent block

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 burden for behavioral disclosure. It states the return value but lacks information about potential errors, rate limits, network dependencies, or whether this is a read-only operation (though implied by 'Returns'). More behavioral context would be helpful given the absence of 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, efficient sentence that directly states the tool's function without any wasted words. It's perfectly front-loaded and appropriately sized for a simple query tool with no parameters.

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 tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate but lacks completeness. It doesn't specify the return format (e.g., hex string, integer), potential errors, or blockchain context needed for proper use. More contextual information would improve agent understanding.

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?

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. Baseline for 0 parameters is 4, as no parameter explanation is needed.

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 specific action ('Returns') and resource ('the number of the most recent block'), distinguishing it from siblings like eth_getBlockByNumber (which returns full block details) or eth_chainId (which returns chain identifier). It precisely communicates what the tool does without redundancy.

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 usage for retrieving the latest block number, but provides no explicit guidance on when to use this versus alternatives like eth_getBlockByNumber (for detailed block data) or other blockchain query tools. Usage context is implied rather than stated, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_callB

Executes a new message call immediately without creating a transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
blockNumberNoBlock number or 'latest', 'earliest', 'pending'latest
dataYesData to send (hex string)
fromNoFrom address (optional)
gasNoGas limit (optional)
gasPriceNoGas price (optional)
toYesContract address
valueNoValue in wei (optional)

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 the full burden. It mentions 'immediately without creating a transaction,' which hints at read-only behavior, but fails to disclose critical details like whether it requires authentication, rate limits, error handling, or what the return format looks like (e.g., hex data). For a tool with no annotation coverage, this is a significant gap.

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, efficient sentence that front-loads the key information ('executes a new message call immediately without creating a transaction'). There's no wasted text, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of Ethereum RPC calls, no annotations, and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., side effects, error responses), return values, and practical usage context, making it incomplete for effective agent 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?

Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain interactions between parameters like 'from' and 'gas'). Baseline 3 is appropriate as the schema does the heavy lifting.

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 action ('executes a new message call') and distinguishes it from creating a transaction, which helps differentiate it from sibling tools like eth_sendRawTransaction. However, it doesn't explicitly contrast with other read-only siblings like eth_getBalance or eth_getCode, which also don't create 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?

The description implies usage for immediate execution without transaction creation, suggesting it's for read-only or simulation purposes. However, it doesn't provide explicit guidance on when to use this versus alternatives like eth_estimateGas (for gas estimation) or other query tools, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_chainIdA

Returns the chain ID of the current network

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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. It states the tool returns the chain ID, which implies a read-only operation, but does not disclose behavioral traits such as whether it requires authentication, has rate limits, or what format the return value takes (e.g., integer, hex string). This is a significant gap for a tool with zero annotation coverage.

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, efficient sentence with zero waste. It is front-loaded with the core purpose ('Returns the chain ID'), making it easy to parse and understand immediately. 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?

Given the tool's simplicity (0 parameters, no output schema), the description is complete enough for basic understanding. However, without annotations or output schema, it lacks details on return format, error handling, or network-specific behaviors, which could be important for an AI agent in complex contexts.

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?

The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description does not need to add parameter semantics beyond stating no inputs are required, which it implicitly does by focusing on the return value. Baseline for 0 parameters is 4, as there is nothing to compensate for.

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 specific action ('Returns') and resource ('chain ID of the current network'), distinguishing it from siblings like eth_blockNumber (returns block number) or net_version (returns network ID). It precisely defines what the tool does without ambiguity.

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 usage for retrieving the chain ID, but provides no explicit guidance on when to use this tool versus alternatives like net_version (which returns network ID, a related but different concept). It lacks context on specific scenarios or exclusions, leaving usage to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_estimateGasC

Generates and returns an estimate of how much gas is necessary

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoData to send (hex string)
fromNoFrom address
gasNoGas limit
gasPriceNoGas price
toNoContract address (optional for contract creation)
valueNoValue in wei

TDQS

C2.7/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 of behavioral disclosure. It states the tool 'Generates and returns an estimate,' implying a read-only, non-destructive operation, but doesn't clarify if it simulates transaction execution, requires network access, has rate limits, or what happens with invalid inputs. For a tool with 6 parameters and no annotation coverage, this leaves significant behavioral 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?

The description is a single, efficient sentence ('Generates and returns an estimate of how much gas is necessary') that front-loads the core purpose without unnecessary words. It earns its place by clearly stating the tool's function, making it appropriately sized and well-structured.

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 (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the estimate is for (e.g., a transaction), how it's generated (e.g., via simulation), or what the return value looks like (e.g., a gas amount in hex). With no output schema and minimal behavioral context, the description fails to provide enough information for effective tool 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?

The input schema has 100% description coverage, with each parameter documented (e.g., 'data' as 'Data to send (hex string)'). The description adds no parameter-specific information beyond what the schema provides. According to the rules, with high schema coverage (>80%), the baseline score is 3 even without param info in the description, as the schema adequately covers semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the purpose ('Generates and returns an estimate of how much gas is necessary'), which is clear but vague. It specifies the verb ('Generates and returns') and resource ('estimate of how much gas'), but doesn't distinguish it from siblings like eth_gasPrice (which returns current gas price) or eth_call (which executes a call without sending a transaction). The description is adequate but lacks specificity about what transaction or operation is being estimated.

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. It doesn't mention siblings like eth_call (for simulating calls) or eth_gasPrice (for current gas prices), nor does it specify prerequisites or contexts (e.g., before sending a transaction). Without any usage context, the agent must infer from the tool name and schema alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_gasPriceA

Returns the current price per gas in wei

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/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 states the tool returns a value but doesn't mention if it's read-only, requires authentication, has rate limits, or details the return format (e.g., numeric wei value). This leaves significant gaps for a tool in a blockchain context.

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, efficient sentence with no wasted words. It front-loads the core functionality ('Returns the current price per gas in wei'), making it immediately clear and easy to parse.

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 of blockchain tools and lack of annotations or output schema, the description is insufficient. It doesn't explain the return value format (e.g., integer wei), potential errors, or behavioral traits like network dependencies, leaving the agent with incomplete context for reliable use.

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?

The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description appropriately omits parameter details, focusing on the tool's purpose, which aligns with the baseline for zero 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 states the specific action ('Returns') and resource ('current price per gas in wei'), distinguishing it from siblings like eth_blockNumber or eth_estimateGas. It precisely defines what the tool does without being vague or tautological.

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 usage when needing the current gas price, but provides no explicit guidance on when to use this versus alternatives (e.g., eth_estimateGas for transaction-specific estimates) or any exclusions. It lacks named alternatives or contextual boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_getBalanceC

Returns the balance of the account of given address

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesAddress to check balance for
blockNumberNoBlock number or 'latest', 'earliest', 'pending'latest

TDQS

C2.9/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 states it 'Returns the balance' but doesn't specify units (e.g., wei, ether), error conditions, rate limits, or authentication needs. For a read operation with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose, making it highly concise and well-structured for quick understanding.

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 of blockchain queries, no annotations, and no output schema, the description is incomplete. It lacks details on return format (e.g., numeric balance in wei), error handling, or dependencies. For a tool with 2 parameters and rich context signals, this minimal description is inadequate.

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 schema description coverage is 100%, so the schema already documents both parameters (address and blockNumber) adequately. The description implies the address parameter but doesn't add syntax, format, or contextual details beyond what the schema provides. Baseline 3 is appropriate when the schema handles parameter documentation.

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 ('Returns') and resource ('balance of the account'), making the purpose specific and understandable. It distinguishes from siblings like eth_getTransactionCount or eth_getCode by focusing on balance retrieval. However, it doesn't explicitly contrast with all siblings, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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. The description doesn't mention prerequisites, context, or comparisons to other tools (e.g., eth_call for more complex queries). This leaves the agent without explicit usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_getBlockByNumberC

Returns information about a block by block number

ParametersJSON Schema
NameRequiredDescriptionDefault
blockNumberYesBlock number (hex) or 'latest', 'earliest', 'pending'
includeTransactionsNoInclude full transaction objects

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 carries the full burden of behavioral disclosure. It states the tool returns information but does not describe what information is returned, potential errors, rate limits, or authentication needs. For a read operation with no annotation coverage, this is a significant gap in behavioral context.

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, efficient sentence: 'Returns information about a block by block number.' It is front-loaded with the core purpose and contains no unnecessary words, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of blockchain data retrieval and the lack of annotations and output schema, the description is incomplete. It does not explain what specific block information is returned, how to interpret results, or handle edge cases like invalid block numbers. For a tool with rich data output and no structured output documentation, more context is needed.

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 clear descriptions for both parameters in the input schema. The description does not add any additional meaning beyond what the schema provides, such as explaining the format of returned block information or transaction objects. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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 tool's purpose: 'Returns information about a block by block number.' It specifies the verb ('returns') and resource ('block'), but does not differentiate it from sibling tools like 'eth_getTransactionByHash' or 'eth_getTransactionReceipt', which also return block-related information. The purpose is clear but lacks sibling distinction.

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. It does not mention sibling tools like 'eth_blockNumber' (which gets the current block number) or 'eth_getTransactionByHash' (which gets transaction details), nor does it specify use cases or prerequisites. Usage is implied from the purpose but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_getCodeC

Returns code at a given address

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesContract address
blockNumberNoBlock number or 'latest', 'earliest', 'pending'latest

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 carries full burden. It states the action ('returns code') but lacks behavioral details like what 'code' entails (e.g., bytecode, runtime code), error conditions (e.g., invalid address), or performance aspects (e.g., response format, potential delays). This leaves significant gaps for a tool with no annotation support.

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, efficient sentence with zero waste. It is front-loaded and appropriately sized for its purpose, making it easy to parse without 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 no annotations and no output schema, the description is incomplete. It does not explain what 'code' returns (e.g., bytecode string, hex data) or handle complexities like non-contract addresses, leaving the agent without sufficient context for reliable 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?

Schema description coverage is 100%, so the schema fully documents parameters ('address' as contract address, 'blockNumber' with defaults). The description adds no additional meaning beyond the schema, such as explaining parameter interactions or constraints, 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 'Returns code at a given address' clearly states the verb ('returns') and resource ('code'), making the purpose understandable. However, it does not explicitly differentiate from siblings like 'eth_getStorageAt' (which returns storage data) or 'eth_getBalance' (which returns balance), missing full sibling distinction.

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. It lacks context such as use cases (e.g., verifying contract deployment, analyzing bytecode) or exclusions (e.g., not for non-contract addresses), leaving the agent with no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_getLogsC

Returns an array of all logs matching a given filter object

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoContract address (optional)
fromBlockNoStarting block (hex or 'latest', 'earliest', 'pending')
toBlockNoEnding block (hex or 'latest', 'earliest', 'pending')
topicsNoArray of topic filters (optional)

TDQS

C2.9/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 states the tool returns logs but doesn't mention critical behaviors like potential performance impacts for large block ranges, rate limits, or that it's a read-only query (implied by 'Returns' but not explicit). This leaves significant gaps for safe and effective use.

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, efficient sentence that front-loads the core functionality ('Returns an array of all logs') and specifies the key constraint ('matching a given filter object'). There is no wasted verbiage, making it highly concise and well-structured for quick comprehension.

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 (filtering blockchain logs with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain the structure of returned logs, error conditions, or performance considerations, leaving the agent under-informed for a non-trivial query operation in a blockchain context.

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 schema description coverage is 100%, with each parameter well-documented in the input schema (e.g., address as contract address, fromBlock/toBlock with hex or special values). The description adds no additional semantic context beyond implying a 'filter object' maps to these parameters, so it meets the baseline for high schema coverage without compensating value.

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 action ('Returns an array') and resource ('all logs matching a given filter object'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like eth_getTransactionReceipt or eth_getBlockByNumber, which also retrieve blockchain data, so it misses the highest score.

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 eth_getTransactionReceipt for transaction-specific logs or eth_getBlockByNumber for block-level data. It lacks context about use cases like event monitoring or debugging, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_getStorageAtC

Returns the value from a storage position at a given address

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesContract address
blockNumberNoBlock number or 'latest', 'earliest', 'pending'latest
positionYesStorage position (hex string)

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 carries the full burden. It states the tool returns a value but lacks details on behavioral traits: it doesn't specify if this is a read-only operation (implied but not explicit), potential errors (e.g., invalid address), performance considerations, or the format of the returned value (e.g., hex string). This leaves significant gaps for an agent to understand how to handle the tool effectively.

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 wasted words. It front-loads the core action ('Returns the value') and efficiently conveys the essential purpose, making it easy to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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 (EVM storage access) and lack of annotations or output schema, the description is insufficient. It doesn't explain the return value format, error conditions, or practical usage context (e.g., for debugging contracts). This leaves the agent with incomplete information to invoke the tool correctly and interpret results.

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 fully documents parameters like 'address' as 'Contract address' and 'position' as 'Storage position (hex string)'. The description adds no additional semantic context beyond what the schema provides, such as explaining what a storage position represents in Ethereum or how to derive it. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Returns the value') and target ('from a storage position at a given address'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from similar siblings like eth_getBalance or eth_getCode, which also retrieve data from addresses but for different types of 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention use cases like inspecting contract state variables, comparing it to eth_call for more complex queries, or specifying prerequisites such as needing a contract address with storage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_getTransactionByHashC

Returns the information about a transaction requested by transaction hash

ParametersJSON Schema
NameRequiredDescriptionDefault
txHashYesTransaction hash

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 carries the full burden of behavioral disclosure. It states it 'Returns the information about a transaction', which implies a read-only operation, but doesn't specify what information is included (e.g., sender, receiver, gas, status), whether it's real-time or historical, error conditions (e.g., invalid hash), or performance aspects like rate limits. For a tool with zero annotation coverage, this is a significant gap in behavioral context.

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, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded with the core action and resource, making it easy to parse. Every word earns its place, and there's no redundancy 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 the tool's complexity (querying blockchain transactions), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what information is returned (e.g., transaction details like from, to, value), potential errors, or behavioral traits. For a tool in this context, more detail is needed to fully guide an AI agent, especially without structured output 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?

The input schema has 100% description coverage, with the parameter 'txHash' documented as 'Transaction hash'. The description adds no additional meaning beyond this, as it only repeats 'transaction hash' without elaborating on format (e.g., hex string, length) or constraints. With high schema coverage, the baseline is 3, and the description doesn't compensate with extra details.

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 action ('Returns the information about a transaction') and the resource ('transaction'), specifying it's requested by 'transaction hash'. It distinguishes from siblings like eth_getTransactionReceipt (which returns receipt data) and eth_getTransactionCount (which counts transactions), though not explicitly. However, it doesn't fully differentiate from all siblings (e.g., eth_getBlockByNumber also returns transaction info within blocks), so it's not a perfect 5.

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. It doesn't mention when to choose it over eth_getTransactionReceipt (for receipt data) or eth_getBlockByNumber (for block-level transaction details), nor does it specify prerequisites like needing a valid hash. Usage is implied by the name and description alone, with no explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_getTransactionCountB

Returns the number of transactions sent from an address

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesAddress to check transaction count for
blockNumberNoBlock number or 'latest', 'earliest', 'pending'latest

TDQS

B3.4/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. It states the tool returns a count but does not disclose behavioral traits such as whether it requires authentication, rate limits, error conditions, or the format of the returned value (e.g., integer, hex). For a tool with no annotation coverage, this leaves significant gaps in understanding its 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?

The description is a single, direct sentence with no wasted words, front-loading the core purpose. It is appropriately sized for a simple query tool and efficiently communicates the essential function without 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 no annotations and no output schema, the description is incomplete. It lacks details on return value format, error handling, or behavioral constraints, which are crucial for a tool that interacts with blockchain data. The description alone does not provide enough context for reliable agent 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?

Schema description coverage is 100%, so the schema fully documents both parameters (address and blockNumber). The description does not add any meaning beyond what the schema provides, such as explaining parameter interactions or edge cases. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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 specific action ('Returns the number of transactions sent') and the target resource ('from an address'), distinguishing it from siblings like eth_getBalance (returns balance) or eth_getTransactionByHash (returns transaction details). It uses precise terminology that matches the tool's name and domain.

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 usage for checking transaction counts from addresses, but provides no explicit guidance on when to use this tool versus alternatives like eth_getTransactionByHash (for specific transaction details) or eth_getLogs (for event logs). It lacks context on prerequisites or exclusions, leaving usage inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_getTransactionReceiptC

Returns the receipt of a transaction by transaction hash

ParametersJSON Schema
NameRequiredDescriptionDefault
txHashYesTransaction hash

TDQS

C2.9/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 states the tool returns a receipt but does not clarify what a receipt entails (e.g., success status, gas used, logs), whether it's read-only, or any rate limits or error conditions. This leaves significant gaps in understanding the tool's behavior.

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, direct sentence with zero waste, clearly stating the tool's function without unnecessary details. It is appropriately sized and front-loaded, making it easy to understand at a glance.

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 lack of annotations and output schema, the description is incomplete. It does not explain what a transaction receipt includes (e.g., success indicators, gas details) or potential errors, which are crucial for a tool in a complex domain like blockchain transactions. 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?

The schema description coverage is 100%, with the parameter 'txHash' well-documented in the schema. The description adds no additional meaning beyond implying the hash is used to fetch the receipt, aligning with the baseline score when the schema handles parameter documentation effectively.

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 action ('Returns') and resource ('receipt of a transaction'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'eth_getTransactionByHash', which might retrieve different transaction details, leaving room for slight 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, such as 'eth_getTransactionByHash' for raw transaction data or other siblings for different blockchain queries. The description lacks context on prerequisites or exclusions, offering minimal usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_sendRawTransactionC

Creates new message call transaction or a contract creation

ParametersJSON Schema
NameRequiredDescriptionDefault
signedTransactionDataYesSigned transaction data (hex string)

TDQS

C2.9/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 states the tool creates transactions, implying a write operation, but lacks critical details: it doesn't specify that this is a destructive/mutative action, mention authentication needs, rate limits, network effects, or error handling. This is inadequate for a tool that likely modifies blockchain state.

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 extremely conciseโ€”a single, front-loaded sentence that directly states the tool's function without any fluff or redundancy. Every word earns its place, making it efficient for quick understanding.

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 (a transaction creation tool in Ethereum, which is inherently mutative and high-stakes), the description is incomplete. With no annotations and no output schema, it fails to address key aspects like behavioral traits (e.g., irreversibility, gas costs), error responses, or return values, leaving significant gaps for an AI agent.

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 description adds no parameter-specific information beyond what the input schema provides. Since schema description coverage is 100% (the single parameter 'signedTransactionData' is well-documented in the schema), the baseline score of 3 applies, as the schema already covers the parameter meaning adequately.

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 tool's purpose with specific verbs ('creates new message call transaction or a contract creation'), distinguishing it from read-only siblings like eth_getBalance or eth_call. However, it doesn't explicitly differentiate from other transaction-related tools like eth_estimateGas, which is why it doesn't reach a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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. It doesn't mention prerequisites (e.g., needing signed transaction data), exclusions, or compare it to siblings like eth_estimateGas for gas estimation or eth_call for simulation, leaving the agent with no contextual usage cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

net_listeningA

Returns true if client is actively listening for network connections

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 carries full burden for behavioral disclosure. It states the return value (true/false) but doesn't explain what 'actively listening' means in practice, whether there are timing considerations, error conditions, or what false might indicate. For a diagnostic tool with zero annotation coverage, this leaves significant behavioral 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?

The description is a single, efficient sentence that communicates the essential information without any wasted words. It's appropriately sized for a simple diagnostic tool and front-loads the key information (returns true if...).

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?

For a zero-parameter diagnostic tool with no output schema, the description provides the basic return value but lacks context about interpretation, error handling, or typical usage scenarios. It's minimally adequate but doesn't give the agent enough guidance to use the tool effectively in various contexts.

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?

The tool has zero parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't waste space discussing non-existent parameters and focuses on the tool's core functionality.

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 specific action ('Returns true') and the resource being checked ('if client is actively listening for network connections'). It distinguishes itself from sibling tools by focusing on network listening status rather than blockchain queries or version information.

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. While it's clear what the tool does, there's no mention of typical use cases, prerequisites, or how it differs from other network-related tools like net_peerCount or net_version.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

net_peerCountA

Returns number of peers currently connected to the client

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 carries the full burden of behavioral disclosure. It states the tool returns a count but does not specify the format (e.g., integer, hex), whether it's real-time or cached, potential errors, or rate limits. This leaves significant gaps in understanding how the tool behaves in practice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that directly states the tool's purpose with no wasted words. It is front-loaded and efficiently conveys the essential information without unnecessary elaboration, making it easy for an agent to parse quickly.

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 tool's simplicity (no parameters, no annotations, no output schema), the description is adequate as a basic read operation. However, it lacks details on output format (e.g., numeric or hex representation) and behavioral context (e.g., latency, reliability), which could help the agent use it more effectively in complex scenarios.

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?

The tool has zero parameters, and the input schema has 100% description coverage (though empty). The description appropriately omits parameter details, as there are none to explain, making it efficient and avoiding redundancy. A baseline of 4 is justified since no parameters exist to document.

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 specific action ('Returns') and resource ('number of peers currently connected to the client'), distinguishing it from sibling tools like net_listening (connection status) or net_version (network ID). It precisely defines what the tool does without 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?

The description provides no guidance on when to use this tool versus alternatives like net_listening or other network-related tools. It lacks context about typical use cases (e.g., monitoring network health) or prerequisites, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

net_versionB

Returns the current network id

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 carries the full burden of behavioral disclosure. It states the tool returns a value, implying a read-only operation, but does not specify whether it requires authentication, has rate limits, or details about the return format (e.g., numeric ID, string). This leaves significant gaps in understanding the tool's behavior beyond its basic function.

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 zero wasteโ€”it directly states the tool's function without fluff or redundancy. It is appropriately sized for a simple, parameterless tool and front-loads the essential information, making it easy for an agent to parse quickly.

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 tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete but lacks depth. It explains what the tool does but does not provide context on the return value format or how it differs from similar tools like 'eth_chainId'. For a basic read operation, this is adequate but leaves room for improvement in guiding the agent effectively.

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?

The tool has 0 parameters, and the schema description coverage is 100%, so the description does not need to compensate for missing parameter documentation. The baseline for 0 parameters is 4, as there are no parameters to explain, and the description appropriately focuses on the tool's output without unnecessary parameter details.

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 action ('Returns') and the resource ('the current network id'), making the purpose immediately understandable. It distinguishes from siblings like 'eth_chainId' by specifying 'network id' rather than 'chain id', though the distinction could be more explicit. It avoids tautology by not just restating the tool name 'net_version'.

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 'eth_chainId' or other network-related siblings. It lacks context on prerequisites, typical use cases, or any explicit when/when-not instructions, leaving the agent to infer usage based on the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

web3_clientVersionB

Returns the current client version

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden of behavioral disclosure. It states the tool returns a value but doesn't specify the return format (e.g., string, object), potential errors, or any side effects. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without any unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.

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 tool's simplicity (0 parameters, no annotations, no output schema), the description is minimally adequate but lacks depth. It doesn't explain the return value format or potential use cases, which could help an agent understand how to interpret the result. However, for such a straightforward tool, it meets basic requirements.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, as there are none, which aligns with the schema and avoids redundancy.

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 tool's purpose with a specific verb ('Returns') and resource ('the current client version'), making it immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'net_version' or 'eth_chainId', which might also provide version-related information in different contexts.

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. With sibling tools like 'net_version' available, there's no indication of whether this tool is for general client version retrieval, debugging, or specific use cases, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

web3_sha3B

Returns Keccak-256 hash of the given data

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData to hash (hex string starting with 0x)

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 states the basic function but lacks details on performance, error handling, or any constraints (e.g., input size limits, rate limits). For a cryptographic tool, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and uses precise terminology ('Keccak-256'), making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (single parameter, no output schema) and high schema coverage, the description is minimally adequate. However, it lacks context about the hash algorithm's specifics or common use cases, which would be helpful for an AI agent.

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 fully documents the single parameter 'data'. The description adds no additional parameter semantics beyond what's in the schema, resulting in a baseline score 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 clearly states the action ('Returns') and resource ('Keccak-256 hash of the given data'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like other hashing functions, but the specificity of 'Keccak-256' helps distinguish it from general hash operations.

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. It doesn't mention sibling tools or suggest contexts where Keccak-256 hashing is appropriate, leaving the agent to infer usage based on the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap, as they map directly to standard Ethereum JSON-RPC methods. For example, eth_getBalance retrieves account balances, eth_getTransactionByHash fetches transaction details, and web3_clientVersion returns client info, all serving unique functions in the EVM ecosystem.

Naming Consistency5/5

The tool names follow a highly consistent pattern, using prefixes like 'eth_', 'net_', and 'web3_' followed by descriptive, standard method names in snake_case. This uniformity makes the tools predictable and easy to identify, aligning with Ethereum API conventions.

Tool Count5/5

With 19 tools, this server is well-scoped for an EVM interface, covering essential operations such as querying blocks, transactions, balances, network info, and executing calls. The count is appropriate, providing comprehensive coverage without being overwhelming for the domain.

Completeness5/5

The tool set offers complete coverage of core EVM functionalities, including reading data (e.g., blocks, balances, logs), writing transactions (e.g., eth_sendRawTransaction), and utility operations (e.g., gas estimation, hashing). There are no obvious gaps, enabling agents to handle typical blockchain interactions seamlessly.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

  • A
    license
    C
    quality
    D
    maintenance
    Enables AI-powered analysis of Ethereum blockchain data through semantic search, natural language queries, and structured filtering. Provides comprehensive access to addresses, transactions, blocks, tokens, and smart contracts with real-time blockchain intelligence.
    26
    16
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides tools for querying onchain data across 12+ blockchain networks, including token balances, transaction analysis, and smart contract security auditing. It enables users to interact with multiple EVM-compatible chains and perform deep contract evaluations through natural language interfaces.
    1

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/JamesANZ/evm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server