fmp-mcp-research
A remote MCP server for ChatGPT that exposes read-only Financial Modeling Prep tools to build strict buy-side earnings-call evidence packs and score catalyst reports.
README
FMP MCP Research Server
Remote MCP server for ChatGPT or another LLM that exposes read-only Financial Modeling Prep tools for professional buy-side earnings-call research workflows.
The server does not generate final investment recommendations. It builds evidence manifests, returns transcript completeness metadata, finds filings/tables, and helps an analyst or LLM decide whether a scorecard is supported by the evidence.
Version 0.3.0 changes
- Aligned the transcript tool contract with the documented workflow:
sectionandmax_charsare now supported. - Fixed truncation-marker detection so normal transcripts are not falsely marked as truncated.
- Added a softer
transcript_quality_status:complete,usable_with_warnings, orincomplete. - Kept Q&A split uncertainty as a warning rather than an automatic hard block.
- Added
contract_versionandevidence_pack_version. - Added dev dependencies for pytest, ruff, mypy and respx.
- Added CI skeleton for test/lint.
- Reformatted the project into maintainable Python modules.
- Hardened Docker by running as a non-root user.
- Added explicit statement-table review actions for the latest completed fiscal year and selected quarters.
- Reduced default SEC filing noise in evidence packs by omitting non-core filings unless specifically relevant.
Tools exposed
| Tool | Purpose |
|---|---|
fmp_get_company_profile |
Get sector, industry, market cap and descriptive metadata. |
fmp_list_transcript_dates |
Discover available earnings-call transcript periods. |
fmp_get_earnings_call_transcript |
Fetch full transcript, prepared remarks, Q&A, or metadata. |
fmp_get_statement_tables |
Fetch income statement, balance sheet, cash flow, key metrics, ratios and growth. |
fmp_search_sec_filings |
Find and prioritize 8-K/6-K earnings releases plus 10-Q/10-K evidence. |
fmp_get_earnings_calendar |
Confirm earnings dates and EPS actual/estimate context. |
fmp_build_research_evidence_pack |
Build selected periods, evidence manifest, audit template and next actions. |
fmp_validate_research_evidence |
Mechanically validate an evidence-pack payload. |
research_report_contract |
Return report sections, audit fields and score dimensions. |
Recommended workflow
- Call
research_report_contract(sector="healthcare_technology")or the relevant sector. - Call
fmp_build_research_evidence_pack(symbol="PSNL", min_year=2025, requested_calls=2). - Read
selected_periods,evidence_manifest,scoring_readinessandrecommended_next_actions. - For every selected period, call
fmp_get_earnings_call_transcript(symbol, year, quarter, section="full"). - If
content_truncated_by_tool=true, fetchsection="prepared_remarks"andsection="qna"separately. - Mark
full_call_text_read=yesandqna_reviewed=yesonly after actually reading the returned text. - Use
fmp_search_sec_filingsto locate official 8-K/6-K releases and 10-Q/10-K filings. - Use
fmp_get_statement_tables(period="annual")to review Income Statement, Balance Sheet and Cash Flow Statement for the latest completed fiscal year. - Use
fmp_get_statement_tables(period="quarter")to review Income Statement, Balance Sheet and Cash Flow Statement for every selected quarter. - Use key metrics, ratios and growth tables as supporting context, not as a substitute for primary statements.
- Complete both
source_audit_templateandfinancial_statement_audit_templatebefore producing a scorecard.
Local development
cp .env.example .env
# edit .env and set FMP_API_KEY
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest
python -m fmp_mcp_research.server
The MCP endpoint is usually available at:
http://localhost:8000/mcp
Docker
cp .env.example .env
# edit .env and set FMP_API_KEY
docker compose up --build
Security guardrails
- Keep
FMP_API_KEYserver-side only. - Do not expose write tools.
- Do not add a tool that generates final investment recommendations.
- Log tool name, symbol, quarter and source coverage status; do not log API keys.
- Add rate limiting and an auth layer if used by multiple analysts or exposed outside a trusted network.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.