openpharma-org/sec-mcp
If you are the rightful owner of sec-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The SEC EDGAR MCP Server is a production-ready Model Context Protocol server that provides access to the SEC's EDGAR system for retrieving and analyzing public company filings and financial data.
Unofficial SEC EDGAR MCP Server
A Model Context Protocol (MCP) server that provides comprehensive access to the U.S. Securities and Exchange Commission's EDGAR (Electronic Data Gathering, Analysis, and Retrieval) system. This server enables AI assistants and applications to search, retrieve, and analyze public company filings, financial statements, and dimensional XBRL data from the SEC's database.
Key Features
- Company Discovery: Find companies by name or ticker with real-time SEC data
- Complete Filing Access: Full company submission histories and document details
- Advanced XBRL Analysis: Extract dimensional financial facts with geographic/segment breakdowns
- Intelligent Fact Search: Find specific financial values with dimensional context
- Business Intelligence: Automated fact classification and table generation
- Multi-API Integration: Robust fallback mechanisms across SEC endpoints
- Real-time Data: Direct access to SEC's live EDGAR database
- MCP Compatible: Works seamlessly with Cursor, Claude Desktop, and other MCP clients
European Filings - Sister Project
Looking for European company financial data? Check out our companion server:
EU Filings MCP Server - Access financial filings from 27+ EU countries via ESEF (European Single Electronic Format)
98% feature parity with this SEC server, optimized for European regulatory frameworks.
Usage
Add the server to your MCP client configuration:
{
"mcpServers": {
"sec-mcp-server": {
"command": "node",
"args": ["/path/to/sec-mcp-server/build/index.js"],
"env": {}
}
}
}
Dimensional XBRL Capabilities
Fact Table Generation
Extract precise financial facts with complete dimensional context:
{
"method": "build_fact_table",
"cik_or_ticker": "JNJ",
"target_value": 638000000,
"tolerance": 50000000
}
Returns dimensional facts like:
- $638.0M = J&J Electrophysiology Non-US Revenue (Q1 2025)
- Complete dimensional breakdown: Geography + Business Segment + Subsegment
- Full XBRL context:
us-gaap:NonUsMember+jnj:MedTechMember+jnj:ElectrophysiologyMember
Business Intelligence Extraction
Automatically classifies and analyzes financial facts:
- Subsegment Revenue: Product-line specific performance
- Geographic Revenue: International vs domestic breakdowns
- Segment Revenue: Business division analysis
- Comparative Analysis: Cross-product and cross-geography insights
Complete API Reference
The server provides a unified sec_edgar tool with 10 powerful methods:
Core Company Operations
1. Search Companies (search_companies)
Find companies by name or ticker using SEC's official database.
{
"method": "search_companies",
"query": "Johnson & Johnson"
}
2. Get Company CIK (get_company_cik)
Convert ticker symbols to Central Index Keys with validation.
{
"method": "get_company_cik",
"ticker": "JNJ"
}
3. Get Company Submissions (get_company_submissions)
Retrieve complete filing history with enhanced metadata.
{
"method": "get_company_submissions",
"cik_or_ticker": "0000200406"
}
Financial Data Access
4. Get Company Facts (get_company_facts)
Access all XBRL financial data with structured organization.
{
"method": "get_company_facts",
"cik_or_ticker": "JNJ"
}
5. Get Company Concept (get_company_concept)
Extract specific financial concepts with historical trends.
{
"method": "get_company_concept",
"cik_or_ticker": "JNJ",
"taxonomy": "us-gaap",
"tag": "RevenueFromContractWithCustomerExcludingAssessedTax"
}
6. Get Frames Data (get_frames_data)
Analyze aggregated data across companies and periods.
{
"method": "get_frames_data",
"taxonomy": "us-gaap",
"tag": "Assets",
"unit": "USD",
"frame": "CY2024Q1I"
}
Advanced Dimensional Analysis
7. Get Dimensional Facts (get_dimensional_facts)
Extract facts with complete dimensional context from XBRL instance documents.
{
"method": "get_dimensional_facts",
"cik_or_ticker": "JNJ",
"accession_number": "0000200406-25-000119",
"search_criteria": {
"concept": "RevenueFromContractWithCustomerExcludingAssessedTax",
"valueRange": {
"min": 588000000,
"max": 688000000
},
"dimensions": {
"subsegment": "Electrophysiology"
}
}
}
8. Search Facts by Value (search_facts_by_value)
Find financial facts around specific target values with filters.
{
"method": "search_facts_by_value",
"cik_or_ticker": "JNJ",
"target_value": 638000000,
"tolerance": 50000000,
"filters": {
"concept": "Revenue",
"formType": "10-Q"
}
}
9. Build Fact Table (build_fact_table)
Generate comprehensive dimensional fact tables with business intelligence.
{
"method": "build_fact_table",
"cik_or_ticker": "JNJ",
"target_value": 638000000,
"tolerance": 50000000,
"options": {
"maxRows": 25,
"showDimensions": true,
"sortBy": "deviation"
}
}
Utility Operations
10. Filter Filings (filter_filings)
Enhanced filtering with date ranges and form types.
{
"method": "filter_filings",
"filings": [...],
"form_type": "10-Q",
"start_date": "2024-01-01",
"end_date": "2024-12-31"
}
🏗️ Enhanced Architecture
Multi-Tier API Access Strategy
- Primary: Direct iXBRL document parsing from EDGAR Archives
- Secondary: SEC Submissions API for filing discovery and metadata
- Tertiary: Company Facts API with dimensional inference
- Emergency: Known dimensional structure mapping
SEC API Compliance
- Official Endpoints: Uses
data.sec.govAPIs per SEC guidelines - Proper User-Agent:
SEC-Research-Tool/1.0 (contact@research.org) - Rate Limiting: Respects 10 requests/second SEC limit
- Error Recovery: Graceful degradation with meaningful diagnostics
iXBRL Parser Technology
- Modern Format Support: Handles Inline XBRL (HTML-embedded) instead of legacy XML
- Dimensional Extraction: Parses
<ix:nonFraction>,<ix:fraction>, and context relationships - Business Classification: Automatically categorizes facts by type and dimensional scope
- Context Resolution: Maps XBRL contexts to readable dimensional breakdowns
Real-World Use Cases
Investment Analysis
{
"method": "build_fact_table",
"cik_or_ticker": "AAPL",
"target_value": 100000000000,
"tolerance": 10000000000
}
Find all facts around $100B for Apple with dimensional context
Competitive Intelligence
{
"method": "search_facts_by_value",
"cik_or_ticker": "TSLA",
"target_value": 20000000000,
"filters": {
"concept": "Revenue",
"dimensions": {"geography": "International"}
}
}
Analyze Tesla's international revenue performance
Regulatory Compliance Monitoring
{
"method": "get_dimensional_facts",
"cik_or_ticker": "JPM",
"search_criteria": {
"concept": "LoanLossProvision",
"valueRange": {"min": 1000000000, "max": 5000000000}
}
}
Monitor JPMorgan's loan loss provisions with risk segmentation
Cross-Company Benchmarking
{
"method": "get_frames_data",
"taxonomy": "us-gaap",
"tag": "OperatingIncomeLoss",
"unit": "USD",
"frame": "CY2024Q3I"
}
Compare operating income across all companies for Q3 2024
Installation & Setup
Quick Start with Claude Desktop
Add to your Claude Desktop MCP configuration:
{
"mcpServers": {
"sec-edgar": {
"command": "npx",
"args": ["@openpharma-org/sec-mcp"]
}
}
}
SEC Filing Reference
Major Form Types
| Form | Description | Frequency | Key Data |
|---|---|---|---|
| 10-K | Annual Report | Yearly | Complete financials, business overview |
| 10-Q | Quarterly Report | Quarterly | Unaudited financials, interim updates |
| 8-K | Current Report | As needed | Material events, acquisitions |
| DEF 14A | Proxy Statement | Annually | Executive compensation, voting matters |
| 20-F | Foreign Annual | Yearly | Non-US company annual report |
| S-1 | Registration | As needed | IPO registration statement |
XBRL Taxonomies
US-GAAP (us-gaap)
Primary financial concepts:
Assets- Total company assetsLiabilities- Total liabilitiesStockholdersEquity- Shareholders' equityRevenueFromContractWithCustomerExcludingAssessedTax- Revenue excluding taxesNetIncomeLoss- Net income or lossOperatingIncomeLoss- Operating income or lossCashAndCashEquivalents- Cash and equivalents
Dimensional Axes
srt:StatementGeographicalAxis- Geographic segmentationus-gaap:StatementBusinessSegmentsAxis- Business segment breakdownus-gaap:SubsegmentsAxis- Product line subsegmentsus-gaap:StatementEquityComponentsAxis- Equity components
Common Members
- Geography:
us-gaap:UsMember,us-gaap:NonUsMember - Business:
*:TechnologyMember,*:HealthcareMember,*:MedTechMember - Products:
*:ElectrophysiologyMember,*:OrthopedicsMember
🔍 Advanced Query Patterns
Finding Dimensional Revenue Facts
{
"method": "get_dimensional_facts",
"cik_or_ticker": "JNJ",
"search_criteria": {
"concept": "RevenueFromContractWithCustomerExcludingAssessedTax",
"dimensions": {
"us-gaap:StatementBusinessSegmentsAxis": "jnj:MedTechMember",
"us-gaap:SubsegmentsAxis": "jnj:ElectrophysiologyMember"
}
}
}
Building Comprehensive Analysis Tables
{
"method": "build_fact_table",
"cik_or_ticker": "PFE",
"target_value": 15000000000,
"tolerance": 2000000000,
"options": {
"maxRows": 50,
"sortBy": "value",
"filters": {
"concept": "Revenue",
"formType": "10-Q"
}
}
}
Cross-Period Comparison
{
"method": "search_facts_by_value",
"cik_or_ticker": "AMZN",
"target_value": 50000000000,
"tolerance": 5000000000,
"filters": {
"concept": "OperatingIncome"
}
}
Performance Optimization
Best Practices
- Use CIK instead of ticker when possible for faster lookups
- Cache Company Facts data for repeated concept queries
- Limit fact table rows with
maxRowsoption for large datasets - Use specific accession numbers to avoid submission lookups
- Batch similar requests to respect rate limits
Resources
- SEC EDGAR: Official SEC Resources
- XBRL Resources: XBRL.org
Important: This is an unofficial tool. Please respect SEC's data usage guidelines and terms of service. Always verify critical financial data through official SEC sources.