MyDART
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Powerful OpenDART API-based Korean corporate disclosure tools for accounting professionals
| Author | kr.eocpa |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 422 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"MyDART": {
"url": "https://mydart.eocpa.kr/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
find_corp_coderead-onlyMyDART 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.
Parameters:
query(required) — string — One 회사명 (한/영), 6-char 종목코드 (005930·0126Z0) or 8-digit corp_codelimit— integer — Max candidates returned
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_disclosuresread-onlyMyDART 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.
Parameters:
end— string — End date (default today)corp— string — 회사명/종목코드/corp_code. Omit = all companies; a batch then splits the period by month, spends up to 60 DART requests (incomplete=true when hit) and can take tens of seconds. With corp: 1 request, a few hundred ms.days— integer — Trailing N days from today, used when start is omitted; out-of-range values clamp. Default by preset: 사업·감사 460 / 반기 280 / 분기 180 / 수시·일반 90. Longer windows: start/end.kind— string — 공시유형; omit = all types. Enum order = DART pblntf_ty A~J; that letter or the Korean name (정기공시…) also works.page— integer — Page number (page mode = no preset, all_pages=false). Page mode returns raw DART rows; batch rows drop stock_code·rm and add event (주요사항), corrected (= a later 정정 exists), withdrawn.size— integer — Page size (page mode)limit— integer — Max rows returned in batch mode (preset or all_pages)start— string — Start date YYYY-MM-DD. Omitted = `days` back from today; set it for older filings.preset— string — Batch filter; sets kind and collects every page. 주요사항보고 keys match the EXACT DART 보고 사유 (never a title substring) — one key per 사유 (cb_issuance · cb_treasury_resale …); group aliases capital_change · cb · bw · cps · bond_issuance · treasury · treasury_trust · restructuring · asset_deal · asset_transfer_etc · guarantee_debt · insolvency · overseas union several. large_holding_5pct = all 지분공시.all_pages— boolean — Batch-collect the whole period without a preset (same set as page mode, 정정공시 included); limit replaces page/size.final_only— boolean — One latest version per event: 원본 replaced by its latest 정정본 (정정공시 NOT excluded) — a duplicate-free set. Windowed by each event's LATEST version date: filed in window but corrected after end = absent.concurrency— integer — Collector workers. A server-wide cap sets real concurrency, so raising this rarely helps — to cut latency set corp, narrow the period or lower limit.include_corrections— boolean — Include 정정공시 ([기재정정] etc.) in preset batch; off avoids 원본+정정 double count. correction_all forces true; ignored with final_only. Page mode and bare all_pages always include them. Latest-only: final_only.
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_company_profileread-onlyMyDART 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.
Parameters:
corp(required) — string — 회사명/종목코드/corp_codeyear— integer — 회계연도 for judging applicability.data_location. Omitted = latest (provisional). Matters for 비상장사·코넥스 (market as of that year); 코스피·코스닥 = listed, no probe. 비12월 결산: 결산기 시작연도 (same as audit tools); get_financials etc. call the same period year+1 (see fiscal_year_note).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_financialsread-onlyMyDART 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.
Parameters:
corp— 회사명·종목코드·corp_code — string or array (comma list ok). scope=summary: 1 = single, 2+ = comparison (first 200 queried). scope=full: 1 only — extras dropped with a note. Unresolved entries dropped with a note; error only if none resolve. Omit with rcept_no.year— integer — 결산 사업연도 (회계연도, not the filing year) — one per call; annual rows also carry 전기·전전기. Omitted → latest published 사업연도 by 결산월·report (year_defaulted=true).scope— string — summary (default): 주요계정 ~14 per basis (자산·부채 유동/비유동/총계, 자본금·이익잉여금·자본총계, 매출액·영업이익·법인세차감전 순이익·당기순이익·총포괄손익); 연결·별도 together ≈ 28 rows per company (별도-only 14; 금융업 +α). full: 전체 재무제표 filtered by sj_div, hundreds~1k rows.format— string — Unsupported — any value is rejected; omit. Tables come as items[].fs_div— string — scope=full·rcept_no: 연결(CFS, default)/별도(OFS). CFS without data falls back to OFS (fs_div_note) — response fs_div = basis used. Ignored by summary (basis per row).report— string — 1Q·반기·3Q·연차sj_div— array — scope=full·rcept_no: 재무제표 to include — BS=재무상태표, IS=손익계산서, CIS=포괄손익계산서, CF=현금흐름표, SCE=자본변동표. Default BS+IS+CIS (단일 포괄손익계산서 companies put 손익 in CIS only); CF·SCE only when listed. String or comma list ok.rcept_no— string — 사업보고서 접수번호 → that filing AS FILED (later 정정 not reflected), plus 합산 검증 (validations). 분·반기 rcept → no_data; use corp+report. Combine with fs_div·sj_div; omit corp·year·scope.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
download_documentread-onlyMyDART 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 = 뷰어 섹션.
Parameters:
rcept_no(required) — string — 14-digit 접수번호 from search_disclosures; hyphens·spaces stripped.find— Search EVERY 원문 XML in the ZIP (본문 + 별도/연결 감사보고서); returns `find` (table-level excerpt bundles + other hit locations) INSTEAD of content. Several terms in one filing → ONE call with an array (max 8, OR; blocks with more terms first), not parallel calls. One string = ONE term (commas not split). Case-insensitive literal, not regex; 0 hits → retried letter-spaced (`핵 심 감 사`). doc_index/role narrows to that 원문 (doc_index out of range → searches all, with a note). Whole 절·주석 of a hit: same doc_index/role + sections=[section_index]. format=markdown only; not with all_docs. source=viewer ([014]): top-level 뷰어 sections (first 24; sub-sections inside parents); bundles[].doc_index = section index.role— string — Pick the 원문 by role instead of doc_index: separate_audit = 감사보고서(별도, `_00760`), consolidated_audit = 연결감사보고서(`_00761`), internal_control = 내부회계관리제도 보고서. No such 원문 in the ZIP (e.g. no 연결 without 종속기업) → fails with the 원문 list. Not with doc_index·all_docs.format— string — markdown = DART XML → 마크다운; raw = original XML; text = tags stripped (tables flattened). source=viewer ([014], no 원문 XML): no raw; markdown/text from 뷰어 HTML.all_docs— boolean — Every 원문 XML in the ZIP with content as documents[] (본문 + 별도/연결 감사보고서). source=viewer ([014]): one entry per top-level 뷰어 section (max 24; sub-sections nested).sections— array — Read only PART of the selected 원문 (role/doc_index; else 본문). [] = 목차 only (headings + one row per 주석 번호; 주석 boundaries inferred from 'N.'). Then pick by 목차 index (numbers), partial 제목 match (strings, spaces ignored; both 연결·별도 주석 if both exist) or "주석 31". A pick inside another comes back once; no match → 목차 instead. source=viewer ([014]): 뷰어 목차 (numbers = documents[].index; strings = 제목 only, no 주석 번호). format=markdown only; not with find·all_docs.doc_index— integer — 0-based index of one 원문 XML in the ZIP (documents[].index); omitted = 0 = 본문. 감사보고서: use role, not a guessed 1~2. Out of range → 본문 WITH a note in notes — check it. source=viewer ([014]): picks one 뷰어 목차 섹션 (same index as get_attachments mode=text sections).truncate_at— integer — Max content chars (default 300,000; excess cut; out-of-range clamped). Caps the sections total; all_docs: split across documents (per_doc_truncate_at). Ignored with find.find_max_bytes— integer — Max total bundle size, UTF-8 bytes not chars (한글 3 bytes; default 12,000); oversized bundle cut by table row (header rows kept), clipped=true.find_max_bundles— integer — Max bundles (default 5); other hits → locations only. Fewer if find_max_bytes fills first.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_periodic_reportread-onlyMyDART 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.
Parameters:
corp(required) — string — 회사명/종목코드/corp_codereport_type(required) — Section — string or array (array → sections[]). Families in enum order: 주주 4 (largest_shareholder…) / 임직원 3 (executives…) / 보수 6 (executive_compensation_*…) / 회계감사 3 (auditor_opinion…) / 자본 3 (dividends·treasury_stock…) / 자금사용 2 (*_fund_use) / 타법인출자 1 = other_company_investment (incl. 종속·관계기업 지분) / 채무증권 6 (debt_securities_issuance·*_unredeemed). Group aliases: 'shareholders' (주주 4), 'executive_compensation' (보수 6).year— integer — 결산 사업연도 (회계연도, not the filing year) — one per call. Omitted → latest published 사업연도 by 결산월·report (year_defaulted=true).report— string — 1Q·반기·3Q·연차max_items— integer — Row cap per section; excess cut → truncated=true, total_count = full row count.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_corporate_eventread-onlyMyDART 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).
Parameters:
corp(required) — string — 회사명/종목코드/corp_codeend— string — YYYY-MM-DD / YYYYMMDD; default today (period.end_defaulted:true)mode— string — single: one event_type. timeline: several event_types (unset → 'capital' group) in parallel, merged into one newest-first listlimit— integer — Max timeline rows, newest first by 최초 공시일. Excess cut → truncated=true, total_events = full count. Prefer narrowing start/end over raising limit.start— string — YYYY-MM-DD / YYYYMMDD; default 3 years ago (period.defaulted:true). start/end match each event's first filing (DART 최초접수일) — an in-window 정정 of an event first filed earlier is not returnedevent_type— String = one event (mode=single); array = several merged into one timeline (mode auto-switches to timeline). Unset in timeline = 'capital' group only (자본거래 25종). Group aliases: 'capital', 'holdings' (지분공시 2종).
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_registration_statementread-onlyMyDART 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.
Parameters:
corp(required) — string — 회사명/종목코드/corp_code (no all-company scan)end— string — YYYY-MM-DD / YYYYMMDD; default today (period.end_defaulted:true)limit— integer — Max 신고서 returned (per rcept_no, not rows), newest first; default 10. Excess → truncated=true, total_filings = full countstart— string — YYYY-MM-DD / YYYYMMDD, matched on 신고서 최초접수일; default 2015-01-01 = data floor, full history (period.defaulted:true) — keep the window widestatement_type— 증권신고서 type, string or array; unset = all 6. equity=지분증권(유상증자·IPO) / debt=채무증권(회사채) / depositary=증권예탁증권(DR) / merger=합병 / stock_exchange=주식의포괄적교환·이전 / division=분할. Group aliases: 'offering' (공모 3종), 'restructuring' (구조조정 3종)
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_attachmentsread-onlyMyDART 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 — 빈 곳 ≠ 사실 없음.
Parameters:
rcept_no(required) — string — 14-digit 접수번호; separators stripped.mode— string — list: attachment list only, nothing downloaded (cheap). text: document body as 마크다운 from the 뷰어 원문 — text·tables lossless. images: embedded raster (도장·스캔본·차트). No filename/index → 뷰어 원본 JPEG in document order, per-section eleId (manifest.source="viewer"); filename or index → scans THAT attachment PDF: decoded PNGs in page order, with page numbers (source="pdf"; pages narrows it).index— integer — images mode: 0-based index of the attachment to scan; filename wins if both. Selects the PDF-scan route, like filename.pages— string — images mode, PDF-scan route: 1-based pages WITHIN the attachment picked by filename/index (requires one), e.g. "2,4,7-9". Unset = that PDF's FIRST 40 pages only. Max 2000 pages per call — wider span rejected, not trimmed.dcm_no— string — Target 문서번호(dcmNo); default = 본문. Each 형제문서 (감사보고서·내부회계관리제도운영보고서·영업보고서·정관 etc.) has its own — take sibling_documents[].dcm_no from mode=list first; required to reach that 형제문서's attachments·text·images.filename— string — images mode: EXACT filename of the attachment PDF to scan (a miss lists available names); selects the PDF-scan route.sections— array — mode="text" only: 0-based **sections[] array index**, NOT eleId (often index+1) — e.g. 3rd·6th entries → [2, 5]; check each returned index against your picks. Unset = first 24 sections. [] = 목차 only (titles, md_chars 0) → call again with picks. Picks apply before the 24-section cap — only way to reach 사업보고서 본문 sections 25~158. Out-of-range indices dropped with a note; all out-of-range = rejected.image_from— integer — 뷰어 원본 JPEG route: 0-based start offset in document order — reach pages past max_images (capped channels fit ~1 page per call); continue with next_image_from. e.g. 운영실태보고서 자금부정통제 표 is usually the 2nd page → 1. PDF-scan route: use pages.max_images— integer — images mode: max images; PDF-scan route keeps largest by area.truncate_at— integer — mode=text 마크다운 cap in chars; default 100,000; out-of-range clamped.min_dimension— integer — PDF-scan route only (뷰어 원본 JPEG unfiltered): images whose shorter side is under this many px are dropped as decoration (아이콘·괘선). Lower it to catch small 도장/서명.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_audit_profileread-onlyMyDART 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.
Parameters:
corp(required) — string — 회사명/종목코드/corp_codeyear(required) — integer — 결산 사업연도 (회계연도·fiscal year), NOT the 공시(제출)연도 — pass the user's year as-is, never subtract: '2025 사업보고서' → 2025. Convert ONLY when the user explicitly names the 공시연도: '2026년에 공시된 사업보고서' → 2025. Relative ('최근 N개년'·'작년'): count back from the latest PUBLISHED 사업연도 (사업보고서 filed ≤90 days after 결산기말) — for 12월 결산 last year from April, the year before last in Jan~Mar (e.g. if latest = FY2025 → 최근 5개년 = 2021~2025). 비12월 결산 (3·6·9월): the year its 결산기 STARTS (3월 결산 2025-04~2026-03 = 2025; get_financials calls it 2026).light— boolean — Skip 원문 parsing — structured JSON only, fast; omits 실사 (incl. fees.headcount), 연결/별도 split, engagement_partnerrefresh— boolean — Bypass cache; re-collect
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_audit_reportread-onlyMyDART 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.
Parameters:
corp— string — 회사명/종목코드/corp_code — corp+year required without rcept_no; locates the 사업보고서 (비상장: 감사보고서 F 단독공시 fallback)year— integer — 결산 사업연도 (회계연도·fiscal year), NOT the 공시(제출)연도 — pass the user's year as-is, never subtract: '2025 사업보고서' → 2025. Convert ONLY when the user explicitly names the 공시연도: '2026년에 공시된 사업보고서' → 2025. Relative ('최근 N개년'·'작년'): count back from the latest PUBLISHED 사업연도 (사업보고서 filed ≤90 days after 결산기말) — for 12월 결산 last year from April, the year before last in Jan~Mar (e.g. if latest = FY2025 → 최근 5개년 = 2021~2025). 비12월 결산 (3·6·9월): the year its 결산기 STARTS (3월 결산 2025-04~2026-03 = 2025; get_financials calls it 2026).fs_div— string — Default both = 연결(CFS)+별도(OFS) → reports[] up to 2 entries; reading only the first drops an axis.refresh— boolean — Bypass cache; re-collect (corp+year only)rcept_no— string — 접수번호 instead of corp+year (사업보고서 or 감사보고서 F 단독공시) — resolved·applicability then null.sections— Section BODIES to include. full (default) = all. summary = finding paragraphs — opinion·kam·emphasis·other_matter·going_concern, + basis only when opinion ≠ 적정. Or a key array, e.g. ["opinion","kam"]; [] = 목차 only. Unselected → body_omitted:true stubs (re-requestable). Structured fields (opinion·kam.matters titles·emphasis·other_matters·going_concern_mentioned) ALWAYS returned.truncate_at— integer — Max chars per included section body (default 8,000; excess cut; out-of-range clamped). truncated=true → check char_count, re-call higher.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_going_concernread-onlyMyDART 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.
Parameters:
corp(required) — string — 회사명/종목코드/corp_codeyear(required) — integer — 결산 사업연도 (회계연도·fiscal year), NOT the 공시(제출)연도 — pass the user's year as-is, never subtract: '2025 사업보고서' → 2025. Convert ONLY when the user explicitly names the 공시연도: '2026년에 공시된 사업보고서' → 2025. Relative ('최근 N개년'·'작년'): count back from the latest PUBLISHED 사업연도 (사업보고서 filed ≤90 days after 결산기말) — for 12월 결산 last year from April, the year before last in Jan~Mar (e.g. if latest = FY2025 → 최근 5개년 = 2021~2025). 비12월 결산 (3·6·9월): the year its 결산기 STARTS (3월 결산 2025-04~2026-03 = 2025; get_financials calls it 2026).fs_div— string — Default CFS (연결); OFS = 별도. No 연결 → auto fallback to 별도 (response fs_div = basis used).refresh— boolean — Bypass cache; re-collect
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_internal_controlread-onlyMyDART 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).
Parameters:
corp(required) — string — 회사명/종목코드/corp_codeyear(required) — integer — 결산 사업연도 (회계연도·fiscal year), NOT the 공시(제출)연도 — pass the user's year as-is, never subtract: '2025 사업보고서' → 2025. Convert ONLY when the user explicitly names the 공시연도: '2026년에 공시된 사업보고서' → 2025. Relative ('최근 N개년'·'작년'): count back from the latest PUBLISHED 사업연도 (사업보고서 filed ≤90 days after 결산기말) — for 12월 결산 last year from April, the year before last in Jan~Mar (e.g. if latest = FY2025 → 최근 5개년 = 2021~2025). 비12월 결산 (3·6·9월): the year its 결산기 STARTS (3월 결산 2025-04~2026-03 = 2025; get_financials calls it 2026).fs_div— string — Default both = 연결(CFS)+별도(OFS). ICFR is normally 별도 only; 연결 ICFR 감사 only for 전기말 별도자산 2조↑ filers from FY2023. 별도 falls back to a standalone ICFR 공시 if the 감사보고서 embeds none; 연결 never does.refresh— boolean — Bypass cache; re-collect
Hints: read-only yes · destructive no · idempotent yes · open-world yes
search_audit_findingsread-onlyMyDART 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.
Parameters:
year(required) — 결산 사업연도 (회계연도·fiscal year), NOT the 공시(제출)연도 — pass the user's year as-is, never subtract: '2025 사업보고서' → 2025. Convert ONLY when the user explicitly names the 공시연도: '2026년에 공시된 사업보고서' → 2025. Relative ('최근 N개년'·'작년'): count back from the latest PUBLISHED 사업연도 (사업보고서 filed ≤90 days after 결산기말) — for 12월 결산 last year from April, the year before last in Jan~Mar (e.g. if latest = FY2025 → 최근 5개년 = 2021~2025). 비12월 결산 (3·6·9월): the year its 결산기 STARTS (3월 결산 2025-04~2026-03 = 2025; get_financials calls it 2026). Array = multi-year query (e.g. [2024, 2025]): rows carry their own bsns_year; per-year coverage.years[].kam— boolean — Has 핵심감사사항(KAM)limit— integer — Cap on ROWS, not companies. Cut → truncated=true, count = full row count; deduped company count then a floor — narrow market·fs_div·asset_bucket until truncated=false.fields— string — Row width. full = every field incl. 본문 text (의견근거·강조·기타·계속기업, KAM 제목, ICFR 근거·취약점, applicability), ~4KB/row. brief = corp_name·corp_code·stock_code·bsns_year·market·fs_div·auditor·audit_opinion·going_concern·emphasis·other_matter·icfr{type,opinion}·kam_count·rcept_no, ~0.3KB/row — for list/count asks; once a company is picked, full or get_audit_report·get_internal_control. coverage·breakdown·count·truncated identical in both.fs_div— string — Default both = 연결(CFS)+별도(OFS) as SEPARATE rows (의견·강조·KAM·ICFR held per report) → ≤2 rows/company; dedupe corp_code to count companies.market— string — Default all = 상장사 (kospi·kosdaq·konex by FY말 market); all never includes unlisted — query it separately. unlisted = FY말 market E: 비상장 사업보고서 filers + 상장사 years before 상장 or after 상장폐지. Servers without the 비상장 dataset: validation:market error, and all may still return those 상장사 E years. 외감 비상장사 filing only a 감사보고서: in neither — get_audit_profile per company.auditor— string — 감사인명 partial match (e.g. 삼정)opinion— string — 감사의견: unqualified=적정, qualified=한정, adverse=부적정, disclaimer=의견거절, modified=변형의견 (한정·부적정·의견거절).emphasis— boolean — Has 강조사항(EoM)industry— string — 업종: financial=금융 (KSIC 64~66: 은행·보험·금융지주…), non_financial=비금융; 주석 XBRL·ICFR 운영의무 thresholds differ.asset_bucket— string — 전기말 자산총액(별도) band = row label: gte_2tn=2조이상, gte_500bn=5천억이상 (<2조), gte_100bn=1천억이상 (<5천억), lt_100bn=1천억미만.icfr_opinion— string — 내부회계관리제도 의견: adverse=부적정, disclaimer=의견거절 (감사 의견거절 + 검토 검토결론 불표명 — split by row icfr.type), modified=변형 (≠ 적정).kam_required— boolean — This report had to carry KAM: 적용시기 (규모·연도·시장) met AND opinion ≠ 의견거절 (감사기준서 705 문단 29; 한정·부적정 still must). false = outside phase-in, or 의견거절 (row carries kam_exempt_reason)other_matter— boolean — Has 기타사항(OM)going_concern— boolean — 감사보고서 mentions 계속기업 불확실성xbrl_required— boolean — 재무제표 주석 XBRL mandatory that year (적용시기)include_reference— boolean — Attach the 적용시기 참조표 (KAM·ICFR·XBRL 주석·자금부정통제 phase-in schedule, ~4.8KB) — only when 법령 근거 text is needed.kam_none_declared— boolean — 감사보고서 explicitly declares '보고할 핵심감사사항 없음' (kam_count=0 then normal); false = undeclared or unknownicfr_material_weakness— boolean — Has 내부회계관리제도 중요한 취약점
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_valuation_dataread-onlyMyDART 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.
Parameters:
kind(required) — string — market = 시세·지수·금리 time series; wacc = WACC components + CAPM build-up; peers = 동업종(KSIC) peer multiples·무차입β·자본구조. Arguments are tagged by kind ([market]·[wacc]·[peers]); one this kind does not use → error listing the ones it accepts; unknown key → rejected.kd— number — [wacc] Kd directly, % p.a. 세전 (e.g. 4.5); overrides credit_rating·kd_tenoryq— string — [wacc·peers] 평가기준 분기 YYYYQn (e.g. 2026Q2, lowercase q OK); default latest snapshotend— string — [market] Default: latest 적재일mrp— number — [wacc] MRP override, decimal; default 0.08 = midpoint of 한국공인회계사회 가이던스 7~9%srp— number — [wacc] SRP override, decimal; skips 분위 판정corp— string — 회사명·종목코드·corp_code. market: 개별 종목 시세 (exactly one of corp·index·rate_series); wacc: REQUIRED, the subject company; peers: target (동업종 peers auto-selected)freq— string — [market] daily (default)·weekly (Fri close)·monthly (month-end). weekly/monthly rows carry period_return_pct (compounded flt_rt, %) instead of flt_rt — returns come from it, never close deltasksic— string — [peers] KSIC 업종코드 instead of corp (비상장 target) or overriding corp's 업종; e.g. '26410'index— string — [market] 시장지수 kospi·kosdaq (KOSPI·코스피 etc. accepted). Not with corp·rate_serieslimit— number — [market·peers] market: row cap, latest rows kept (default 600, 1~3000); peers: top-N by 시총, aggregates over these N only (default 15, 3~50)start— string — [market] YYYYMMDD or YYYY-MM-DD; default end − 1 yearexclude— [peers] spac·reit·loss (LTM 순손실)·financial (KSIC 64~66). Default [spac, reit]; a given value replaces itkd_tenor— string — [wacc] Kd(타인자본비용) tenor (default 5y)rf_tenor— string — [wacc] Rf(무위험이자율) tenor (default 10y)tax_rate— number — [wacc·peers] 한계법인세율, decimal; default 0.264 (24%×1.1). Also Hamada t (beta.unlevered·beta_unlev)beta_spec— string — [wacc] β: 2w = 2년 주간 (default), 5m = 5년 월간size_band— number — [peers] Keep peers within N× the target's 시총 (10 = 1/10~10x; min 2); ignored without corptarget_de— number — [wacc] Target 자본구조 D/E (시가) for WACC weights (wE·wD); default 실측 D/E (0 if missing). β: still unlevered at 실측 D/E, only relevered here (relevered_at_target_de); Ke keeps observed βLsrp_scheme— string — [wacc] 규모위험 프리미엄(SRP) 분위체계 (default quintile)rate_series— string — [market] 시장금리: ktb* = 국고채, corp_* = 회사채 3년 (AA-·BBB-; pyeong = 민평), cd91 = CD 91일. Not with corp·indexequity_basis— string — [wacc] E(자기자본 시가): listed (자기주식 포함)·outstanding (자기주식 제외)·outstanding_plus_nci (default, +비지배지분); also β-unlevering D/Einclude_pref— boolean — [wacc] Add 우선주 시총 into E (default true)credit_rating— string — [wacc] 신용등급 for Kd (무보증 공모회사채, KIS자산평가 매트릭스); mid-notch = AA0·A0·BBB0·BB0·B0, not bare AA. Omitted → 공시 회사채 등급; none disclosed → Kd not computed (no assumed rating), WACC null if D/E>0
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.