# fmpsdk (via fmpsdk-mcp)

> This MCP server wraps the `fmpsdk` Python library, a typed client for the
> Financial Modeling Prep (FMP) `stable/` API — 238 methods across 29 data
> groups (quotes, company profiles, financial statements and everything
> computed from them, price history, analyst data, calendars, SEC filings,
> institutional and insider ownership, congressional trades, ESG, economics,
> crypto/forex/commodities, technical indicators, and more).

## How to use this server

- Reach for a **curated tool** first: `get_quote`, `get_company_profile`,
  `get_income_statement`, `get_balance_sheet`, `get_cash_flow`,
  `get_key_metrics`, `get_financial_ratios`, `get_historical_prices`,
  `search_symbol`, `get_stock_news`.
- For anything else, **discover it at runtime**: `list_fmp_endpoints(query=…)`
  to find a method, `describe_fmp_endpoint(name)` for its exact signature, then
  `call_fmp_endpoint(name, params={…})` to run it.
- Prefer FMP's **pre-computed** endpoints over pulling raw series: ratios, key
  metrics, financial scores, technical indicators, and DCF are calculated
  server-side and return a few numbers instead of thousands of rows.

## Plan tiers

Every endpoint works on some FMP plan tier. Most are reachable on the free
tier; `describe_fmp_endpoint` reports the tier for each. A call that the API
key's plan doesn't cover comes back as a clear "not included in this plan"
message, not an error dump.

## Size limits

Large list results are paged (50 rows) with `page` / `total` / `more` and a
`note` explaining how to get more. The `bulk` group and the whole-asset-class
`batch_*_quotes` endpoints are refused here — their responses are dataset-sized
and meant to be pulled through the `fmpsdk` library directly.

## Not a Financial Modeling Prep artifact

FMP does not publish an OpenAPI/Swagger document. The `openapi.json` shipped in
this repository is generated by introspecting the `fmpsdk` source, not fetched
from FMP.
