FMP MCP Server
The FMP MCP Server provides AI-assisted financial research tools powered by the Financial Modeling Prep API, offering both high-level workflow tools and granular atomic tools.
Workflow Tools (orchestrate multiple data sources into comprehensive responses):
stock_brief– All-in-one snapshot: profile, price action, valuation, analyst consensus, insider signals, and headlinesmarket_context– Full market environment: Treasury rates, yield curve, sector rotation, breadth signals, movers, and economic calendarearnings_setup– Pre-earnings analysis: EPS/revenue estimates, beat/miss history, analyst momentum, price drift, and insider signalsearnings_preview– Pre-earnings scorecard with composite signal and bull/bear triggersfair_value_estimate– Multi-method valuation: DCF, PE/PS-based, peer multiples, and analyst targets with blended estimateearnings_postmortem– Post-earnings synthesis: beat/miss, YoY/QoQ trends, analyst reactions, price response, and guidance tone
Atomic Tools (granular data retrieval):
Company & Fundamentals:
company_overview,financial_statements(income/balance/cash flow + CAGRs),revenue_segments,dividends_infoAnalyst & Valuation:
analyst_consensus,peer_comparison,estimate_revisionsPrice & Market:
price_history(SMA, momentum, volatility),market_overview(sector performance, gainers/losers),stock_searchOwnership & Activity:
insider_activity,institutional_ownershipNews & Transcripts:
stock_news(with event-type flagging),earnings_transcript(paginated)Macro & Economic:
treasury_rates(yield curve, inversion flag),economic_calendarEarnings & ETFs:
earnings_calendar,earnings_info,etf_lookup(holdings or reverse lookup)Meta:
fmp_coverage_gaps– shows unimplemented FMP API endpoints
Key technical features: parallel API fetching, in-memory TTL caching, graceful degradation with partial data on errors, and pagination support for transcripts.
Provides financial market data integration with Polygon.io API, enabling access to Federal Reserve data and short volume information for comprehensive market analysis.
Click on "Install 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., "@FMP MCP ServerGive me a detailed stock brief for NVDA including valuation and analyst ratings"
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.
cassandra-market-research
Financial market data MCP server. Unifies FMP, ThetaData (options), Polygon.io (Fed + short volume), FRED, and Treasury Fiscal Data behind a single FastMCP interface.
Covers stocks, SEC filings, macro series, options chains, earnings, and fiscal data.
Architecture
MCP client → market-research.cassandrasedge.com (CF Tunnel)
→ FastMCP backend (port 3003)
├─ McpKeyAuthProvider → /keys/validate (auth service)
├─ FMP client → api.financialmodelingprep.com
├─ Polygon client → api.polygon.io
├─ FRED/Treasury client → Treasury Fiscal Data + FRED
└─ ThetaData client → theta-terminal sidecar
↓
ThetaTerminal.jar (Java)
↓
ThetaData REST APIThe ThetaTerminal sidecar runs as a separate k8s deployment because it's a stateful Java process that logs into ThetaData and proxies REST calls; credentials live in the theta-terminal k8s Secret.
Repo Layout
cassandra-market-research/
├── backend/
│ ├── src/cassandra_fmp/
│ │ ├── main.py
│ │ ├── mcp_server.py
│ │ ├── config.py
│ │ ├── clients/
│ │ │ ├── polygon.py
│ │ │ ├── thetadata.py
│ │ │ └── treasury.py
│ │ └── tools/ # Tool modules (register pattern)
│ ├── tests/
│ └── Dockerfile
├── theta-terminal/ # ThetaTerminal sidecar image
│ ├── Dockerfile # Downloads ThetaTerminal.jar at build time
│ └── entrypoint.sh
├── .woodpecker.yaml
└── CLAUDE.mdAuth
Uses the shared FastMCP sidecar pattern:
McpKeyAuthProvidervalidatesBearer mcp_...tokens via auth service/keys/validateUpstream API keys (FMP, Polygon, FRED) are deployment-level env vars, not per-user credentials
ThetaData credentials live in the
theta-terminalk8s Secret, consumed by ThetaTerminal.jar, never by this backendACL policy baked into the Docker image via the
AUTH_YAML_CONTENTbuild arg
Env Vars
Variable | Required | Description |
| Yes | Financial Modeling Prep API key |
| No | Polygon.io API key (Fed data + short volume) |
| No | FRED API key for macro series |
| Yes (for options) | ThetaTerminal REST endpoint (e.g. |
| Yes | Auth service wiring |
Dev
cd backend
uv sync
FMP_API_KEY=<key> THETA_TERMINAL_URL=http://127.0.0.1:25510 uv run cassandra-fmpDeploy
Auto-deploys on push to main via Woodpecker CI. BuildKit builds two images and pushes to the local registry:
market-research:latestfrombackend/theta-terminal:latestfromtheta-terminal/
ArgoCD then syncs cassandra-k8s/apps/market-research/ and cassandra-k8s/apps/theta-terminal/.
Part of the Cassandra stack.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DigiBugCat/fmp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server