Surf MCP server for AI agents and assistants

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Surf MCP or direct API to research markets, track crypto prices, analyze equities, query on-chain activity, and search the web through natural language.

Surf logoSurf
Api Key

Surf is a unified API for financial, crypto, prediction-market, equity, on-chain, news, search, and web data. It gives developers one reliable way to access broad, AI-ready data sources.

122 Tools

Try Surf now

Type what you want done — sign in and watch it run live in the Tool Router playground.

TOOL ROUTER PLAYGROUND
Surf
Try asking
TOOLS

Supported Tools

Every Surf action and event your agent gets out of the box.

Cancel Asynchronous Blockchain SQL Job

Durably request cancellation of an asynchronous blockchain SQL job and return its current state.

Submit Asynchronous Blockchain SQL Job

Submit a read-only ClickHouse SQL query for durable background execution and return its stable job and query identifiers immediately.

DEX Token OHLCV Price

Return USD DEX-pool-weighted OHLCV bars for one token identified by chain and contract address.

Equity Balance Sheet

Return standardized balance-sheet periods for a US-listed equity.

Equity Price Candles

Return historical OHLCV candles and the latest traded price for a US-listed equity.

Equity Cash Flow

Return paginated standardized cash-flow periods for a US-listed equity.

Equity Profile

Return a standardized stock company profile or ETF product profile, including its business description and source-update metadata.

Equity Financial Metrics

Return paginated standardized financial ratios, growth measures, per-share values, and valuation metrics for a US-listed equity.

Equity Income Statement

Return standardized income-statement periods for a US-listed equity.

Latest Equity Filings

Return the most recently accepted periodic SEC filings across US equities.

Latest Equity Financials

Return the most recently published current-serving TTM financials across US equities, optionally filtered by a minimum current market capitalization.

Equity Metadata

Return lightweight identity, logo, and latest USD price metadata for one or more US-listed stocks or ETFs.

Equity Financial Overview

Return a paginated financial overview for a US-listed equity.

Exchange Order Book Depth

Return bid and ask order-book levels for an exchange market, including spread, spread percentage, mid-price, and total bid and ask depth.

Exchange Funding Rate History

Return historical funding rate records for a perpetual contract.

Exchange OHLCV Candlesticks

Return exchange OHLCV candlesticks with high, low, and total-volume statistics for the returned period.

Exchange Long/Short Ratio History

Return historical long/short ratios for a perpetual contract.

Exchange Trading Pairs

Return trading pairs available on an exchange, including base and quote currencies, market type, active status, and default fee rates.

Exchange Perpetual Contract Snapshot

Return a perpetual futures snapshot for a trading pair, including current funding, open interest, mark price, and index price data.

Exchange Ticker Price

Return the real-time ticker for an exchange trading pair, including the last price, best bid and ask, 24-hour high, low, volume, and price change.

Fund Profile Detail

Return a crypto VC fund's full profile, including its description, jurisdiction, unique invested-project count, links, X accounts, team members, and recent research.

Account Portfolio

Return a Hyperliquid wallet's point-in-time portfolio across perpetuals, spot, vaults, and HYPE staking.

Market Candles

Return Hyperliquid market OHLCV candles ordered by open time ascending for a required half-open [from_, to) window.

Open & Recent Orders

Return a wallet's live resting orders and recent terminal orders.

Trading Performance

Return a wallet's lifetime funding-excluded realized trading performance, live open positions, unrealized PnL, and perpetual clearinghouse equity.

Open Positions

Return a wallet's open Hyperliquid perpetual positions with leverage, unrealized PnL, ROE, funding, liquidation risk, and its cross-margin summary.

Closed Trade Funding and Leverage

Return immutable funding and leverage context for one closed Hyperliquid trade using the composite key from the trades action.

Closed Trades Aggregate

Aggregate a wallet's closed Hyperliquid trades by UTC day, symbol, direction, notional-size tier, or holding-time tier.

Kalshi Open Interest History

Return daily open-interest history for one Kalshi market over a selected time window.

