Surf MCP Server
Enables access to 86 crypto data endpoints from the Surf API, including market data, wallets, social sentiment, on-chain queries, and more, through dynamically generated MCP tools.
README
surf-mcp
MCP server for the Surf crypto data API. Dynamically generates tools from the OpenAPI spec — 12 grouped tools covering 86 endpoints across market data, wallets, social, on-chain queries, and more.
Quick start
Add to your MCP client config — no clone or install needed:
{
"mcpServers": {
"surf": {
"command": "npx",
"args": ["-y", "@surf-ai/surf-mcp"],
"env": {
"SURF_API_KEY": "your-api-key"
}
}
}
}
Or with Bun:
{
"mcpServers": {
"surf": {
"command": "bunx",
"args": ["@surf-ai/surf-mcp"],
"env": {
"SURF_API_KEY": "your-api-key"
}
}
}
}
Prerequisites
- A Surf API key (get one here)
- Node.js 20+ or Bun
Config file locations
- Claude Code:
.mcp.jsonin project root or~/.claude.json - Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) - Cursor: MCP settings in the IDE
Tools
The server exposes 12 tools, one per API domain. Each tool accepts a command and optional params:
| Tool | Commands | Description |
|---|---|---|
surf_market |
price, ranking, etf, futures, options, fear-greed, liquidation-*, onchain-indicator, price-indicator |
Market overview, rankings, indicators, ETF flows |
surf_exchange |
depth, klines, funding-history, perp, price, markets, long-short-ratio |
Live exchange data from Binance, OKX, Bybit, etc. |
surf_wallet |
detail, transfers, history, net-worth, protocols, labels-batch |
Wallet balances, transfers, DeFi positions |
surf_token |
holders, dex-trades, transfers, tokenomics |
Token holder analysis, DEX trades, unlocks |
surf_social |
detail, user, user-posts, tweets, mindshare, ranking, smart-followers-history, tweet-replies, user-followers, user-following, user-replies |
X (Twitter) social signals and sentiment |
surf_project |
detail, defi-metrics, defi-ranking |
Project profiles, DeFi TVL/fees/revenue |
surf_onchain |
sql, tx, gas-price, schema, bridge-ranking, yield-ranking, structured-query |
On-chain SQL queries, tx lookup, gas prices |
surf_search |
project, wallet, news, web, fund, polymarket, kalshi, airdrop, events, social-people, social-posts |
Unified search across all data types |
surf_prediction_market |
kalshi-*, polymarket-*, matching-*, category-metrics |
Polymarket and Kalshi prediction markets |
surf_fund |
detail, portfolio, ranking |
Crypto VC fund profiles and portfolios |
surf_news |
feed, detail |
Crypto news from major outlets |
surf_web |
fetch |
Fetch any URL as clean markdown |
Usage examples
Once configured, your AI assistant can use the tools directly:
"What's the BTC price?" → surf_market({ command: "price", params: { symbol: "BTC" } })
"Check vitalik's wallet" → surf_wallet({ command: "detail", params: { address: "vitalik.eth" } })
"Search for DeFi projects" → surf_search({ command: "project", params: { q: "defi lending" } })
"Run an on-chain SQL query" → surf_onchain({ command: "sql", params: { sql: "SELECT ..." } })
"ETH social sentiment" → surf_social({ command: "detail", params: { q: "ethereum" } })
How it works
On startup, the server:
- Fetches the OpenAPI spec from
https://api.asksurf.ai/gateway/openapi.json(cached for 24h) - Groups all operations by their API tag
- Registers one MCP tool per tag with auto-generated descriptions and command enums
- Routes tool calls through
@surf-ai/sdkfor HTTP transport and auth
The server automatically picks up new API endpoints when the spec is updated — just restart.
Example: AI agent
The repo includes a simple agent that connects Claude to surf-mcp tools in an agentic loop. See examples/agent.ts.
ANTHROPIC_API_KEY=your-key SURF_API_KEY=your-key bun run examples/agent.ts "What's the BTC price and fear & greed index?"
Development
git clone https://github.com/asksurf-ai/surf-mcp.git
cd surf-mcp
bun install
bun run start # Run the server
bun run typecheck # Type check
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.