Skip to main content
Glama

Eth call, Base contract call

base_call
Read-only

Read-only contract call on Base (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. Example: to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, data=0x18160ddd. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

Input Schema

NameRequiredDescriptionDefault
toYes0x contract address to call
dataYes0x ABI-encoded calldata: 4-byte selector plus arguments
fromNoOptional 0x sender address for calls that check msg.sender

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: latest block semantics, an 8 KB calldata cap, revert behavior (422 with reason, uncharged), pricing model ($0.01/call via x402 or card key, first 25 free), and the crucial warning that each call is charged so repeats are not free — which explains the idempotentHint=false. The 'changes nothing' clause reinforces readOnlyHint/destructiveHint without merely repeating them.

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?

Front-loads what the tool is and when to use it, then constraints, then economics — good ordering with no filler. The pricing/free-tier sentence is dense and slightly overloaded into one line, but every clause carries information an agent needs (cost per call, free retries on failure).

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

Completeness5/5

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

There is no output schema, and the description compensates by stating the return is raw return data requiring ABI decoding, plus the revert path. Combined with the size limit, pricing, and block semantics, an agent has everything needed to invoke and interpret results without guessing.

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%, so baseline is 3, but the description adds real value: a worked example pairing a live Base USDC address with selector 0x18160ddd, the note that calldata is '4-byte selector plus arguments' in context, and the 8 KB size constraint. The optional `from` parameter is not mentioned in the description, leaving that entirely to the schema.

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?

States a specific verb+resource (read-only eth_call on Base) plus the exact scope: ABI-encoded calldata in, raw return data out, at latest block. It also distinguishes itself from the many sibling wrappers (eth_call, arb_call, op_call, polygon_call) by naming its chain, and from dedicated tools via 'any view function that has no dedicated tool'.

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

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly says when to use it: view functions that lack a dedicated tool, with a concrete USDC totalSupply example. It implies the alternatives (base_token_balance, base_storage, etc.) exist by saying 'no dedicated tool' but never names a single sibling, so the routing decision still requires the agent to scan the tool list.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.