everstake-mcp
OfficialProvides 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.
Transport: Streamable HTTP (MCP 2025-03-26 spec) — single / endpoint
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 |
Running the Server
Prerequisites
Go 1.26.1+
Environment variable
DASHBOARD_URLset (required)
Local
export DASHBOARD_URL=https://dashboard-api.everstake.one
go run ./cmd/mcp_serverThe server starts on port 8080 by default. Override with PORT=<port>.
Docker
docker build -t everstake-mcp .
docker run -e DASHBOARD_URL=https://dashboard-api.everstake.one -p 8080:8080 everstake-mcpEnvironment Variables
Variable | Default | Required |
| — | yes |
|
| no |
| — | no ( |
Health Check
GET /healthLinting
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/.
This server cannot be installed
Maintenance
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