The Financial Modeling Prep MCP server provides a Model Context Protocol implementation for accessing and analyzing financial data, stock information, company fundamentals, and market insights from Financial Modeling Prep's API. It enables AI assistants to retrieve comprehensive financial data through a standardized interface.
Installation
You can quickly set up the Financial Modeling Prep MCP server using npx. You'll need an API token from Financial Modeling Prep to access their data.
Basic Installation
Run the server directly using npx with your API token:
npx -y fmp-mcp --fmp-token=YOUR_FMP_ACCESS_TOKEN
Using Environment Variables
Alternatively, you can set your API token as an environment variable:
# Set your API token as an environment variable
export FMP_ACCESS_TOKEN=YOUR_FMP_ACCESS_TOKEN
# Run the server
npx -y fmp-mcp
Configuring Port
By default, the server runs on port 3000. You can change this by setting the PORT environment variable:
PORT=4000 npx -y fmp-mcp --fmp-token=YOUR_FMP_ACCESS_TOKEN
Using the MCP Server
Once running, the server exposes a Model Context Protocol endpoint at /mcp
that accepts JSON-RPC formatted requests. This endpoint allows AI assistants to access the various financial data tools provided by the server.
Available Tools
The MCP server provides access to a comprehensive set of financial data tools organized into several categories:
Search Tools
- searchSymbol: Search for stock symbols by name or ticker
- searchName: Search for companies by name
- stockScreener: Screen stocks based on various criteria
- searchExchangeVariants: Search for symbol variants across different exchanges
Directory and Symbol Lists
- getCompanySymbols: Get a list of all company symbols
- getETFList: Get a list of all ETFs
- getActivelyTradingList: Get a list of actively trading stocks
- getAvailableExchanges: Get a list of all available exchanges
- getAvailableSectors: Get a list of all available sectors
Company Information
- getCompanyProfile: Get detailed company profile information
- getCompanyExecutives: Get information about company executives
- getCompanyDescription: Get company description
- getCompanyRating: Get company rating information
- getCompanyPeers: Get companies similar to a given company
- getMarketCap: Get company market capitalization
- getEarningsSurprises: Get historical earnings surprises
- getEarningCallTranscript: Get specific earnings call transcript
Financial Statements
- getIncomeStatement: Get company income statements
- getBalanceSheet: Get company balance sheet statements
- getCashFlowStatement: Get company cash flow statements
- getIncomeStatementAsReported: Get income statements as reported
- getLatestFinancialStatements: Get latest financial statements
Financial Metrics and Analysis
- getKeyMetrics: Get key financial metrics for a company
- getFinancialRatios: Get financial ratios for a company
- getFinancialGrowth: Get financial growth metrics
- getDiscountedCashFlow: Get discounted cash flow valuation
- getEnterpriseValue: Get enterprise value for a company
Technical Indicators
- getSMA: Get Simple Moving Average (SMA) indicator
- getEMA: Get Exponential Moving Average (EMA) indicator
- getWMA: Get Weighted Moving Average (WMA) indicator
- getRSI: Get Relative Strength Index (RSI) indicator
Quotes and Price Data
- getQuote: Get current stock quote information
- getBatchQuotes: Get quotes for multiple symbols
- getHistoricalPrice: Get historical price data
- getHistoricalPriceChart: Get historical price chart data
- getHistoricalDividends: Get historical dividends
Market Indexes and Performance
- getIndexList: Get a list of all market indexes
- getIndexQuotes: Get quotes for market indexes
- getSP500Constituents: Get S&P 500 constituent companies
- getNasdaqConstituents: Get NASDAQ constituent companies
- getSectorPerformance: Get sector performance data
- getBiggestGainers: Get biggest gaining stocks
- getBiggestLosers: Get biggest losing stocks
Market Data
- getMarketHours: Get market hours for a specific exchange
- getEarningsCalendar: Get earnings announcement calendar
- getIPOCalendar: Get initial public offering calendar
- getDividendCalendar: Get dividend calendar
- getEconomicCalendar: Get economic events calendar
News and Press Releases
- getFMPArticles: Get financial news articles from FMP
- getGeneralNews: Get general financial news
- getStockNews: Get news for specific stocks
- getPressReleases: Get company press releases
SEC Filings
- getLatestFinancialFilings: Get latest financial filings
- getFilingsBySymbol: Get filings by symbol
- getLatest8KFilings: Get latest 8-K filings
Insider and Institutional Trading
- getInsiderTrading: Get insider trading data
- getInsiderRoster: Get insider roster for a company
- getInstitutionalOwnership: Get institutional ownership data
- getInstitutionalHolders: Get institutional holders for a company
ETFs and Funds
- getETFHolder: Get ETF holder information
- getETFSectorWeighting: Get ETF sector weightings
- getETFCountryWeighting: Get ETF country weightings
- getFundInfo: Get fund information
- getETFQuotes: Get ETF quotes
Cryptocurrency and Forex
- getCryptocurrencyList: Get a list of cryptocurrencies
- getCryptocurrencyQuote: Get cryptocurrency quote
- getHistoricalCryptocurrencyPrice: Get historical cryptocurrency price data
- getForexList: Get a list of forex pairs
- getForexQuote: Get forex pair quote
Economics
- getEconomicIndicators: Get economic indicators
- getTreasuryRates: Get treasury rates
- getMarketRiskPremium: Get market risk premium
Obtaining a Financial Modeling Prep Access Token
To use the MCP server, you'll need an API token from Financial Modeling Prep:
- Visit the Financial Modeling Prep website
- Click on "Sign Up" to create an account
- Verify your email address
- After signing in, navigate to your Dashboard to find your API key
- For more data access, consider upgrading to a paid plan
Financial Modeling Prep offers different pricing tiers with varying levels of data access and API call limits. For more information, visit the FMP Pricing page.
How to install this MCP server
For Claude Code
To add this MCP server to Claude Code, run this command in your terminal:
claude mcp add-json "fmp-mcp" '{"command":"npx","args":["-y","fmp-mcp","--fmp-token=${FMP_ACCESS_TOKEN}"]}'
See the official Claude Code MCP documentation for more details.
For Cursor
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
Adding an MCP server to Cursor globally
To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"fmp-mcp": {
"command": "npx",
"args": [
"-y",
"fmp-mcp",
"--fmp-token=${FMP_ACCESS_TOKEN}"
]
}
}
}
Adding an MCP server to a project
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
How to use the MCP server
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.
For Claude Desktop
To add this MCP server to Claude Desktop:
1. Find your configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
2. Add this to your configuration file:
{
"mcpServers": {
"fmp-mcp": {
"command": "npx",
"args": [
"-y",
"fmp-mcp",
"--fmp-token=${FMP_ACCESS_TOKEN}"
]
}
}
}
3. Restart Claude Desktop for the changes to take effect