Skip to main content
Glama

BlockVectra MCP server

Remote Model Context Protocol server for BlockVectra: multi-chain EVM JSON-RPC, indexed Data API, docs, CU pricing and status. Documentation, discovery, pricing and status need no API key. Keyless RPC depends on each chain's public method policy; indexed Data API and account tools require your own BlockVectra API key.

中文

Robinhood Chain mainnet and testnet tasks

Use the chain RPC guide for mainnet public read-only RPC tasks. Use the testnet starter and faucet guide for testnet tasks. Mainnet public reads do not require claiming testnet tokens first.

Connect to https://docs.blockvectra.com/mcp without headers for documentation and discovery. Robinhood Chain public endpoints allow supported RPC reads without a key; methods outside the public policy require an API key. Faucet claims require x-api-key. HTTP 202 means accepted; check the transaction receipt for on-chain inclusion (status: "0x1"), which is not finality.

Related MCP server: chain-data

Local stdio bridge

Use Node.js 22 or newer to run the MIT-licensed stdio bridge:

npx --yes @blockvectra/mcp@0.1.0

Configure a stdio client:

{
  "mcpServers": {
    "blockvectra-docs": {
      "command": "npx",
      "args": ["--yes", "@blockvectra/mcp@0.1.0"]
    }
  }
}

For a source checkout, run npm ci, then use node with the absolute path to src/cli.js instead.

The CLI always bridges to https://docs.blockvectra.com/mcp; it accepts no command-line arguments. Optionally supply BLOCKVECTRA_API_KEY through the child process environment or your client's private environment settings. It is forwarded only as x-api-key. Never put a key in CLI arguments, tool arguments, or chat; never supply private keys.

The bridge connects the official StreamableHTTPClientTransport and StdioServerTransport directly, without rebuilding capabilities or tools. It preserves initialize parameters/results, capabilities, instructions, protocolVersion, tool results, JSON-RPC errors, notifications and bidirectional requests at the JSON message level (not byte formatting). After a successful initialize response, it sets the HTTP transport's negotiated protocol version before forwarding that response. stdout contains MCP messages only; stderr uses fixed diagnostics without SDK error text. EOF, SIGINT and SIGTERM close both transports; transport failures close the bridge with exit code 1. HTTP/SSE behavior, parsing and reconnection remain SDK behavior.

Dependencies are pinned to official @modelcontextprotocol/client and @modelcontextprotocol/server 2.3.1, whose published package exports and source provide these transports and require Node >=20. See the official SDK repository/releases and connection documentation. As of 2026-10-13, Node's official release table lists Node 20 as EOL and Node 22 as LTS, so this package requires Node >=22.

Local verification: npm test runs only the serial mock HTTP/real stdio subprocess tests; npm pack --dry-run checks the package contents. No build is required.

Install in one step

Server URL (Streamable HTTP, no key needed): https://docs.blockvectra.com/mcp

Client

One-line install

Source

Claude Code

claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp

MCP in Claude Code

Claude Code plugin (MCP server + blockvectra-rpc skill)

/plugin marketplace add blockvectra/mcp, then /plugin install blockvectra-docs@blockvectra

Create a marketplace, Plugin dependencies

Cursor

Add to Cursor (web link), or open cursor://anysphere.cursor-deeplink/mcp/install?name=blockvectra-docs&config=eyJ1cmwiOiJodHRwczovL2RvY3MuYmxvY2t2ZWN0cmEuY29tL21jcCJ9

MCP install links, web link form

VS Code

code --add-mcp '{"name":"blockvectra-docs","type":"http","url":"https://docs.blockvectra.com/mcp"}'

Use MCP servers in VS Code

VS Code (link)

vscode:mcp/install?%7B%22name%22%3A%22blockvectra-docs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fdocs.blockvectra.com%2Fmcp%22%7D

MCP developer guide

The Cursor config value is the base64 of {"url":"https://docs.blockvectra.com/mcp"}. The VS Code link is the URL-encoded JSON server configuration.

The plugin is described by .claude-plugin/marketplace.json and .claude-plugin/plugin.json. It installs the blockvectra MCP server from .mcp.json and, as a dependency, the blockvectra-rpc skill from blockvectra/skills.

  • Endpoint: https://docs.blockvectra.com/mcp (Streamable HTTP, stateless)

  • Auth: optional x-api-key header (a BlockVectra API key). Authorization: Bearer <key> is also accepted. Without a key you can use the documentation, chain, pricing and status tools, and the JSON-RPC methods that a chain's public endpoint allows.

  • Never put API keys or private keys in tool arguments or chat; the server reads the key only from HTTP headers.

Chains, prices and limits change, so this README does not list them. Read them live:

  • Supported chains: GET https://api.blockvectra.com/v1/chains

  • Plans, prices and limits: GET https://console-api.blockvectra.com/v1/plans

  • Service status: GET https://api.blockvectra.com/v1/status

More: BlockVectra for agents and AI agents guide.

Tools

This table reflects the server currently live at https://docs.blockvectra.com/mcp. Call tools/list for the authoritative list.

Tool

What it does

API key

Read / write

read_doc

Read the raw Markdown of a documentation page

not needed

read-only

search_docs

Keyword search over documentation titles, paths and summaries

