SEC Filings and Earnings Call
The MCP server provides end-to-end workflows for SEC filings and earnings call transcripts—including ticker resolution, document retrieval, OCR, embedding, on-disk resource discovery, and semantic search—exposed via MCP and powered by the same olmOCR and embedding backends as the vLLM backends.
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).
- FastAPI (
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 sync
For OCR/embedding flows:
uv sync --group ocr-md
For MCP workflows:
uv sync --group ocr-md --group mcp
2) Configure environment
Use .env or environment variables. Common settings:
SEC_API_ORGANIZATION,SEC_API_EMAILOLMOCR_SERVER,OLMOCR_MODEL,OLMOCR_WORKSPACEEMBEDDING_SERVER,EMBEDDING_MODELCHROMA_PERSIST_DIRMCP_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-serve
Start API:
make start-server
Start MCP:
uv run --group ocr-md --group mcp python mcp_server.py
Search 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-2025
Embed 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 2025
Embed + 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-start
Stop/remove by API port:
make docker-stop
make docker-remove
Documentation
docs/README.mddocs/setup-and-operations.md
Related Servers
Brave-Gemini Research MCP Server
Perform web searches with the Brave Search API and analyze research papers using Google's Gemini model.
Local RAG Backend
A local RAG backend powered by Docker Compose, supporting various document formats for search.
bioRxiv
Search and retrieve articles from bioRxiv, the preprint server for biology.
Helium MCP
Real-time news with bias scoring across 5,000+ sources and 15+ dimensions, balanced news synthesis, live market data with AI analysis, ML options pricing, and semantic meme search.
Gaokao Ranking Query
Query Gaokao (Chinese college entrance exam) rankings within provinces based on score, year, and category.
gnosis-mcp
Zero-config knowledge base for AI coding agents. Loads your markdown docs into a searchable database and exposes them as MCP tools — search, read, and manage documentation without leaving your editor. Works instantly with SQLite (no setup), upgrades to PostgreSQL + pgvector for hybrid semantic search. Includes skills for searching docs (/gnosis:search), health checks (/gnosis:status), doc management (/gnosis:manage), and first-time setup (/gnosis:setup). 6 MCP tools, 3 resources, FTS5 keyword search, 176 tests.
Releasebot
Releasebot finds and watches release note sources from hundreds of products and companies.
Solodit Search
Search and retrieve Solodit vulnerability reports.
Mapbox
Unlock geospatial intelligence through Mapbox APIs like geocoding, POI search, directions, isochrones and more.
FastDomainCheck
Check domain name registration status in bulk using WHOIS and DNS dual verification.