Server definition
- Hash
- sha256:4597e98d7fac63a1870f7761e12624a9a13e61e061c4c6e287a34ef52c84cdb7
- What it is
- What a remote MCP server returned when asked what it offers: 14 tools
The blob, as servednamed by its sha256
{
"instructions": "BlockVectra offers multi-chain JSON-RPC and a Data API with one API key. Typical workflow: (1) `list_chains` to find a chain whose `methods.allow` covers your method (`deny` wins), then `get_status` to confirm the chain `status` is `ok`; (2) `get_method_info` or `read_doc('quickstart')` for the request shape; (3) `estimate_usage` for cost; (4) if you have no API key, call `how_to_get_api_key` for programmatic sign-up steps or browser handoff; (5) once configured with an API key in your MCP client headers ('x-api-key' or 'Authorization: Bearer <key>'), use `rpc_call` to execute JSON-RPC methods, `data_api_get` to query Data API endpoints, `get_account` to check balance and rate limits directly, and `get_deposit_address` to get on-chain deposit addresses. Never put API keys or private keys in tool arguments, URLs or chat.",
"tools": [
{
"description": "Query the BlockVectra Data API for a specified chain and path using your BlockVectra API key. Requires the 'x-api-key' or 'Authorization: Bearer <key>' HTTP header in your MCP client configuration (never pass keys in tool parameters or chat). Returns the HTTP status and JSON response body.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"chain": {
"description": "Target blockchain network slug (e.g. 'robinhood_mainnet').",
"type": "string"
},
"path": {
"description": "Path after '/v1/data/{chain}/' (e.g. 'status/freshness', 'address/0x.../balances'). Must not start with '/', and cannot contain '..', '//', '?', '#', or '%'.",
"type": "string"
},
"query": {
"additionalProperties": {
"type": "string"
},
"description": "Optional URL query parameters as key-value pairs.",
"type": "object"
}
},
"required": [
"chain",
"path"
],
"type": "object"
},
"name": "data_api_get",
"outputSchema": {
"properties": {
"_truncated": {
"type": "boolean"
},
"balance_units": {
"description": "Remaining balance units after this request (only present when balance is known and x-bv-meter: 1 was sent).",
"type": "integer"
},
"bytes": {
"type": "integer"
},
"cu_charged": {
"description": "Compute Units billed for this request (only present when charged and x-bv-meter: 1 was sent).",
"type": "integer"
},
"data": {},
"error": {
"type": "string"
},
"status": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Estimate daily and cycle Compute Units (CU) and USD cost for one or more methods and daily call volumes based on /v1/plans method weights and pricing. Pass 'lines' array of {method, calls_per_day}, or single 'method' and 'calls_per_day'.",
"inputSchema": {
"properties": {
"calls_per_day": {
"description": "Expected daily call volume (non-negative integer). Single-method mode.",
"minimum": 0,
"type": "integer"
},
"lines": {
"description": "List of methods and daily call volumes to estimate.",
"items": {
"properties": {
"calls_per_day": {
"description": "Expected daily call volume (non-negative integer).",
"minimum": 0,
"type": "integer"
},
"method": {
"description": "Method name (e.g. 'eth_call', 'eth_getLogs', 'eth_blockNumber', 'data.address_balances').",
"type": "string"
}
},
"required": [
"method",
"calls_per_day"
],
"type": "object"
},
"type": "array"
},
"method": {
"description": "Exact method name (e.g. 'eth_call', 'eth_getLogs', 'eth_blockNumber', 'data.address_balances'). Single-method mode.",
"type": "string"
}
},
"type": "object"
},
"name": "estimate_usage",
"outputSchema": {
"properties": {
"average_calls_per_sec": {
"type": "number"
},
"calls_per_day": {
"type": "number"
},
"cu_weight": {
"type": [
"number",
"null"
]
},
"cycle_cost_usd": {
"type": [
"number",
"null"
]
},
"cycle_cu": {
"type": "number"
},
"cycle_days": {
"type": "number"
},
"daily_cost_usd": {
"type": [
"number",
"null"
]
},
"daily_cu": {
"type": "number"
},
"exceeds_free_quota": {
"type": "boolean"
},
"exceeds_rate_limit": {
"type": "boolean"
},
"free_quota_cu": {
"type": [
"number",
"null"
]
},
"max_calls_per_sec": {
"type": [
"number",
"null"
]
},
"method": {
"type": "string"
},
"quota_percent": {
"type": [
"number",
"null"
]
}
},
"required": [
"method",
"calls_per_day"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "Error code (e.g. -32600, -32005, -32020, or console code string like 'siwe_invalid').",
"type": [
"number",
"string"
]
},
"http_status": {
"description": "HTTP status code (e.g. 200, 400, 402, 404, 429, 500, 503).",
"type": "number"
},
"lang": {
"description": "Language for explanations: 'en' for English or 'zh' for Chinese. Defaults to 'en'.",
"enum": [
"en",
"zh"
],
"type": "string"
},
"reason": {
"description": "Error reason slug (e.g. 'invalid_request', 'key_rate_limit', 'insufficient_balance', 'not_found').",
"type": "string"
}
},
"type": "object"
},
"name": "explain_error",
"outputSchema": {
"properties": {
"count": {
"type": "number"
},
"errors": {
"items": {
"properties": {
"action": {
"type": "string"
},
"billed": {
"type": [
"boolean",
"string"
]
},
"category": {
"type": "string"
},
"code": {
"type": [
"number",
"string"
]
},
"docs_url": {
"type": "string"
},
"http": {
"type": "number"
},
"message": {
"type": "string"
},
"reason": {
"type": [
"string",
"null"
]
},
"retry_after": {
"type": [
"string",
"null"
]
},
"retryable": {
"type": "boolean"
}
},
"required": [
"code",
"http",
"message",
"billed",
"retryable",
"action",
"docs_url"
],
"type": "object"
},
"type": "array"
},
"matched": {
"type": "boolean"
}
},
"required": [
"matched",
"errors"
],
"type": "object"
}
},
{
"description": "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 <key>' 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.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_account",
"outputSchema": {
"properties": {
"_truncated": {
"type": "boolean"
},
"balance_as_of_age_ms": {
"type": "integer"
},
"balance_cu": {
"type": "integer"
},
"balance_units": {
"type": "integer"
},
"bytes": {
"type": "integer"
},
"data": {},
"error": {
"type": "string"
},
"key": {
"properties": {
"burst_cu": {
"type": "integer"
},
"cu_cap": {
"type": [
"integer",
"null"
]
},
"cu_cap_remaining": {
"type": [
"integer",
"null"
]
},
"cu_per_sec": {
"type": "integer"
},
"expires_at": {
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"key_id": {
"type": "string"
},
"plan": {
"type": "string"
},
"status": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Get your account's dedicated on-chain deposit address and open networks to top up balance; only transfer to the listed networks and tokens (只向列出的网络和代币转账).",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_deposit_address",
"outputSchema": {
"properties": {
"_truncated": {
"type": "boolean"
},
"address": {
"type": "string"
},
"bytes": {
"type": "integer"
},
"data": {},
"deposits_url": {
"type": "string"
},
"error": {
"type": "string"
},
"min_deposit_usd": {
"type": "string"
},
"networks": {
"items": {
"properties": {
"chain": {
"type": "string"
},
"chain_id": {
"type": "integer"
},
"explorer_tx_url": {
"type": "string"
},
"name": {
"type": "string"
},
"tokens": {
"items": {
"properties": {
"contract": {
"type": "string"
},
"decimals": {
"type": "integer"
},
"min_amount_raw": {
"type": "string"
},
"symbol": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"typical_credit_seconds": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"status": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Inspect a method's availability across chains (per methods.allow and methods.deny), Compute Unit (CU) weight, price per million calls, and documentation link. Sourced from /v1/chains, /v1/plans, and the documentation catalog.",
"inputSchema": {
"properties": {
"chain": {
"description": "Optional chain slug (e.g. 'robinhood_mainnet'). If specified, only availability for this chain is returned.",
"type": "string"
},
"method": {
"description": "Method name (e.g. 'eth_call', 'eth_getBalance', 'debug_traceBlockByNumber', 'data.address_balances').",
"type": "string"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "get_method_info",
"outputSchema": {
"properties": {
"available_chains": {
"items": {
"type": "string"
},
"type": "array"
},
"chain": {
"type": [
"string",
"null"
]
},
"cost_per_million_usd": {
"type": [
"number",
"null"
]
},
"cu_weight": {
"type": [
"number",
"null"
]
},
"docs_url": {
"type": [
"string",
"null"
]
},
"method": {
"type": "string"
},
"notes": {
"type": [
"string",
"null"
]
},
"supported": {
"type": "boolean"
}
},
"required": [
"method",
"supported",
"available_chains"
],
"type": "object"
}
},
{
"description": "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` is CU per call; resolve a method by exact match, then the longest prefix rule ending in `*`, then the `*` row (JSON-RPC only; Data API 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.",
"inputSchema": {
"additionalProperties": false,
"type": "object"
},
"name": "get_pricing",
"outputSchema": {
"properties": {
"free": {
"type": "object"
},
"key_defaults": {
"type": "object"
},
"method_weights": {
"type": "array"
},
"pricing": {
"type": "object"
}
},
"required": [
"pricing",
"method_weights"
],
"type": "object"
}
},
{
"description": "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'.",
"inputSchema": {
"additionalProperties": false,
"type": "object"
},
"name": "get_status",
"outputSchema": {
"properties": {
"chains": {
"type": "array"
},
"checked_at": {
"type": "string"
},
"gateway": {
"type": "object"
}
},
"required": [
"gateway",
"chains"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lang": {
"description": "Documentation language: 'en' for English or 'zh' for Chinese. Defaults to 'en'.",
"enum": [
"en",
"zh"
],
"type": "string"
}
},
"type": "object"
},
"name": "how_to_get_api_key",
"outputSchema": {
"properties": {
"auth_methods": {
"properties": {
"data_api": {
"properties": {
"example": {
"type": "string"
},
"header": {
"type": "string"
}
},
"required": [
"header"
],
"type": "object"
},
"json_rpc": {
"properties": {
"bearer": {
"type": "string"
},
"example": {
"type": "string"
},
"header": {
"type": "string"
}
},
"required": [
"header"
],
"type": "object"
}
},
"required": [
"data_api",
"json_rpc"
],
"type": "object"
},
"console_url": {
"type": "string"
},
"env_var": {
"type": "string"
},
"handoff_instructions": {
"type": "string"
},
"paths": {
"properties": {
"browser": {
"properties": {
"console_url": {
"type": "string"
},
"instructions": {
"type": "string"
}
},
"required": [
"console_url",
"instructions"
],
"type": "object"
},
"programmatic": {
"properties": {
"base_url": {
"type": "string"
},
"guide_url": {
"type": "string"
},
"notes": {
"items": {
"type": "string"
},
"type": "array"
},
"rate_limit_policy": {
"properties": {
"error_code": {
"type": "string"
},
"instruction": {
"type": "string"
},
"retry_after_header": {
"type": "string"
},
"status": {
"type": "number"
}
},
"required": [
"error_code",
"status",
"retry_after_header",
"instruction"
],
"type": "object"
},
"security": {
"type": "string"
},
"steps": {
"items": {
"properties": {
"description": {
"type": "string"
},
"endpoint": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"step": {
"type": "number"
}
},
"required": [
"step",
"name",
"description"
],
"type": "object"
},
"type": "array"
},
"token_lifetime": {
"properties": {
"absolute_ttl_days": {
"type": "number"
},
"description": {
"type": "string"
},
"idle_ttl_hours": {
"type": "number"
},
"refresh_token": {
"type": "boolean"
}
},
"required": [
"absolute_ttl_days",
"idle_ttl_hours",
"refresh_token",
"description"
],
"type": "object"
}
},
"required": [
"base_url",
"guide_url",
"steps",
"rate_limit_policy",
"token_lifetime",
"notes",
"security"
],
"type": "object"
}
},
"required": [
"programmatic",
"browser"
],
"type": "object"
},
"preferred_path": {
"type": "string"
},
"security_notice": {
"type": "string"
}
},
"required": [
"preferred_path",
"paths",
"console_url",
"handoff_instructions",
"env_var",
"auth_methods",
"security_notice"
],
"type": "object"
}
},
{
"description": "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 log queries.",
"inputSchema": {
"additionalProperties": false,
"type": "object"
},
"name": "list_chains",
"outputSchema": {
"properties": {
"chains": {
"items": {
"properties": {
"chain": {
"type": "string"
},
"chain_id": {
"type": "number"
},
"data": {
"type": "boolean"
},
"jsonrpc": {
"type": "boolean"
},
"max_logs_block_range": {
"type": [
"number",
"null"
]
},
"methods": {
"type": [
"object",
"null"
]
},
"name": {
"type": "string"
},
"public": {
"properties": {
"history_blocks": {
"type": "number"
},
"methods": {
"items": {
"type": "string"
},
"type": "array"
},
"rate_limit": {
"properties": {
"batch_max": {
"type": "number"
},
"burst": {
"type": "number"
},
"per_ip_rps": {
"type": "number"
}
},
"required": [
"per_ip_rps",
"burst",
"batch_max"
],
"type": "object"
},
"send_raw_rate_limit": {
"properties": {
"burst": {
"type": "number"
},
"per_ip_rps": {
"type": "number"
}
},
"required": [
"per_ip_rps",
"burst"
],
"type": "object"
},
"url": {
"type": "string"
}
},
"required": [
"url",
"methods",
"rate_limit"
],
"type": "object"
},
"state_window_blocks": {
"type": [
"number",
"null"
]
},
"subscriptions": {
"items": {
"type": "string"
},
"type": "array"
},
"ws": {
"type": "boolean"
}
},
"required": [
"chain"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"chains"
],
"type": "object"
}
},
{
"description": "List all available documentation pages, relative paths, and titles from the static documentation index. No API key required.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lang": {
"description": "Documentation language: 'en' for English or 'zh' for Chinese. Defaults to 'en'.",
"enum": [
"en",
"zh"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_docs",
"outputSchema": {
"properties": {
"count": {
"type": "number"
},
"docs": {
"items": {
"properties": {
"path": {
"type": "string"
},
"summary": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"path",
"summary"
],
"type": "object"
},
"type": "array"
},
"lang": {
"type": "string"
}
},
"required": [
"lang",
"count",
"docs"
],
"type": "object"
}
},
{
"description": "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'). Parent path traversal ('..'), encoded traversal, protocol prefixes, hostnames, query strings and fragments are rejected.",
"inputSchema": {
"properties": {
"lang": {
"description": "Documentation language: 'en' for English or 'zh' for Chinese. Defaults to 'en'.",
"enum": [
"en",
"zh"
],
"type": "string"
},
"path": {
"description": "Internal relative documentation path (e.g. 'quickstart', 'guides/ai-agents', 'api/json-rpc'). Do not include protocol, hostname, query string, fragment, or '..'.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "read_doc",
"outputSchema": null
},
{
"description": "Execute a 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. Requires the 'x-api-key' or 'Authorization: Bearer <key>' HTTP header in your MCP client configuration for full access (never pass keys in tool parameters or chat). Returns the raw JSON-RPC response from the server.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"chain": {
"description": "Target blockchain network slug (e.g. 'robinhood_mainnet'). Must exist in GET /v1/chains.",
"type": "string"
},
"method": {
"description": "JSON-RPC 2.0 method name (e.g. 'eth_blockNumber', 'eth_call', 'eth_getLogs').",
"type": "string"
},
"params": {
"description": "Optional JSON-RPC parameter array. Defaults to [].",
"type": "array"
}
},
"required": [
"chain",
"method"
],
"type": "object"
},
"name": "rpc_call",
"outputSchema": {
"properties": {
"balance_units": {
"description": "Remaining balance units after this request (only present when balance is known and x-bv-meter: 1 was sent).",
"type": "integer"
},
"cu_charged": {
"description": "Compute Units billed for this request (only present when charged and x-bv-meter: 1 was sent).",
"type": "integer"
},
"error": {
"properties": {
"code": {
"type": "number"
},
"docs_url": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"reason": {
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"id": {
"type": [
"number",
"string",
"null"
]
},
"jsonrpc": {
"type": "string"
},
"result": {},
"signup_url": {
"description": "Registration and sign-up URL (returned when rate-limited on the public endpoint).",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Search documentation pages using keywords against page title, relative path, and first-paragraph summary. Returns matching page titles, paths, and summaries.",
"inputSchema": {
"properties": {
"lang": {
"description": "Language to search: 'en' for English or 'zh' for Chinese. Defaults to 'en'.",
"enum": [
"en",
"zh"
],
"type": "string"
},
"limit": {
"description": "Maximum number of search results to return (1-20, default 5).",
"type": "number"
},
"query": {
"description": "Keywords to search for in documentation titles, paths, and summaries.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_docs",
"outputSchema": {
"properties": {
"message": {
"type": "string"
},
"results": {
"items": {
"properties": {
"path": {
"type": "string"
},
"summary": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"path",
"summary"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"results"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:4597e98d7fac63a1870f7761e12624a9a13e61e061c4c6e287a34ef52c84cdb7 | sha256sum