{"_id":"@alinarashid/edgar-mcp","name":"@alinarashid/edgar-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@alinarashid/edgar-mcp","version":"0.1.0","description":"MCP server for searching SEC EDGAR filings","type":"module","bin":{"edgar-mcp":"dist/index.js"},"scripts":{"build":"tsc && chmod +x dist/index.js","watch":"tsc --watch","smoke":"tsc && node dist/smoke.js","try":"tsc && node dist/try.js"},"engines":{"node":">=18"},"keywords":["mcp","sec","edgar","filings"],"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0","zod":"^3.25.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.0"},"author":{"name":"Alina Rashid"},"repository":{"type":"git","url":"git+https://github.com/alinarashid/edgar-mcp.git"},"homepage":"https://github.com/alinarashid/edgar-mcp#readme","_id":"@alinarashid/edgar-mcp@0.1.0","gitHead":"1d2edaac565f5708b766a0706e5639301750d394","bugs":{"url":"https://github.com/alinarashid/edgar-mcp/issues"},"_nodeVersion":"20.19.4","_npmVersion":"9.9.4","dist":{"integrity":"sha512-yR8wEOWPaNhxyszXrJPDZbY53piOhO9oyvPb4AEIZmJN39unc9mSSwYLvasRrL6PcbzeohjVNKMMpDfACSQo2g==","shasum":"d8e8eb222aedd6df5a66aee7cd4b8a70adb7dbde","tarball":"https://registry.npmjs.org/@alinarashid/edgar-mcp/-/edgar-mcp-0.1.0.tgz","fileCount":4,"unpackedSize":18165,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD2lF+TS89iNoAy8an033EM6Ut/IRg7EVDhX/QfhHXKIwIgeBl8QJZqKV74ZxtY3w38+2YpLF4O9zSI4wkpIi81KQQ="}]},"_npmUser":{"name":"alinarashid","email":"alinarashid.dev@gmail.com"},"directories":{},"maintainers":[{"name":"alinarashid","email":"alinarashid.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/edgar-mcp_0.1.0_1787342922484_0.9518636093712856"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-21T20:08:42.228Z","0.1.0":"2026-08-21T20:08:42.658Z","modified":"2026-08-21T20:08:42.833Z"},"maintainers":[{"name":"alinarashid","email":"alinarashid.dev@gmail.com"}],"description":"MCP server for searching SEC EDGAR filings","homepage":"https://github.com/alinarashid/edgar-mcp#readme","keywords":["mcp","sec","edgar","filings"],"repository":{"type":"git","url":"git+https://github.com/alinarashid/edgar-mcp.git"},"author":{"name":"Alina Rashid"},"bugs":{"url":"https://github.com/alinarashid/edgar-mcp/issues"},"license":"MIT","readme":"# edgar-mcp\n\nAn MCP server that lets Claude search the full text of SEC filings.\n\nAsk Claude *\"which companies discussed agentic AI in their 10-Ks this year?\"*\nand it searches EDGAR directly — 235 real filings, with links.\n\n## The hardest problem\n\nEDGAR filters by CIK, a ten-digit identifier that means nothing to a human\nand everything to the API. The obvious design accepts a CIK as a tool\nparameter and lets the model supply it. That fails in the worst possible\nway: a language model will confidently invent a CIK for any company it\nhasn't memorized, and a wrong company's filings look exactly like the right\ncompany's — correctly formatted, plausible, and completely wrong, with\nnothing to signal the error. So the tools accept a ticker or company name\nand resolve it in code against the SEC's own mapping file. Where the name is\nambiguous — \"American\" matches 66 companies — the resolver returns the\ncandidate list rather than picking the best-scoring match, and Claude asks\nwhich one you meant. The model handles the easy cases through context; the\ncode catches the ones it gets wrong.\n\n## Install\n\n```bash\nnpm install -g @alinarashid/edgar-mcp\n```\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"edgar\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alinarashid/edgar-mcp\"],\n      \"env\": {\n        \"SEC_USER_AGENT\": \"your-app your@email.com\"\n      }\n    }\n  }\n}\n```\n\n`SEC_USER_AGENT` is required. The SEC rejects requests that don't identify\nthe caller, and a missing header returns 403 rather than an empty result.\n\nRestart Claude Desktop.\n\n## Tools\n\n**`search_filings`** — full-text search across every filing since 2001.\nFilter by form type, date range, and company. Returns the filing company,\nform, date, and a document link.\n\n**`list_company_filings`** — one company's filings, newest first. Accepts a\nticker or name. Filter by form type, or you will mostly get Form 4 insider\ntrades.\n\n## Examples\n\n> Which companies mentioned \"agentic AI\" in their 10-K filings this year?\n\n> Show me American Airlines' recent quarterly reports.\n\n> Find 8-K filings from 2026 that mention \"material weakness\".\n\n## Known limits\n\n- **Search returns metadata, not text.** It tells you which filings match,\n  not what they say. Follow the URL to read the language.\n- **Ranking is keyword relevance, not company size.** A short filing that\n  repeats a phrase outranks a 300-page 10-K that mentions it twice.\n- **Public companies only.** Private companies file nothing with the SEC.\n- **Searching within a company includes third-party filings** tagged with\n  that CIK, such as shareholder proposals filed by outside groups.\n\n## Notes\n\nThe full-text endpoint at `efts.sec.gov` is undocumented — the SEC\npublishes no parameter list, response schema, or stability guarantee. This\npackage reads defensively and may need updating if the shape changes.\n\nRequests are serialized to roughly 8 per second, under the SEC's published\nceiling of 10.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-01ad225f6daed88bbd317f57a4a877e2"}