search_disclosures
MyDART MCP의 search_disclosures 도구는 DART 공시 목록에서 접수번호(rcept_no)를 찾습니다 — download_document·get_attachments 진입점.
[Purpose]
사업보고서 섹션 데이터는 get_periodic_report, 동명 회사는 find_corp_code 로 corp_code 확정.
[Usage]
"삼성전자 최근 한 달 공시" → corp="삼성전자", days=30
"작년 유상증자 결정 전부" → preset="rights_offering", start="2025-01-01", end="2025-12-31"
[Response]
corp_cls: Y=코스피, K=코스닥, N=코넥스, E=기타(비상장).
report_nm [기재정정]/[첨부정정]/[첨부추가] prefix = 정정공시.
[Rules]
Always pass corp when a company is named — corp-less searches (page mode too) split into 90-day chunks, batch request budget 60; with corp: 1 request.
Counters nest: total_available ≥ total_fetched ≥ matched ≥ returned; matched > returned = cut by limit, incomplete=true = partial (see incomplete_note). collected_periods = the only ranges queried; counters scope to them, the rest is unchecked, not zero.
early_stopped:true = limit filled, rest unfetched — matched is a lower bound.
Preset batch drops 정정공시; page mode·bare all_pages keep them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End date (defaults to today) | |
| corp | No | 회사명/종목코드/corp_code. Omit for all companies — but a batch without corp splits the period into 90-day chunks and sweeps every company, spending up to the per-call request budget (default 60, env SEARCH_MAX_REQUESTS) and taking tens of seconds; on reaching it collection is truncated and flagged incomplete=true. With corp the split disappears and the same query finishes in 1 request and a few hundred ms. | |
| days | No | Trailing N days from today instead of start (1~730; out-of-range values are clamped to the bound). When unset, the preset default applies: 사업·감사 460 / 반기 280 / 분기 180 / 수시·일반 90. For windows longer than 730 days use start/end | |
| kind | No | 공시유형: periodic/major/issuance/holdings/audit/other/fund/abs/exchange/ftc | |
| page | No | Page number (page mode — the default when neither preset nor all_pages is set). Row shape differs by mode: page mode items are raw DART list rows, batch mode items a 7-key projection (rcept_no·rcept_dt·corp_name·corp_code·corp_cls·report_nm·flr_nm), so any field outside those 7 is only in page mode. | |
| size | No | Page size (page mode) | |
| limit | No | Cap on rows finally returned in batch mode (preset given or all_pages=true) | |
| start | No | Start date YYYY-MM-DD. When omitted, `days` back from today (and when that is unset, the preset default: 사업·감사 460 / 반기 280 / 분기 180 / 수시·일반 90) — set it explicitly for older filings. (The old parameter name begin is still accepted — unified with start/end in get_corporate_event.) | |
| preset | No | 22 presets: treasury_buy/sell/trust · cb/bw/eb_issue · rights_offering/bonus_issue/capital_reduction · merger/split/stock_exchange · business_transfer/acquisition · large_holding_5pct · annual_report/half_report/quarterly_report · audit_report · correction_all · insolvency · litigation. Setting one applies kind and a keyword filter automatically and collects every page in parallel. | |
| all_pages | No | Collect the whole period in parallel even without a preset (정정공시 included — the same set as page mode). When true, limit applies instead of page/size. | |
| final_only | No | One latest version per event — where a 정정 exists the 구본(원본) is dropped and the latest 정정본 is taken (this does NOT exclude 정정공시 themselves). Use when you need one duplicate-free set. | |
| concurrency | No | Collector workers in batch mode (1~10, default 5). **Effective concurrency is set by a server-wide cap, so raising this usually does NOT make it faster** — to cut latency, set corp (which removes the period split, leaving a single request), narrow the period, or lower limit. The response's dart_requests/cached_chunks report how many DART requests this call spent and how many chunks came from cache — read them when it feels slow. | |
| include_corrections | No | Whether to include 정정공시 ([기재정정] etc.) — preset batch mode ONLY (default false, to avoid double-counting 원본+정정 of the same event; correction_all forces true; ignored when final_only=true since that already removes duplicates). Bare all_pages and page mode ALWAYS include them (raw DART) — for latest-only without duplicates use final_only. |