Tenzro Ethereum MCP
Server Details
Ethereum MCP: Chainlink feeds, gas, ERC-20, ENS, ABI, contract calls, ERC-8004, EAS.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- tenzro/tenzro-network
- GitHub Stars
- 0
TDQS
Scored across 17 tools
Each tool targets a distinct Ethereum operation: contract calls, ABI encoding, gas estimation, ENS resolution, EAS attestations, ERC-8004 agent registry, transaction broadcasting, and various queries (balance, block, fee history, gas price, token price, token balance, transaction details). No two tools have overlapping purposes, ensuring an agent can clearly select the correct tool for a given task.
All tools follow the consistent 'eth_<verb>_<noun>' pattern, using descriptive verbs like 'call', 'encode', 'estimate', 'get', 'lookup', 'register', 'resolve', and 'send'. The naming is uniform, predictable, and uses snake_case throughout, with no mixing of conventions.
With 17 tools, the set is well-scoped for an Ethereum MCP server. It covers essential operations for reading blockchain state, interacting with contracts, resolving ENS, querying token prices, managing attestations and agent registries, and sending transactions. The number is neither excessive nor sparse for the domain.
The tool surface is comprehensive, covering most common Ethereum interactions: basic queries, contract data encoding, gas estimation, ENS, price feeds, token balances, transaction handling, and even specialized features like EAS and ERC-8004. However, missing tools for logs (eth_getLogs) and chain metadata (eth_chainId) are minor gaps that agents might need to work around.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
- Changed
eth_call_contract1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_encode_function1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_estimate_gas1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_attestation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_balance1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_block1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_fee_history1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_gas_price1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_price1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_token_balance1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_transaction1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_get_transaction_receipt1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_lookup_agent_80041 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_lookup_ens1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_register_agent_80041 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_resolve_ens1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
- Changed
eth_send_raw_transaction1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Generic passthrough envelope for MCP tools that surface arbitrary\nJSON returned by the underlying JSON-RPC layer or upstream HTTP API.\n\nPer the MCP 2025-06-18 spec, every `#[tool]` handler must return a\nschema-bearing typed value so the rmcp router can populate\n`outputSchema` on `tools/list` and emit `structuredContent` on\n`tools/call`. For tools whose underlying response shape is determined\nby an external surface (the Tenzro JSON-RPC dispatcher, an L1\nblockchain RPC, or a SaaS API), `RpcPassthroughOutput` carries the\nraw `serde_json::Value` verbatim under a single `result` field.\n\nTools with a stable, fully-typed response shape (e.g. `get_balance`,\n`create_wallet`) define their own dedicated `*Output` struct instead.", + "properties": { + "result": { + "description": "Underlying response payload verbatim." + } + }, + "required": [ + "result" + ], + "title": "RpcPassthroughOutput", + "type": "object" +}
2 tool updates
- Changed
eth_get_price1 field changed- changed
Input schema / properties / chain_id / descriptionPrevious value: -"Chain ID — 1 for mainnet (default), used to select RPC endpoint"New value: +"Chain ID — 1 for mainnet (default), 8453 for Base, 42161 for Arbitrum. Selects the dRPC chain-specific URL for the feed read."
- Added
eth_send_raw_transaction
16 tool updates
- First observed
eth_call_contract - First observed
eth_encode_function - First observed
eth_estimate_gas - First observed
eth_get_attestation - First observed
eth_get_balance - First observed
eth_get_block - First observed
eth_get_fee_history - First observed
eth_get_gas_price - First observed
eth_get_price - First observed
eth_get_token_balance - First observed
eth_get_transaction - First observed
eth_get_transaction_receipt - First observed
eth_lookup_agent_8004 - First observed
eth_lookup_ens - First observed
eth_register_agent_8004 - First observed
eth_resolve_ens
Related MCP Connectors
Ethereum tools over MCP: Chainlink feeds, ENS, ERC-8004 agents, EAS attestations, transactions.
Chainlink tools over MCP: CCIP cross-chain, data feeds, data streams, VRF, proof of reserve.
Alchemy (Ethereum + L2) MCP.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides Ethereum and L2 data access via Alchemy API, enabling token balances, NFTs, transfers, and generic RPC calls through MCP.MIT
- AlicenseAqualityFmaintenanceProvides MCP tools to query Etherscan for Ethereum blockchain data—ETH balances, ERC-20 tokens, transactions, contract ABIs, and gas prices—without requiring an API key.87 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides multichain block-explorer data from Etherscan via MCP tools for token balances, contract ABI, and source code.6 npmMIT
- FlicenseAqualityDmaintenancePay-per-call MCP server for on-chain blockchain data including wallet profiles, token metrics, protocol TVL, and gas prices.5-
Glama MCP Gateway
Add one secure layer between your agents and this server.