SEC-MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SEC-MCPApple's financials"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SEC-MCP
MCP server for analyzing SEC filings (10-K, 10-Q, 8-K) with industry-aware financial extraction and BERT-based NLP.
Features
Company Search — Look up companies by ticker or name via SEC EDGAR
Standardized Financials — Industry-aware XBRL extraction with ~250 concept mappings across 5 industry classes (standard, bank, insurance, REIT, utility)
Validation — Automatic sanity checks (revenue ≥ net income, accounting equation, segment vs total detection)
Filing Access — Fetch filing text and specific sections (Risk Factors, MD&A, etc.)
Sentiment Analysis — FinBERT financial sentiment (positive/negative/neutral)
Summarization — BART-based hierarchical summarization for long filing sections
Entity Extraction — NER for companies, people, locations + regex for monetary values, dates, percentages
Related MCP server: edgar-mcp
Setup
# Clone
git clone https://github.com/YOUR_USERNAME/SEC-MCP.git
cd SEC-MCP
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install
pip install -e ".[dev]"
# Configure EDGAR identity (required by SEC)
cp .env.example .env
# Edit .env and set EDGAR_IDENTITY="Your Name your@email.com"Available Tools
Base / Discovery
Tool | Description |
| Search by ticker/name → CIK, ticker, SIC code, industry |
| List filings, filter by form type (10-K, 10-Q, 8-K) |
Financials (standardized, industry-aware, validated)
Tool | Description |
| Full standardized extraction: metrics, ratios, validation, opt. statements |
| Same as above for N tickers in parallel |
| Just the income statement rows |
| Just the balance sheet rows |
| Just the cash flow rows |
| Just computed ratios (margins, ROA, ROE, leverage, etc.) |
| Side-by-side metrics + ratios for multiple tickers |
Filing Text
Tool | Description |
| Full filing or specific section text (supports aliases like 'risk factors') |
NLP Analysis
Tool | Description |
| FinBERT sentiment on text or filing section |
| Hierarchical BART summarization |
| NER (ORG, PER, LOC, MONEY, DATE, PERCENT) |
| Combined sentiment + summary + entities in one call |
How financials extraction works
Industry detection
The SIC code is used to classify a company into one of 5 industry classes:
Class | SIC Range | Revenue Strategy |
standard | Everything else | First match: |
bank | 6020–6299 | Try total ( |
insurance | 6310–6411 | Try total, then aggregate premiums + investment income + fees |
reit | 6500–6553 | Lease revenue + other income |
utility | 4900–4991 | Electric + gas utility revenue |
XBRL concept dictionary
xbrl_mappings.py maps ~250 XBRL concepts to 20+ standardized metrics. Each metric has an ordered list of concepts to try — earlier entries are preferred. Some entries are marked aggregate=True (sum all matching, used for multi-component revenue like banks).
Validation rules
Every extraction runs these checks:
revenue ≥ net income (when both positive) — catches segment-only revenue
Assets = Liabilities + Equity (within 5%) — catches mismatched concepts
Revenue not null — warns if no concept matched
Bank segment check — flags if bank revenue < 80% of net income
Gross margin 0–100% — for standard companies
Warnings are returned in the validation array so the AI can explain or retry.
Usage
Run as MCP server (STDIO)
python -m sec_mcp.serverUsing with your app (Cursor, Claude Desktop, etc.)
Configure MCP so your app starts the SEC-MCP server (see below).
Set
EDGAR_IDENTITYin.envor in the MCP server env.The AI chooses the right tool per request:
"Apple's financials" →
get_financials("AAPL")"Compare AAPL vs MSFT vs GOOGL" →
compare_companies(["AAPL","MSFT","GOOGL"])"Morgan Stanley income statement" →
get_income_statement("MS")"What are Apple's risk factors?" →
get_filing_textwith section='risk factors'
Cursor / Claude Desktop configuration
{
"mcpServers": {
"sec-mcp": {
"command": "python",
"args": ["-m", "sec_mcp.server"],
"cwd": "/path/to/SEC-MCP",
"env": {
"EDGAR_IDENTITY": "Your Name your@email.com"
}
}
}
}Configuration
Variable | Default | Description |
|
| Your identity for SEC EDGAR API |
|
| Sentiment analysis model |
|
| Summarization model |
|
| NER model |
|
| Max tokens per chunk |
|
| Overlap between chunks |
Architecture
src/sec_mcp/
├── server.py # MCP tool definitions (14 tools)
├── edgar_client.py # EDGAR API wrapper (company search, filings, text)
├── financials.py # Standardized extraction engine + validation
├── xbrl_mappings.py # XBRL concept → metric dictionary (5 industry classes)
├── models.py # Pydantic models (StandardizedFinancials, ratios, etc.)
├── config.py # Environment config
└── nlp/
├── sentiment.py # FinBERT
├── summarizer.py # BART
└── ner.py # NERNLP Models
Models are lazy-loaded (downloaded on first use, ~2.5GB total):
ProsusAI/finbert — Financial sentiment, trained on SEC filings
facebook/bart-large-cnn — Abstractive summarization
dslim/bert-base-NER — Named entity recognition
Development
# Run tests
pytest
# Run tests (skip slow model tests)
pytest -m "not slow"
# Lint
ruff check src/ tests/License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for VC pitch-deck scoring, thesis-fit matching, and deal-flow management.
Financial data and research MCP for US/CN/JP equities: filings, statements, ownership, signals.
Paid bilingual MCP tools for evidence-linked SEC filing risk and finance-author track records.
SEC & financial-data MCP: filings, financials, ownership, factors, fund letters, prompts.
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server that wraps SEC EDGAR APIs to provide company financial data, screening metrics, and disclosure signals for investment diligence, with every figure traced to its source filing.8MIT
- AlicenseAqualityAmaintenanceAn MCP server that enables models to access SEC EDGAR filings, filing text, and XBRL financial facts with caching, rate limiting, and iXBRL stripping.8MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables natural-language queries over SEC EDGAR filings and live market data, providing hybrid retrieval with reranking for company snapshots, quotes, fundamentals, and macro indicators.MIT
- AlicenseAqualityBmaintenanceMCP server for SEC EDGAR filing intelligence, providing tools for fetching, chunking/embedding, retrieval, and evaluation of filings.11MIT