Docs navigation +
Developer API

Stock Market Data MCP Server for Options & Fundamentals

cvforge’s data backend speaks the Model Context Protocol, so coding agents can explore the data while they build — sanity-check a field, pull a sample chain, discover FMP endpoints — without you copy-pasting anything. Inside the desktop app this is wired up automatically for Claude Code, Codex, and OpenCode. You don’t need the app: create a free account, mint a personal API key on your account page, and point any MCP-capable agent at the URL below. The free plan includes the MCP server; paid plans raise the hourly request limit and unlock the historical-options tools marked below.

Connection

  • URL: https://tap.convexvalue.com/api/data/mcp
  • Transport: Streamable HTTP — JSON-RPC 2.0 over a single POST per request; no sessions, no SSE. Protocol version 2024-11-05.
  • Auth: Authorization: Bearer cv_live_… (a bad key is a 401 before the body is parsed; past auth, errors ride inside the JSON-RPC body).

Claude Code reads this from a .mcp.json in your project — the exact file cvforge scaffolds into every app:

.mcp.json (Claude Code)
{
  "mcpServers": {
    "cvserver": {
      "type": "http",
      "url": "https://tap.convexvalue.com/api/data/mcp",
      "headers": {
        "Authorization": "Bearer cv_live_your_key_here"
      }
    }
  }
}

Codex (.codex/config.toml) and OpenCode (opencode.json) get equivalent config with the same URL and header. You can also drive it raw:

curl (raw JSON-RPC)
curl -X POST -H "Authorization: Bearer cv_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "tools/call",
    "params": { "name": "get_chain", "arguments": { "symbol": "SPY" } }
  }' \
  https://tap.convexvalue.com/api/data/mcp

The 8 tools

get_chain

Option chain for one underlying, grouped by expiration and strike. The MCP twin of /chains. Its current per-contract valuation is fair_market_value, a proprietary estimate. cvforge does not provide option bid/ask quotes, quote sizes, midpoint, NBBO, or last-trade data.

Parameter Type Description
symbol required string Underlying ticker, e.g. "SPY", "AAPL", "I:SPX". Auto-uppercased.
fields string[] Supported per-contract fields to return. Omit to use the server default; see the options snapshot reference.

screen

Cross-symbol screener over every contract. The MCP twin of /screen.

Parameter Type Description
columns string[] Columns to project (defaults to the standard subset).
filters required object[] Predicates ANDed together: { field, op, value } or { field, op, field_ref }.
sort object[] { field, direction: "asc"|"desc" }, up to 4.
limit integer Row cap (server max 500).

query_sql

Read-only DuckDB SQL against the snapshot. The MCP twin of /query.

Parameter Type Description
sql required string A single read-only SELECT (or WITH) statement.
max_rows integer Row cap (server max 10,000).

get_option_bars Research plan

Historical OHLC bars for a single option contract. The MCP twin of /mas/aggs.

Parameter Type Description
ticker required string Option contract ticker from the chain, e.g. "O:SPY260116C00400000" — not an underlying.
multiplier required integer Window size in timespan units.
timespan required string second | minute | hour | day | week | month | quarter | year.
from / to required string YYYY-MM-DD or epoch milliseconds.
adjusted boolean Split-adjusted; default true.
sort string "asc" or "desc" by timestamp.
limit integer Max base aggregates; default 5,000, max 50,000.

get_option_daily Research plan

One trading day’s OHLC + volume for a single contract. The MCP twin of /mas/open-close.

Parameter Type Description
ticker required string Option contract ticker, e.g. "O:SPY260116C00400000".
date required string Trading date, YYYY-MM-DD.
adjusted boolean Split-adjusted; default true.

fmp_request

Call any of the 157 allowlisted FMP endpoints.

Parameter Type Description
endpoint required string FMP /stable endpoint path, e.g. "profile", "ratios", "etf/holdings", "technical-indicators/sma".
params object Query parameters, e.g. { "symbol": "AAPL", "period": "annual" }. Array values are comma-joined.

list_fmp_endpoints

Design-time discovery of the FMP catalog (static; consumes no data request).

Parameter Type Description
category string Filter to one category, e.g. "Statements", "Quote", "Chart".
search string Case-insensitive substring match on path or category.

list_chain_fields

Backend field discovery for chain and screen requests. No arguments; static. Treat the options snapshot reference as the product contract: a raw field name appearing in discovery does not mean that cvforge supplies that data, and it does not grant access to option quotes or NBBO.

Entitlements

The /mcp route itself is available on every plan. Tools that wrap gated REST routes re-check entitlements per call: get_option_bars and get_option_daily need the Research plan’s aggregates feature. Tool calls count against your hourly request limit.

Forward compatibility

The tool catalog is served by the backend, so new tools appear without a desktop update. Agents are told to trust tools/list over any static docs — good advice for humans too: this page describes the catalog as of today.

For a complete market-wide screening example, see the Options Screener API with Python or the custom options screener.

Get example prompts & new data guides

Occasional emails with prompts worth trying and what’s new in the data.