Kalshi Price History

Return hourly or daily OHLC price history for one Kalshi market, or the latest price from recent trades.

Kalshi Volume History

Return daily notional trading-volume history for one Kalshi market over a selected time window.

ETF Flow History

Return daily spot ETF flow history for BTC, ETH, XRP, SOL, or HYPE, including net USD flow, closing token price, settlement status, and per-ticker flow breakdowns.

Fear & Greed Index History

Return Bitcoin Fear and Greed Index history, including each 0-100 index value, its classification, and the Bitcoin price at that time.

Futures Market Overview

Return a single ranked snapshot of futures market data across all tracked tokens, including open interest, funding rate, long/short ratio, and 24-hour volume.

Liquidation Chart

Return time-bucketed aggregate long- and short-side liquidation volumes for a token on a specific exchange and interval.

Liquidation by Exchange

Return a single ranked snapshot of total, long-side, and short-side liquidation volumes by exchange for a token and aggregation window.

On-Chain Indicator

Return daily on-chain indicator history for BTC or ETH, including NUPL, SOPR, MVRV, Puell Multiple, NVM, NVT, NVT Golden Cross, and exchange-flow metrics.

Options Market Data

Return options market data for one supported token, including open interest, 24-hour volume, put/call ratio, and max pain price by exchange.

Token Price History

Return historical prices for one listed token in a selected quote currency.

Technical Indicator

Return a technical indicator for a trading pair on a given exchange and candlestick interval.

Public Sale / Crowdsale

Return public sale information for a project resolved by Surf UUID, name, or token symbol, including sale type, status, dates, token price, funds raised, supply allocation, launchpad, and all-time-high ROI.

Token Generation Event

Return Token Generation Event status for a project resolved by Surf UUID, name, or token symbol, including the current status, last status-change time, and launch exchanges.

News Article Detail

Return the full content and metadata of one news article by an ID obtained from Surf news feed or search results.

DEX Protocol Activity

Return active traders, trade count, and USD volume for one DEX protocol or router contract as either a total aggregate or a newest-first daily series.

Current Onchain Gas Price

Return the current gas price for one supported EVM chain in both wei and Gwei.

On-Chain Table Schema

Discover logical on-chain tables and columns before writing SQL or structured queries.

Get Asynchronous Blockchain SQL Job

Return durable job status, elapsed time, ClickHouse progress counters, retry semantics, and result links for an asynchronous blockchain SQL job.

Download Asynchronous Blockchain SQL Results

Return a completed asynchronous blockchain SQL job's retained results as structured JSON or a downloadable CSV.

Transaction Details by Hash

Look up one EVM transaction by chain and hash.

Polymarket Open Interest History

Return daily open-interest history in USD for one Polymarket market over a selected time window.

Polymarket OHLCV Candlesticks

Return OHLCV candlesticks for a Polymarket market for price-chart and bar visualizations.

Polymarket Price History

Return hourly or daily outcome-price history for one Polymarket market, or its latest price snapshot.

Polymarket Volume History

Return aggregate Polymarket trading volume in USD and trade count as a time series for volume-trend analysis.

Polymarket Volume Split (YES/NO)

Return Polymarket trading volume split into YES and NO outcome sides for hourly, daily, or weekly intervals, including total volume and trade count.

Aggregated Project Detail

Return a crypto project's profile with selectable overview, token market, legacy tokenomics, funding, team, contract, social, and token-generation sections.

Signal Detail

Return one project signal card by Surf token UUID or project slug, including its score, classified state, score dimensions, market data, and summaries.

Token Transfer Activity Summary

Return aggregate transfer activity for a token contract over a selected window, including transfer count, approximate unique senders and receivers, token amount, activity bounds, and USD-enrichment coverage.

Token Unlock Schedule

Return token unlock time-series with cumulative amounts, allocation breakdowns, total supply denominator, and unlocked-supply percentage.

Aggregated Wallet Detail

Return a wallet's cross-chain portfolio with selectable balance, token, label, NFT, and approval sub-resources, plus its per-chain USD breakdown.

