gexbot-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gexbot-mcpWhat are the current GEX levels for QQQ?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gexbot-mcp
A thin MCP server that wraps the GEXBot API so it can be added as a custom connector in claude.ai.
Built with the official MCP Python SDK (FastMCP), served over Streamable HTTP so it can be
hosted remotely (e.g. on Render).
Spec reference: nfa-llc/gexbot-openapi — base URL
https://api.gex.bot/v2, Bearer-token auth.
Tools exposed
Tool | Description |
| Zero-gamma/flip level, top 3 call walls, top 3 put walls, net GEX sign + value, spot price, timestamp. |
| Per-strike net GEX for strikes within ±3% of spot, trimmed. |
| Supported tickers (stocks/indexes/futures) from GEXBot. |
Plus a plain HTTP GET /health endpoint (not an MCP tool) for uptime checks / Render health checks.
About dte
GEXBot doesn't take an arbitrary DTE integer — it buckets data into fixed categories. This server
maps the dte argument onto those buckets:
dte=0→zero(next expiry / 0DTE)dte=1→one(next expiry + 1)any other value →
full(full aggregation across all published expiries, up to ~90 days out)
Tickers you care about
No hardcoded restriction — any ticker GEXBot supports works (see list_tickers()). The ones you'll
likely use most: QQQ, SPY, NDX, SPX, SPXW.
Related MCP server: ai-trader
Auth
The server reads GEXBOT_API_KEY from the environment at request time and sends it as
Authorization: Bearer <key> to GEXBot. The key is never hardcoded — it must be set as an
environment variable wherever you run this (locally, in Docker, or on Render).
Run locally
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
set GEXBOT_API_KEY=gexbot_custom_your_key_here # cmd.exe
# or: $env:GEXBOT_API_KEY = "gexbot_custom_your_key_here" # PowerShell
python server.pyThe server listens on http://0.0.0.0:8000 by default (override with PORT). The MCP endpoint is
at /mcp; health check is at /health.
Quick sanity check:
curl http://localhost:8000/healthRun with Docker
docker build -t gexbot-mcp .
docker run -p 8000:8000 -e GEXBOT_API_KEY=gexbot_custom_your_key_here gexbot-mcpDeploy to Render (free tier)
Push this folder to a GitHub (or GitLab) repo.
In the Render dashboard: New + → Web Service → connect your repo.
Render will auto-detect the
Dockerfile. Leave build/start commands blank (Docker handles it).Or, if you prefer a one-click config, this repo includes
render.yaml— use New + → Blueprint and point it at the repo instead.
Set the Instance Type to Free.
Under Environment, add:
GEXBOT_API_KEY= your key (mark it as a Secret). Paste this yourself in the Render dashboard — don't put it in the repo or inrender.yaml.
Health Check Path:
/health.Deploy. Render will build the Docker image and give you a URL like:
https://gexbot-mcp.onrender.com
Note: Render's free web services spin down after 15 minutes of inactivity and take ~30-60s to wake back up on the next request — the first tool call after idle time may be slow.
Add to claude.ai as a custom connector
In claude.ai: Settings → Connectors → Add custom connector.
URL:
https://<your-app>.onrender.com/mcpSave. Claude will discover the three tools (
get_gex_levels,get_gex_profile,list_tickers).
Error handling
All tools return a compact JSON dict. On failure they return {"error": "<message>", ...} instead
of raising, so the model can see and relay the problem. Handled cases:
Bad/missing API key → 401 from GEXBot → clear "check GEXBOT_API_KEY" message.
Key lacks access to a resource → 403 → clear message.
Unsupported ticker → 404 → clear message.
Bad request (e.g. malformed ticker/category) → 400 → GEXBot's error message surfaced.
GEXBot outage / market-closed edge cases → 5xx handled with a clear message; additionally,
get_gex_levels/get_gex_profileinclude a"stale": trueflag when the returned data's timestamp is more than 24h old, since GEXBot itself doesn't have an explicit "market closed" error.Network/timeout errors → clear message, no stack trace leaked to the client.
Project layout
server.py # the MCP server (FastMCP, Streamable HTTP)
requirements.txt
Dockerfile
render.yaml # optional Render Blueprint config
.env.exampleThis server cannot be deployed
Maintenance
Related MCP Connectors
Options analytics for AI assistants: chains, IV rank, VRP, Greeks, GEX, expected moves, screeners.
Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude
Connect your portfolio to Claude, ChatGPT, or Codex to analyze it and make smarter investments.
- Era ContextOAuthapp.era
Personal finance, bank account, and shared memory connector for Claude, ChatGPT, Gemini Spark & more
Related MCP Servers
- AlicenseBqualityAmaintenanceProvides 32 trading analysis tools for AI-powered market analysis, including real-time data, technical indicators, options Greeks, scanners, and Interactive Brokers portfolio management, all accessible via natural language in Claude Desktop.36368MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude to run backtests, fetch market data, list strategies, and analyze trading algorithms via natural language.1,092GPL 3.0
- AlicenseAqualityDmaintenanceEnables AI agents to 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) from Trading Volatility's public API via natural language.171MIT
- AlicenseAqualityAmaintenanceProvides natural language access to ApexVol's options analytics platform, enabling queries on options chains, volatility metrics, Greeks, flow analysis, and strategy building via Claude Code or Claude Desktop.4352 PyPI1MIT