Docs
Product 2

ApexTick MCP Server

Turn Claude, Cursor, Windsurf, OpenCode or any Model Context Protocol client into a market analyst with five native ApexTick tools.

The ApexTick MCP server exposes read-only market intelligence tools over the Model Context Protocol. Your assistant calls them during a chat turn, and the tools run server-side behind the API gateway and return compact, context-efficient answers.

Connecting

POSThttps://api.apextick.com/mcpAll plans

There are two ways to connect, depending on what your client supports:

ModeHow it connectsUse it for
Hosted Streamable HTTPYour client sends MCP requests straight to https://api.apextick.com/mcp with your key in the apikey header.Cursor, Windsurf, OpenCode, Claude Code and any client with remote-server support.
Local stdio bridgeYour client starts a small local process over stdio, which forwards every request to the hosted endpoint. The key comes from the APEXTICK_API_KEY environment variable.Clients that only launch local servers, such as the Claude Desktop config file.

Both modes use the same hosted server, the same tools and the same plan limits. The hosted endpoint is stateless: it doesn't use Mcp-Session-Id, and every request is authorized against your plan, so an upgrade takes effect on the very next tool call.

Client configuration

Set your key once in your shell profile, then copy the block for your client:

Shell
export APEXTICK_API_KEY="dk_your_key_here"

Claude Desktop

Claude Desktop's config file launches local stdio servers, so use the mcp-remote bridge (requires Node.js). Open Settings → Developer → Edit Config and add:

JSON
{
  "mcpServers": {
    "apextick": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://api.apextick.com/mcp",
        "--header",
        "apikey:${APEXTICK_API_KEY}"
      ],
      "env": {
        "APEXTICK_API_KEY": "dk_your_key_here"
      }
    }
  }
}

Fully quit and reopen Claude Desktop after saving. On macOS the file is ~/Library/Application Support/Claude/claude_desktop_config.json; on Windows it's %APPDATA%\Claude\claude_desktop_config.json.

Claude Code

Shell
claude mcp add --transport http apextick https://api.apextick.com/mcp \
  --header "apikey: $APEXTICK_API_KEY"

Cursor

Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

JSON
{
  "mcpServers": {
    "apextick": {
      "url": "https://api.apextick.com/mcp",
      "headers": {
        "apikey": "${env:APEXTICK_API_KEY}"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json, then refresh the MCP list in Cascade:

JSON
{
  "mcpServers": {
    "apextick": {
      "serverUrl": "https://api.apextick.com/mcp",
      "headers": {
        "apikey": "${env:APEXTICK_API_KEY}"
      }
    }
  }
}

OpenCode

Add to opencode.json in your project or global config. oauth: false tells OpenCode the server uses an API key:

JSON
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "apextick": {
      "type": "remote",
      "url": "https://api.apextick.com/mcp",
      "oauth": false,
      "headers": {
        "apikey": "{env:APEXTICK_API_KEY}"
      }
    }
  }
}
Check the connection

Ask your assistant “What ApexTick tools do you have?” It should list the tools your plan includes. Then try “Get me a quote for NVDA”.

Tools by plan

ToolHobbyistTrader ProQuant & CommunityEnterprise
get_quote✓✓✓✓
analyze_ticker—✓✓✓
explain_price_move—✓✓✓
get_watchlist_brief—✓✓✓
screen_market——✓✓

Quant & Community supports multiple seats, with one API key per seat. Enterprise includes a dedicated MCP endpoint.

Your client only lists the tools your plan includes. If an assistant calls a tool outside your plan, the call returns an error result instead of data, for example: Tool "analyze_ticker" is not included in the hobbyist plan; upgrade your plan to use it. Tools available on this plan: get_quote.

Tool reference

Symbols use standard notation (AAPL, BRK-B, ^GSPC, EURUSD=X, BTC-USD) and are upper-cased and validated before any data is fetched. Output is deliberately compact: rounded numbers, abbreviated volumes such as 52.3M, and one text block per call.

get_quote

MCPget_quoteHobbyist+

A fast consolidated quote.

JSON
{ "symbol": "AAPL" }

Returns symbol, as_of, price, change, change_pct and volume.

analyze_ticker

MCPanalyze_tickerTrader Pro+

The session and valuation of one instrument, in a single call.

JSON
{ "symbol": "AAPL" }

Returns:

  • Session: price, change, OHLC, volume, gap_pct and range_position (0 at the day's low, 1 at its high).
  • Stance: session_stance, one of strong_up, up, flat, down or strong_down.
  • Valuation: market_cap, pe, pb, eps_ttm, roe and dividend_yield. Unreported values are omitted, and instruments without fundamentals, such as crypto, get a note instead of an error.

explain_price_move

MCPexplain_price_moveTrader Pro+

Structured context for the model to explain why a stock is moving.

JSON
{ "symbol": "NVDA" }

Returns:

  • Move: direction, gap, range position and move_vs_atr (the move measured in ATRs).
  • Technicals: RSI state, distance from SMA 20/50/200 in percent, moving-average trend, MACD, ATR and 30-day volatility.
  • Earnings: the last reported quarter with its EPS surprise and days since the report, plus the next pending estimate.
  • Signals: deterministic labels the model can reason over.

Missing technicals or earnings degrade to notes instead of failing the call.

get_watchlist_brief

MCPget_watchlist_briefTrader Pro+

Summarizes up to 20 symbols in one Markdown table, made with a single batched quote request.

JSON
{ "symbols": ["AAPL", "MSFT", "NVDA", "BTC-USD"] }
Text
**Watchlist brief** · 4 symbol(s) · as of 2026-10-16T14:30:05Z

| Symbol | Price | Chg | Chg % | Day Range | Volume |
|:--|--:|--:|--:|:--|--:|
| AAPL | 190.12 | +1.19 | +0.63% | 188.50–191.20 | 52.3M |
| MSFT | 414.37 | -2.13 | -0.51% | 412.05–418.90 | 19.8M |
| NVDA | 142.06 | +5.62 | +4.12% | 137.10–143.25 | 312.5M |
| BTC-USD | 67412.50 | +812.40 | +1.22% | 66105.00–67980.00 | 28.4B |

Breadth: 3 up · 1 down · 0 flat · Best: NVDA +4.12% · Worst: MSFT -0.51%

Duplicate symbols are removed in input order, and symbols that can't be found are listed on a Not found: line.

screen_market

MCPscreen_marketQuant & Community+

Screens market movers and options activity. All fields are optional:

JSON
{ "asset_class": "eq", "metric": "all", "limit": 5 }
FieldValuesDefault
asset_classeq, etf, fxeq
metricall, gainers, losers, volume, high_ivall
limit1–205

all returns gainers, volume leaders and the highest implied-volatility names. The high-IV list comes from the options screener, keeping the highest-IV contract per underlying, and is skipped for fx. If one list is unavailable it becomes a note; the call fails only if every list fails.

Errors

Invalid input and data errors come back as MCP tool errors (isError: true) with a readable message, for example quote for ZZZZ: Symbol not found (status 404). Authentication problems are HTTP errors on the endpoint itself: a missing or invalid key returns 401.

Requests to the MCP endpoint count towards your plan's daily quota and rate limit like any other API request. Tool data is cached for a short time, so repeated questions from an assistant stay fast.