ethereum-validator-queue-mcp
Provides real-time monitoring of Ethereum's validator activation and exit queues, enabling tracking of staking dynamics, validator status queries, and network participation trends.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ethereum-validator-queue-mcpshow me the current validator activation queue status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ethereum Validator Queue MCP
An MCP server that tracks Ethereum’s validator activation and exit queues in real time, enabling AI agents to monitor staking dynamics and network participation trends.
Features
Tools:
get_activation_queue: Retrieves statistics about the Ethereum validator activation queue, including queue length, total active validators, entering validators' balance, and estimated wait time.get_exit_queue: Retrieves statistics about the Ethereum validator exit queue, including queue length, total active validators, exiting validators' balance, and estimated wait time.get_validator_status: Queries the status of a specific validator by its public key, providing details such as status, effective balance, activation epoch, and exit epoch.
Prompt:
analyze_queue: A reusable prompt template for LLMs to analyze validator queue trends, including staking demand, impact on ETH price, and network security.
Related MCP server: etf-flow-mcp
Installation
Prerequisites
Python: Version 3.10 or higher
uv: A fast and modern Python package manager (installation instructions)
Setup
Clone the Repository:
git clone https://github.com/kukapay/ethereum-validator-queue-mcp.git cd ethereum-validator-queue-mcpInstall dependencies:
uv syncInstall to Claude Desktop:
Install the server as a Claude Desktop application:
uv run mcp install main.py --name "Ethereum Validator Queue"Configuration file as a reference:
{ "mcpServers": { "Ethereum Validator Queue": { "command": "uv", "args": [ "--directory", "/path/to/ethereum-validator-queue-mcp", "run", "main.py" ] } } }Replace
/path/to/ethereum-validator-queue-mcpwith your actual installation path.
Usage
Tools and Prompts
Tools:
get_activation_queue(): Returns activation queue stats, e.g., "Current activation queue length: 7189 validators, Total active validators: 1084363, Entering validators balance: 283043.84 ETH, Estimated wait time: Approximately 8.0 days."get_exit_queue(): Returns exit queue stats, e.g., "Current exit queue length: 27152 validators, Total active validators: 1084363, Exiting validators balance: 882528.00 ETH, Estimated wait time: Approximately 30.2 days."get_validator_status(pubkey): Returns validator details for a given public key (48-byte hex string starting with '0x'), e.g., "Validator 0x1234...: Status: active_online, Effective Balance: 32.00 ETH, Activation Epoch: 123456, Exit Epoch: N/A."
Prompt:
analyze_queue(): Generates a prompt for LLMs to analyze queue trends, e.g., "Analyze the current Ethereum validator queues: What do the current queue lengths indicate about staking demand? How might this impact ETH price and network security? Provide historical context if possible."
Example Interaction
Below are examples of natural language prompts you might use in an MCP-compatible client (e.g., Claude Desktop) and the corresponding outputs from the server, based on sample data.
Get Activation Queue Statistics:
Prompt: "Show me the current Ethereum validator activation queue status."
Command:
get_activation_queue()Output:
Current activation queue length: 7189 validators Total active validators: 1084363 Entering validators balance: 283043.84 ETH Estimated wait time: Approximately 8.0 days (assuming ~900 activations per day)
Get Exit Queue Statistics:
Prompt: "What's the status of the Ethereum validator exit queue?"
Command:
get_exit_queue()Output:
Current exit queue length: 27152 validators Total active validators: 1084363 Exiting validators balance: 882528.00 ETH Estimated wait time: Approximately 30.2 days (assuming ~900 exits per day)
Get Validator Status:
Prompt: "Check the status of the validator with public key 0x93247f2f..."
Command:
get_validator_status("0x93247f2f...")Output (assuming sample data from the API):
Validator 0x93247f2f...: Status: active_online Effective Balance: 32.00 ETH Activation Epoch: 123456 Exit Epoch: N/A
Analyze Queue Trends:
Prompt: "Analyze the current Ethereum validator queue trends."
Command:
analyze_queue()Output (prompt sent to LLM for analysis):
Analyze the current Ethereum validator queues: - What do the current queue lengths indicate about staking demand? - How might this impact ETH price and network security? - Provide historical context if possible.LLM Response (example, depends on the LLM):
The current Ethereum validator queues show a significant exit queue (27,152 validators) compared to the activation queue (7,189 validators), indicating a higher number of validators are leaving than joining. This could suggest reduced staking demand, possibly due to market conditions or profitability concerns. The large exiting balance (882,528 ETH) may increase selling pressure on ETH, potentially impacting its price negatively in the short term. However, the network remains secure with over 1 million active validators. Historically, exit queue spikes have occurred during market downturns or after major network upgrades (e.g., Shanghai upgrade). Further analysis of staking rewards and market trends is recommended.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Available Tools
3 toolsget_activation_queueA
Get current Ethereum validator activation queue statistics.
Returns:
A string containing:
- Current activation queue length (number of validators waiting to activate)
- Total active validators
- Total balance of entering validators in ETH
- Estimated wait time (based on ~900 activations per day)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a read operation (implied by 'Get'), returns specific statistical data, includes an estimated wait time calculation methodology ('based on ~900 activations per day'), and describes the return format. However, it doesn't mention potential rate limits, authentication requirements, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and concise: a clear purpose statement followed by a bulleted list of exactly what data is returned. Every sentence earns its place with zero wasted words, and the information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, but has output schema), the description is complete enough. It clearly explains what the tool does and what data it returns, which is sufficient for a straightforward read-only statistical query tool. The output schema will provide additional structured details about the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on the return value semantics which is the right approach for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Get') and resource ('Ethereum validator activation queue statistics'), distinguishing it from sibling tools like 'get_exit_queue' and 'get_validator_status' by focusing specifically on activation queue data rather than exit queue or individual validator status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through the specific data it returns (activation queue statistics), but doesn't explicitly state when to use this tool versus alternatives like 'get_exit_queue' or 'get_validator_status'. No explicit guidance on when-not-to-use or prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exit_queueA
Get current Ethereum validator exit queue statistics.
Returns:
A string containing:
- Current exit queue length (number of validators waiting to exit)
- Total active validators
- Total balance of exiting validators in ETH
- Estimated wait time (based on ~900 exits per day)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns statistics (a read operation) and includes estimated wait time based on a daily exit rate, which adds useful context. However, it lacks details on permissions, rate limits, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, followed by a bulleted list of return values. Every sentence earns its place, with no wasted words, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, but with an output schema), the description is complete enough. It explains the purpose and details the return values, though it could benefit from usage guidance relative to sibling tools to fully cover context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately focuses on the return values without redundant parameter information, meeting the baseline for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get current Ethereum validator exit queue statistics') and distinguishes it from sibling tools like 'get_activation_queue' and 'get_validator_status' by focusing on exit queue data rather than activation or individual validator status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_activation_queue' or 'get_validator_status'. The description only states what it returns, not the context or scenarios where it should be preferred over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_validator_statusA
Get status for a specific Ethereum validator by public key.
Args:
pubkey (str): The public key of the validator (48-byte hex string starting with '0x')
Returns:
A string containing:
- Validator public key
- Current status (e.g., active_online, pending, exited)
- Effective balance in ETH
- Activation epoch (if applicable)
- Exit epoch (if applicable)
| Name | Required | Description | Default |
|---|---|---|---|
| pubkey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format in detail but doesn't mention error conditions, rate limits, authentication requirements, or whether this is a read-only operation. The description adds value by specifying the return structure but misses important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for Args and Returns, and every sentence adds value. It could be slightly more concise by combining some return value descriptions, but overall it's efficiently organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (though not shown), the description provides comprehensive return value details. For a single-parameter tool with no annotations, the description covers the core functionality well but could benefit from more behavioral context like error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides crucial semantic information about the pubkey parameter that isn't in the schema (0% coverage), specifying it must be a '48-byte hex string starting with '0x''. This adds significant value beyond the basic string type in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get status') and target resource ('specific Ethereum validator by public key'), distinguishing it from sibling tools like get_activation_queue and get_exit_queue which handle different validator lifecycle aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or in what context. The description only states what it does, not when it's appropriate compared to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: get_activation_queue focuses on activation statistics, get_exit_queue on exit statistics, and get_validator_status on individual validator details. The descriptions clearly differentiate between queue-level and validator-specific operations, eliminating any potential confusion.
All three tools follow a consistent verb_noun pattern with 'get_' prefix and descriptive suffixes (_activation_queue, _exit_queue, _validator_status). The naming is uniform, predictable, and clearly communicates each tool's function without any stylistic deviations.
Three tools is appropriate for the narrow scope of Ethereum validator queue monitoring, covering activation, exit, and individual status queries. While slightly minimal, each tool earns its place by addressing distinct aspects of the domain without redundancy or obvious omissions.
The toolset provides comprehensive read-only coverage for validator queue monitoring, including both aggregate queue statistics and individual validator status. A minor gap exists in the lack of write operations (e.g., initiating validator actions), but this aligns with the server's apparent monitoring focus, and agents can work effectively with the provided tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server for tracking and managing cryptocurrency portfolio allocations, enabling AI agents to query and optimize portfolio strategies in real time.10MIT
- AlicenseAqualityFmaintenanceAn MCP server that delivers crypto ETF flow data to power AI agents' decision-making.110MIT
- AlicenseBqualityDmaintenanceAn MCP server that aggregates live governance proposals from major DAOs enabling AI agents to track, analyze, and act on decentralized decision-making in real time.32MIT
- AlicenseAqualityDmaintenanceAn MCP server that tracks Bitcoin's Unspent Transaction Outputs (UTXO) and block statistics, giving AI agents direct access to essential on-chain data.22MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kukapay/ethereum-validator-queue-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server