Get Wallet Labels Batch

Return entity names, entity types, and labels for up to 100 wallet addresses in one request.

Wallet Net Worth History

Return about 24 hours of total wallet net worth in USD at five-minute intervals for one EVM address.

Web Page Fetch

Fetch one web page and convert its content to clean markdown, optionally limiting extraction, removing elements, or waiting for dynamic content with CSS selectors.

X Tweets by IDs

Return normalized X posts by numeric ID.

Airdrop Activities

Return one page of airdrop activities with project, reward, status, fundraising, and social metrics.

ETF Holdings

Return one page from a stored ETF or index-fund portfolio snapshot plus its immediately previous snapshot, ordered newest to oldest.

Equity SEC Filings

Return one page of verified periodic SEC filings for a US equity, including canonical filing metadata, document URLs, statement coverage, and provenance.

Equity Listings

Return one page of current verified active stock listings for the issuer resolved from the requested ticker.

Equity Segment Financials

Return one page of provider-reported product and operating or geographic segment facts for a US-listed equity.

Exchange Historical Candles

Return one page of persisted OHLCV candles for a covered Bithumb, Upbit, HashKey, bitFlyer, Coinone, or Korbit spot market.

Exchange Market Coverage

Return one page of covered spot markets on Bithumb, Upbit, HashKey, bitFlyer, Coinone, and Korbit with ticker metrics, candle availability, technical score, and data status.

Fund Portfolio

Return one page of a fund's investment rounds, sorted by the selected field.

Fund Ranking

Return one page of crypto VC funds ranked by fund tier or number of invested projects, including up to five top portfolio projects per fund.

Fills

Return one page of a wallet's individual Hyperliquid fills with realized PnL, fees, liquidity direction, and an opaque cursor.

Trader Leaderboard

Return one page of Hyperliquid traders ranked by PnL, win rate, or volume, with trade activity, account age, human-likeness, and market filters.

Closed Trades

Return one page of a wallet's closed Hyperliquid position lifecycles, newest close first, with entry and exit prices, size, hold time, fees, and realized PnL.

Kalshi Events

Return one page of Kalshi events with their nested markets, optionally filtered by event ticker.

Kalshi Markets

Return one page of Kalshi markets with status, payout type, volume, and open interest.

Kalshi Orderbook History

Return one page of historical YES-side bid and ask snapshots for a Kalshi market.

Kalshi Trades

Return one page of real-time individual trades for a Kalshi market, with taker side, outcome prices, notional volume, and timestamp.

Exchange Flow Exchanges

Return one page of Surf's curated aggregate and high-coverage individual exchange filters for BTC or ETH exchange-flow metrics.

Large Liquidation Orders

Return one offset page of individual large liquidation orders above a USD threshold.

Exchange Listing Events

Return one page of historical exchange listing and delisting events, filtered by date range and optionally by token, exchange, product, or event type.

Token Rankings

Return one page of tokens ranked by market capitalization, 24-hour price change, or 24-hour trading volume, optionally filtered by token category.

Cross-Platform Daily Comparison (Polymarket <> Kalshi)

Return one page of daily volume and open-interest comparisons for a specific matched Polymarket and Kalshi market pair.

Cross-Platform Prediction Market Matcher

Return one page of matching Polymarket and Kalshi markets with match confidence, activity, volume, current probabilities, and price spread.

Crypto News Feed

Return one page of crypto news from major sources, optionally filtered by publisher, project, or publication time.

Bridge Protocol Ranking

Return one page of bridge protocols ranked by USD transfer volume over a selected time range, including transfer counts.

Yield Pool Ranking

Return one page of individual DeFi yield pools ranked by APY or TVL, optionally filtered by protocol.

Polymarket Events

Return one page of Polymarket events with aggregated status and volume plus their nested markets and outcomes, filtered by event slug.

Polymarket Leaderboard

Return one page of Polymarket traders ranked by realized PnL, trading volume, or trade count, including aggregate position outcomes.

