loading…
Search for a command to run...
loading…
An MCP server for Everstake's non-custodial staking data across 130+ networks: live APY, uptime metrics, rewards calculator, integrations, security and complian
An MCP server for Everstake's non-custodial staking data across 130+ networks: live APY, uptime metrics, rewards calculator, integrations, security and compliance. Built for asset managers, custodians, and exchanges evaluating institutional staking.
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
| 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 |
DASHBOARD_URL set (required)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>.
docker build -t everstake-mcp .
docker run -e DASHBOARD_URL=https://dashboard-api.everstake.one -p 8080:8080 everstake-mcp
| Variable | Default | Required |
|---|---|---|
DASHBOARD_URL |
— | yes |
PORT |
8080 |
no |
GIN_MODE |
— | no (release set in Dockerfile) |
GET /health
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.
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:
tools: in tools.yaml with static_response.ToolsConfig in internal/config/mcp_config.go with a matching yaml struct tag — the name is injected automatically via reflection.staticTextTool().Cross-cutting rules that apply to all tool responses are in .vscode/tools_src/RULES.md. These cover:
request_integrationget_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/.
Выполни в терминале:
claude mcp add everstake-mcp -- npx