finance-data-mcp
SEC Filings and Earnings Call
Documentation
Finance Data MCP
A Python-first toolkit for SEC filing ingestion, OCR-to-Markdown conversion, transcript collection, and retrieval across hybrid retrieval (dense + BM25) with reranking.
What this project does
- Downloads SEC filings and stores filing metadata.
- Converts filing PDFs to Markdown via olmOCR.
- Chunks and indexes filings/transcripts in Chroma.
- Supports:
- Hybrid search (dense + BM25 reciprocal-rank-fusion + reranker).
- Exposes workflows through:
- FastAPI (`server.py`).
- MCP server (`mcp_server.py`).
Repository layout
- `finance_data/filings/`: SEC download + helpers.
- `finance_data/ocr/`: olmOCR pipeline.
- `finance_data/dataloader/`: chunking, Chroma indexing, semantic + BM25 retrieval.
- `finance_data/earnings_transcripts/`: transcript fetch + persistence.
- `finance_data/server_api/`: API request/response models + batch helpers.
- `server.py`: FastAPI app.
- `mcp_server.py`: MCP entrypoint.
- `docs/`: setup and operations docs.
Quick start
1) Install dependencies
uv syncFor OCR/embedding flows:
uv sync --group ocr-mdFor MCP workflows:
uv sync --group ocr-md --group mcp2) Configure environment
Use `.env` or environment variables. Common settings:
- `SEC_API_ORGANIZATION`, `SEC_API_EMAIL`
- `OLMOCR_SERVER`, `OLMOCR_MODEL`, `OLMOCR_WORKSPACE`
- `EMBEDDING_SERVER`, `EMBEDDING_MODEL`
- `CHROMA_PERSIST_DIR`
- `MCP_HOST`, `MCP_PORT`, `MCP_NGROK_ALLOWED_HOSTS`
See `finance_data/settings.py` for defaults.
3) Run services
Start model servers:
make vllm-olmocr-serve
make vllm-embd-serve
make vllm-reranker-serveStart API:
make start-serverStart MCP:
uv run --group ocr-md --group mcp python mcp_server.pySearch capabilities
SEC filings API
- Hybrid (dense + BM25 + reranker): `POST /vector_store/search_sec_filings`
Transcript API
- Hybrid (dense + BM25 + reranker): `POST /vector_store/search_transcripts`
MCP tools
- Hybrid: `search_sec_filings_tool`, `search_transcripts_tool`
Core workflows
SEC filing → Markdown
uv run python -m finance_data.filings.sec_data --ticker AMZN --year 2025
uv run python -m finance_data.ocr.olmocr_pipeline --pdf-dir sec_data/AMZN-2025Embed and search filings (API)
curl -s -X POST "http://127.0.0.1:8081/vector_store/embed_sec_filings" \
-H "Content-Type: application/json" \
-d '{"ticker":"AMZN","year":"2025","filing_type":"10-K","force":false}'
curl -s -X POST "http://127.0.0.1:8081/vector_store/search_sec_filings" \
-H "Content-Type: application/json" \
-d '{"ticker":"AMZN","year":"2025","filing_type":"10-K","query":"operating income margin","top_k":5}'Earnings transcripts
Fetch quarterly transcripts:
uv run python -m finance_data.earnings_transcripts.transcripts AMZN 2025Embed + hybrid search transcripts:
curl -s -X POST "http://127.0.0.1:8081/vector_store/embed_transcripts" \
-H "Content-Type: application/json" \
-d '{"ticker":"AMZN","year":"2025","force":false}'
curl -s -X POST "http://127.0.0.1:8081/vector_store/search_transcripts" \
-H "Content-Type: application/json" \
-d '{"ticker":"AMZN","year":"2025","query":"AWS revenue growth","top_k":5}'Docker
Use Makefile wrappers:
make docker-build
make docker-startStop/remove by API port:
make docker-stop
make docker-removeDocumentation
- `docs/README.md`
- `docs/setup-and-operations.md`
Frequently asked questions
What is finance-data-mcp?
finance-data-mcp is SEC Filings and Earnings Call
How do I install finance-data-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is finance-data-mcp open source?
Yes — it is hosted on GitHub at https://github.com/Athe-kunal/finance-data-mcp and has 1 stars.
Related MCP tools
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Automate browser based workflows with AI
Hindsight: Agent Memory That Learns
A privacy-first app that strips AI watermarks from content you own.
Agent framework and applications built upon Qwen>=3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.
The power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP