Stock-MCP
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Massive MCP Server (CSV + Charts)
Standalone FastMCP server that exposes Massive (Polygon) market data to Claude and other MCP clients. Chart tools return chart-ready CSV; lookup tools return compact JSON.
Tools
CSV / chart tools
Tool | Description |
| OHLCV bars for a stock via REST API |
| OHLCV bars for an options contract via REST API ( |
| OHLCV bars from Massive Flat Files (S3 bulk data) |
| SMA / EMA / RSI / MACD series for a stock or option contract, oldest first for overlays |
| Tick-level trades for an option contract or stock (requires trades entitlement) |
| Historical NBBO bid/ask quotes with mid + spread (requires quotes entitlement) |
Bar CSV columns: datetime,open,high,low,close,volume,transactions
Options tools
Tool | Description |
| Contract reference lookup with exact or ranged expiration/strike filters, |
| Spec for one contract (exercise style, shares per contract, primary exchange) |
| One contract: IV, greeks, OI, day bar, quote/trade when entitled; flat |
| Filtered chain (type, expiration window, strike band), auto-paginated up to 2500 contracts; |
| Up to 250 mixed stock + option tickers in one call (multi-leg pricing) |
| Previous session OHLCV + VWAP (stock or option) |
| Open/close plus pre-market and after-hours for one date (stock or option) |
| Most recent trade (requires trades entitlement) |
| Runs the long-call risk/reward screen directly on live chain snapshots, ranked by payoff ratio |
Snapshot rows report per-share prices. mark is the best available price (quote mid → FMV → last trade → session close → previous close) and mark_source says which one was used. Plans without quote entitlement return no bid/ask, so spread discipline can't be checked.
Research tools (JSON)
Tool | Description |
| Find symbols by name or ticker |
| Company / instrument metadata |
| Latest price snapshot (paid plan) |
| Flat file catalog and S3 listing |
| Top gainers or losers (paid plan) |
| Current open/closed/extended-hours status |
| Upcoming holidays and early closes |
| Exchange reference (maps exchange IDs in trades/quotes) |
| Trade/quote condition code reference |
| Long-call spread + payoff ratio screen (single leg) |
| Batch long-call screen from chain shortlist |
| BS price/greeks or IV solve when snapshot greeks are null |
| Covered-call P/L across a price × eval-date grid for 1..N scenarios. Premium and IV come from the live contract snapshot (bid / market IV) unless overridden. Returns long-format CSV + per-scenario metrics |
Related MCP server: market-data-mcp
Local Setup
cd Stock-MCP
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .envEdit .env:
MASSIVE_API_KEY=your_rest_api_key
MASSIVE_S3_ACCESS_KEY=your_flat_files_access_key # optional, for flat files
MASSIVE_S3_SECRET_KEY=your_flat_files_secret_keyRun locally:
fastmcp run app/mcp_server.py --transport http --host 127.0.0.1 --port 8082MCP endpoint:
http://127.0.0.1:8082/mcpDocker on Linux VPS
cp .env.example .env
# edit .env
docker compose -f deploy/docker-compose.yml up -d --buildThe service binds to localhost:
http://127.0.0.1:8082/mcpTraefik (recommended for VPS)
Expose the MCP server via Traefik with TLS. The container joins the external traefik-public network and is routed at your domain.
Create DNS A record:
mcp.kowens.tech→ your VPS IP.Ensure Traefik is running with
providers.docker.network=traefik-public.Deploy:
docker compose -f deploy/docker-compose.yml up -d --buildPublic MCP URL:
https://mcp.kowens.tech/mcpOAuth for Claude Custom Connectors (recommended)
Claude Desktop / Claude.ai Custom Connectors use OAuth in the UI — clients do not edit config files. Stock-MCP uses FastMCP's OAuth proxy, which speaks MCP OAuth to Claude while authenticating users via GitHub or Google.
Do not use Traefik Basic Auth with OAuth. Basic Auth blocks MCP's 401 + discovery headers. The default deploy/docker-compose.yml has no Basic Auth middleware.
1. Create a GitHub OAuth App
GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
Homepage URL:
https://mcp.kowens.techAuthorization callback URL:
https://mcp.kowens.tech/auth/callbackCopy Client ID and generate a Client secret
For Google, use Google Cloud Console with the same callback URL and set MCP_OAUTH_PROVIDER=google.
2. Configure .env
MCP_AUTH_MODE=oauth
MCP_PUBLIC_BASE_URL=https://mcp.kowens.tech
MCP_OAUTH_PROVIDER=github
MCP_OAUTH_CLIENT_ID=your_github_client_id
MCP_OAUTH_CLIENT_SECRET=your_github_client_secret
# Recommended: openssl rand -base64 32
MCP_OAUTH_JWT_SIGNING_KEY=your_random_signing_key3. Deploy
docker compose -f deploy/docker-compose.yml up -d --buildVerify discovery (should return JSON, not 401 from Traefik):
curl -s https://mcp.kowens.tech/.well-known/oauth-protected-resource/mcp | head4. Client setup (no config files)
In Claude Desktop or Claude.ai:
Settings → Connectors → Add custom connector
Name:
Stock MCP(any label)Remote MCP server URL:
https://mcp.kowens.tech/mcpLeave OAuth Client ID and OAuth Client Secret blank (the server proxy handles registration)
Click Add → sign in with GitHub (or Google) when prompted
Clients never see your Massive API keys or server .env — they only complete OAuth.
Legacy Basic Auth (N8N, scripts)
For tools that only support HTTP Basic Auth, use the optional Traefik overlay:
docker compose -f deploy/docker-compose.yml -f deploy/docker-compose.basic-auth.yml up -dSet MCP_AUTH_MODE=basic and MCP_BASIC_AUTH_USERS in .env. This is incompatible with Claude Custom Connectors.
htpasswd -nbB mcp 'your-password' | sed 's/\$/\$\$/g'Cloudflare Tunnel (optional)
Expose the MCP server to Claude Projects without opening a public port on the VPS.
Create a remotely managed tunnel in Cloudflare Zero Trust.
Set
CLOUDFLARE_TUNNEL_TOKENin.env.Add a public hostname route:
mcp-stocks.yourdomain.com→http://stock-mcp:8080Start with the tunnel profile:
docker compose -f deploy/docker-compose.yml --profile tunnel up -d --buildClaude remote MCP URL:
https://mcp-stocks.yourdomain.com/mcpClaude Integration
Deploy with OAuth (see above).
Add a Custom Connector with
https://mcp.kowens.tech/mcp(no config file editing).Add to your project instructions:
For charts, call
get_stock_bars_csvorget_flat_file_bars_csvand parse thecsvfield. Always mentiontruncatedand the date range in your analysis. For options, always filterget_options_chain_snapshotby expiration and strike band; useoutput=csvto chart IV smile or open interest by strike.
Environment Variables
Variable | Required | Description |
| Yes | REST API key |
| Flat files only | S3 access key from Massive dashboard |
| Flat files only | S3 secret key |
| No | Row cap per CSV tool call (default 5000) |
| No | Host port for Docker (default 8082) |
| No |
|
| OAuth | Public origin, e.g. |
| OAuth |
|
| OAuth | OAuth app client ID |
| OAuth | OAuth app client secret |
| OAuth (recommended) | Stable key for token signing across restarts |
| Basic Auth overlay | htpasswd line for Traefik middleware |
Testing
pytest tests/ -vOptional integration tests (requires real API keys in .env):
RUN_INTEGRATION=1 pytest tests/test_integration.py -vSecurity
Keep
.envoff Git; usechmod 600 .envon the VPS.Bind to
127.0.0.1unless behind Cloudflare Tunnel or nginx.Do not log API keys.
Consider Cloudflare WAF rate limiting on the public MCP hostname.
API Reference Docs
Rest_API_docs.md— Massive REST APIflat_files_docs.md— Massive Flat Files (S3)
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Market Data App MCP — wraps the Market Data App API (marketdata.app)
Historical tick, order book and settlement data for Polymarket and Predict.fun crypto up/down markets, plus smart-money lists and backtest quotes, over a read-only MCP server.
OpenFIGI MCP — financial-instrument symbology.
Related MCP Servers
- AlicenseCqualityDmaintenanceProvides access to comprehensive financial market data from Massive.com API, including real-time and historical data for stocks, options, forex, crypto, trades, quotes, market snapshots, ticker details, dividends, splits, fundamentals, and market status through an LLM-friendly interface.53MIT
- -licenseNot gradedqualityNot gradedmaintenanceReal-time financial market data MCP server. Stocks, crypto, technicals, sentiment, FDA calendar. No API keys required.-
- AlicenseCqualityDmaintenanceEnables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.713MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to Polygon.io financial data including tickers, OHLC aggregates, daily open/close prices, and news via MCP gateway.286 npmMIT