secedgar-mcp-server
SEC EDGAR filings and financials
@cyanheads/secedgar-mcp-server
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Public Hosted Server: https://secedgar.caseyjhand.com/mcp
Tools
Five tools for querying SEC EDGAR data:
| Tool | Description |
|---|---|
secedgar_company_search | Find companies and retrieve entity info with optional recent filings |
secedgar_search_filings | Full-text search across all EDGAR filing documents since 1993 |
secedgar_get_filing | Fetch a specific filing's metadata and document content |
secedgar_get_financials | Get historical XBRL financial data for a company |
secedgar_compare_metric | Compare a financial metric across all reporting companies |
secedgar_company_search
Entry point for most EDGAR workflows — resolve tickers, names, or CIKs to entity details.
- Supports ticker symbols (
AAPL), company names (Apple), or CIK numbers (320193) - Optionally includes recent filings with form type filtering
- Returns entity metadata: SIC code, exchanges, fiscal year end, state of incorporation
secedgar_search_filings
Full-text search across all EDGAR filing documents since 1993.
- Exact phrases (
"material weakness"), boolean operators (revenue OR income), wildcards (account*) - Entity targeting within query string (
cik:320193orticker:AAPL) - Date range filtering, form type filtering, pagination up to 10,000 results
- Returns form distribution for narrowing follow-up searches
secedgar_get_filing
Fetch a specific filing's metadata and document content by accession number.
- Accepts accession numbers in dash or no-dash format
- Converts HTML filings to readable plain text
- Configurable content limit (1K–200K characters, default 50K)
- Can fetch specific exhibits by document name
secedgar_get_financials
Get historical XBRL financial data for a company with friendly concept name resolution.
- Friendly names like
"revenue","net_income","eps_diluted"auto-resolve to correct XBRL tags - Handles historical tag changes (e.g., ASC 606 revenue recognition)
- Automatic deduplication to one value per standard calendar period
- Filter by annual, quarterly, or all periods
- See
secedgar://conceptsresource for the full mapping
secedgar_compare_metric
Compare a financial metric across all reporting companies for a specific period.
- Same friendly concept names as
secedgar_get_financials - Supports annual (
CY2023), quarterly (CY2024Q2), and instant (CY2023Q4I) periods - Sorted ranking with configurable limit and direction
- Enriches results with ticker symbols where available
Resources
| URI | Description |
|---|---|
secedgar://concepts | Common XBRL financial concepts grouped by statement, mapping friendly names to XBRL tags |
secedgar://filing-types | Common SEC filing types with descriptions, cadence, and use cases |
Prompts
| Prompt | Description |
|---|---|
secedgar_company_analysis | Guides a structured analysis of a public company's SEC filings: identify recent filings, extract financial trends, surface risk factors, and note material events |
Features
Built on @cyanheads/mcp-ts-core:
- Declarative tool definitions — single file per tool, framework handles registration and validation
- Structured output schemas with automatic formatting for human-readable display
- Unified error handling across all tools
- Pluggable auth (
none,jwt,oauth) - Structured logging with request-scoped context
- Runs locally (stdio/HTTP) from the same codebase
SEC EDGAR–specific:
- Rate-limited HTTP client respecting SEC's 10 req/s limit with automatic inter-request delay
- CIK resolution from tickers, company names, or raw CIK numbers with local caching
- Friendly XBRL concept name mapping with historical tag change handling
- HTML-to-text conversion for filing documents via
html-to-text - No API keys required — SEC EDGAR is a free, public API
Getting started
Public Hosted Instance
A public instance is available at https://secedgar.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:
{
"mcpServers": {
"secedgar-mcp-server": {
"type": "streamable-http",
"url": "https://secedgar.caseyjhand.com/mcp"
}
}
}
Self-Hosted / Local
Add the following to your MCP client configuration file.
{
"mcpServers": {
"secedgar-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/secedgar-mcp-server@latest"],
"env": {
"EDGAR_USER_AGENT": "YourAppName [email protected]",
"MCP_TRANSPORT_TYPE": "stdio"
}
}
}
}
Or with npx (no Bun required):
{
"mcpServers": {
"secedgar-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/secedgar-mcp-server@latest"],
"env": {
"EDGAR_USER_AGENT": "YourAppName [email protected]",
"MCP_TRANSPORT_TYPE": "stdio"
}
}
}
}
For Streamable HTTP, set the transport and start the server:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp
Prerequisites
- Bun v1.3.0 or higher.
Installation
- Clone the repository:
git clone https://github.com/cyanheads/secedgar-mcp-server.git
- Navigate into the directory:
cd secedgar-mcp-server
- Install dependencies:
bun install
- Build:
bun run build
Configuration
All configuration is validated at startup via Zod schemas in src/config/server-config.ts. Key environment variables:
| Variable | Description | Default |
|---|---|---|
EDGAR_USER_AGENT | Required. User-Agent header for SEC compliance. Format: "AppName [email protected]". SEC blocks IPs without a valid User-Agent. | — |
EDGAR_RATE_LIMIT_RPS | Max requests/second to SEC APIs. Do not exceed 10. | 10 |
EDGAR_TICKER_CACHE_TTL | Seconds to cache the company tickers lookup file. | 3600 |
MCP_TRANSPORT_TYPE | Transport: stdio or http | stdio |
MCP_HTTP_PORT | HTTP server port | 3010 |
MCP_AUTH_MODE | Authentication: none, jwt, or oauth | none |
MCP_LOG_LEVEL | Log level (debug, info, warning, error, etc.) | info |
LOGS_DIR | Directory for log files (Node.js only). | <project-root>/logs |
Running the server
Local development
-
Build and run the production version:
bun run rebuild bun run start:http # or start:stdio -
Run checks and tests:
bun run devcheck # Lints, formats, type-checks bun run test # Runs test suite
Docker
docker build -t secedgar-mcp-server .
docker run -e EDGAR_USER_AGENT="MyApp [email protected]" -p 3010:3010 secedgar-mcp-server
Project structure
| Directory | Purpose |
|---|---|
src/mcp-server/tools/definitions/ | Tool definitions (*.tool.ts). Five SEC EDGAR tools. |
src/mcp-server/resources/definitions/ | Resource definitions. XBRL concepts and filing types. |
src/mcp-server/prompts/definitions/ | Prompt definitions. Company analysis prompt. |
src/services/edgar/ | SEC EDGAR API client, XBRL concept mapping, HTML-to-text conversion. |
src/config/ | Server-specific environment variable parsing and validation with Zod. |
tests/ | Unit and integration tests, mirroring the src/ structure. |
Development guide
See CLAUDE.md for development guidelines and architectural rules. The short version:
- Handlers throw, framework catches — no
try/catchin tool logic - Use
ctx.logfor logging,ctx.statefor storage - Register new tools and resources in the
createApp()arrays
Contributing
Issues and pull requests are welcome. Run checks and tests before submitting:
bun run devcheck
bun run test
License
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
Servidores relacionados
MCPApp
A Google Apps Script-based MCP network that allows AI to securely access Google Workspace data like Gmail and Calendar.
memory-mcp-1file
🏠 🍎 🪟 🐧 - A self-contained Memory server with single-binary architecture (embedded DB & models, no dependencies). Provides persistent semantic and graph-based memory for AI agents.
ffl-mcp
Give AI a "send file" capability via P2P (Local-first)
iMCP
A macOS app that connects your digital life with AI, providing access to Calendar, Contacts, Location, Maps, Messages, Reminders, and Weather services.
Tally MCP Server
Provides AI assistants with secure access to Tally form management capabilities.
MockFlow IdeaBoard MCP
Turn AI conversations into professional visualizations - flowcharts, mindmaps, architecture diagrams, charts, Kanban boards - with MockFlow IdeaBoard MCP Server.
agent-reader
Glama AAA-certified MCP server for document beautification. It bridges the "last mile" of AI content delivery by instantly converting Markdown into professional Word, PDF, HTML, and Slideshows.
Portfolio Manager MCP Server
A server providing tools and resources for managing and analyzing investment portfolios.
Logseq
Control and interact with a local Logseq graph for knowledge management and note-taking.
Google Calendar Integration Project
Manage and interact with Google Calendar events using the Google Calendar API.