Polymarket Markets

Return one page of Polymarket markets with outcomes, status, volume, and condition identifiers, filtered by market slug.

Polymarket Orderbook History

Return one page of historical bid and ask depth snapshots for a Polymarket token.

Polymarket Wallet Positions

Return one page of open Polymarket positions for a specific proxy wallet, including market identifiers, share size, valuation, and profit and loss.

Polymarket Smart Money

Return one page of Polymarket smart-wallet analytics.

Polymarket Trades

Return one page of Polymarket trades or wallet activity, filtered by market, wallet, outcome, minimum amount, or time range.

Prediction Market Analytics

Return one page of prediction-market analytics with daily trends, top markets by open interest, momentum distribution, and per-market momentum signals.

Market Correlations

Return one page of 30-day Pearson price-correlation pairs between Polymarket markets in one category.

Project AI News

Return one page of AI-generated news and signal analysis for a project identified by Surf UUID or fuzzy name.

Project DeFi Metrics

Return one page of historical metric points for a single DeFi protocol.

DeFi Protocol Ranking

Return one page of DeFi protocols ranked by TVL, fees, revenue, volume, or users.

Signal Projects

Return one page of ranked project signal cards for a 24-hour or 7-day window.

Top Token Signals

Return one page of daily or weekly top-token project signal cards with latest price, price changes, dimension scores, compact signals, and AI summaries.

Token DEX Trade History

Return one page of recent DEX swaps for a token contract on Ethereum, Base, BSC, Arbitrum, or Tron.

Token Holders

Return one page of top token holders for a contract address.

Top Transfer Counterparties

Return one page of a token's top receivers or senders over a selected window, ranked by transfer count, token amount, or USD value.

Token Transfer History

Return one page of recent transfers for a token contract on Ethereum, Base, Solana, Tron, BSC, or Arbitrum.

Wallet Transaction History

Return one page of a wallet's on-chain transactions, classified by type and valued in the chain's native token.

Wallet DeFi Protocol Positions

Return one page of a wallet's DeFi protocol positions across lending, staking, liquidity pools, and farming, including token breakdowns and USD values.

Wallet Transfer History

Return one page of ERC-20 or SPL token transfers involving a wallet, with token identity, USD value, and incoming or outgoing flow.

Preflight Blockchain SQL Query

Validate and estimate a read-only ClickHouse SELECT or WITH query without executing it.

Blockchain Structured Query

Query an on-chain table with structured fields, filters, sorting, and row limits instead of raw SQL.

Blockchain SQL Query

Synchronously run one read-only ClickHouse SELECT or WITH query against Surf's blockchain tables with a 30-second timeout.

Airdrop Search

Return one page of airdrop opportunities filtered by project keyword, lifecycle phase, reward type, task type, or open-task availability.

Project Event Search

Return one page of project events for a Surf project identified by exact UUID or fuzzy name, optionally filtered by event type.

Fund Search

Return one page of crypto investment funds matching a name keyword, including fund identity, tier, type, logo, and top invested projects.

Fundraising Event Search

Return one page of source-backed fundraising and token-sale events, or the latest fundraising timeline when no query is provided.

News Article Search

Return one page of crypto news articles matching a keyword or phrase, ranked by relevance with matching fragments highlighted when available.

Search Prediction Markets

Return one page of Polymarket and Kalshi markets with identifiers, status, volume, open interest, trade counts, current probability, and smart-money signals.

Project Search

Return one page of crypto projects matching a project name or token ticker.

Token Symbol Resolution

Resolve an exact token ticker symbol to one page of likely contract-address candidates on supported chains.

Wallet Search

Return one page of wallet entities matching an ENS name, address label, or wallet-address prefix, including associated labels and known addresses.

Web Search

Return one page of web pages matching a keyword or phrase, optionally restricted to specific domains and including full page content.

SETUP GUIDE

Connect Surf MCP Tool with your Agent

1

Install Composio

typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
Install the Composio SDK and your agent framework
2

Create a session with MCP enabled

typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["surf"],
  mcp: true,
});
Create a session scoped to Surf and read its MCP URL and headers
3

Connect your agent to the MCP server

typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "Get the current price of Bitcoin in USD and summarize today's market trend.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
Pass the session's MCP URL and headers to your agent and run a Surf request
SETUP GUIDE

Connect Surf API Tool with your Agent

1

Install Composio

typescript
npm install @composio/core @composio/openai openai
Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
2

Create a Composio session

typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["surf"] });
const tools = await session.tools();
Initialize Composio with the OpenAI Responses provider and create a session scoped to Surf
3

Run Surf tools with your agent

typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "Get the current price of Bitcoin in USD and summarize today's market trend." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
Send a request, execute the Surf tool calls through the session, and print the final answer

Why Use Composio?

AI Native Surf Integration

  • Supports both Surf MCP and direct API based integrations
  • Structured, LLM-friendly schemas for reliable tool execution
  • Rich coverage for reading, writing, and querying your Surf data

Managed Auth

  • Built-in OAuth handling with automatic token refresh and rotation
  • Central place to manage, scope, and revoke Surf access
  • Per user and per environment credentials instead of hard-coded keys

Agent Optimized Design

  • Tools are tuned using real error and success rates to improve reliability over time
  • Comprehensive execution logs so you always know what ran, when, and on whose behalf

Enterprise Grade Security

  • Fine-grained RBAC so you control which agents and users can access Surf
  • Scoped, least privilege access to Surf resources
  • Full audit trail of agent actions to support review and compliance

Rolling this out across your team?

Give your team centralized access control across every framework with Composio’s MCP Gateway.

EXPLORE MCP GATEWAY
FAQ

Frequently asked questions

Yes, Surf requires you to configure your own API key. Once set up, Composio handles secure credential storage and API request handling for you.

Yes! Composio's Tool Router enables agents to use multiple toolkits. Learn more.

Yes. Composio is SOC 2 Type II compliant and is built to keep your Surf connection and credentials secure. OAuth tokens and API keys are encrypted, and sensitive customer data is protected at rest and in transit.

Composio also undergoes independent security testing and continuously monitors its systems for security threats. You can review the latest reports and policies in the Composio Trust Center.

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

Create the key in your Surf account settings, then paste it once on Composio's connection page. Composio stores it encrypted and uses it only for the Surf actions your agent runs. Nobody else in your workspace can read it, and you can revoke it inside Surf at any time.

When you connect a Surf account through Composio, every action runs under that account, so anything the agent creates, sends, or changes shows up in Surf as done by you. Keep an approval step in your prompt for actions with side effects, such as sending or deleting, and have the agent draft first.

Whatever the credentials you connect allow inside Surf. If Surf lets you scope a key to specific permissions, create a scoped one so the agent can only do what you intend. You can revoke the key inside Surf at any time.

Yes. Composio supports multiple connected accounts for the same app, and that works in Claude, ChatGPT, or any other assistant you connect through Composio. Give each Surf connection a name such as work or personal, and the assistant uses the one you mention in the request. Each account keeps its own credentials and nothing is merged.

The connection stops working the moment Surf rejects the old key. Create a new key in Surf and reconnect the account from the Composio dashboard or by asking your agent to reconnect Surf. Nothing else changes.

Composio's free Hobby plan includes 100,000 tool calls per month with no credit card, which covers most personal Surf use. Paid plans add higher limits and team features. Your Surf plan and its API limits still apply as usual.

Built-in connectors usually give one AI access to a limited set of apps. Many people use Composio because it lets their AI connect to more apps than it normally supports, or connect to multiple accounts for the same app (e.g. connect Claude to multiple Surf accounts).

With Composio, you connect Surf once and then use it across different AI assistants without setting it up separately in each one. Connect your apps to Composio once, then connect Composio to whichever AI you use, whether that's Claude, ChatGPT, Hermes, or your own custom assistant.

Start with Surf.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Surf tool your agent needs.Free to start.

Start building