Skip to main content
Glama
danishashko

edgar-mcp

by danishashko

SEC EDGAR MCP Server πŸ›οΈ

npm version npm downloads Python License: MIT

U.S. SEC filings and financial data for Claude Desktop and any MCP-compatible client, powered by SEC EDGAR. Search companies, pull filings (10-K, 10-Q, 8-K, Form 4, ...), read XBRL financials, and full-text search across all filings β€” all from natural language. No API key required.

npm package: edgar-mcp  Β·  GitHub repo: danishashko/edgar-mcp.

🎯 What You Get

  • πŸ”Ž Company lookup by name or ticker β†’ CIK

  • πŸ—‚οΈ Recent filings (any form type) with direct document links

  • πŸ“„ Latest filing of a type (newest 10-K / 10-Q / 8-K) in one call

  • πŸ’° Financial highlights (revenue, net income, assets, equity, EPS) from XBRL

  • πŸ“ˆ Concept history β€” any GAAP line item over time

  • πŸ”¬ Full-text search across the last ~10 years of filings

Every tool returns human-readable markdown by default, or structured JSON on request (response_format: "json"). Lightweight (Python standard library + mcp only), no API key, retries on rate limits.

Related MCP server: edgar-mcp

πŸš€ Quick Start

Add this to your Claude Desktop config and restart Claude:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "edgar": {
      "command": "npx",
      "args": ["-y", "edgar-mcp"],
      "env": {
        "SEC_USER_AGENT": "your-app-name your@email.com"
      }
    }
  }
}

The SEC asks every API client to send a descriptive User-Agent with contact info. Set SEC_USER_AGENT to your own name/email (a default is provided so it works out of the box). On first launch the npx wrapper creates an isolated Python environment and installs the dependency (one-time, ~a minute). You need Python 3.10+ and Node.js 16+.

Prefer a global install?

npm install -g edgar-mcp
{
  "mcpServers": {
    "edgar": {
      "command": "edgar-mcp",
      "env": { "SEC_USER_AGENT": "your-app-name your@email.com" }
    }
  }
}

πŸ”§ Available Tools

Tool

What it returns

Parameters

search_company

Companies matching a name/ticker, with their CIK

query, limit

get_recent_filings

Recent filings (form, dates, link), optional form filter

identifier, form_type, limit

get_latest_filing

The newest filing of a given type, with a document link

identifier, form_type

get_company_facts

Headline financials (revenue, net income, assets, equity, cash, EPS)

identifier

get_concept

One XBRL concept's reported history over time

identifier, concept, limit

full_text_search

Filings matching a keyword/phrase across all companies

query, forms, limit

Every tool also accepts response_format ("markdown", the default, or "json"). identifier accepts a ticker, CIK, or company name.

Common XBRL concepts for get_concept: Revenues / RevenueFromContractWithCustomerExcludingAssessedTax, NetIncomeLoss, Assets, Liabilities, StockholdersEquity, EarningsPerShareDiluted.

πŸ’¬ Example Prompts

Once the server is connected, just ask Claude:

  • "What's Apple's latest 10-K?"

  • "Show me Tesla's recent 8-K filings."

  • "What are Microsoft's headline financials?"

  • "Show me NVIDIA's net income over the last few years."

  • "Which companies mention 'quantum computing' in their 10-Ks?"

  • "Find the CIK for Berkshire Hathaway."

πŸ› Troubleshooting

"SEC EDGAR is rate-limiting requests" EDGAR allows ~10 requests/second. The server retries automatically; wait a moment if it persists.

"Not found" Use search_company to confirm the exact ticker/CIK first.

"Command not found" / "Python not found" Ensure Python 3.10+ and Node.js 16+ are installed and on your PATH. On macOS/Linux, try python3.

Tools not showing up in Claude

  1. Confirm the config file is valid JSON (no trailing commas).

  2. Fully quit and reopen Claude Desktop.

Using a different model or provider (LiteLLM, OpenRouter, NVIDIA NIM, a local model) This server never talks to a model. Your client starts it as a local process and speaks JSON-RPC over stdin/stdout, so changing ANTHROPIC_BASE_URL or swapping the model behind your client has no effect on it. If tools stop firing after a switch like that, check two things: the model has to support function calling, and a proxy configured to drop unsupported parameters can silently strip your tool definitions, which produces no error at all. Run /mcp in your client (or claude mcp list) to confirm the server is connected before suspecting the server.

πŸ› οΈ Manual Installation (Alternative)

If you would rather run the Python file directly instead of via npx:

1. Download the server and install the dependency

pip install mcp

(or pip3 on macOS/Linux)

2. Point Claude Desktop at it

{
  "mcpServers": {
    "edgar": {
      "command": "python3",
      "args": ["/absolute/path/to/edgar_mcp.py"],
      "env": { "SEC_USER_AGENT": "your-app-name your@email.com" }
    }
  }
}

On Windows use "command": "python" and a path like "C:\\path\\to\\edgar_mcp.py".

3. Restart Claude Desktop.

πŸ”’ Privacy & Rate Limits

  • Uses the official SEC EDGAR APIs β€” public, no key.

  • Requests go straight from your machine to the SEC. Nothing is stored or proxied.

  • The SEC requires a descriptive User-Agent with contact info and limits ~10 requests/second.

  • Intended for personal, educational, and research use.

πŸ“ Notes

  • identifier is flexible: ticker (AAPL), CIK (320193), or name (Apple).

  • Financial data comes from XBRL, first required by the SEC in 2009, so history goes back that far for most filers.

  • get_company_facts returns highlights; use get_concept for the full series of any one metric.

πŸ“‹ Changelog

See CHANGELOG.md for the full version history.

πŸ“š Resources

This tool uses the public SEC EDGAR APIs but is not affiliated with or endorsed by the U.S. Securities and Exchange Commission. Use is subject to the SEC's website policies. Data is provided as-is for personal, educational, and research purposes; verify against the original filings before relying on it.

πŸ‘€ Author

Daniel Shashko

πŸ“„ License

MIT Β© Daniel Shashko

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

–Maintainers
–Response time
1dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables deep analysis of SEC EDGAR filings through universal company search, document content extraction, and advanced filing search capabilities. Provides AI-ready access to business descriptions, risk factors, financial statements, and full-text search across any public company's SEC documents.
  • A
    license
    A
    quality
    B
    maintenance
    Provides access to SEC EDGAR financial data, enabling AI agents to fetch company filings, financial metrics, and narrative sections. It supports natural-language metric searching and extracts structured data from 10-K, 10-Q, and 8-K reports.
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables to search and retrieve SEC EDGAR filings, insider transactions, major shareholders, and executive compensation data through natural language.
    10
    MIT

View all related MCP servers

Related MCP Connectors

  • SEC EDGAR filings for AI agents: company lookup, filings, financials, insider trades. No keys.

  • Search SEC filings, read 10-K/8-K, query XBRL facts, track Form 4 insider trades.

  • Provide AI assistants with real-time access to official SEC EDGAR filings and financial data. Enab…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danishashko/edgar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server