everstake-mcp
OfficialThis server exposes Everstake staking data and company information to AI agents, enabling informational lookups, live data retrieval, and lead submission.
Static Information
get_company_profile– Full company overview including metrics, certifications, products, clients, and contact details.get_products– Details on Everstake's products (Institutional Staking, VaaS, Yield, SWQOS, ShredStream), including features, use cases, and pricing.get_solutions– Industry-specific solutions for custodians, exchanges, asset managers, banks, and fintechs.get_developer_docs– SDK links, integration guides, and API references for technical implementation.get_contact_information– Contact channels, social media, and purpose-specific routing guides.get_security_profile– Security certifications and compliance details (SOC 2 Type II, ISO 27001, NIST CSF, GDPR, CCPA, etc.).get_integrations– Custody platform integrations (Fireblocks, BitGo, Anchorage, Coinbase, etc.) and wallet partnerships.
Live Data
get_uptime_metrics– Real-time uptime metrics for Everstake services (cached 30 min).get_chains– Supported blockchain networks with APY rates, fees, currencies, and statuses (cached 30 min).staking_calculator– Estimate annual and monthly staking rewards by network, currency ticker, and stake amount.
Actions
request_integration– Submit an integration or staking inquiry to Everstake's sales team via Pipedrive CRM.
Provides custody integration with Coinbase for staking services.
Everstake MCP Server
MCP server exposing Everstake staking data and company information to AI agents. Built in Go using modelcontextprotocol/go-sdk.
Transports: Streamable HTTP (MCP 2025-03-26 spec, single / endpoint) or stdio. Selected via MCP_TRANSPORT.
Available Tools
Tool | Type | Description |
| static | Company overview, metrics, certifications |
| static | Product details: Institutional Staking, VaaS, Yield, SWQOS, ShredStream |
| static | Solutions by audience: custodians, exchanges, asset managers, banks, fintech |
| static | SDK links, integration guides, API references |
| static | Contact channels and routing guide |
| static | Certifications: SOC 2 Type II, ISO 27001, NIST CSF, ITGC, GDPR, CCPA |
| static | Custody integrations: Fireblocks, BitGo, Anchorage, Coinbase, etc. |
| live | Uptime metrics from dashboard API (30 min cache) |
| live | Supported chains with APY, fees, status (30 min cache) |
| live | Estimated staking rewards by network and amount |
| write | Submit integration/staking inquiry to Everstake sales |
Related MCP server: mcp-server-insumer
Running the Server
Prerequisites
Go 1.26.1+
Environment variable
DASHBOARD_URLset (required)
Local
export DASHBOARD_URL=https://your-dashboard-api-host
go run ./cmd/mcp_serverThe server starts on port 8080 by default. Override with PORT=<port>.
Stdio mode
export DASHBOARD_URL=https://your-dashboard-api-host
export MCP_TRANSPORT=stdio
go run ./cmd/mcp_serverIn stdio mode, the HTTP server, /health endpoint, and rate limiting are disabled. Logs go to stderr; stdout carries the MCP JSON-RPC protocol.
Docker
HTTP mode:
docker build -t everstake-mcp .
docker run -e DASHBOARD_URL=https://your-dashboard-api-host -p 8080:8080 everstake-mcpStdio mode (interactive, no port mapping):
docker run --rm -i \
-e DASHBOARD_URL=https://your-dashboard-api-host \
-e MCP_TRANSPORT=stdio \
everstake-mcpUse -i to keep stdin attached for the JSON-RPC protocol; do not pass -t (a TTY breaks line-based JSON framing). For MCP clients that launch the server as a subprocess, point command at docker with args matching the above, or wrap in a helper script (see .vscode/stdio_docker.sh for an example using --env-file).
Environment Variables
Variable | Default | Required |
| — | yes |
|
| no ( |
|
| no (http mode only) |
| — | no ( |
Health Check
GET /healthDebugging with MCP Inspector
MCP Inspector is the official tool for poking at MCP servers — list tools, call them, see raw JSON-RPC.
Stdio note: stdio servers are owned by the parent process; you cannot connect Inspector to an already-running stdio container. Inspector must launch the subprocess itself. For an interactive session you can reconnect to, use HTTP mode (option below).
HTTP mode (recommended for general debugging)
Start the container:
docker run --rm -p 8080:8080 \
-e DASHBOARD_URL=https://your-dashboard-api-host \
-e DASHBOARD_API_KEY=<key> \
everstake-mcpOpen Inspector:
npx @modelcontextprotocol/inspectorIn the UI:
Transport Type:
Streamable HTTPURL:
http://localhost:8080/
Container stays running across Inspector sessions.
Stdio mode (verify stdio transport)
Let Inspector launch the container so it owns stdin/stdout:
npx @modelcontextprotocol/inspector \
docker run --rm -i \
--env-file .env \
everstake-mcpOr fill the UI manually:
Transport Type:
STDIOCommand:
dockerArguments:
run --rm -i --env-file .env everstake-mcp
Each Inspector session forks a fresh container; quitting Inspector kills it.
Linting
The project uses golangci-lint with a strict configuration in .golangci.yml.
Install golangci-lint:
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latestRun:
make lintKey rules enforced: staticcheck (all checks), gosec, gocritic (diagnostic/style/performance tags), revive (40+ rules including early-return, error-strings, var-naming), errchkjson, bodyclose, contextcheck, and more. nolintlint requires specific lint directives — bare //nolint is not allowed.
Editing Tool Responses
Static tools
Edit tools.yaml. Each map key is the tool name; the static_response field is returned verbatim to the AI agent.
tools:
get_company_profile:
description: |
...
static_response: |
COMPANY: Everstake
...To add a new static tool:
Add an entry under
tools:intools.yamlwithstatic_response.Add a corresponding field to
ToolsConfigininternal/config/mcp_config.gowith a matchingyamlstruct tag — the name is injected automatically via reflection.Register it in
internal/server/mcp/server.gousingstaticTextTool().
Content rules
Cross-cutting rules that apply to all tool responses are in .vscode/tools_src/RULES.md. These cover:
Certification differentiator language
Non-custodial positioning
Vault product disclaimers
APY disclaimer wording
Lead source tagging for
request_integration
Dynamic tools
get_uptime_metrics and get_chains fetch live data from the dashboard API with a 30-minute in-memory cache. Their handlers are in internal/server/mcp/dashboard.go. The underlying API client lives in pkg/everstake/dashboard/.
Available Tools
11 toolsget_chainsARead-onlyIdempotentInspect
Provides an up to date list of supported blockchain networks by Everstake and info about these chains: fees, aprs, supported currencies, active/inactive statuses, etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive, so the description only needs to add operational context. It adds that the list is 'up to date' and enumerates the returned properties (fees, aprs, supported currencies, active/inactive statuses), giving agents a clear idea of what information to expect. It doesn't discuss rate limits or caching, but for a no-parameter read-only tool this is acceptable.
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 entire description is a single sentence that front-loads the primary action and resource, then lists the relevant data fields. There is no redundant or extraneous wording aside from a minor 'etc.' that signals non-exhaustive fields.
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?
The description states the provider scope, the kind of data returned, and key fields, which is sufficient for a zero-parameter tool without an output schema. It could be more exhaustive about exact return keys, but the 'etc.' and field list provide adequate completeness for calling the tool.
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 zero parameters and 100% schema coverage, so there is nothing for the description to explain about inputs. Baseline 4 applies because no parameter documentation is needed.
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 uses the specific verb 'Provides' with a concrete resource ('list of supported blockchain networks by Everstake') and names the included data fields. This clearly distinguishes it from sibling tools, which focus on company profile, contact info, docs, integrations, products, security, solutions, uptime, and staking calculator.
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?
There is no explicit when-to-use statement or exclusion criteria, but the description's focus on blockchain networks makes the intended context obvious in relation to the non-chain siblings. It does not name alternatives for the same task, so guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_profileARead-onlyIdempotentInspect
Complete company information for Everstake: overview, metrics, certifications, products, clients, and contact details. Use when users need comprehensive facts about Everstake as a company.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool is known to be safe and side-effect-free. The description adds no contradictory behavior and enriches the context by listing the types of data covered, which helps the agent anticipate the response shape. Without additional behavioral quirks (auth, rate limits, pagination), the description does what's needed, so a 4 is justified.
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?
Two sentences, no fluff. The first sentence lists the content domains in comma-separated format, and the second gives a crisp usage directive. Every word earns its place; the description is front-loaded with the most important information and avoids redundant phrasing.
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?
For a read-only tool with no parameters and no output schema, the description fully covers what an agent needs to know: what the tool returns and when to call it. It doesn't leave gaps about missing parameters or side effects, and the content list is sufficiently comprehensive to set expectations. Nothing is absent that would prevent correct invocation.
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 input schema has zero parameters, so there is nothing to document. With a baseline of 4 for parameter-less tools, and because the description doesn't need to compensate for any schema gaps, this score is appropriate. No additional parameter information could be added in the description.
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 resource ('company information for Everstake') and enumerates the specific content areas (overview, metrics, certifications, products, clients, contact details). It distinguishes itself from sibling tools that target a single dimension by positioning itself as the comprehensive aggregate, so an agent can tell it apart without reading each sibling's schema.
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?
It provides an explicit condition: 'Use when users need comprehensive facts about Everstake as a company.' This tells when to select this tool over more specialized siblings. It doesn't explicitly mention when not to use it or name alternatives, but the condition is clear enough for an agent to route correctly. A 4 is appropriate since no exclusions or alternative names are given, but the context is solid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contact_informationARead-onlyIdempotentInspect
Comprehensive contact information and routing guide for Everstake inquiries, including social media, company resources, and purpose-specific contact channels. Use when users need to contact Everstake or find specific company resources.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful behavioral context by specifying the content scope: social media, company resources, and purpose-specific contact channels.
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?
Two concise sentences: the first states the tool's content, and the second states when to use it. No filler or redundant wording, though 'Comprehensive' is mildly promotional.
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?
For a zero-parameter, read-only informational tool, the description fully covers what the tool provides and when to invoke it. There is no missing operational detail needed to select or call the tool correctly.
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 zero parameters, so the description does not need to explain parameter meaning. The schema is empty and requires no additional semantic clarification.
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 identifies the tool as a source for Everstake contact information and routing, with content including social media, company resources, and purpose-specific channels. It is distinct enough from siblings like get_company_profile, though the mention of 'company resources' introduces some overlap.
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 explicitly states when to use the tool: 'Use when users need to contact Everstake or find specific company resources.' It does not explicitly mention alternatives or when not to use it, but the usage context is clear and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_developer_docsARead-onlyIdempotentInspect
Comprehensive developer resources and integration documentation for Everstake's staking and yield infrastructure. Use this tool when developers need SDK documentation, integration guides, API references, or technical implementation details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds content-level context but no additional behavioral detail such as response format, filtering, or access considerations. This is acceptable given the annotations.
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?
Two concise, front-loaded sentences: the first states the resource, the second states the usage trigger. No filler, no redundancy, and every sentence earns its place.
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?
For a parameterless, read-only documentation retrieval tool, the description covers the resource and the main use cases. There is no output schema, but the nature of the tool makes the return content fairly predictable. A brief note on what the response contains would make it fully complete.
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 zero parameters, so there is no parameter semantics burden on the description. The schema coverage is effectively complete at 100% with no params to document, matching the baseline for parameterless tools.
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 identifies the tool as the source for developer resources, SDK documentation, integration guides, and API references specific to Everstake. It is distinct enough in resource type, though it does not explicitly contrast with the overlapping sibling get_integrations.
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?
It explicitly states when to use the tool: 'when developers need SDK documentation, integration guides, API references, or technical implementation details.' It does not mention when not to use it or name alternatives, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integrationsARead-onlyIdempotentInspect
Comprehensive integration information for Everstake: custody platform integrations, wallet partnerships, and developer SDKs. Use when users need details about integrating Everstake with existing platforms, custody solutions, or development frameworks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so this is clearly a safe read operation. The description adds no additional behavioral context such as auth requirements, rate limits, or data freshness; for a simple informational tool this is acceptable but not enriched.
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 two focused sentences: the first defines the content scope and the second states the usage trigger. Every word earns its place, with no filler or repetition of the tool name.
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?
For a no-parameter, read-only informational tool, the description adequately covers what will be returned (categories of integrations) and when to use it. It does not specify output format or pagination, but with no output schema and no parameters, this is a minor gap rather than a functionality risk.
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 input schema has zero parameters, making schema description coverage trivially complete. The description adds no parameter-level semantics because none are needed; with no parameters, the baseline of 4 is appropriate.
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 identifies the tool's resource: integration information for Everstake, enumerating custody platform integrations, wallet partnerships, and developer SDKs. It is specific enough to distinguish from siblings like get_developer_docs and request_integration, though it relies on a noun phrase rather than an explicit verb like 'list' or 'retrieve'.
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 second sentence explicitly states when to use the tool: when users need details about integrating Everstake with existing platforms, custody solutions, or development frameworks. It does not mention exclusions or alternative sibling tools, so it stops short of full 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_productsARead-onlyIdempotentInspect
Detailed information about Everstake's product offerings: features, use cases, pricing, and technical specifications. Use when users need specific product details for decision-making or integration planning.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive profile, so the description does not need to repeat that. It adds light behavioral context by describing the type of information returned, but it does not reveal details like response format or whether data is static or live.
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 two sentences with no filler. The first sentence states the tool's content scope, and the second provides a direct usage cue. Every clause earns its place.
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 zero parameters, rich annotations covering safety, and a simple informational purpose, the description is largely sufficient. It could be slightly stronger by naming how it differs from sibling information tools or by indicating the return shape, but nothing critical is missing.
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 no parameters, and schema_description_coverage is 100%. With zero parameters, the description is not expected to explain parameter meaning; the baseline of 4 applies.
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 identifies the resource as 'Everstake's product offerings' and lists concrete content areas (features, use cases, pricing, technical specifications). It does not explicitly distinguish itself from sibling tools like get_solutions or get_integrations, so it stops short of full differentiation.
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 explicitly says when to use it: 'when users need specific product details for decision-making or integration planning.' It gives a clear usage context, though it does not state exclusions or mention alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_security_profileARead-onlyIdempotentInspect
Comprehensive security and compliance information for Everstake: certifications, audits, infrastructure security, and compliance standards. Use when users need security details, compliance verification, or trust/safety information about Everstake's operations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds content scope but does not disclose behavioral details such as how current the information is, whether it is static, or the structure of the returned data. This is acceptable but not rich.
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?
Two concise sentences with no filler. The first sentence front-loads the tool's subject and content, and the second provides usage guidance. Every word earns its place.
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?
For a read-only, zero-parameter lookup tool, the description adequately explains what is returned and when to use it. It lacks explicit return-structure detail, but given the low risk and simple invocation, this is a minor gap rather than a critical omission.
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 zero parameters, so the description has no parameter semantics to add. Per the baseline for no-parameter tools, this is appropriate and complete.
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 states a specific verb ('get'), a specific resource ('security profile'), and enumerates concrete content categories: certifications, audits, infrastructure security, and compliance standards. This clearly distinguishes it from sibling tools like get_company_profile and get_contact_information.
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 explicitly says to use the tool when users need security details, compliance verification, or trust/safety information. It does not mention exclusions or alternatives, but the context is clear enough for a zero-parameter informational lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_solutionsARead-onlyIdempotentInspect
Industry-specific solutions and integration approaches for different client segments: custodians, exchanges, asset managers, banks, and fintech. Use when users need tailored solution guidance for their specific business type or integration scenario.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile: readOnlyHint, idempotentHint, and destructiveHint=false. The description adds no behavioral detail beyond content focus, which is acceptable given the strong annotation coverage, but it does not disclose return behavior or limitations.
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?
Two sentences with no filler. The core value proposition is front-loaded with the client segments, followed by a clear usage directive.
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?
For a zero-parameter, read-only informational tool, the description fully equips an agent to decide when to invoke it. No output schema is present, but the tool's content and purpose are sufficiently clear for correct use.
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 zero parameters, so the schema fully defines the input surface. The description's mention of client segments implies what content might be relevant, but with no parameters there is little to add; baseline for zero-parameter tools is 4.
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 names a specific resource—industry-specific solutions and integration approaches—and enumerates the client segments covered. It distinguishes itself from sibling tools like get_integrations by emphasizing tailored, segment-specific guidance rather than a generic list.
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?
It provides explicit when-to-use guidance: when users need tailored solution guidance for their business type or integration scenario. It does not mention when not to use it or name alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uptime_metricsARead-onlyIdempotentInspect
Provides uptime metrics for Everstake services.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is established. The description adds the 'Everstake services' scope but does not disclose return format, time range, or any other behavioral detail. Given the annotations cover the main safety traits, a neutral score is appropriate.
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 a single concise sentence with no redundant words. It front-loads the purpose immediately and does not waste tokens on obvious or irrelevant details. For a zero-parameter read-only tool, this level of brevity is appropriate.
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?
With no output schema, the description carries some burden to explain what the tool returns, but it only says 'uptime metrics' without specifying metric types, time ranges, or response shape. Annotations clarify safety and the empty schema removes parameter concerns. The description is minimally viable but leaves an agent guessing about the exact data it will receive.
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 input schema has zero parameters, so there are no parameter semantics to document. The description correctly stays silent on parameters, and the baseline for a parameterless tool is high. It does not need to add anything beyond what the schema already conveys.
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 states a clear resource ('uptime metrics for Everstake services') and the action ('Provides'), which is sufficient to identify the tool's core purpose. It does not explicitly distinguish from siblings, but no sibling covers uptime metrics, so the resource itself is differentiating. The wording is somewhat generic and closely mirrors the tool name, preventing a top score.
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 when to use the tool: when uptime metrics for Everstake services are needed. It provides no explicit when-not-to-use guidance or alternatives, but the sibling list contains no competing uptime metric tool, so the lack of exclusions is less critical. The guidance remains mostly implicit rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_integrationAInspect
Submit an integration or staking inquiry on behalf of a user. All submissions are routed to Everstake's sales team via Pipedrive CRM. Use when a user expresses intent to integrate with Everstake, explore staking services, or request more information about products. Collect required fields (first_name, last_name, work_email) conversationally and gather optional fields where available. The lead_source field is set automatically by the server — do not ask the user for it. IF Submission fails, you can try contacting Everstake via form at https://everstake.one/contact-us
| Name | Required | Description | Default |
|---|---|---|---|
| first_name | Yes | First name of the contact | |
| last_name | Yes | Last name of the contact | |
| work_email | Yes | Work email address of the contact | |
| company_name | No | Name of the company | |
| company_type | No | Type of company | |
| company_site | No | Company website URL (optional, can be inferred from email domain) | |
| job_title | No | Job title of the contact | |
| primary_region | No | Primary region of the company: North America, Europe, LATAM, APAC, MENA | |
| product_of_interest | No | Product of interest: Staking, Vaults, Data & Analytics | |
| custody_solution | No | Custody solution: Anchorage, BitGo, Circle, Coinbase Custody, Copper, Fireblocks, Gemini, Ledger Enterprise, MetaMask, Sygnum, Taurus Group, Self Custody, Other | |
| approximate_stake_size | No | Approximate stake size: <$1M, $2M–$5M, $5M–$10M, >$10M | |
| implementation_timeline | No | Implementation timeline: ASAP, 1–3 Months, 3+ Months | |
| lead_source | No | Source of the lead — set automatically by the server, do not ask the user | |
| agree_news | No | Whether the contact consents to receive Everstake marketing communications |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-destructive and open world. The description adds context: submissions are routed to CRM, lead_source is auto-set, and provides a fallback URL. No contradiction with annotations.
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?
Concise, front-loaded with purpose, then usage, collection guidance, and fallback. Every sentence adds value with no redundancy.
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 14 parameters, 3 required, no output schema, and annotations present, the description fully covers what the agent needs to know: purpose, when to use, how to collect parameters, constraints, and error recovery. No gaps.
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?
Schema coverage is 100% with descriptions for all 14 parameters. The description adds value by guiding the agent to collect required fields conversationally and to avoid asking for lead_source. This elevates it above the baseline 3.
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 submits an integration or staking inquiry on behalf of a user. It uses a specific verb (Submit) and resource (inquiry), and distinguishes itself from sibling tools which are all getters or calculators.
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?
Explicitly defines when to use: when a user expresses intent to integrate or explore staking. Provides guidance on collecting required fields conversationally, warns not to ask for lead_source, and includes a fallback action on failure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
staking_calculatorARead-onlyIdempotentInspect
Interactive staking reward estimator. Provide a network and stake amount to receive estimated annual and monthly rewards based on current APY. Works only with networks provided by the get_chains tool. Data freshness: APY rates updated daily. MUST HAVE either currency or chain set.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | The blockchain network to stake on, e.g. Ethereum, Solana, etc. | |
| currency | Yes | The ticker symbol of the cryptocurrency to stake, e.g. ETH, SOL, etc. | |
| amount | Yes | The amount of cryptocurrency to stake. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond those hints: the dependency on get_chains networks, daily APY updates, and the interactive estimation nature. No contradiction with annotations.
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 compact and front-loaded, with the core purpose in the first sentence and key constraints in the following lines. The final 'MUST HAVE either currency or chain set' sentence is redundant and inaccurate, slightly reducing the overall quality, but the structure remains efficient.
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?
For a simple read-only estimator with no output schema, the description covers purpose, inputs, expected outputs, the get_chains dependency, and data freshness. The response shape is not described in detail, but the stated outputs (annual and monthly rewards) are sufficient. The inaccurate requirement line prevents a higher score.
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?
Schema coverage is 100%, so the baseline is 3, but the description actively misleads about parameters: it states 'MUST HAVE either currency or chain set' while the schema requires network, currency, and amount. It also omits currency when explaining inputs. This incorrect guidance drops the score below baseline.
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 identifies the tool as a staking reward estimator and specifies the key inputs and outputs: network and stake amount yield estimated annual and monthly rewards based on current APY. It is distinct from sibling tools like get_chains and other read-only get_* tools, though it lacks an explicit action verb.
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 explicitly restricts usage to networks provided by get_chains, effectively telling the agent to call get_chains first. It also conveys the expected inputs and data freshness. However, the 'MUST HAVE either currency or chain set' instruction is inaccurate because the schema requires network, currency, and amount, and 'chain' is not a parameter.
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.
11 tool updates
v0.1.0- First observed
get_chains - First observed
get_company_profile - First observed
get_contact_information - First observed
get_developer_docs - First observed
get_integrations - First observed
get_products - First observed
get_security_profile - First observed
get_solutions - First observed
get_uptime_metrics - First observed
request_integration - First observed
staking_calculator
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose, covering separate domains like blockchain networks, company profile, contact info, developer docs, integrations, products, security, solutions, uptime, staking calculator, and integration requests. No overlap between them.
All tools follow a consistent lower_snake_case naming convention with a verb_noun pattern (e.g., get_chains, get_company_profile). The only exception is staking_calculator, a noun phrase, but it remains clear and fits the pattern of descriptive names.
With 11 tools, the set is well-scoped for a company information and interaction server. It covers information retrieval, metrics, and a single action (request_integration), without being too sparse or overwhelming.
The tool surface thoroughly covers company information, products, security, solutions, integrations, developer resources, contact details, blockchain chain data, uptime metrics, a staking calculator, and a lead submission tool. No obvious gaps exist for the server's domain.
Maintenance
Related MCP Connectors
MCP server for Renzo protocol data, including chains, vaults, operators, and ezETH metrics.
Hosted MCP server for live Bittensor chain reads and self-custodial on-chain writes.
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
Native Solana staking for AI agents. 26 MCP tools, one-shot signing, webhooks.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that tracks stablecoin peg integrity across multiple blockchains.44MIT
- AlicenseAqualityAmaintenanceMCP server for on-chain attestation and wallet trust profiles across 31 EVM chains and Solana. Privacy-preserving boolean verification, ECDSA-signed responses, compliance templates.27149 npm1MIT
- AlicenseAqualityCmaintenanceNative Solana staking infrastructure for AI agents. 18 MCP tools for staking, unstaking, validator info, APY, epoch timing, and more. Zero custody — unsigned transactions, agents sign client-side.2633 npmMIT
- FlicenseNot gradedqualityCmaintenanceMCP server for EVM MEV history, offering pay-per-call endpoints to check wallet MEV exposure, sandwich transactions, and pool MEV density on Ethereum, Base, Arbitrum, Optimism, and Polygon.-