edgar-mcp
edgar-mcp
Claude가 SEC 공시 문서 전체 텍스트를 검색할 수 있게 하는 MCP 서버입니다.
Claude에게 *"올해 10-K에서 에이전트 AI를 논의한 기업이 어디인가요?"*라고 물어보세요. 그러면 EDGAR를 직접 검색해 실제 공시 235건과 링크를 보여줍니다.
https://github.com/user-attachments/assets/afa2e1e5-ee79-42ad-a736-6f016b8f6c64
가장 어려운 문제
EDGAR는 CIK로 필터링합니다. CIK는 10자리 숫자로 사람에게는 아무 의미가 없지만 API에는 전부를 뜻하는 식별자입니다. 흔한 설계는 도구 파라미터로 CIK를 받아 모델이 그 값을 제공하게 하는 것입니다. 이 방식은 최악으로 실패합니다. 언어 모델은 외우지 못한 어떤 기업에 대해서도 CIK를 확신을 가지고 지어낼 것이고, 잘못된 기업의 공시는 올바른 기업의 공시와 똑같아 보입니다. 형식은 정확하고 그럴듯하지만 완전히 잘못되어 있어서, 오류를 알려줄 신호도 없습니다. 그래서 도구들은 티커 또는 기업명을 받아 코드에서 SEC 자체 매핑 파일을 참고해 이를 해석합니다. 이름이 불명확한 경우 — 예를 들어 "American"은 66개 기업과 일치합니다 — 해석기가 가장 적합한 하나를 고르는 대신 후보 목록을 반환합니다. 그러면 Claude가 사용자가 의도한 것이 어떤 회사인지 묻습니다. 모델은 문맥을 통해 쉬운 경우를 처리하고, 코드는 모델이 틀린 경우를 잡아냅니다.
Related MCP server: Aegis Gov SEC Filings MCP
설치
npm install -g @alinarashid/edgar-mcpclaude_desktop_config.json에 추가합니다.
{
"mcpServers": {
"edgar": {
"command": "npx",
"args": ["-y", "@alinarashid/edgar-mcp"],
"env": {
"SEC_USER_AGENT": "your-app your@email.com"
}
}
}
}SEC_USER_AGENT는 필수입니다. 요청자를 식별하지 않는 요청을 SEC는 거부하며, 헤더가 없으면 빈 결과 대신 403 오류가 반환됩니다.
Claude Desktop을 다시 시작합니다.
도구
search_filings — 2001년 이후의 모든 SEC 공시에 대한 전체 텍스트 검색. 보고서 유형, 날짜 범위, 기업으로 필터링할 수 있습니다. 결과에는 공시 기업, 보고서 유형, 날짜, 문서 링크가 포함됩니다.
list_company_filings — 한 기업의 공시를 최신순으로 보여줍니다. 티커 또는 기업명을 인식합니다. 보고서 유형으로 필터링하지 않으면 대부분 내부자 거래(Form 4) 내역만 나옵니다.
예시
올해 10-K 보고서에서 "agentic AI"를 언급한 기업은 어디인가요?
American Airlines의 최근 분기 보고서를 보여주세요.
"material weakness"를 언급한 2026년 8-K 공시를 찾아주세요.
알려진 제한 사항
검색은 메타데이터만 반환하며 본문 텍스트는 반환하지 않습니다. 어느 공시가 일치하는지는 알 수 있지만, 그 내용이 뭔지는 알 수 없습니다. URL을 따라가서 원문을 읽어야 합니다.
순위는 키워드 관련성 기준이지 기업 규모 순위가 아닙니다. 긴 문구를 계속 반복하는 짧은 공시가 같은 문구를 두 번 언급한 300페이지 분량의 10-K보다 높은 순위에 오릅니다.
상장 기업만 지원합니다. 비상장 기업은 SEC에 아무것도 제출하지 않습니다.
기업 검색에는 해당 CIK가 붙은 제3자 공시 포함되기도 합니다. 예를 들어 외부 단체가 제출한 주주 제안 등이 그렇습니다.
참고 사항
efts.sec.gov의 전체 텍스트 엔드포인트는 공식적으로 문서화되어 있지 않습니다. SEC는 매개변수 목록, 응답 스키마, 안정성 보장을 제공하지 않습니다. 이 패키지는 방어적으로 데이터를 읽도록 만들어져 있으며, API 형태가 바뀌면 업데이트가 필요할 수 있습니다.
요청은 약 초당 건으로 직렬화되어, SEC가 제시한 초당 10회 한도 아래에 유지합니다.
라이선스
MIT
Available Tools
2 toolslist_company_filingsList a company's SEC filingsA
List filings a specific public company submitted, newest first. Use when the user names a company and wants its recent reports rather than searching for particular words. Accepts a ticker or company name and resolves it internally. Companies file constantly, mostly routine insider-trading forms, so filter by form type unless the user wants everything.
| Name | Required | Description | Default |
|---|---|---|---|
| forms | No | Optional but recommended, e.g. ["10-K", "10-Q"]. Without it you mostly get Form 4 insider filings. | |
| limit | No | How many filings to return. Defaults to 10. | |
| company | Yes | Ticker ("AAPL") or company name ("Apple Inc."). Never pass a CIK; this tool looks it up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses ordering (newest first), internal ticker/company resolution, and the fact that unfiltered results are dominated by Form 4 filings. It does not explicitly state read-only behavior or return format, but 'List' makes this reasonably clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences, each with a purpose: action/scope, usage context, company resolution, and filtering guidance. No wasted words, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with three well-documented parameters, the description covers selection criteria, invocation behavior, and filtering advice. It does not describe return fields, but with no output schema the agent can still reasonably infer it returns a list of filings. Slightly more detail on return shape would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents company, forms, and limit, including the Form 4 warning. The description reinforces the ticker/company resolution and filter-by-form guidance, but does not add substantively new parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'List filings a specific public company submitted, newest first,' which clearly identifies the resource and operation. It also distinguishes itself from the sibling search_filings by contrasting recent-reports-by-company with word-based searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool: 'Use when the user names a company and wants its recent reports rather than searching for particular words.' It also gives practical guidance on filtering by form type, which helps the agent decide how to invoke it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filingsSearch SEC filingsA
Search the full text of SEC filings from 2001 onward. Returns which filings contain the search terms, with the filing company, form type, date, and a link. Use this to find how public companies discuss a topic in their own words. IMPORTANT: returns filing metadata only, not the matching text; follow the URL to read what a filing says. Results rank by keyword relevance, not company size, so small companies often outrank large ones. Do not use for stock prices, financial figures, or private companies, which do not file with the SEC.
| Name | Required | Description | Default |
|---|---|---|---|
| forms | No | Optional. Form types, e.g. ["10-K"] annual, ["10-Q"] quarterly, ["8-K"] material events, ["DEF 14A"] proxy. | |
| limit | No | How many filings to return. Defaults to 10. | |
| query | Yes | Search terms. Wrap in double quotes for an exact phrase, e.g. "agentic AI". Multiple bare words are treated as AND. | |
| company | No | Optional. Limit to one company by ticker ("AAPL") or name ("Apple Inc."). Never pass a CIK; this tool looks it up. | |
| end_date | No | Optional. Latest filing date, YYYY-MM-DD. | |
| start_date | No | Optional. Earliest filing date, YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and delivers key behavioral traits: it returns metadata only (not matching text, so the URL must be followed) and ranks by keyword relevance rather than company size. These are genuine surprises the agent would not know from annotations or schema. It could add pagination or rate-limit details, but the core quirks are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that front-loads the core purpose and return shape, then delivers use-case and exclusion guidance, then two critical behavioral caveats. Every sentence adds value; it is slightly long as a wall of text but well-organized and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 6 params, 100% schema coverage, no output schema, and no annotations, the description is comprehensive: it covers the date scope, return format, use case, exclusions, ranking behavior, and the metadata-only caveat. There are no obvious gaps for an agent to safely invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all 6 parameters including the company lookup behavior and the exact-phrase quote syntax. The description adds no additional parameter-level detail beyond the schema, so the baseline of 3 is appropriate since the structured schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource combination ('Search the full text of SEC filings from 2001 onward') and clearly states what it returns (matching filings with company, form type, date, link). It distinguishes itself from the sibling list_company_filings by emphasizing full-text search across all filings vs. what appears to be a per-company listing function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it ('find how public companies discuss a topic in their own words') and provides clear exclusions ('Do not use for stock prices, financial figures, or private companies'). It lacks an explicit pointer to the sibling alternative tool, but the use-case framing and negative guidance are strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
list_company_filings - First observed
search_filings
TDQS
Scored across 2 tools
The two tools are sharply distinct: one searches full-text across all filings, the other lists filings for a specific company. There is no overlap in purpose or likely misselection.
Both tool names follow a consistent verb_noun pattern: search_filings and list_company_filings. The convention is uniform and predictable.
Two tools is at the thin end of the range, but the server's stated scope of accessing EDGAR filings can reasonably be covered by search and list operations. It feels minimal rather than bloated.
The tools cover discovery (keyword search and per-company listing) but lack any retrieval tool to actually read a filing's content. Search results intentionally return metadata only, and without a fetch-filing tool, agents cannot access the underlying text, creating a dead end.
Maintenance
Related MCP Connectors
SEC EDGAR filings for AI agents: company lookup, filings, financials, insider trades. No keys.
SEC EDGAR filings for AI agents: company lookup, filings, financials, insider trades. No keys.
Search SEC EDGAR filings, financial statements, and company data.
Scrape SEC EDGAR filings by company, form type, date, or full text. Pay per row.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables 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.-
- AlicenseAqualityBmaintenanceQuery SEC EDGAR for company filings, financial data, and executive disclosures. Search by company name or ticker, retrieve 10-K/10-Q/8-K filings, and extract structured financials — backed by the official SEC EDGAR API, built for AI agents.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to access SEC EDGAR data: search filings, extract sections, pull structured financials, and track insider transactions.19 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables to search and retrieve SEC EDGAR filings, insider transactions, major shareholders, and executive compensation data through natural language.6 npmMIT