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

Running the Server

Prerequisites

  • Go 1.26.1+

  • Environment variable DASHBOARD_URL set (required)

Local

export DASHBOARD_URL=https://dashboard-api.everstake.one
go run ./cmd/mcp_server

The server starts on port 8080 by default. Override with PORT=<port>.

Stdio mode

export DASHBOARD_URL=https://dashboard-api.everstake.one
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://dashboard-api.everstake.one -p 8080:8080 everstake-mcp

Stdio mode (interactive, no port mapping):

docker run --rm -i \
  -e DASHBOARD_URL=https://dashboard-api.everstake.one \
  -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://dashboard-api.everstake.one \
  -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/.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Hosted MCP server for live Bittensor chain reads and self-custodial on-chain writes.

  • Native Solana staking for AI agents. 26 MCP tools, one-shot signing, webhooks.

  • Crypto intelligence MCP for market data, DeFi, wallets, security, DEX, NFTs, and Solana.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/everstake/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server