not needed

read-only

list_docs

List all documentation pages

not needed

read-only

list_chains

Supported chains, static parameters and method policy (GET /v1/chains)

not needed

read-only

get_status

Live service and network status (GET /v1/status)

not needed

read-only

get_pricing

Plans, CU weights and limits (GET /v1/plans)

not needed

read-only

estimate_usage

Estimate CU and USD cost for methods and daily call volumes

not needed

read-only

get_method_info

Per-chain availability, CU weight and price of a JSON-RPC method

not needed

read-only

explain_error

Look up an error code or reason: billing, retryability, recommended action

not needed

read-only

how_to_get_api_key

Steps to get an API key (programmatic SIWE sign-up or browser handoff) and the auth header formats

not needed

read-only

rpc_call

Execute a read-only JSON-RPC 2.0 method on a chain

optional: without a key only the chain's keyless public endpoint is used, where available

read-only

data_api_get

Query the Data API for a chain and path

required

read-only

get_account

Balance, CU and rate limits of your API key (GET /v1/account)

required

read-only

get_deposit_address

Your account's on-chain deposit address and open networks

required

read-only

send_raw_transaction

Broadcast an already signed raw transaction on a chain

optional: keyless access depends on the chain's public method policy

write (destructiveHint: true)

Note: get_deposit_address and the other keyed tools return an error that points to how_to_get_api_key when called without a key.

Use in Cursor / Cline

The keyless Cursor configuration is in .mcp.json, referenced by the Cursor plugin manifest. For Cline's Streamable HTTP setup and optional x-api-key headers, follow llms-install.md. Start without headers: call list_chains, then read_doc with {"path":"quickstart","lang":"en"}.

Connect a client

Each snippet below follows the client's own documentation. Add the optional key header as that documentation describes for custom headers.

Client

Official documentation

Claude Code

MCP in Claude Code

Cursor

Model Context Protocol in Cursor

VS Code

Use MCP servers in VS Code

Codex

Codex MCP

Claude Code

claude mcp add --transport http blockvectra https://docs.blockvectra.com/mcp
# For an optional key, use private environment-backed header settings;
# see the Codex env_http_headers example below. Never pass a key as a CLI argument.

Cursor (mcp.json)

{
  "mcpServers": {
    "blockvectra-docs": {
      "url": "https://docs.blockvectra.com/mcp"
    }
  }
}

VS Code (.vscode/mcp.json)

{
  "servers": {
    "blockvectra-docs": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp"
    }
  }
}

Codex (~/.codex/config.toml)

[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
# optional: read the key from an environment variable
env_http_headers = { "x-api-key" = "BLOCKVECTRA_API_KEY" }

Registry

server.json describes this server for the official MCP Registry under the name com.blockvectra/docs. Publishing is a manual workflow (.github/workflows/publish.yml).

License

MIT

Available Tools

15 tools
data_api_getQuery Data APIA
Read-only
Inspect

Query the BlockVectra Data API for a specified chain and path using your BlockVectra API key. For endpoint schemas and parameter specifications, see the OpenAPI contract at https://docs.blockvectra.com/openapi/data.yaml. Requires the 'x-api-key' or 'Authorization: Bearer ' HTTP header in your MCP client configuration (keys must not be passed in tool parameters or chat). Returns the HTTP status and JSON response body.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath after '/v1/data/{chain}/' (e.g. 'status/freshness', 'address/0x.../balances'). Must not start with '/', and cannot contain '..', '//', '?', '#', or '%'.
chainYesTarget blockchain network slug (e.g. 'robinhood_mainnet').
queryNoOptional URL query parameters as key-value pairs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
bytesNo
errorNo
statusNo
_truncatedNo
cu_chargedNoCompute Units billed for this request (only present when charged and x-bv-meter: 1 was sent).
balance_unitsNoRemaining balance units after this request (only present when balance is known and x-bv-meter: 1 was sent).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover read-only and open-world behavior, and the description adds real value beyond them: where credentials must live ('x-api-key' / Bearer header in MCP client config), the explicit prohibition on passing keys as tool parameters, and the shape of the response (HTTP status plus JSON body). It does not mention rate limits or error semantics, but the auth/credential-placement warnings are substantive.

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?

Three sentences, front-loaded with purpose, then auth requirement, then return format. Dense and mostly waste-free, though the authentication sentence carries some parenthetical detail that could be tightened.

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?

An output schema exists and parameter descriptions are complete, so the description need not explain returns, and it still summarizes them briefly. It covers the critical operational detail (credential placement) and points to the required external contract, missing only guidance on sibling selection and error handling.

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 schema fully documents chain, path, and query, and the baseline is 3. The description adds only a pointer to the external OpenAPI contract rather than elaborating on parameter usage, so no credit above baseline is earned.

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?

States a specific verb (query) and resource (the BlockVectra Data API) with scoping by chain and path. It is clear what the tool does, though it does not explicitly distinguish itself from the similarly generic sibling rpc_call or explain when the Data API is preferable.

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?

It tells the agent to consult the external OpenAPI contract for endpoint schemas and gives explicit client-configuration requirements for authentication. However, it offers no when-to-use / when-not-to-use guidance relative to siblings like rpc_call or get_status, leaving the choice to inference.

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

estimate_usageEstimate Usage and CostA
Read-only
Inspect

Calculate projected daily and billing cycle Compute Units (CU) and USD costs for planned call volumes across one or more methods, factoring in method weights and free credit allowances from /v1/plans. Available without an API key. Estimates the API key count for planned traffic under key_defaults. Use this tool for volume budget calculations and capacity planning. For looking up raw system pricing tables, use get_pricing instead. For checking whether a single method is supported on a specific chain, use get_method_info instead. Accepts 'lines' array of {method, calls_per_day} or single 'method' and 'calls_per_day'.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNoList of methods and daily call volumes to estimate.
methodNoExact method name (e.g. 'eth_call', 'eth_getLogs', 'eth_blockNumber', 'data.address_balances'). Single-method mode.
calls_per_dayNoExpected daily call volume (non-negative integer). Single-method mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
methodYes
cycle_cuNo
daily_cuNo
cu_weightNo
cycle_daysNo
calls_per_dayYes
free_quota_cuNo
quota_percentNo
cycle_cost_usdNo
daily_cost_usdNo
max_calls_per_secNo
exceeds_free_quotaNo
exceeds_rate_limitNo
average_calls_per_secNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior the annotations cannot convey: it works without an API key, it depends on free credit allowances from /v1/plans, and it projects API-key count under key_defaults. It does not discuss latency or rate limits, so a 4 rather than a 5.

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-loaded with purpose, then usage scope, then alternatives, then parameter shape — a sensible ordering. The final sentence largely duplicates what the schema already states, making it the one line that does not fully earn its place.

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?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. The description supplies everything else an agent needs: no-auth availability, the /v1/plans dependency, the dual input modes, and sibling disambiguation. Nothing material is missing for correct invocation.

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% and every parameter is documented in the schema, including the 'single-method mode' wording itself. The description's closing sentence restates the 'lines' array shape and the method/calls_per_day pairing without adding format, defaulting, or precedence rules (e.g. what happens if both modes are supplied). 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?

States a specific verb and resource ('Calculate projected daily and billing cycle Compute Units (CU) and USD costs') plus the inputs it consumes (planned call volumes, method weights, free credit allowances). It is immediately distinguishable from sibling tools like get_pricing and get_method_info, which are named explicitly.

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

Usage Guidelines5/5

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

Explicitly routes the agent: 'Use this tool for volume budget calculations and capacity planning. For looking up raw system pricing tables, use get_pricing instead. For checking whether a single method is supported on a specific chain, use get_method_info instead.' Both the when-to-use and the alternatives are stated with the condition that selects them.

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

explain_errorExplain Error Code or ReasonA
Read-only
Inspect

Lookup error code, reason, or HTTP status in the official error reference catalog. Returns meaning, billing implications (whether the call was billed), retryability, retry delay, recommended agent action, and documentation URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoError code (e.g. -32600, -32005, -32020, or console code string like 'siwe_invalid').
langNoResponse language (case-insensitive). Defaults to 'en'.
reasonNoError reason slug (e.g. 'invalid_request', 'key_rate_limit', 'insufficient_balance', 'not_found').
http_statusNoHTTP status code (e.g. 200, 400, 402, 404, 429, 500, 503).

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
errorsYes
matchedYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish a safe read-only, closed-world lookup, and the description goes beyond that by enumerating the decision-relevant outputs: billing implications, retryability, retry delay, and recommended agent action. It does not discuss rate limits, auth needs, or behavior when an unknown code is supplied, so it falls short of a 5.

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?

Two sentences, no filler, action and scope front-loaded before the return-value inventory. Every clause earns its place; nothing is repeated from the name or title.

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?

An output schema exists, so the description is not obliged to explain return values, yet it does so constructively to support retry decisions. It is complete for a simple catalog lookup with full schema coverage; the only gap is the unresolved question of how to select among the four optional 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 description coverage is 100%, so the baseline is 3 and the schema already documents code, reason, http_status, and lang with examples. The description adds nothing about parameter semantics — notably it never says whether the four lookup keys are mutually exclusive or which takes precedence, which matters because zero parameters are required.

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 (lookup) and resource (error code/reason/HTTP status in the official error reference catalog), plus the payload it returns. The 'official error reference catalog' scoping cleanly separates it from siblings like search_docs, read_doc, and list_docs, so an agent can pick it without inspecting schemas.

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 trigger is implied: call this when you hold an error code, reason slug, or HTTP status and need its meaning. There is no explicit statement of when NOT to use it, nor a pointer to an alternative (e.g. search_docs for free-text errors), which the rubric requires for a 4-5.

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

get_accountGet Account Balance and LimitsA
Read-only
Inspect

Get the API key's own balance, Compute Units (CU), rate limits, and key parameters from GET /v1/account using your BlockVectra API key. Free and unbilled. Requires the 'x-api-key' or 'Authorization: Bearer ' HTTP header in your MCP client configuration (never pass keys in tool parameters or chat). Returns the account's key_id, plan, balance_units, balance_cu, balance_as_of_age_ms, and key limits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyNo
dataNo
planNo
bytesNo
errorNo
key_idNo
statusNo
_truncatedNo
balance_cuNo
balance_unitsNo
balance_as_of_age_msNo

TDQS

A4.3/5.0
Behavior4/5

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

Adds meaningful behavior beyond the readOnlyHint/openWorldHint annotations: it discloses cost behavior ('free and unbilled'), the exact auth mechanism ('x-api-key' or 'Authorization: Bearer <key>' in client config), and the important constraint never to pass keys in tool parameters or chat. It does not discuss caching, freshness beyond 'balance_as_of_age_ms', or failure modes.

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-loaded with purpose and endpoint, followed by cost, auth, and return fields in three efficient sentences. The final enumeration of return fields is somewhat redundant given an output schema exists, costing a little tightness.

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?

For a zero-param read tool with annotations and an output schema, the definition covers purpose, auth, and cost. The return-field list duplicates what the output schema already provides, but no decision-relevant information is missing.

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 takes zero parameters, which is the baseline-4 case; there are no parameter semantics to clarify. The description correctly avoids inventing parameters and reinforces that keys must not be passed as arguments.

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 and resource ('Get the API key's own balance, Compute Units (CU), rate limits, and key parameters') plus the backing endpoint GET /v1/account. This is clearly distinguishable from siblings like get_status, estimate_usage, and get_pricing.

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?

Gives strong context for when to call it: 'Free and unbilled', which signals it is safe to use for quota/limit checks. It does not, however, explicitly route the agent away from alternatives (e.g., estimate_usage vs this tool), so it falls short of full when/when-not guidance.

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

get_deposit_addressGet Deposit Address and Open NetworksA
Read-only
Inspect

Requires an API key. Get your account's dedicated on-chain deposit address and open networks to top up balance; only transfer to the listed networks and tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
bytesNo
errorNo
statusNo
addressNo
networksNo
_truncatedNo
deposits_urlNo
min_deposit_usdNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds genuinely new behavioral context: the API-key authentication requirement and the constraint that transfers must target only the listed networks/tokens, which guards against misuse of the returned address.

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: the auth prerequisite comes first, then the purpose, then the transfer restriction. No filler, no redundancy.

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?

With an output schema present, the description need not explain return values, and annotations cover the read-only nature. Auth and transfer-safety caveats are supplied, so only selection guidance relative to sibling tools is missing.

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?

There are zero parameters, so the baseline is 4. The description correctly adds no parameter detail, and there is nothing for it 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 states a specific verb and resource: retrieving the account's dedicated on-chain deposit address plus the set of open networks for topping up a balance. That combination is distinctive against siblings like get_account or list_chains, so an agent can identify the tool without opening the schema.

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?

It implies the context (funding your balance) and gives one operational rule ('only transfer to the listed networks and tokens'), but it never says when to prefer this over alternatives such as get_account or list_chains, nor any exclusions. Usage is implied rather than stated.

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

get_method_infoGet Method InformationA
Read-only
Inspect

Inspect a single method's chain-by-chain availability, Compute Unit (CU) weight, price per million calls, and documentation link. Check JSON-RPC method policy and Data API dataset coverage separately. JSON-RPC follows methods.allow and methods.deny from /v1/chains. Data API coverage follows data_features in GET /v1/status, with data enabled in /v1/chains. Pricing comes from /v1/plans. For the full system-wide pricing schedule and rate card, use get_pricing instead. For calculating projected bills for expected call volumes across methods, use estimate_usage instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoOptional chain slug (e.g. 'robinhood_mainnet'). If specified, only availability for this chain is returned.
methodYesMethod name (e.g. 'eth_call', 'eth_getBalance', 'debug_traceBlockByNumber', 'data.address_balances').

Output Schema

ParametersJSON Schema
NameRequiredDescription
chainNo
notesNo
methodYes
docs_urlNo
cu_weightNo
supportedYes
available_chainsYes
cost_per_million_usdNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it aggregates from /v1/chains, /v1/status, and /v1/plans, and explains that JSON-RPC policy follows methods.allow/deny while Data API coverage follows data_features — non-obvious distinctions an agent would otherwise have to guess.

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-loaded with what the tool returns, then policy sourcing, then alternative routing — a sensible ordering. It is dense with cross-references to /v1 endpoints, but each sentence carries distinct information and nothing is padding.

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?

With an output schema present, the description need not restate return values, and it instead supplies the missing context: where each piece of data originates and which sibling tools to use for adjacent questions. Nothing an agent needs to call this correctly is absent.

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% and both parameters are already documented in the input schema, including examples of valid method names. The description adds the nuance that 'method' spans both JSON-RPC methods and Data API datasets, but gives no additional syntax or format detail beyond the schema, so the baseline of 3 applies.

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 first sentence gives a specific verb ('Inspect') and resource ('a single method') and enumerates exactly what is returned: chain-by-chain availability, CU weight, price per million calls, and a documentation link. This is precise enough to separate it from get_pricing and estimate_usage without opening any schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent: 'For the full system-wide pricing schedule and rate card, use get_pricing instead' and 'For calculating projected bills... use estimate_usage instead.' It also states which upstream sources govern each policy dimension, so the agent knows what this tool does and does not cover.

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

get_pricingGet Plans and PricingA
Read-only
Inspect

Live prices and plan limits from GET /v1/plans. Use before estimating cost or when asked about free credits, rate limits or per-method prices. Units: 1 billing unit = pricing.cu_per_unit CU; 1 USD buys pricing.units_per_usd units. method_weights includes JSON-RPC and Data API CU per call, push.log / push.native_transfer / push.token_transfer per delivered data event, push.history per successful history request and push.address_day per billable address-day; resolve a method by exact match, then the longest prefix rule ending in *, then the * row (JSON-RPC only; Data API and push operations have no default). free.* values are in billing units; key_defaults are per-key CU/s and burst CU. promo.ends_at is a sign-up coverage cutoff, not the end of the offer. For a single method's chain support and documentation use get_method_info instead; for projecting cycle costs use estimate_usage instead.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
freeNo
pricingYes
key_defaultsNo
method_weightsYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds that values are live from GET /v1/plans plus interpretive caveats such as promo.ends_at being a sign-up coverage cutoff rather than the offer's end. It doesn't mention auth or caching/refresh behavior, so it stops short of a 5.

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?

Purpose and usage are front-loaded and every clause carries meaning, but it is a single unbroken paragraph mixing lookup rules and field-level semantics that the output schema may already carry. Dense rather than wasteful, but not optimally structured.

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?

For a zero-parameter, read-only lookup with an output schema, the description supplies the unit definitions, method-weight resolution fallback rules, and sibling routing an agent needs to interpret and act on the result. Nothing material is missing.

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 takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate.

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 ('Live prices and plan limits') and even names the source endpoint (GET /v1/plans), making it immediately distinguishable from siblings like get_method_info and estimate_usage.

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

Usage Guidelines5/5

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

Gives explicit triggers ('Use before estimating cost or when asked about free credits, rate limits or per-method prices') and explicit exclusions routing to alternatives: get_method_info for a single method's chain support/docs and estimate_usage for cycle-cost projection.

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

get_statusGet Service and Network StatusA
Read-only
Inspect

Live operational status and network health from GET /v1/status. Confirm chain status is 'ok' before calling methods; see list_chains for static chain capabilities and method policies. For Data API, data_status can be 'ok', 'syncing' (queryable and billed normally, but indexing is lagging behind latest block time), or 'unavailable'.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
chainsYes
gatewayYes
checked_atYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: it enumerates the data_status states and explains that 'syncing' is still queryable and billed normally but indexes behind the latest block, which materially affects how an agent should interpret the result.

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?

Three compact sentences, front-loaded with the core purpose before the prerequisite and the status-value detail. The parenthetical about 'syncing' is slightly dense but its billing/indexing nuance earns the space.

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?

For a zero-parameter status endpoint with an output schema and read-only annotations, the definition supplies everything needed: what it reports, the prerequisite check, the adjacent tool for static info, and the interpretation of the status states.

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 takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool is 4. The description correctly makes no claims about inputs.

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 and resource ('Live operational status and network health') and grounds it in a concrete endpoint (GET /v1/status). It also differentiates itself from the sibling list_chains by contrasting live status against static chain capabilities and method policies.

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

Usage Guidelines5/5

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

Gives an explicit prerequisite ('Confirm chain status is "ok" before calling methods') which tells the agent exactly when this call is warranted, and routes to the correct alternative (list_chains) for a different need. Both the when-to-use and the alternative are named.

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

how_to_get_api_keyHow to Get API KeyA
Read-only
Inspect

Get instructions and endpoints for obtaining a BlockVectra API key via preferred programmatic SIWE sign-up or browser handoff, plus authentication header and URL formats for JSON-RPC and Data API.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoResponse language (case-insensitive). Defaults to 'en'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathsYes
env_varYes
auth_methodsYes
preferred_pathYes
handoff_instructionsYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description usefully discloses that the response contains instructions, endpoints, auth header and URL formats, which goes beyond the annotations. It stops short of stating that it is static/purely informational content with no side effects or live key generation.

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 dense sentence that front-loads the purpose and appends the useful extra content (auth headers, URL formats). It is efficient, though the trailing clause makes it slightly crowded.

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?

With an output schema present, the description need not explain return values, and it still summarizes the content returned. For a read-only helper tool this is largely complete; only explicit guidance on choosing between the two sign-up paths is missing.

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 a single enum-constrained 'lang' parameter fully documented in the schema, so the baseline is 3. The description adds no extra meaning about the language parameter or its default beyond what the schema provides.

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 states a specific verb ('Get instructions and endpoints') and a precise resource ('obtaining a BlockVectra API key'), naming the two acquisition paths (programmatic SIWE sign-up or browser handoff) and the extra payload (auth header and URL formats). It does not explicitly differentiate itself from doc-oriented siblings like read_doc or search_docs, but the resource is specific enough to identify the tool.

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?

Usage is implied — an agent would call this when it needs an API key — but there is no explicit when-to-use statement or routing versus alternatives such as search_docs or read_doc. The mention of 'preferred programmatic SIWE sign-up or browser handoff' hints at choice, yet the description never tells the agent how to select between the two paths.

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

list_chainsList Supported ChainsA
Read-only
Inspect

Fetch supported blockchain networks and static parameters from GET /v1/chains. methods.allow and methods.deny support wildcard patterns where deny takes precedence over allow. state_window_blocks indicates the historical state window in blocks for state queries (null when full history is available); max_logs_block_range limits eth_getLogs: the range is inclusive, so toBlock - fromBlock + 1 must not exceed it, otherwise the call fails with logs_range_too_large. public describes the keyless endpoint: public.url serves only the methods in public.methods, and public.history_blocks is how far back a block reference may reach on that endpoint (it does not add methods). Pass chain (a slug such as base_mainnet) to return only that chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoOptional chain slug (exact match, e.g. 'base_mainnet'). When set, only that chain is returned; unknown slugs return an error listing the available ones. Omit to list all chains.

Output Schema

ParametersJSON Schema
NameRequiredDescription
chainsYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already provide readOnlyHint and openWorldHint, so the bar is lower, yet the description goes far beyond them. It documents wildcard pattern semantics with deny precedence, the state_window_blocks null case, the inclusive max_logs_block_range constraint and its logs_range_too_large failure, and the keyless public endpoint's method/history scoping — rich operational context an agent cannot infer elsewhere.

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?

Purpose is front-loaded in the first clause, and the remaining sentences are dense with field semantics rather than filler. It is long and somewhat wall-of-text, but every sentence carries operational meaning, so it stays on the right side of verbose.

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?

For a single-optional-parameter read tool with an output schema, the description is essentially complete: it covers the filter parameter, error behavior, and the semantics of the key returned fields. Explaining returned fields is arguably redundant given the output schema, which is the only minor excess.

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: it confirms the slug format ('base_mainnet'), the exact-match filter behavior, and that unknown slugs return an error listing valid ones. It complements the schema rather than merely restating it.

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 opens with a specific verb and resource ('Fetch supported blockchain networks and static parameters from GET /v1/chains'), which is immediately distinguishable from siblings like list_docs or get_method_info. An agent knows exactly what this tool returns without opening the schema.

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 explains the `chain` narrowing behavior ('Pass chain to return only that chain') and what an unknown slug does, but it never contrasts this tool with alternatives or states when it should be preferred over siblings. Usage is implied by context rather than spelled out.

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

list_docsList Documentation PagesB
Read-only
Inspect

List all available documentation pages, relative paths, and titles from the static documentation index, including webhook push subscriptions, signatures, delivery and billing. Available without an API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoPublished documentation language (case-insensitive, e.g. zh-hant or zh-Hant). Omit for English; unavailable languages return an error.

Output Schema

ParametersJSON Schema
NameRequiredDescription
docsYes
langYes
countYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=true and openWorldHint=false, and the description adds real value beyond them by disclosing that the index is static and requires no API key. However, it says nothing about pagination, result size, or whether the language filter changes the listing, so behavioral coverage beyond the annotation layer is thin.

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?

Everything is packed into one sentence, which is front-loaded with the useful scoping clause. The appended topic enumeration ('including webhook push subscriptions, signatures, delivery and billing') is unexplained and reads like content leaking in from a different tool, diluting an otherwise tight definition.

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?

For a simple read-only list tool with an output schema and a fully documented parameter, the description covers what it returns and the auth posture. It is nearly complete; the only omissions are result-size/pagination behavior and any pointer to search_docs as the alternative.

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%: the single 'lang' parameter is fully documented in the schema with its enum, case-insensitivity, English default, and error behavior for unavailable languages. The description adds nothing about parameters, so the baseline of 3 applies.

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?

States a specific verb and resource ('List all available documentation pages, relative paths, and titles from the static documentation index'), so the agent knows exactly what it returns. It does not distinguish itself from the sibling search_docs, and the trailing topic list ('webhook push subscriptions, signatures, delivery and billing') reads as scope noise that muddies rather than sharpens the purpose.

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 when-to-use or when-not-to-use guidance, and the obvious alternative (search_docs) is never mentioned. The only routing signal is the implicit list-vs-search distinction plus 'Available without an API key', which at least tells the agent this works pre-auth.

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

read_docRead Documentation PageA
Read-only
Inspect

Read the raw Markdown content of a documentation page from /md/{lang}/{path}.md. Path must be an internal relative path (e.g. 'quickstart', 'guides/ai-agents', 'api/json-rpc', 'chains').

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoPublished documentation language (case-insensitive, e.g. zh-hant or zh-Hant). Omit for English; unavailable languages return an error.
pathYesInternal relative documentation path (e.g. 'quickstart', 'guides/ai-agents', 'api/json-rpc'). Do not include protocol, hostname, query string, fragment, or '..'.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds that the return value is raw Markdown, which is useful beyond the annotations, but says nothing about missing-page errors, size limits, or caching 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?

Two sentences, no filler, with the resource and route front-loaded followed by the path constraint. Every clause 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?

With no output schema, the description correctly states what is returned (raw Markdown), and the parameter contract is fully documented by the schema plus annotations. Minor gaps remain around error handling for unavailable languages or missing paths, which the schema only partially covers.

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 description coverage is 100%, so the baseline is 3, but the description adds value by showing how lang and path compose into the URL template (/md/{lang}/{path}.md) and by providing an extra path example not in the schema. It reinforces rather than merely repeats the constraints.

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 ("Read") and resource ("raw Markdown content of a documentation page") and even exposes the underlying route (/md/{lang}/{path}.md). This clearly distinguishes it from siblings like list_docs and search_docs, which enumerate or query rather than fetch a specific page's raw content.

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?

Usage is only implied: the agent can infer it should call this to fetch one known page's raw text, but no explicit when-to-use or when-not-to-use guidance is given, and no alternatives (search_docs, list_docs) are named. The path-format constraint is parameter guidance, not usage routing.

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

rpc_callCall JSON-RPC MethodA
Read-only
Inspect

Execute a read-only JSON-RPC 2.0 method on a specified blockchain network using your BlockVectra API key, or via the keyless public endpoint if available on the chain. Chain slugs look like 'base_mainnet'; take them from list_chains. Without a key the call goes to the keyless endpoint /v1/{chain}/public (the chain's public.url in list_chains), which only serves the methods listed in that chain's public.methods. Write methods (such as 'eth_sendRawTransaction') are not supported in rpc_call; use 'send_raw_transaction' instead. Consult the Ethereum JSON-RPC specification (https://ethereum.org/en/developers/docs/apis/json-rpc/) and the BlockVectra method reference (https://docs.blockvectra.com/en/api/json-rpc/methods/). With a key, set the 'x-api-key' or 'Authorization: Bearer ' HTTP header in your MCP client configuration for full access (keys must not be passed in tool parameters or chat). Returns the raw JSON-RPC response from the server.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesTarget blockchain network slug (e.g. 'base_mainnet'). Must exist in GET /v1/chains; list_chains returns the valid slugs.
methodYesJSON-RPC 2.0 method name (e.g. 'eth_blockNumber', 'eth_call', 'eth_getLogs'). Write methods are not accepted.
paramsNoOptional JSON-RPC parameter array. Defaults to [].

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
helpNo
errorNo
resultNo
jsonrpcNo
messageNo
cu_chargedNoCompute Units billed for this request (only present when charged and x-bv-meter: 1 was sent).
signup_urlNoRegistration and sign-up URL (returned when rate-limited on the public endpoint).
balance_unitsNoRemaining balance units after this request (only present when balance is known and x-bv-meter: 1 was sent).

TDQS

A4.6/5.0
Behavior5/5

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

Even though annotations already declare readOnlyHint and openWorldHint, the description adds substantial context: auth via 'x-api-key' or 'Authorization: Bearer <key>' headers set in MCP client config (not tool params), the keyless endpoint's method-list restriction, the exclusion of write methods, and that raw JSON-RPC responses are returned.

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-loaded with purpose and constraints, then auth and references. Some redundancy between the keyless-endpoint explanation and the schema's chain description, plus two external URLs, but every sentence carries actionable information.

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?

Covers auth model, endpoint selection, write-method exclusion, and error-avoidance routing, and an output schema already exists so return-value explanation isn't required. Nothing an agent needs to invoke this correctly is missing.

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 chain slug format, method naming, and optional params defaulting to []. The description reinforces slug format ('base_mainnet', take from list_chains) but adds no new parameter semantics beyond the schema; baseline 3 applies.

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+constraint: 'Execute a read-only JSON-RPC 2.0 method on a specified blockchain network'. It also explicitly distinguishes itself from sibling send_raw_transaction ('Write methods ... are not supported in rpc_call; use send_raw_transaction instead'), so an agent can route correctly without opening schemas.

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

Usage Guidelines5/5

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

Gives explicit when-to-use rules: with an API key for full access, without a key only the keyless `/v1/{chain}/public` endpoint and only that chain's `public.methods`. It names the alternative tool for writes and points to list_chains for valid slugs.

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

search_docsSearch DocumentationA
Read-only
Inspect

Find documentation by topic or task keywords when the page path is unknown. Searches page titles, navigation titles, relative paths, and page summaries, returning titles, relative paths, and summaries. Read a result with read_doc using its path and the same lang; use read_doc directly for a known path or list_docs to browse the documentation catalog. Omit lang for English; limit is 1-20 (default 5). If no results match, try broader keywords or browse list_docs. Available without an API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoPublished documentation language (case-insensitive, e.g. zh-hant or zh-Hant). Omit for English; unavailable languages return an error.
limitNoMaximum number of search results to return (1-20, default 5).
queryYesKeywords to search for in documentation titles, navigation titles, paths, and summaries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
resultsYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description doesn't contradict them; it adds value by naming the searched fields (titles, nav titles, paths, summaries), the returned shape, and that the tool is available without an API key. It stops short of describing pagination or ranking behavior, which is a minor gap for a search tool.

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?

Four tight sentences, front-loaded with the use case and search scope, followed by sibling routing, parameter conventions, and failure handling. No filler or redundancy; each sentence changes what the agent would do.

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?

An output schema exists so return values need not be explained, yet the description summarizes them anyway; combined with sibling routing, lang coordination, limit defaults, auth requirements, and empty-result recovery, an agent has everything needed to call this correctly on the first attempt.

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 the baseline is 3, but the description adds cross-tool parameter semantics the schema cannot convey: lang must match the lang used in read_doc, and 'omit lang for English' with limit bounds restated for the agent's convenience. It goes beyond restating the schema even though the enum values themselves come from 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 (find documentation by topic/task keywords) plus the precise condition that motivates it ('when the page path is unknown'), and enumerates the searched fields and returned fields. It is clearly distinguishable from sibling read_doc (known path) and list_docs (browse catalog).

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

Usage Guidelines5/5

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

Explicitly routes between siblings: use this when the path is unknown, use read_doc directly for a known path, use list_docs to browse the catalog, and read results back with read_doc using the same lang. It also gives a no-results fallback ('try broader keywords or browse list_docs'), leaving nothing to inference.

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

send_raw_transactionSend Raw TransactionA
Destructive
Inspect

Broadcast a signed raw transaction to a specified blockchain network via eth_sendRawTransaction. Requires the 'x-api-key' or 'Authorization: Bearer ' HTTP header in your MCP client configuration for full access, or uses the keyless public endpoint if permitted on the chain (keys must not be passed in tool parameters or chat). Returns the transaction hash or JSON-RPC error.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesTarget blockchain network slug (e.g. 'robinhood_mainnet'). Must exist in GET /v1/chains.
raw_txYesSigned raw transaction data as a 0x-prefixed hex string (the RLP-encoded raw transaction).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
helpNo
errorNo
resultNo
jsonrpcNo
messageNo
cu_chargedNoCompute Units billed for this request (only present when charged and x-bv-meter: 1 was sent).
signup_urlNoRegistration and sign-up URL (returned when rate-limited on the public endpoint).
balance_unitsNoRemaining balance units after this request (only present when balance is known and x-bv-meter: 1 was sent).

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the mutation/open-world profile is covered. The description adds real value beyond that: the auth mechanism ('x-api-key' or Bearer header vs keyless public endpoint), the explicit prohibition on passing keys in parameters, and the broadcast/error return behavior. It stops short of describing irreversibility or mempool rejection handling.

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 the core action in the first clause, then layers auth and return info. Three sentences with little waste, though the auth sentence is dense and slightly packed with parenthetical conditions.

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?

Output schema exists, so return values need not be explained (the brief mention of tx hash/JSON-RPC error is a bonus). Annotations carry safety, and the description covers the non-obvious auth requirements. Minor gaps: nothing on chain-validity failure or transaction-rejection semantics.

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% – both 'chain' (slug, must exist in GET /v1/chains) and 'raw_tx' (0x-prefixed RLP hex with pattern) are fully documented in the schema. The description restates 'signed raw transaction' but adds no format or validation detail beyond the schema, so baseline 3 applies.

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 (broadcast a signed raw transaction) and names the underlying mechanism (eth_sendRawTransaction), which implicitly separates it from the generic rpc_call sibling. An agent can identify this tool without opening the schema.

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 establishes the action and the auth context, so the use case is implied (broadcasting pre-signed transactions). It never states when to prefer this over rpc_call, nor any exclusions or prerequisites beyond the header requirement, leaving alternative routing to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updatesv0.1.0
    • First observeddata_api_get
    • First observedestimate_usage
    • First observedexplain_error
    • First observedget_account
    • First observedget_deposit_address
    • First observedget_method_info
    • First observedget_pricing
    • First observedget_status
    • First observedhow_to_get_api_key
    • First observedlist_chains
    • First observedlist_docs
    • First observedread_doc
    • First observedrpc_call
    • First observedsearch_docs
    • First observedsend_raw_transaction

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target clearly distinct resources/actions, and the descriptions go out of their way to cross-reference boundaries (e.g. get_pricing vs get_method_info vs estimate_usage, rpc_call vs send_raw_transaction, list_chains vs get_status). The only mild overlap is the cluster of pricing/CU-related tools, but the explicit 'use X instead' guidance resolves it for an agent.

Naming Consistency4/5

Predominantly a verb_noun convention (search_docs, list_docs, read_doc, list_chains, get_status, get_pricing, get_account, get_deposit_address, explain_error, send_raw_transaction). A few deviate: how_to_get_api_key (a phrase), rpc_call and data_api_get (noun-first), but these are readable and recognizable.

Tool Count4/5

15 tools for a blockchain RPC/data service spanning docs, chain discovery, pricing, account, execution, and errors is reasonable and each tool earns its place. It sits at the upper bound of ideal, with only the three pricing/CU tools being close enough to invite trimming.

Completeness4/5

Strong coverage of the domain lifecycle: docs browsing, chain/status/pricing/method discovery, key acquisition, account/deposit, read (rpc_call), data (data_api_get), write (send_raw_transaction), error lookup, and cost estimation. Minor gaps remain, such as tools for webhook/push subscription management or browsing all methods at once.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to perform blockchain operations like wallet management, token info, DeFi swaps, cross-chain bridging, and price checking across Ethereum, BNB Chain, and Solana.
    ISC
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to fetch live multi-chain portfolio, token info, gas prices, and token prices across Ethereum, Base, Polygon, Arbitrum, and Optimism with a single call. No API key required.
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Blockchain JSON-RPC on 23 EVM chains for AI agents — Ethereum, Base, Arbitrum, plus young chains like Robinhood Chain, Plasma and Ink. Free reads with no key; heavy methods (eth_getLogs, trace, debug) via a free API key or x402 USDC pay-per-call.
    12
    17 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to query on-chain data across EVM chains like Base, Optimism, Avalanche, Celo, and Arbitrum, including balances, transactions, gas, and smart contract interactions.
    19 npm
    MIT