Skip to main content

Trading Volatility MCP

The options & volatility data source agents can query.

A Model Context Protocol server for Trading Volatility — lets any AI agent discover and retrieve options market-structure data (GEX, gamma flip levels, dealer positioning, skew, max pain, expected-move levels, options flow, and ranked trade setups) over the public v2 API, in conversation.

  • Read-only — discovers and retrieves data over your existing Trading Volatility subscription. No orders, payments, or monitoring.
  • Stateless passthrough — forwards your Authorization: Bearer <key> to the v2 API and stores nothing. Local and hosted modes are the same code path.
  • Two transports — stdio for local agents, streamable HTTP + SSE for remote, multi-user hosting.
  • Works without a key — the demo tickers (AAPL, VIX, KO, META, AMZN, XOM, GM, MCD) work out of the box.

Tools

Tool What it returns
list_capabilities The v2 capability manifest (/llm-spec) — call first to self-orient
get_auth_status Whether you're in keyed or demo mode
get_ticker_state Canonical compact state snapshot
explain_ticker Deterministic narrative interpretation of the regime
get_market_structure Headline signal, regime, expected behavior, levels
get_signals Current setup/positioning signals
get_levels Key levels (json / tradingview / tos)
get_series Historical daily series for selected metrics over a window
get_gamma_curve Gamma strike curve (per expiration, optionally realtime)
get_gamma_by_expiration Gamma decomposition by expiration bucket
get_gex_by_strike Net GEX strike curve with call/put contributions
get_options_volume Options volume by strike for an expiration
rank_top_setups Cross-ticker opportunity ranking, with filters
run_screener A named thesis preset over the ranking
rank_income_setups Cross-ticker covered-call / cash-secured-put ranking, with filters
get_trade_setup Compact agent-oriented trade setup for one ticker

Quickstart (local, stdio)

# Run straight from PyPI with uvx (or: pipx run tv-mcp)
uvx tv-mcp                       # stdio; uses TV_API_KEY or a config file

# …or from source
python3 -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
cp config.example.json config.json   # add your API key (git-ignored)
python -m tv_mcp                      # stdio by default

Validate:

ruff check . && pytest

Credentials & precedence

The key is resolved in this order (first match wins):

  1. Per-request header — Authorization: Bearer <key> (or X-Api-Key) — hosted mode.
  2. Environment — TV_API_KEY.
  3. Local JSON config — tv_api_key in config.json (see config.example.json; values support ${ENV_VAR} substitution so the key can stay in the environment).
  4. Demo mode — no key; only the demo tickers are available.

The key is never logged or persisted.

Remote (hosted, HTTP + SSE)

TV_MCP_TRANSPORT=http PORT=8000 python -m tv_mcp   # serves http://0.0.0.0:8000/mcp

Each request carries its own key, so one deployment serves many users:

POST /mcp           Authorization: Bearer <your-key>
GET  /health        liveness probe
GET  /AGENTS.md      agent-discovery doc (how to use this server)

Container build (binds $PORT, runs the HTTP transport — deploys to any container host such as Cloud Run, Fly, or ECS):

docker build -t tv-mcp .
docker run -p 8080:8080 tv-mcp

The server is stateless and holds no secrets, so it scales horizontally with no extra setup; tune limits with the env vars in .env.example.

Connecting an agent

Claude Code / Claude Desktop (local, stdio) — claude_desktop_config.json:

{
  "mcpServers": {
    "trading-volatility": {
      "command": "uvx",
      "args": ["tv-mcp"],
      "env": { "TV_API_KEY": "your-key" }
    }
  }
}

Remote MCP clients (Claude web custom integrations, OpenAI Responses mcp tool, Gemini function-calling, the Vercel AI SDK, ADK's MCPToolset, LangChain/LangGraph's MultiServerMCPClient) all point at the same endpoint and pass the key as a header:

  • URL: https://<your-deployment>/mcp
  • Header: Authorization: Bearer <your-key>

Because the server is a standard streamable-HTTP MCP endpoint with header auth, no per-client shim is needed — configure the URL and header in whichever framework you use. Copy-pasteable guides with real code for each:

How it works

agent ──tools──▶  TV MCP  ──HTTPS (Bearer key)──▶  stocks.tradingvolatility.net/api/v2
                 (stateless)

The agent carries continuity between turns; the server keeps no session state. It forwards the caller's key and returns the v2 payloads unchanged (they are already agent-shaped).

Repository layout

src/tv_mcp/
  cli.py          stdio | http entry point
  server.py       FastMCP wiring (tools, resources, /health, /AGENTS.md)
  settings.py     config loading + precedence
  auth.py         credential resolution (header → env → config → demo)
  tv/             v2 API client + normalized errors
  tools/          one module per tool group (tickers, curves, discovery, auth)
  transports/     stateless HTTP + SSE app, per-request key middleware
tests/            client, auth, settings, tools, transport, smoke
docs/             design, build plan, implementation notes

Docs

  • docs/integrations/ — per-framework integration guides (Claude, OpenAI, Gemini, ADK, LangChain, AI SDK)

Deployment runbooks and maintainer planning artifacts are kept internal and excluded from public releases.

License

MIT — see LICENSE. Open source under the Trading Volatility brand.

Metadata

Release files for tv-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tv-mcp 0.2.0
File Size Uploaded Provenance
tv_mcp-0.2.0.tar.gz 25.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tv-mcp 0.2.0
File Interpreter ABI Platform
tv_mcp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 58.8 kB

Release files / tv_mcp-0.2.0.tar.gz

Download URL tv_mcp-0.2.0.tar.gz
Size 25.4 kB
Tags Source
SHA-256 checksum
How to use checksums
26944cacca03e7bccf1645b9ffc002f3ce62899b7319915159a083e737dabf01
BLAKE2b-256 checksum
How to use checksums
ed754c20f658c1415b0f1fffcfba037861eb16ca2d8a82274ac69ff9b1add3b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / tv_mcp-0.2.0-py3-none-any.whl

Download URL tv_mcp-0.2.0-py3-none-any.whl
Size 33.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9f5e52de020637a165c29975b6f572685bd534e5677b7675fc1e804ddb0cdd82
BLAKE2b-256 checksum
How to use checksums
63e30c46ac721ab53fd6468ba25a22e27bcf7b1fa01583712cdc87dd550d3505
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for tv-mcp 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page