Financial Modeling Prep (fmpsdk) MCP server
Financial Modeling Prep API as MCP tools — quotes, statements, prices, and ~240 endpoints.
213 stars22 downloads/wk
Reviews
Write oneNobody has reviewed Financial Modeling Prep (fmpsdk) yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Financial Modeling Prep (fmpsdk) tools (13)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
call_fmp_endpointInvoke any FMP endpoint by its fmpsdk method name. `params` is a dict of that method's arguments (see `describe_fmp_endpoint`). Large list results are paged: the response carries `page`, `total`, `more`, and a `note` on how to get the rest. `bulk` and whole-asset-class batch endpoints are refused here — use the fmpsdk library directly for those.
describe_fmp_endpointFull detail for one endpoint: call signature, every parameter, return type, plan tier, FMP wire path, and the complete docstring. Use before `call_fmp_endpoint` so the arguments are right.
get_balance_sheetBalance sheet (assets, liabilities, equity) for one company.
get_cash_flowCash flow statement (operating, investing, financing) for one company.
get_company_profileCompany profile: price and market cap, identifiers (CIK/ISIN/CUSIP), sector and industry, headquarters, leadership, description, exchange.
get_financial_ratiosPer-period financial ratios: liquidity, leverage, efficiency, profitability, and valuation — FMP-computed from the statements.
get_historical_pricesDaily close price and volume for one symbol between two dates (YYYY-MM-DD). Leave dates unset for FMP's default recent window. Long ranges are returned page by page — see the response's `note`.
get_income_statementIncome statement (revenue, expenses, net income) for one company.
get_key_metricsPer-period key metrics: valuation multiples, per-share figures, returns on capital, margins — FMP-computed from the statements.
get_quoteFull real-time quote for one symbol (equity, index, commodity, crypto, or forex pair): price, change, day/52-week range, volume, market cap, 50/200-day averages.
get_stock_newsRecent news articles for one or more symbols (comma-separated, e.g. "AAPL,MSFT"): headline, publisher, url, published date, snippet.
list_fmp_endpointsFind FMP endpoints beyond the curated tools. `query` is a substring match over name/group/summary; `group` filters to one category (e.g. "congress", "institutional_ownership"); `free_only` drops endpoints that need a paid FMP plan. Returns name, group, plan tier ("Free"/"Starter"/ "Premium"/"Ultimate"/"Add-on"), and one-line summary — pass a name to `describe_fmp_endpoint` for the full signature.
search_symbolResolve a ticker symbol from a name or fragment (e.g. "apple" -> AAPL).
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- Code scan8 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 22 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
What the publisher says
From the Financial Modeling Prep (fmpsdk) repository's README, as published. We do not edit it. Read it on GitHub
FMP SDK
The idea behind this project is to provide a 'one-stop-shop' to the API endpoints provided by Financial Modeling Prep (FMP).
A personal note to you: my apologies for letting this package get so out of date. FMP kept reshuffling its API, then I had a personal issue delay me further. Things are back on track now. Because of that gap, roughly half of this package's old methods had gone defunct against FMP's current API, so rather than patch around that I rebuilt it from scratch against FMP's stable/ API. If you're on 20250102.0 or earlier you're on the old, pre-rewrite methods; anything newer uses the schema described below. Old releases are yanked from PyPI (a plain pip install fmpsdk now always gets the rewrite), but still installable if you pin one explicitly, e.g. pip install fmpsdk==20250102.0 — note that won't actually restore functionality, though: FMP sunset the legacy /api/v3/ API those old methods called entirely on 2025-08-31, so a pinned old version installs fine but its calls will fail regardless. It's there for compatibility with existing pinned requirements files while you migrate, not as a way to keep avoiding the rewrite.
What's covered
29 data groups, ~240 methods total, each reachable both as client.(...) and grouped under a matching namespace, e.g. client.statements.income_statement(...):
ratios/growth (income, balance sheet, cash flow — as-reported, TTM, and growth variants)
- Company & fundamentals — profile, executives, M&A, DCF valuation, financial statements/
industry/exchange directories
- Market data — real-time & aftermarket quotes, historical price charts, technical indicators
- Reference & screening — symbol/CIK/CUSIP/ISIN search, the company screener, sector/
disclosures
- Calendars & events — earnings, dividends, splits, IPOs, the economic calendar
- Ownership & compliance — insider trades, Form 13F institutional ownership, SEC filings, ESG
trading, market movers
- Alternative markets — crypto, forex, commodities, indexes, ETFs & mutual funds
- Sentiment & analysis — analyst grades/price targets, TipRanks ratings, congressional
- Bulk downloads — whole-universe data dumps, one call instead of one per symbol
Every method's own docstring says which FMP plan tier it needs (Free/Starter/Premium/ Ultimate) — see Pricing tiers below. One exception: the 7 client.tipranks methods are implemented and unit-tested but untested against a real response — see that section for why.
How to Use
is optional — it's just how the example below loads your API key from a .env file).
- Requires Python 3.9+. Install the package: pip install fmpsdk python-dotenv (python-dotenv
client.company.profile(symbol="AAPL"), client.statements.income_statement(symbol="AAPL").
- Create a .env file and put your API key in it. Inside .env: FMPAPIKEY='blah'
- Build a Client and call methods on it, grouped by data category — e.g.
parse it.
- The return from a method call is almost always a list of dictionaries. It is up to you to
Example code
#!/usr/bin/env python3
from dotenv import load_dotenv
import fmpsdk
# Actual API key is stored in a .env file. Not good to store API key directly in script.
load_dotenv()
client = fmpsdk.Client() # reads FMP_API_KEY from the environment
# Company Valuation Methods
symbol = "AAPL"
print(f"Company Profile: {client.company.profile(symbol=symbol)}")
# Every non-2xx FMP response raises a typed exception instead of returningShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
claude mcp add fmpsdk-mcp -- uvx fmpsdk-mcp
Financial Modeling Prep (fmpsdk): common questions
- Is Financial Modeling Prep (fmpsdk) MCP server safe?
- Mostly: it is graded B (83/100). Read the Financial Modeling Prep (fmpsdk) safety report
- How do I install Financial Modeling Prep (fmpsdk)?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Financial Modeling Prep (fmpsdk) need an API key?
- Yes. The registry entry asks for
FMP_API_KEY. - Is Financial Modeling Prep (fmpsdk) maintained?
- The last commit was 22 days ago (2026-08-29). The latest release is v20260829.1.