Server data from the Official MCP Registry
SEC EDGAR filings, XBRL financials, FRED economic data, and real-time market quotes
SEC EDGAR filings, XBRL financials, FRED economic data, and real-time market quotes
Valid MCP server (2 strong, 1 medium validity signals). 1 known CVE in dependencies (1 critical, 0 high severity) Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (5/5 approved).
4 files analyzed · 2 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Set these up before or after installing:
Environment variable: FRED_API_KEY
Environment variable: SEC_USER_AGENT_EMAIL
Environment variable: FINNHUB_API_KEY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-ykshah1309-financial-hub-mcp": {
"env": {
"FRED_API_KEY": "your-fred-api-key-here",
"FINNHUB_API_KEY": "your-finnhub-api-key-here",
"SEC_USER_AGENT_EMAIL": "your-sec-user-agent-email-here"
},
"args": [
"-y",
"financial-hub-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
A TypeScript MCP server for financial data aggregation. Connects any MCP-compatible AI assistant to SEC EDGAR filings, XBRL financial statements, FRED economic indicators, and real-time market data — with built-in XBRL normalization, fact deduplication, computed analytics, stock screening, and rate-limit protection.
All SEC EDGAR data comes directly from the SEC's free public APIs at data.sec.gov. No API key is required. The server automatically handles:
revenue resolves to Revenues, RevenueFromContractWithCustomerExcludingAssessedTax, SalesRevenueNet, and 11 other variants).FRED (Federal Reserve Economic Data) provides 800,000+ time series from 100+ sources. Requires a free API key from fred.stlouisfed.org. Rate limited to 120 requests/minute (enforced via 2 req/s token bucket). Includes a curated catalog of ~50 essential economic indicators across 9 categories for zero-API-call browsing.
Real-time stock quotes, company profiles, market news, insider transactions, and financial metrics via the Finnhub API. Free tier provides 30 API calls/second with no credit card required. The server rate-limits to 25 req/s to stay safely under the threshold. Quotes are never cached (stale prices are worse than no cache), while profiles (24h), news (5min), and financial metrics (1h) use appropriate TTLs.
In-memory LRU cache with TTL expiry reduces redundant API calls:
| Cache | TTL | Max Entries | Payload Size |
|---|---|---|---|
| Company facts | 1 hour | 10 | 20-50 MB each |
| Company submissions | 1 hour | 30 | ~50 KB each |
| Company tickers | 24 hours | 1 | ~3 MB |
| FRED series metadata | 6 hours | 100 | ~1 KB each |
| FRED observations | 1 hour | 50 | ~5 KB each |
| Market profiles | 24 hours | 50 | ~1 KB each |
| Market news | 5 minutes | 10 | ~5 KB each |
| Insider transactions | 1 hour | 30 | ~3 KB each |
| Basic financials | 1 hour | 30 | ~2 KB each |
Eviction is LRU — frequently accessed entries are promoted on read, so the least recently used entry is evicted when capacity is full. Expired entries are proactively swept on every write.
search_companies
query (string)get_company_filings
cik (string): SEC's unique company identifierformType (string, optional): Filter by form type (10-K, 10-Q, 8-K, DEF 14A)get_financial_metric
cik (string): Company CIK numberconcept (string): Friendly name or raw XBRL tagtaxonomy (string, optional): XBRL taxonomy (default: us-gaap)annualOnly (boolean, optional): Return only annual data pointsrevenue, net_income, gross_profit, operating_income, eps, total_assets, total_liabilities, stockholders_equity, cash, long_term_debt, current_assets, current_liabilities, operating_cash_flow, capex, shares_outstandingRevenues, NetIncomeLoss, Assets, etc.get_financial_summary
cik (string)get_company_facts_summary
cik (string): Company CIK numberlimit (number, optional): Max concepts to return (default 40, max 100)analyze_financials
cik (string)Promise.allSettled internally — individual metric failures don't crash the analysiscompare_companies
ciks (string[], 2-5 CIK numbers)search_filings
query (string): Search termsforms (string, optional): Comma-separated form typesstartDate (string, optional): YYYY-MM-DDendDate (string, optional): YYYY-MM-DDlimit (number, optional): Results per page (default 20, max 50)offset (number, optional): Skip N results for paginationscreen_stocks
exchange (string, optional): Filter by exchange (e.g. NYSE, Nasdaq)industry (string, optional): SIC industry group (technology, finance, healthcare, energy, manufacturing, retail, transportation, utilities, services, public_admin)nameContains (string, optional): Case-insensitive substring match on company nameminHealthScore (number, optional): Minimum health grade (0-100) from financial analysislimit (number, optional): Max results (default 20, max 50)get_corporate_events
cik (string): Company CIK numbersignificance (string, optional): Filter by high, medium, or low significancelimit (number, optional): Max events (default 15, max 50)search_economic_data
query (string)get_economic_dataget_economic_data
seriesId (string): FRED series IDstartDate (string, optional): YYYY-MM-DDendDate (string, optional): YYYY-MM-DDGDP, CPIAUCSL (CPI), UNRATE (unemployment), FEDFUNDS, DGS10 (10-year treasury), SP500, MORTGAGE30USget_stock_quote
symbol (string): Stock ticker (e.g. AAPL, MSFT, GOOGL)get_market_news
symbol (string, optional): Stock ticker for company-specific news. Omit for general market newscategory (string, optional): general, forex, crypto, merger (only for general news)get_insider_transactions
symbol (string): Stock ticker (e.g. AAPL, TSLA)get_company_overview
symbol (string): Stock ticker (e.g. AAPL, MSFT)sec://company/{ticker}
fred://catalog/{category}
fred://indicator/{seriesId}
financial_analysis
ticker (string)peer_comparison
ticker1 (string), ticker2 (string)economic_overview
All tools set MCP ToolAnnotations for safe agent composition:
| Hint | Value | Reason |
|---|---|---|
readOnlyHint | true | All tools are read-only — no data is modified |
destructiveHint | false | No data destruction |
idempotentHint | true | Same inputs produce same outputs |
openWorldHint | true | All tools make external API calls |
All tools return MCP-compliant error envelopes with isError: true on failure:
{
"content": [{ "type": "text", "text": "SEC EDGAR request failed: 404 Not Found" }],
"isError": true
}
This allows the LLM to receive semantic error messages, correct parameters, and retry — rather than receiving opaque transport-level JSON-RPC errors that break the agent loop.
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"financial-hub": {
"command": "npx",
"args": ["-y", "financial-hub-mcp"],
"env": {
"FRED_API_KEY": "your-free-api-key",
"SEC_USER_AGENT_EMAIL": "your-email@example.com",
"FINNHUB_API_KEY": "your-free-api-key"
}
}
}
}
For manual installation, add the configuration to your user-level MCP configuration file. Open the Command Palette (Ctrl + Shift + P) and run MCP: Open User Configuration, then add:
{
"servers": {
"financial-hub": {
"command": "npx",
"args": ["-y", "financial-hub-mcp"],
"env": {
"FRED_API_KEY": "your-free-api-key",
"SEC_USER_AGENT_EMAIL": "your-email@example.com",
"FINNHUB_API_KEY": "your-free-api-key"
}
}
}
}
For more details about MCP configuration in VS Code, see the official VS Code MCP documentation.
| Variable | Required | Description |
|---|---|---|
SEC_USER_AGENT_EMAIL | Yes | Your email address for SEC EDGAR API compliance. The server will exit immediately if this is not set — SEC EDGAR bans requests with missing or generic User-Agent headers. |
FRED_API_KEY | For FRED tools | Free 32-character key from fred.stlouisfed.org. The server starts without it but FRED tools will fail at runtime with a clear error message. |
FINNHUB_API_KEY | For market tools | Free API key from finnhub.io. Required for stock quotes, market news, insider transactions, and company overviews. The server starts without it but market tools will fail at runtime. |
src/
├── index.ts # Entry point — startup validation, MCP server init
├── rate-limiter.ts # Token-bucket rate limiter with bounded queue + timeout
├── cache.ts # In-memory TTL cache with proactive eviction
├── edgar/
│ ├── client.ts # SEC EDGAR HTTP client (rate-limited, cached)
│ ├── tools.ts # MCP tool registrations (12 tools, isError envelopes)
│ ├── resources.ts # MCP resource templates (company profiles)
│ ├── xbrl.ts # XBRL fact deduplication, growth, trend detection
│ ├── concepts.ts # Concept alias normalization (20+ financial concepts)
│ ├── analytics.ts # Computed ratios, health scoring, company comparison
│ ├── events.ts # 8-K corporate event classification (25 item types)
│ └── screening.ts # Stock screening by exchange, industry, health score
├── fred/
│ ├── client.ts # FRED HTTP client (rate-limited, cached)
│ ├── tools.ts # FRED MCP tool registrations
│ ├── catalog.ts # Curated catalog of ~50 essential FRED indicators
│ └── resources.ts # FRED MCP resource templates (catalog + indicators)
├── market/
│ ├── client.ts # Finnhub HTTP client (rate-limited, cached)
│ └── tools.ts # Market data MCP tool registrations (4 tools)
└── prompts.ts # Financial analysis prompt templates
Raw XBRL data from SEC EDGAR goes through several processing stages:
revenue are mapped to all known XBRL tag variants across the us-gaap taxonomy.git clone https://github.com/ykshah1309/financial-hub-mcp.git
cd financial-hub-mcp
npm install
npm run build
Run locally:
FRED_API_KEY=your-key SEC_USER_AGENT_EMAIL=your-email FINNHUB_API_KEY=your-key node dist/index.js
Pull requests welcome. See CONTRIBUTING.md for the development loop, commit style, and PR checklist. By participating you agree to the Code of Conduct.
Please report security issues privately — see SECURITY.md. Do not file public issues for vulnerabilities or credential leaks.
See CHANGELOG.md for release notes.
MIT — see LICENSE.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.