sec-edgar-mcp
Click on "Install 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-edgar-mcpshow me Apple's revenue and net income for FY2024"
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-edgar-mcp
Hosted MCP server that gives AI agents real-time access to SEC EDGAR — filings search, 10-K/8-K reading, XBRL financial facts, and insider-trade (Form 4) alerts. Free underlying data, no API key required by SEC, indie-priced from $9/mo.

Claude: "What were Microsoft's revenue and operating income for FY2024?"
Tool: edgar_get_facts(ticker="MSFT", concept="Revenues")
edgar_get_facts(ticker="MSFT", concept="OperatingIncomeLoss")
Claude: "Microsoft's FY2024 revenue was $245.1B (+15.7% YoY) and operating income was $109.4B…"What it does
Six tools, all backed by the SEC's free EDGAR APIs (no key required, only a polite User-Agent per SEC fair-use policy).
Tool | What it returns |
| Search filings by ticker / CIK / form type / date range. |
| Full text (or summary) of a specific filing by accession number. |
| XBRL-structured financial facts (Revenue, OperatingIncome, Cash, etc.). |
| Recent 8-K material event filings for a ticker, classified by event type. |
| Company metadata (CIK, SIC, exchange, executives). |
| Form 4 filings (insider buys/sells) with directionality. |
Full per-tool reference: docs/TOOLS.md.
Related MCP server: OpenInsider MCP
Install
In Cursor
# in your Cursor settings, MCP servers tab, add:
{
"sec-edgar": {
"url": "https://sec-edgar-mcp.workers.dev/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}Or one-click via Smithery: https://smithery.ai/server/sec-edgar-mcp/install/cursor.
In Claude Desktop
{
"mcpServers": {
"sec-edgar": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch", "https://sec-edgar-mcp.workers.dev/mcp"],
"env": { "MCP_AUTH_TOKEN": "YOUR_API_KEY" }
}
}
}In Cline / Continue
Same URL pattern as Cursor. See docs/TOOLS.md.
Free tier (no API key)
Send requests without an Authorization header. You get 100 calls / month with a 10-req/min ceiling. Hot enough to try, not enough for production.
Pricing
Tier | Price | Monthly calls | Rate limit | Premium tools |
Free | $0 | 100 | 10/min | — |
Solo | $9 / mo | 2,000 | 60/min | — |
Team | $29 / mo | 10,000 | 200/min | XBRL bulk facts, 8-K subscribe |
Pro | $79 / mo | 50,000 | 600/min | All of the above + email/webhook alerts |
Subscribe at sec-edgar-mcp.workers.dev/upgrade (or once Smithery's bundled billing is wired, via Smithery checkout — see DISTRIBUTION.md).
How it works
┌────────────┐ ┌────────────────────────┐ ┌──────────────────┐
│ Cursor / │ │ Cloudflare Worker │ │ data.sec.gov │
│ Claude / │ ───► │ sec-edgar-mcp │ ───► │ www.sec.gov │
│ Cline │ │ │ │ (EDGAR) │
└────────────┘ │ - MCP JSON-RPC handler │ └──────────────────┘
POST /mcp │ - API-key + quota │ ▲
Bearer <key> │ - KV cache (TTL 1h–24h)│ │
│ - tool handlers │ ┌─────┴─────┐
└────────────┬───────────┘ │ KV CACHE │
│ │ KV USAGE │
▼ └───────────┘
JSON-RPC responseStateless Worker — every request loads identity from
Authorizationheader.KV cache — 1-hour TTL for current filings, 24-hour for older ones, 365-day for things that never change (company name, CIK).
Polite to SEC — sends
User-Agent: <your-name> <your-email>(mandated by SEC fair-use), and respectsRetry-Afteron 429s.Free-tier-only infra — 100k req/day on Workers + 100k reads/day on KV is the binding constraint at ~$3k+ MRR.
Repo layout
sec-edgar-mcp/
├── README.md ← this file
├── CHANGELOG.md ← versioned releases
├── LICENSE ← MIT
├── package.json
├── wrangler.toml
├── tsconfig.json
├── smithery.json ← Smithery listing manifest
├── src/
│ ├── index.ts ← Worker entrypoint
│ ├── edgar.ts ← EDGAR API client
│ ├── tools.ts ← MCP tool definitions
│ ├── auth.ts ← (vendored from _template)
│ ├── cache.ts ← (vendored from _template)
│ ├── billing.ts ← (vendored from _template) — move to private repo
│ └── mcp-server.ts ← (vendored from _template)
├── test/
│ ├── tools.test.ts ← Vitest tests against fabricated fixtures
│ └── fixtures/ ← saved JSON responses
├── docs/
│ ├── TOOLS.md ← per-tool API reference (this is what agents read!)
│ └── DISTRIBUTION.md ← Smithery / Glama / Cursor listing notes
└── .github/workflows/
├── ci.yml
└── deploy.ymlOpen-source split
This repo (public) — MCP shim, tool schemas, basic EDGAR client, free-tier handlers, fixtures.
sec-edgar-mcp-internal(private) — premium-tool implementations (8-K subscription, XBRL bulk, alerts), Stripe webhook handler, advanced cache heuristics, eval datasets.
The deployed Worker pulls from both — but only the public part is on GitHub. See ../../README.md#source-control-split-open-vs-closed for rationale.
Local dev
npm install
wrangler kv namespace create CACHE # one-time
wrangler kv namespace create USAGE # one-time
# paste IDs into wrangler.toml
echo "your-name your-email@example.com" | wrangler secret put SEC_USER_AGENT
npm run dev # http://localhost:8787/mcp
npm test # run vitest
npm run typecheck # strict TS checkDeploy
wrangler deployLive at https://sec-edgar-mcp.<account>.workers.dev. Custom-domain instructions in ../../_template/DEPLOY.md.
License
MIT — see LICENSE. The data is from SEC EDGAR and is public domain; please respect the SEC's fair access policy.
See also
docs/TOOLS.md— per-tool reference for agents.docs/DISTRIBUTION.md— listing checklist (overrides template defaults).CHANGELOG.md— release history.../README.md— Category 1 pipeline.../../README.md— overall products plan.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/guptaprakhariitr/sec-edgar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server