download_documentread-only | MyDART MCP의 download_document 도구는 공시 원문을 마크다운으로 읽고 검색합니다(heading·표 구조 보존). 감사보고서·주석별 조회 포함.
[Purpose]
- Full disclosure text; audit analysis (감사의견·KAM): get_audit_report.
- 감사보고서·연결감사보고서 원문·주석: here (role·sections), not get_attachments.
- 비상장 non-filers: the F 감사보고서 rcept IS the route to 재무제표·주석.
- ZIP 밖 형제문서(정관·운영실태보고서)·스캔: get_attachments. XBRL: get_financials(rcept_no).
[Usage]
1. "이 사업보고서 원문 읽어줘" → rcept_no="20260310002820"
2. "연결감사보고서 특수관계자 주석" → role="consolidated_audit", sections=["특수관계자"]
3. "원문에서 횡령·배임 찾아줘" → find=["횡령","배임"]
[Response]
- documents[]: metadata only (role per 원문) — content ONLY with all_docs=true
[Rules]
- 감사의견·KAM are in 별도(_00760)/연결(_00761): pick by role.
- Long doc: sections=[] → outline (헤딩 + 주석 번호별), then sections=[index|제목].
- find = 표 단위 발췌 from every doc. 0 matches ≠ absent —
스캔 이미지 표는 get_attachments(mode=images).
- truncated=true → raise truncate_at or pick sections.
- 원문 XML 없음([014]) → 뷰어 자동 전환(source=viewer):
documents[]·doc_index = 뷰어 섹션. |
find_corp_coderead-only | MyDART MCP의 find_corp_code 도구는 회사명·종목코드로 DART 법인 식별자(corp_code)의 후보를 확인합니다.
[Purpose]
- IMPORTANT: first call when a company's corp_code is unknown.
- Also to disambiguate same-named companies.
- ID resolution only — 업종·data location: get_company_profile; disclosure listings:
search_disclosures.
[Usage]
1. "카카오" → corp_code 획득 → 재무제표 조회(get_financials)
2. "삼성전자" → corp_code 획득 → 임원 현황 조회(get_periodic_report)
3. "'동양' 들어가는 회사 후보 보여줘" → query="동양", limit=20
4. "005930이 어느 회사야?" → query="005930"
[Response]
- stock_code: 보통주 code (kept after 상장폐지·합병); empty = 비상장.
- count = rows returned (capped by `limit`), not the total match count. 0 hits adds `notes`.
[Rules]
- `results` is a similarity-ranked candidate array — do not assume the first item is the answer.
- corp_code identifies the DART LEGAL ENTITY CODE, not the listing ticker. 우선주 codes map to the 보통주
issuer; ETF/ETN codes have no mapping.
- Common names may overflow the default `limit` — raise it when candidates look truncated. |
get_attachmentsread-only | MyDART MCP의 get_attachments 도구는 공시의 첨부파일 목록과 형제문서 본문·페이지 이미지를 다룹니다.
[Purpose]
- Attachment list + 형제문서 routing; body text = mode=text. 감사보고서·주석은 download_document(role).
- 자금부정통제 붙임·경영진 운영실태보고서 live here (mode=text; 붙임 = attachment_links[].retrieve).
- Scan-only (도장·서명·스캔 서식): mode=images only.
[Usage]
1. 정관·영업보고서 본문 → list 로 dcm_no 확보 → dcm_no, mode="text"
2. 표가 이미지뿐이면 mode="images" (뒷장 image_from, PDF 페이지 pages)
[Response]
- format: hwpx/hwp/pdf/docx/doc/xlsx/xls/zip/html/unknown
- images: source="viewer" or "pdf" — different field shapes.
[Rules]
- supported:false → unsupported_reason·suggestion·note·retrieve·next_step = the fallback route;
follow it verbatim.
- No bulk sweeps — mass viewer calls bring DART IP bans.
- Ladder: text (표 lossless) → empty·링크 껍데기 body → images → download_url.
Attachment files are never parsed server-side.
- images returns pictures: OCR·판독 is the client's job, 1 image per capped call (image_from).
- partial:true ⇒ section_errors[]; markdown is partial — 빈 곳 ≠ 사실 없음. |
get_audit_profileread-only | MyDART MCP의 get_audit_profile 도구는 감사인·감사의견·업무수행이사에 감사보수·감사투입시간·실사수행내역·외부조회 실시여부 등 외부감사 실시내역을 한 표로 요약해 반환합니다.
[Purpose]
- Fact/figure asks: "who audited, at what fee, how was the 실사".
- 강조사항 comes structured (emphasis); full 의견근거·KAM·강조 text: get_audit_report.
- ICFR detail: get_internal_control; 계속기업 quant: get_going_concern.
- Company lists (모집단): search_audit_findings.
[Usage]
1. "삼성전자 2024 감사보수·비감사보수" → corp="삼성전자", year=2024
2. "감사인·감사보수만 빠르게" → corp="…", year=2024, light=true
[Response]
- fees `_m` suffix = 백만원.
- opinion domain: 적정/한정/부적정/의견거절.
[Rules]
- data_available=false = the filing was not found (e.g. not yet filed) — do NOT read null fields
as "confirmed absent".
- audit_only=true (F 단독공시, unlisted) → fees are structurally absent (사업보고서 전용), not a
defect.
- For 연결/별도 split read kam.by_fs_div, not kam.topics (representative fallback).
- ALWAYS read applicability.guidance[] — regime notes and next-tool routing.
- 감사인 교체/연속연수 are NOT returned — call per year and compare auditor.name. |
get_audit_reportread-only | MyDART MCP의 get_audit_report 도구는 감사보고서 본문을 문단 단위로 구조화해 문단별 원문 텍스트를 반환합니다 — 감사의견·감사의견근거·KAM·강조사항·기타사항·계속기업가정불확실성.
[Purpose]
- For verbatim 감사보고서 narrative paragraphs. Structured fact summaries (보수·실사 등):
get_audit_profile.
- ICFR detail and its fit with the 재무제표 감사의견: get_internal_control.
[Usage]
1. "LG에너지솔루션 2024 KAM 문단 전문" → corp="LG에너지솔루션", year=2024
2. "삼부토건 FY2024 별도 의견거절 근거 원문" → corp="삼부토건", year=2024, fs_div="OFS"
3. 발견사항만 → sections="summary"; 잘리면 truncate_at 상향
[Response]
- sections[].key = KSA700 elements (list in sections arg). opinion: 적정/한정/부적정/의견거절.
- fs_label: 연결/별도. source_note = F 단독공시, correction_note = 정정 채택/생략.
[Rules]
- kam.count=0 is normal if none_declared or 의견거절 (감사기준서 705 문단 29); else suspect omission.
- Unlisted (F 단독공시) legitimately lacks KAM·업무수행이사 (see source_note).
- 재무제표·주석 FIGURES: download_document.
- body_omitted:true = section EXISTS, body not requested (≠ absent) — re-call with sections.
- internal_control = verdict only; ICFR 정본은 get_internal_control. |
get_company_profileread-only | MyDART MCP의 get_company_profile 도구는 기업개황(업종·대표자·결산월·상장구분)과 데이터 위치(data_location)를 조회합니다.
[Purpose]
- Basics + routing check before 재무·감사 calls on unfamiliar (esp. 비상장) companies.
- 감사인·감사의견·감사보수: get_audit_profile; name ambiguity: find_corp_code.
[Usage]
1. "카카오는 뭐 하는 회사야?" → corp="카카오"
2. "교보생명 FY2024 재무는 어디서 봐?" → corp="교보생명", year=2024
3. "종목코드 068270 기업 개황" → corp="068270"
[Response]
- data_location.filing_tier: listed(financials=JSON API) / listed_konex(NOT in structured financial
APIs — financials live in 사업보고서 원문) / unlisted_reporting / audit_only(financials+notes live
in 감사보고서 F 단독공시 원문) / no_disclosure_found / unknown
- company.corp_cls: Y=코스피/K=코스닥/N=코넥스/E=기타(비상장). acc_mt = 결산월.
[Rules]
- Route follow-up calls by data_location: audit_only → get_financials returns [013], open
f_separate_rcept via download_document instead. listed_konex → empty get_financials is
NORMAL, do not retry.
- provisional=true (year omitted) is tentative — never conclude 비외감 from no_disclosure_found. |
get_corporate_eventread-only | MyDART MCP의 get_corporate_event 도구는 주요사항보고서 자본·지배구조 이벤트 36종(증자·감자·CB/BW/EB·자기주식·합병/분할 등)과 5%룰·임원 지분공시를 조회합니다.
[Purpose]
- "Who raised/cut stakes, when": event_type="holdings" (5%룰 대량보유·임원/주요주주 소유보고).
- 결정의 후속 발행·합병 조건(공모가·인수인): get_registration_statement.
- List skims: search_disclosures; 사업보고서 snapshots (최대주주·주식총수): get_periodic_report.
[Usage]
1. "카카오 최근 3년 자본 조달 흐름" → corp="카카오", mode="timeline"
2. "이 회사 CB 발행한 적 있어?" → corp="…", event_type="cb_issuance"
3. "자사주 취득·처분 2020년부터" → event_type=["treasury_acquisition","treasury_disposal"],
start="2020-01-01"
[Response]
- date = 최초 공시일 (start/end axis), newest first; fields = latest 정정본 (rcept_no) — corrected: last_filed_date.
- 지분공시: total_count = all-time cumulative, filtered_count = in-period (DART takes no
dates — filtered client-side).
[Rules]
- Empty timeline ≠ no events — default set = capital events only (name event_type for more);
sections_meta may carry per-endpoint errors.
- event_type_counts is pre-truncation (limit cuts timeline only). |
get_financialsread-only | MyDART MCP의 get_financials 도구는 매출·영업이익·순이익·자산/부채/자본 등 재무수치를 조회합니다 — 재무 질문 대부분은 이걸로 충분합니다.
[Purpose]
- 재무제표 figures start here. corp+year = LATEST filing (정정 반영); rcept_no = that filing
AS FILED (재작성 전후 대조·합산 검증 — 구 get_xbrl).
- 사업보고서 prose: download_document; 부실징후(계속기업): get_going_concern.
[Usage]
1. "삼성전자 2025년 매출·영업이익" → corp="삼성전자", year=2025
2. "삼성전자와 SK하이닉스 실적 비교" → corp=["삼성전자","SK하이닉스"]
3. "이 공시본 그대로 전체" → rcept_no="…", sj_div=["BS","IS","CIS","CF","SCE"]
[Response]
- Row keys: sj_div, account_nm, thstrm_amount(당기)/frmtrm_*(전기)/
bfefrmtrm_*(전전기)/thstrm_add_amount(누계). Amounts are STRINGS.
- full: total_count=pre-filter, count=post-filter. rcept_no adds validations.
[Rules]
- Quarterly/half IS·CIS: CUMULATIVE = thstrm_add_amount, thstrm_amount = that quarter alone;
CF thstrm_amount is already YTD; BS: thstrm_amount only (see period_basis).
- Cross-check the periods legend (전기/당기 off-by-one) and year_defaulted.
- no_data is routing, not an error — follow next_step. |
get_going_concernread-only | MyDART MCP의 get_going_concern 도구는 계속기업 위험을 정량 재무지표와 감사보고서 기재의 교차로 판정합니다.
[Purpose]
- 계속기업: 정량 징후 × 감사보고서 기재 대조 — a mismatch is a cue to read the 원문, not a finding.
- Lists: search_audit_findings; figures: get_financials; 문단 원문: get_audit_report.
[Usage]
1. "이스타코 2024 계속기업 위험 있어?" → corp="이스타코", year=2024
2. "별도 기준 정량 점검" → corp="…", year=2024, fs_div="OFS"
[Response]
- flags.consecutive_op_loss = NUMBER of 연속 영업손실 years (not a bool); others bool|null.
- grade: 판정불가(no data)/양호(0)/주의(1~2)/경계(3~4)/위험(5+)
- cross_check.code: both/quant_only/text_only/none/insufficient_data/quant_unavailable/report_unavailable
- text: audit_opinion, evidence_source, report_fs_div
[Rules]
- going_concern_mentioned false = parser found no GC text, not proof of none; null = report not secured. quant_only covers both cases.
- 한정/부적정/의견거절: GC matters can sit in 의견근거 — read it (cross_check.next_step).
- grade "판정불가" is not "양호". flags null = account not secured, not false.
- fs_div (figures) is post-fallback — CFS may return OFS. |
get_internal_controlread-only | MyDART MCP의 get_internal_control 도구는 '감사인'의 내부회계관리제도(ICFR) 감사/검토 보고서를 조회합니다 — 구분·의견·중요한 취약점 여부.
[Purpose]
- ICFR 의견·취약점 vs 재무제표 감사의견; 취약점 lists: search_audit_findings.
- 자금부정통제·경영진 내부회계관리제도 운영실태보고서: not here → get_attachments
(사업보고서 rcept, mode=list→dcm_no→mode=text, scans=images; no rcept:
search_disclosures preset='annual_report').
- Structured facts: get_audit_profile; full text: get_audit_report.
[Usage]
1. "카카오페이 2024 내부회계 의견" → corp="카카오페이", year=2024
2. "연결 기준만" → corp="…", year=2024, fs_div="CFS"
[Response]
- opinion domain: 적정/부적정/의견거절 — NO '한정'. 검토(review_or_audit)의 의견거절 = 범위제한에
따른 검토결론 불표명.
[Rules]
- reports is an ARRAY — both gives up to 2 entries (연결·별도).
- present=false is usually out-of-scope (read the note), not missing data; an empty CFS entry is normal.
- Never conflate a review's 의견거절 with an audit's — check review_or_audit.
- 자금부정통제 (FY2025~ mandatory, FY2024 optional)·시정계획 = 경영진 운영실태보고서 — see
management_operation_report.steps (applicable=false = F 단독공시: no report exists). |
get_periodic_reportread-only | MyDART MCP의 get_periodic_report 도구는 사업보고서 세부 섹션 28종을 정형 데이터로 조회합니다 — 한 섹션 또는 여러 섹션 동시.
[Purpose]
- Section tables: 배당·자기주식·최대주주·소액주주·임원보수·회계감사인·회사채 미상환 등.
- 재무제표 figures: get_financials. auditor_opinion is one word — KAM·내부회계·강조사항:
get_audit_profile / get_audit_report.
[Usage]
1. "삼성전자 2025년 배당 내역" → corp="삼성전자", year=2025, report_type="dividends"
2. "카카오 최대주주가 누구야" → corp="카카오", report_type="shareholders" (year 생략 = 최신)
[Response]
- Amounts are STRINGS. Section status: 000 성공 / 013 무자료.
- periods legend maps 당기/전기/전전기 → fiscal years — cite 기수 only after reading it.
[Rules]
- Non-December closer: apply fiscal_year_note — one year off vs the audit tools.
- ARRAY: per-element status (success·013·error mix); all-013 flips to { mode:"no_data", … }.
- Listed [013] ≈ legitimate absence (no 배당·자기주식, no eligible 개인별 보수), not failure.
- 개인별 보수 2종은 2026-05 서식 개정으로 구판↔V2 이원 — 도구가 자동 라우팅(endpoint·
compensation_format 표시). V2 는 1인당 3행(당기·전기·전전기)이라 합계는 fscl_year="당기"만,
주식기준보상 세부는 stk_bsd_cmpn. |
get_registration_statementread-only | MyDART MCP의 get_registration_statement 도구는 증권신고서 주요정보 6종 — 모집·매출 조건, 인수인, 자금 사용목적, 합병·분할 조건을 정형 JSON 으로 조회합니다.
[Purpose]
- Filed terms of a 증권신고서: 공모가액·인수인·자금의사용목적·합병비율·주식매수청구권.
- Board decision: get_corporate_event / listing scan: search_disclosures(kind="issuance") / narrative (투자위험요소): download_document.
[Usage]
1. "대한항공 유상증자 조건" → corp="대한항공", statement_type="equity"
[Response]
- filings[] = one per 신고서(rcept_no), newest first. sections: general·securities·underwriters·fund_use·sellers·put_right·issued_securities·parties.
- date = 접수일 (정정본: 정정 접수일, may fall outside window). Values are raw strings; '-'(해당없음) fields omitted.
[Rules]
- superseded_by = later version DART omits; if [발행조건확정], 가액·총액·금리 here are 예정 terms (final: its retrieve). Older 정정 not included.
- withdrawn:true = 철회신고서 filed. version_check set = check incomplete.
- No data ≠ not issued: 사모·일괄신고서·소액공모 out of scope. Per-type status in sections_meta.
- fetch_failed/truncated_note types mean "unconfirmed", not "none" — re-query that type. |
get_valuation_dataread-only | MyDART MCP의 get_valuation_data 도구는 가치평가 데이터(시장 시계열·WACC·유사회사)를 kind 로 골라 조회합니다.
[Purpose]
- 평가기준일 시세·β checks, WACC build-up, peer comps.
- Evidence, not adoption — the 평가자 decides.
- 재무수치: get_financials; 업종(KSIC)·시장구분: get_company_profile.
[Usage]
1. "에스에프에이 최근 1년 주가" → kind="market", corp="에스에프에이"
2. "반도체장비 업종 피어 멀티플" → kind="peers", ksic="29271"
[Response]
- Units: *_pct = %, but mrp·srp·tax_rate = decimals (0.08 = 8%); flt_rt = 등락률 %.
[Rules]
- Returns come from flt_rt, never close deltas (break at 액면분할·병합).
- Quote aggregates with n (varies; EBITDA often missing).
- peers = KSIC candidates the 평가자 curates; too few relax the prefix 5→4→3 (see prefix_depth_used).
- 무차입β (beta.unlevered·beta_unlev) = Hamada on WACC's 기준일 D/E (D 이자부부채 리스 포함, E per equity_basis); peers: E outstanding_plus_nci+우선주, β 2w.
- Cite each source·as_of verbatim (조서 정합).
- ALWAYS read notes[] — 강등·폴백·주의 accumulate there.
- Daily cap on distinct targets per token or key. |
search_audit_findingsread-only | MyDART MCP의 search_audit_findings 도구는 회사를 지정하지 않고 감사보고서 조건으로 상장사·비상장사 목록을 찾습니다.
[Purpose]
- List/aggregate: "의견거절 회사"·"내부회계 취약점"·"○○회계법인 감사 회사".
- Detail: get_audit_profile/get_internal_control; 원문: get_audit_report.
[Usage]
1. "FY2024 코스피 의견거절 회사" → year=2024, market="kospi", opinion="disclaimer"
2. 목록·집계만 필요 → fields="brief"
3. "24~25년 ICFR 취약점" → year=[2024,2025] (다년 — coverage.years[])
4. "비상장 의견거절" → market="unlisted"
[Response]
- Output market Y=코스피/K=코스닥/N=코넥스/E=비상장; fs_div KOREAN "연결"/"별도".
[Rules]
- READ coverage.note FIRST — empty result over a non-ingested scope = "not seen", never "does not exist".
- fs_div=both(default) → ≤2 rows/company; dedupe corp_code to count companies.
- breakdown = baseline over year/market/fs_div only (other filters ignored); ≠ count.
- KAM omission suspect: kam=false+kam_required=true+kam_none_declared=false (의견거절 excluded).
- ICFR undetected: 연결 icfr.note only when 감사 expected but missing; else read expected_type.
- Daily row cap per token or key. |
search_disclosuresread-only | MyDART MCP의 search_disclosures 도구는 DART 공시 목록에서 접수번호(rcept_no)를 찾습니다 — download_document·get_attachments 진입점.
[Purpose]
- 사업보고서 섹션 데이터는 get_periodic_report, 동명 회사는 find_corp_code 로 corp_code 확정.
[Usage]
1. "삼성전자 최근 한 달 공시" → corp="삼성전자", days=30
2. "작년 유상증자 결정 전부" → preset="rights_offering", start="2025-01-01", end="2025-12-31"
3. "CB 발행만(매도·만기전취득 제외)" → preset="cb_issuance" (CB 관련 전부는 "cb")
[Response]
- corp_cls: Y=코스피, K=코스닥, N=코넥스, E=기타(비상장).
- report_nm [기재정정]/[첨부정정]/[첨부추가] prefix = 정정공시; [발행조건확정]=정정본(kept), [정정제출요구]=원본.
[Rules]
- **Always pass corp when a company is named** — corp-less searches split the period (batch: by month), 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.
- Preset batch drops 정정공시; page mode·bare all_pages keep them. |