ectors_.
4. Click + then Add custom connector.
5. Fill in the dialog:
- Name: FlashAlpha
- Remote MCP server URL: https://lab.flashalpha.com/mcp-oauth. The -oauth suffix is required.
- Advanced settings: leave empty. FlashAlpha uses Dynamic Client Registration, so Claude registers itself. No client ID or secret to paste.
6. Click Add, then Connect.
7. Sign in on the FlashAlpha page and click Allow. If you are already signed in to flashalpha.com in the same browser, you skip straight to consent.
8. You land back in Claude and the connector flips to Connected.
On Desktop the only difference is the callback: you get an "Open Claude?" browser dialog that deep-links back into the app. Click Open Claude. That is expected, not an error.
Verify with a new chat: "What is my FlashAlpha account?" Claude calls get_account and returns your email, tier and remaining quota.
Your API key never appears in Claude on this path. The OAuth resource server resolves your account from the bearer token and forwards your stored key on the internal upstream call only.
Option 2: apiKey (Desktop, Cursor, Windsurf, VS Code, Claude Code CLI)
Here each tool takes an apiKey argument. Two steps: register the URL, then tell Claude the key once per chat.
Claude Desktop config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"flashalpha": {
"url": "https://lab.flashalpha.com/mcp"
}
}
}
Enter fullscreen mode Exit fullscreen mode
Save, then fully quit and reopen Claude Desktop. A reload is not enough; the config is read once at startup.
First message in a fresh chat:
My FlashAlpha API key is fa_xxxxxxxxxxxxxxxxxxxxxxxx.
Use it on every FlashAlpha tool call.
Enter fullscreen mode Exit fullscreen mode
Claude holds the key for the session and passes it as apiKey on every call.
Other clients, same /mcp URL and same chat-paste pattern:
# Claude Code CLI
claude mcp add flashalpha --transport http https://lab.flashalpha.com/mcp
Enter fullscreen mode Exit fullscreen mode
- Cursor: Settings then MCP Servers then Add Server. Name
flashalpha, URL https://lab.flashalpha.com/mcp.
- Windsurf: Cascade then MCP then Add Server, paste the same URL.
- VS Code (Copilot / Continue): add
{ "url": "https://lab.flashalpha.com/mcp" } to your MCP settings.
Why is the key not in the config? Claude Desktop's HTTP-transport MCP config only supports a URL. There is no env or headers pass-through that maps to a tool argument, and the key is a per-tool argument. So it comes from the conversation, or you skip it entirely with the OAuth endpoint.
Troubleshooting
"MCP Server not responding" on claude.ai. You pasted /mcp into a custom-connector dialog that needs OAuth. The /mcp endpoint expects an apiKey argument the browser flow never sends, so the first call hangs. Edit the connector URL to exactly https://lab.flashalpha.com/mcp-oauth and reconnect. This is the one nearly everyone hits.
"A server with this URL already exists" but nothing shows in your Connectors list. Claude.ai recorded the URL during an earlier handshake that failed mid-flow. Try, in order: hard-refresh (Ctrl/Cmd+Shift+R) and retry Add; open claude.ai in an incognito window and Add from there; sign out and back in. If all three still error, send Anthropic support the ofid_... reference from the original failure and ask them to clear the orphaned record.
"A server with this URL already exists" and FlashAlpha is visible. Close the dialog, click the existing entry, use Connect / Reconnect. If stuck, delete from the ... menu and re-add.
"apiKey is required" on Desktop. Config is fine, Claude just has not been told the key in this chat. Paste it as your first message.
"Unauthorized" after hours of working. Token expired before refresh. Settings then Connectors then FlashAlpha then Reconnect.
HTTP 429. Daily quota hit (Free 5/day, Basic 100, Growth 2,500, Alpha unlimited). Reset is midnight UTC, or upgrade.
"no_data" on get_gex, get_levels, get_volatility. Markets are closed. Not a connector bug. Retry during US market hours.
Desktop ignores the new config. You reloaded instead of quitting. Cmd-Q on macOS, tray then Quit on Windows, then relaunch.
What you get once it is green
All 23 live tools work immediately. Highlights:
- Exposure:
get_gex, get_dex, get_vex, get_levels, get_exposure_summary, get_narrative
- Volatility and pricing:
get_volatility, get_stock_summary, calculate_greeks, solve_iv
- Market data:
get_stock_quote, get_tickers, get_option_chain, get_account
- Historical replay (Alpha tier): 17 tools that mirror the live ones with an
at=<timestamp> argument back to April 2018
Four one-click workflow prompts also surface in the client UI: analyze_exposure(symbol), vrp_regime_check(symbol), historical_comparison(symbol, reference_date) and zero_dte_brief(symbol).
A good first prompt: "Show me the gamma exposure for SPY and tell me where the gamma flip is."
Free tier needs only an email and password, no card: flashalpha.com/pricing. The same key works on both endpoints.