Skip to main content
Glama
everstake

everstake-mcp

Official

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

get_company_profile

static

Company overview, metrics, certifications

get_products

static

Product details: Institutional Staking, VaaS, Yield, SWQOS, ShredStream

get_solutions

static

Solutions by audience: custodians, exchanges, asset managers, banks, fintech

get_developer_docs

static

SDK links, integration guides, API references

get_contact_information

static

Contact channels and routing guide

get_security_profile

static

Certifications: SOC 2 Type II, ISO 27001, NIST CSF, ITGC, GDPR, CCPA

get_integrations

static

Custody integrations: Fireblocks, BitGo, Anchorage, Coinbase, etc.

get_uptime_metrics

live

Uptime metrics from dashboard API (30 min cache)

get_chains

live

Supported chains with APY, fees, status (30 min cache)

staking_calculator

live

Estimated staking rewards by network and amount

request_integration

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_URL set (required)

Local

export DASHBOARD_URL=https://your-dashboard-api-host
go run ./cmd/mcp_server

The 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_server

In 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-mcp

Stdio mode (interactive, no port mapping):

docker run --rm -i \
  -e DASHBOARD_URL=https://your-dashboard-api-host \
  -e MCP_TRANSPORT=stdio \
  everstake-mcp

Use -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

DASHBOARD_URL

yes

MCP_TRANSPORT

http

no (http or stdio)

PORT

8080

no (http mode only)

GIN_MODE

no (release set in Dockerfile)

Health Check

GET /health

Debugging 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).

Start the container:

docker run --rm -p 8080:8080 \
  -e DASHBOARD_URL=https://your-dashboard-api-host \
  -e DASHBOARD_API_KEY=<key> \
  everstake-mcp

Open Inspector:

npx @modelcontextprotocol/inspector

In the UI:

  • Transport Type: Streamable HTTP

  • URL: 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-mcp

Or fill the UI manually:

  • Transport Type: STDIO

  • Command: docker

  • Arguments: 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@latest

Run:

make lint

Key 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:

  1. Add an entry under tools: in tools.yaml with static_response.

  2. Add a corresponding field to ToolsConfig in internal/config/mcp_config.go with a matching yaml struct tag — the name is injected automatically via reflection.

  3. Register it in internal/server/mcp/server.go using staticTextTool().

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 tools
get_chainsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_profileA
Read-onlyIdempotent
Inspect

Complete company information for Everstake: overview, metrics, certifications, products, clients, and contact details. Use when users need comprehensive facts about Everstake as a company.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_informationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only 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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_docsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_integrationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_productsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_profileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_solutionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_metricsA
Read-onlyIdempotent
Inspect

Provides uptime metrics for Everstake services.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description 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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
first_nameYesFirst name of the contact
last_nameYesLast name of the contact
work_emailYesWork email address of the contact
company_nameNoName of the company
company_typeNoType of company
company_siteNoCompany website URL (optional, can be inferred from email domain)
job_titleNoJob title of the contact
primary_regionNoPrimary region of the company: North America, Europe, LATAM, APAC, MENA
product_of_interestNoProduct of interest: Staking, Vaults, Data & Analytics
custody_solutionNoCustody solution: Anchorage, BitGo, Circle, Coinbase Custody, Copper, Fireblocks, Gemini, Ledger Enterprise, MetaMask, Sygnum, Taurus Group, Self Custody, Other
approximate_stake_sizeNoApproximate stake size: <$1M, $2M–$5M, $5M–$10M, >$10M
implementation_timelineNoImplementation timeline: ASAP, 1–3 Months, 3+ Months
lead_sourceNoSource of the lead — set automatically by the server, do not ask the user
agree_newsNoWhether the contact consents to receive Everstake marketing communications

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_calculatorA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
networkYesThe blockchain network to stake on, e.g. Ethereum, Solana, etc.
currencyYesThe ticker symbol of the cryptocurrency to stake, e.g. ETH, SOL, etc.
amountYesThe amount of cryptocurrency to stake.

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only 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.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description 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.

Purpose4/5

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.

Usage Guidelines4/5

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.

  1. 11 tool updatesv0.1.0
    • First observedget_chains
    • First observedget_company_profile
    • First observedget_contact_information
    • First observedget_developer_docs
    • First observedget_integrations
    • First observedget_products
    • First observedget_security_profile
    • First observedget_solutions
    • First observedget_uptime_metrics
    • First observedrequest_integration
    • First observedstaking_calculator

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers