MyDART
Powerful OpenDART API-based Korean corporate disclosure tools for accounting professionals
Should I use this
Quality & Safety
Findings (2)
- HIGH
- MEDIUMin get_attachments
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mydart": {
"url": "https://mydart.eocpa.kr/mcp"
}
}
}Remote endpoints
https://mydart.eocpa.kr/mcpstreamable-httpWhat it can do
Tool inventory
Tools (15)
🟢find_corp_code(query, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "One 회사명 (한/영), 6-char 종목코드 (005930·0126Z0) or 8-digit corp_code"
},
"limit": {
"default": 10,
"description": "Max candidates returned",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢search_disclosures(corp, start, end, days, kind, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"corp": {
"description": "회사명/종목코드/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.",
"type": "string"
},
"start": {
"description": "Start date YYYY-MM-DD. Omitted = `days` back from today; set it for older filings.",
"type": "string"
},
"end": {
"description": "End date (default today)",
"type": "string"
},
"days": {
"description": "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.",
"type": "integer",
"minimum": 1,
"maximum": 730
},
"kind": {
"description": "공시유형; omit = all types. Enum order = DART pblntf_ty A~J; that letter or the Korean name (정기공시…) also works.",
"type": "string",
"enum": [
"periodic",
"major",
"issuance",
"holdings",
"other",
"audit",
"fund",
"abs",
"exchange",
"ftc"
]
},
"detail": {
"description": "공시상세유형 (DART pblntf_detail_ty), narrower than kind: A001 사업보고서 · A002 반기 · A003 분기 · B001 주요사항보고서 · F001 감사보고서 · F002 연결감사보고서 … Not with preset.",
"type": "string",
"pattern": "^[A-J]\\d{3}$"
},
"market": {
"description": "법인구분 (DART corp_cls Y·K·N·E): kospi · kosdaq · konex · unlisted (기타). Omit or all = every market.",
"type": "string",
"enum": [
"all",
"kospi",
"kosdaq",
"konex",
"unlisted"
]
},
"preset": {
"description": "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 지분공시.",
"type": "string",
"enum": [
"capital_change",
"cb",
"bw",
"cps",
"bond_issuance",
"treasury",
"treasury_trust",
"restructuring",
"asset_deal",
"asset_transfer_etc",
"guarantee_debt",
"insolvency",
"overseas",
"rights_offering",
"bonus_issue",
"rights_bonus_combo",
"capital_reduction",
"cb_issuance",
"cb_treasury_resale",
"cb_early_acquisition",
"cb_call_designation",
"cb_call_exercise_third_party",
"bw_issuance",
"bw_treasury_resale",
"bw_early_acquisition",
"bw_call_designation",
"bw_call_exercise_third_party",
"cps_call_designation",
"cps_call_exercise_third_party",
"eb_issuance",
"cocobond_issuance",
"hybrid_capital_issuance",
"treasury_acquisition",
"treasury_disposal",
"treasury_trust_contract",
"treasury_trust_cancel",
"treasury_trust_extension",
"company_merger",
"company_split",
"company_split_merger",
"stock_exchange",
"other_corp_stock_acquisition",
"other_corp_stock_transfer",
"tangible_asset_acquisition",
"tangible_asset_transfer",
"noncurrent_asset_acquisition",
"noncurrent_asset_disposal",
"business_acquisition",
"business_transfer",
"business_deal_legacy",
"asset_deal_legacy",
"business_lease_delegation",
"business_lease_delegation_change",
"asset_transfer_other",
"putback_option_contract",
"bond_with_stock_right_acquisition",
"bond_with_stock_right_transfer",
"guarantee_for_others",
"collateral_for_others",
"debt_assumption",
"debt_forgiveness_granted",
"debt_forgiveness_received",
"donation",
"donation_received",
"default_occurrence",
"business_suspension",
"rehabilitation_filing",
"rehabilitation_commencement",
"rehabilitation_discontinuance",
"dissolution_cause",
"bank_management_start",
"bank_management_stop",
"bank_management_end",
"litigation",
"overseas_listing_decision",
"overseas_listing",
"overseas_delisting_decision",
"overseas_delisting",
"foreign_tender_offer",
"foreign_trading_halt",
"large_holding_5pct",
"annual_report",
"half_report",
"quarterly_report",
"audit_report",
"correction_all"
]
},
"final_only": {
"default": false,
"description": "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.",
"type": "boolean"
},
"include_corrections": {
"default": false,
"description": "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.",
"type": "boolean"
},
"all_pages": {
"default": false,
"description": "Batch-collect the whole period without a preset (same set as page mode, 정정공시 included); limit replaces page/size.",
"type": "boolean"
},
"page": {
"default": 1,
"description": "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.",
"type": "integer",
"minimum": 1
},
"size": {
"default": 20,
"description": "Page size (page mode)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"limit": {
"default": 500,
"description": "Max rows returned in batch mode (preset or all_pages)",
"type": "integer",
"minimum": 1,
"maximum": 3000
},
"concurrency": {
"default": 5,
"description": "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.",
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_company_profile(corp, year)
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.
Input Schema
{
"type": "object",
"properties": {
"corp": {
"type": "string",
"minLength": 1,
"description": "회사명/종목코드/corp_code"
},
"year": {
"description": "회계연도 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).",
"type": "integer",
"minimum": 2015
}
},
"required": [
"corp"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_financials(corp, rcept_no, year, report, scope, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"corp": {
"description": "회사명·종목코드·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.",
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
]
},
"rcept_no": {
"description": "사업보고서 접수번호 → 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.",
"type": "string",
"pattern": "^\\d{14}$"
},
"year": {
"description": "결산 사업연도 (회계연도, not the filing year) — one per call; annual rows also carry 전기·전전기. Omitted → latest published 사업연도 by 결산월·report (year_defaulted=true).",
"type": "integer",
"minimum": 2015
},
"report": {
"default": "annual",
"description": "1Q·반기·3Q·연차",
"type": "string",
"enum": [
"q1",
"half",
"q3",
"annual"
]
},
"scope": {
"description": "summary (default): 주요계정 ~14 per basis (자산·부채 유동/비유동/총계, 자본금·이익잉여금·자본총계, 매출액·영업이익·법인세차감전 순이익·당기순이익·총포괄손익); 연결·별도 together ≈ 28 rows per company (별도-only 14; 금융업 +α). full: 전체 재무제표 filtered by sj_div, hundreds~1k rows.",
"type": "string",
"enum": [
"summary",
"full"
]
},
"fs_div": {
"description": "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).",
"type": "string",
"enum": [
"CFS",
"OFS"
]
},
"sj_div": {
"description": "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.",
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"BS",
"IS",
"CF",
"CIS",
"SCE"
]
}
},
"format": {
"description": "Unsupported — any value is rejected; omit. Tables come as items[].",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢download_document(rcept_no, format, doc_index, role, sections, ...)
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 = 뷰어 섹션.
Input Schema
{
"type": "object",
"properties": {
"rcept_no": {
"description": "14-digit 접수번호 from search_disclosures; hyphens·spaces stripped.",
"type": "string",
"pattern": "^\\d{14}$"
},
"format": {
"default": "markdown",
"description": "markdown = DART XML → 마크다운; raw = original XML; text = tags stripped (tables flattened). source=viewer ([014], no 원문 XML): no raw; markdown/text from 뷰어 HTML.",
"type": "string",
"enum": [
"markdown",
"raw",
"text"
]
},
"doc_index": {
"description": "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).",
"type": "integer",
"minimum": 0
},
"role": {
"description": "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.",
"type": "string",
"enum": [
"main_body",
"separate_audit",
"consolidated_audit",
"internal_control"
]
},
"sections": {
"description": "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.",
"maxItems": 24,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "string",
"minLength": 1,
"maxLength": 100
}
]
}
},
"all_docs": {
"default": false,
"description": "Every 원문 XML in the ZIP with content as documents[] (본문 + 별도/연결 감사보고서). source=viewer ([014]): one entry per top-level 뷰어 section (max 24; sub-sections nested).",
"type": "boolean"
},
"truncate_at": {
"description": "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.",
"type": "integer",
"minimum": 1000,
"maximum": 2000000
},
"find": {
"description": "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.",
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"minItems": 2,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
]
},
"find_max_bundles": {
"description": "Max bundles (default 5); other hits → locations only. Fewer if find_max_bytes fills first.",
"type": "integer",
"minimum": 1,
"maximum": 20
},
"find_max_bytes": {
"description": "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.",
"type": "integer",
"minimum": 1000,
"maximum": 60000
}
},
"required": [
"rcept_no"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_periodic_report(corp, year, report, max_items, report_type)
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.
Input Schema
{
"type": "object",
"properties": {
"corp": {
"type": "string",
"minLength": 1,
"description": "회사명/종목코드/corp_code"
},
"year": {
"description": "결산 사업연도 (회계연도, not the filing year) — one per call. Omitted → latest published 사업연도 by 결산월·report (year_defaulted=true).",
"type": "integer",
"minimum": 2015
},
"report": {
"default": "annual",
"description": "1Q·반기·3Q·연차",
"type": "string",
"enum": [
"q1",
"half",
"q3",
"annual"
]
},
"max_items": {
"default": 150,
"description": "Row cap per section; excess cut → truncated=true, total_count = full row count.",
"type": "integer",
"minimum": 1,
"maximum": 2000
},
"report_type": {
"anyOf": [
{
"type": "string",
"enum": [
"largest_shareholder",
"largest_shareholder_changes",
"minority_shareholders",
"total_stocks",
"executives",
"employees",
"outside_director_changes",
"executive_compensation_total",
"executive_compensation_individual",
"individual_pay_top5",
"unregistered_executive_comp",
"director_total_comp_approval",
"director_total_comp_by_type",
"auditor_opinion",
"audit_service_contract",
"non_audit_service_contract",
"capital_increase_decrease",
"dividends",
"treasury_stock",
"private_placement_fund_use",
"public_offering_fund_use",
"other_company_investment",
"debt_securities_issuance",
"cp_unredeemed",
"short_term_bond_unredeemed",
"corp_bond_unredeemed",
"hybrid_capital_unredeemed",
"contingent_capital_unredeemed"
]
},
{
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"largest_shareholder",
"largest_shareholder_changes",
"minority_shareholders",
"total_stocks",
"executives",
"employees",
"outside_director_changes",
"executive_compensation_total",
"executive_compensation_individual",
"individual_pay_top5",
"unregistered_executive_comp",
"director_total_comp_approval",
"director_total_comp_by_type",
"auditor_opinion",
"audit_service_contract",
"non_audit_service_contract",
"capital_increase_decrease",
"dividends",
"treasury_stock",
"private_placement_fund_use",
"public_offering_fund_use",
"other_company_investment",
"debt_securities_issuance",
"cp_unredeemed",
"short_term_bond_unredeemed",
"corp_bond_unredeemed",
"hybrid_capital_unredeemed",
"contingent_capital_unredeemed"
]
}
}
],
"description": "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)."
}
},
"required": [
"corp",
"report_type"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_corporate_event(corp, mode, event_type, start, end, ...)
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).
Input Schema
{
"type": "object",
"properties": {
"corp": {
"type": "string",
"minLength": 1,
"description": "회사명/종목코드/corp_code"
},
"mode": {
"default": "single",
"description": "single: one event_type. timeline: several event_types (unset → 'capital' group) in parallel, merged into one newest-first list",
"type": "string",
"enum": [
"single",
"timeline"
]
},
"event_type": {
"description": "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종).",
"anyOf": [
{
"type": "string",
"enum": [
"major_holding_5pct",
"executive_holding",
"default_occurrence",
"business_suspension",
"rehabilitation_filing",
"dissolution_cause",
"bank_management_start",
"bank_management_stop",
"litigation",
"rights_offering",
"bonus_issue",
"rights_bonus_combo",
"capital_reduction",
"cb_issuance",
"bw_issuance",
"eb_issuance",
"cocobond_issuance",
"treasury_acquisition",
"treasury_disposal",
"treasury_trust_contract",
"treasury_trust_cancel",
"stock_exchange",
"company_split_merger",
"company_split",
"company_merger",
"asset_transfer_etc",
"tangible_asset_transfer",
"tangible_asset_acquisition",
"other_corp_stock_transfer",
"other_corp_stock_acquisition",
"business_transfer",
"business_acquisition",
"bond_with_stock_right_acquisition",
"bond_with_stock_right_transfer",
"overseas_listing_decision",
"overseas_delisting_decision",
"overseas_listing",
"overseas_delisting"
]
},
{
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"major_holding_5pct",
"executive_holding",
"default_occurrence",
"business_suspension",
"rehabilitation_filing",
"dissolution_cause",
"bank_management_start",
"bank_management_stop",
"litigation",
"rights_offering",
"bonus_issue",
"rights_bonus_combo",
"capital_reduction",
"cb_issuance",
"bw_issuance",
"eb_issuance",
"cocobond_issuance",
"treasury_acquisition",
"treasury_disposal",
"treasury_trust_contract",
"treasury_trust_cancel",
"stock_exchange",
"company_split_merger",
"company_split",
"company_merger",
"asset_transfer_etc",
"tangible_asset_transfer",
"tangible_asset_acquisition",
"other_corp_stock_transfer",
"other_corp_stock_acquisition",
"business_transfer",
"business_acquisition",
"bond_with_stock_right_acquisition",
"bond_with_stock_right_transfer",
"overseas_listing_decision",
"overseas_delisting_decision",
"overseas_listing",
"overseas_delisting"
]
}
}
]
},
"start": {
"description": "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 returned",
"type": "string"
},
"end": {
"description": "YYYY-MM-DD / YYYYMMDD; default today (period.end_defaulted:true)",
"type": "string"
},
"limit": {
"default": 100,
"description": "Max timeline rows, newest first by 최초 공시일. Excess cut → truncated=true, total_events = full count. Prefer narrowing start/end over raising limit.",
"type": "integer",
"minimum": 1,
"maximum": 2000
}
},
"required": [
"corp"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_registration_statement(corp, statement_type, start, end, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"corp": {
"type": "string",
"minLength": 1,
"description": "회사명/종목코드/corp_code (no all-company scan)"
},
"statement_type": {
"description": "증권신고서 type, string or array; unset = all 6. equity=지분증권(유상증자·IPO) / debt=채무증권(회사채) / depositary=증권예탁증권(DR) / merger=합병 / stock_exchange=주식의포괄적교환·이전 / division=분할. Group aliases: 'offering' (공모 3종), 'restructuring' (구조조정 3종)",
"anyOf": [
{
"type": "string",
"enum": [
"equity",
"debt",
"depositary",
"merger",
"stock_exchange",
"division"
]
},
{
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"equity",
"debt",
"depositary",
"merger",
"stock_exchange",
"division"
]
}
}
]
},
"start": {
"description": "YYYY-MM-DD / YYYYMMDD, matched on 신고서 최초접수일; default 2015-01-01 = data floor, full history (period.defaulted:true) — keep the window wide",
"type": "string"
},
"end": {
"description": "YYYY-MM-DD / YYYYMMDD; default today (period.end_defaulted:true)",
"type": "string"
},
"limit": {
"description": "Max 신고서 returned (per rcept_no, not rows), newest first; default 10. Excess → truncated=true, total_filings = full count",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"corp"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_attachments(rcept_no, dcm_no, mode, filename, index, ...)
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 — 빈 곳 ≠ 사실 없음.
Input Schema
{
"type": "object",
"properties": {
"rcept_no": {
"description": "14-digit 접수번호; separators stripped.",
"type": "string",
"pattern": "^\\d{14}$"
},
"dcm_no": {
"description": "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.",
"type": "string",
"pattern": "^\\d+$"
},
"mode": {
"description": "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).",
"type": "string",
"enum": [
"list",
"text",
"images"
],
"default": "list"
},
"filename": {
"description": "images mode: EXACT filename of the attachment PDF to scan (a miss lists available names); selects the PDF-scan route.",
"type": "string"
},
"index": {
"description": "images mode: 0-based index of the attachment to scan; filename wins if both. Selects the PDF-scan route, like filename.",
"type": "integer",
"minimum": 0
},
"sections": {
"description": "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.",
"maxItems": 24,
"type": "array",
"items": {
"type": "integer",
"minimum": 0
}
},
"truncate_at": {
"description": "mode=text 마크다운 cap in chars; default 100,000; out-of-range clamped.",
"type": "integer",
"minimum": 1000,
"maximum": 2000000
},
"pages": {
"description": "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.",
"type": "string"
},
"max_images": {
"default": 12,
"description": "images mode: max images; PDF-scan route keeps largest by area.",
"type": "integer",
"minimum": 1,
"maximum": 40
},
"image_from": {
"default": 0,
"description": "뷰어 원본 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.",
"type": "integer",
"minimum": 0
},
"min_dimension": {
"default": 24,
"description": "PDF-scan route only (뷰어 원본 JPEG unfiltered): images whose shorter side is under this many px are dropped as decoration (아이콘·괘선). Lower it to catch small 도장/서명.",
"type": "integer",
"minimum": 1
}
},
"required": [
"rcept_no"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_audit_profile(corp, year, refresh, light)
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.
Input Schema
{
"type": "object",
"properties": {
"corp": {
"type": "string",
"minLength": 1,
"description": "회사명/종목코드/corp_code"
},
"year": {
"description": "결산 사업연도 (회계연도·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).",
"type": "integer",
"minimum": 2015
},
"refresh": {
"default": false,
"description": "Bypass cache; re-collect",
"type": "boolean"
},
"light": {
"default": false,
"description": "Skip 원문 parsing — structured JSON only, fast; omits 실사 (incl. fees.headcount), 연결/별도 split, engagement_partner",
"type": "boolean"
}
},
"required": [
"corp",
"year"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_audit_report(corp, year, rcept_no, fs_div, sections, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"corp": {
"description": "회사명/종목코드/corp_code — corp+year required without rcept_no; locates the 사업보고서 (비상장: 감사보고서 F 단독공시 fallback)",
"type": "string"
},
"year": {
"description": "결산 사업연도 (회계연도·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).",
"type": "integer",
"minimum": 2015
},
"rcept_no": {
"description": "접수번호 instead of corp+year (사업보고서 or 감사보고서 F 단독공시) — resolved·applicability then null.",
"type": "string",
"pattern": "^\\d{14}$"
},
"fs_div": {
"description": "Default both = 연결(CFS)+별도(OFS) → reports[] up to 2 entries; reading only the first drops an axis.",
"type": "string",
"enum": [
"both",
"CFS",
"OFS"
]
},
"sections": {
"description": "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.",
"anyOf": [
{
"type": "string",
"enum": [
"full",
"summary"
]
},
{
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"enum": [
"opinion",
"basis",
"going_concern",
"kam",
"emphasis",
"other_matter",
"other_information",
"mgmt_resp",
"auditor_resp",
"other_reporting"
]
}
}
]
},
"truncate_at": {
"description": "Max chars per included section body (default 8,000; excess cut; out-of-range clamped). truncated=true → check char_count, re-call higher.",
"type": "integer",
"minimum": 500,
"maximum": 500000
},
"refresh": {
"default": false,
"description": "Bypass cache; re-collect (corp+year only)",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_going_concern(corp, year, fs_div, refresh)
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.
Input Schema
{
"type": "object",
"properties": {
"corp": {
"type": "string",
"minLength": 1,
"description": "회사명/종목코드/corp_code"
},
"year": {
"description": "결산 사업연도 (회계연도·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).",
"type": "integer",
"minimum": 2015
},
"fs_div": {
"description": "Default CFS (연결); OFS = 별도. No 연결 → auto fallback to 별도 (response fs_div = basis used).",
"type": "string",
"enum": [
"CFS",
"OFS"
]
},
"refresh": {
"default": false,
"description": "Bypass cache; re-collect",
"type": "boolean"
}
},
"required": [
"corp",
"year"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_internal_control(corp, year, fs_div, refresh)
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).
Input Schema
{
"type": "object",
"properties": {
"corp": {
"type": "string",
"minLength": 1,
"description": "회사명/종목코드/corp_code"
},
"year": {
"description": "결산 사업연도 (회계연도·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).",
"type": "integer",
"minimum": 2015
},
"fs_div": {
"description": "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.",
"type": "string",
"enum": [
"both",
"CFS",
"OFS"
]
},
"refresh": {
"default": false,
"description": "Bypass cache; re-collect",
"type": "boolean"
}
},
"required": [
"corp",
"year"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢search_audit_findings(year, market, fs_div, opinion, emphasis, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"year": {
"description": "결산 사업연도 (회계연도·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[].",
"anyOf": [
{
"type": "integer",
"minimum": 2015
},
{
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "integer",
"minimum": 2015
}
}
]
},
"market": {
"description": "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.",
"type": "string",
"enum": [
"kospi",
"kosdaq",
"konex",
"all",
"unlisted"
]
},
"fs_div": {
"description": "Default both = 연결(CFS)+별도(OFS) as SEPARATE rows (의견·강조·KAM·ICFR held per report) → ≤2 rows/company; dedupe corp_code to count companies.",
"type": "string",
"enum": [
"both",
"CFS",
"OFS"
]
},
"opinion": {
"description": "감사의견: unqualified=적정, qualified=한정, adverse=부적정, disclaimer=의견거절, modified=변형의견 (한정·부적정·의견거절).",
"type": "string",
"enum": [
"unqualified",
"qualified",
"adverse",
"disclaimer",
"modified"
]
},
"emphasis": {
"description": "Has 강조사항(EoM)",
"type": "boolean"
},
"other_matter": {
"description": "Has 기타사항(OM)",
"type": "boolean"
},
"kam": {
"description": "Has 핵심감사사항(KAM)",
"type": "boolean"
},
"kam_required": {
"description": "This report had to carry KAM: 적용시기 (규모·연도·시장) met AND opinion ≠ 의견거절 (감사기준서 705 문단 29; 한정·부적정 still must). false = outside phase-in, or 의견거절 (row carries kam_exempt_reason)",
"type": "boolean"
},
"kam_none_declared": {
"description": "감사보고서 explicitly declares '보고할 핵심감사사항 없음' (kam_count=0 then normal); false = undeclared or unknown",
"type": "boolean"
},
"asset_bucket": {
"description": "전기말 자산총액(별도) band = row label: gte_2tn=2조이상, gte_500bn=5천억이상 (<2조), gte_100bn=1천억이상 (<5천억), lt_100bn=1천억미만.",
"type": "string",
"enum": [
"gte_2tn",
"gte_500bn",
"gte_100bn",
"lt_100bn"
]
},
"industry": {
"description": "업종: financial=금융 (KSIC 64~66: 은행·보험·금융지주…), non_financial=비금융; 주석 XBRL·ICFR 운영의무 thresholds differ.",
"type": "string",
"enum": [
"financial",
"non_financial"
]
},
"xbrl_required": {
"description": "재무제표 주석 XBRL mandatory that year (적용시기)",
"type": "boolean"
},
"going_concern": {
"description": "감사보고서 mentions 계속기업 불확실성",
"type": "boolean"
},
"icfr_opinion": {
"description": "내부회계관리제도 의견: adverse=부적정, disclaimer=의견거절 (감사 의견거절 + 검토 검토결론 불표명 — split by row icfr.type), modified=변형 (≠ 적정).",
"type": "string",
"enum": [
"adverse",
"disclaimer",
"modified"
]
},
"icfr_material_weakness": {
"description": "Has 내부회계관리제도 중요한 취약점",
"type": "boolean"
},
"auditor": {
"description": "감사인명 partial match (e.g. 삼정)",
"type": "string"
},
"limit": {
"default": 200,
"description": "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.",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"fields": {
"default": "full",
"description": "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.",
"type": "string",
"enum": [
"full",
"brief"
]
},
"include_reference": {
"default": false,
"description": "Attach the 적용시기 참조표 (KAM·ICFR·XBRL 주석·자금부정통제 phase-in schedule, ~4.8KB) — only when 법령 근거 text is needed.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_valuation_data(kind, corp, index, rate_series, start, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"market",
"wacc",
"peers"
],
"description": "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."
},
"corp": {
"description": "회사명·종목코드·corp_code. market: 개별 종목 시세 (exactly one of corp·index·rate_series); wacc: REQUIRED, the subject company; peers: target (동업종 peers auto-selected)",
"type": "string"
},
"index": {
"description": "[market] 시장지수 kospi·kosdaq (KOSPI·코스피 etc. accepted). Not with corp·rate_series",
"type": "string"
},
"rate_series": {
"description": "[market] 시장금리: ktb* = 국고채, corp_* = 회사채 3년 (AA-·BBB-; pyeong = 민평), cd91 = CD 91일. Not with corp·index",
"type": "string",
"enum": [
"ktb1y",
"ktb2y",
"ktb3y",
"ktb5y",
"ktb10y",
"ktb20y",
"ktb30y",
"ktb50y",
"corp_aa_3y",
"corp_aa_pyeong_3y",
"corp_bbb_3y",
"cd91"
]
},
"start": {
"description": "[market] YYYYMMDD or YYYY-MM-DD; default end − 1 year",
"type": "string"
},
"end": {
"description": "[market] Default: latest 적재일",
"type": "string"
},
"freq": {
"description": "[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 deltas",
"type": "string",
"enum": [
"daily",
"weekly",
"monthly"
]
},
"beta_spec": {
"description": "[wacc] β: 2w = 2년 주간 (default), 5m = 5년 월간",
"type": "string",
"enum": [
"2w",
"5m"
]
},
"rf_tenor": {
"description": "[wacc] Rf(무위험이자율) tenor (default 10y)",
"type": "string",
"enum": [
"3y",
"5y",
"10y"
]
},
"credit_rating": {
"description": "[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",
"type": "string",
"enum": [
"AAA",
"AA+",
"AA0",
"AA-",
"A+",
"A0",
"A-",
"BBB+",
"BBB0",
"BBB-",
"BB+",
"BB0",
"BB-",
"B+",
"B0",
"B-"
]
},
"kd_tenor": {
"description": "[wacc] Kd(타인자본비용) tenor (default 5y)",
"type": "string",
"enum": [
"1y",
"2y",
"3y",
"5y",
"7y",
"10y"
]
},
"kd": {
"description": "[wacc] Kd directly, % p.a. 세전 (e.g. 4.5); overrides credit_rating·kd_tenor",
"type": "number"
},
"mrp": {
"description": "[wacc] MRP override, decimal; default 0.08 = midpoint of 한국공인회계사회 가이던스 7~9%",
"type": "number"
},
"srp_scheme": {
"description": "[wacc] 규모위험 프리미엄(SRP) 분위체계 (default quintile)",
"type": "string",
"enum": [
"quintile",
"tercile",
"none"
]
},
"srp": {
"description": "[wacc] SRP override, decimal; skips 분위 판정",
"type": "number"
},
"target_de": {
"description": "[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 βL",
"type": "number"
},
"equity_basis": {
"description": "[wacc] E(자기자본 시가): listed (자기주식 포함)·outstanding (자기주식 제외)·outstanding_plus_nci (default, +비지배지분); also β-unlevering D/E",
"type": "string",
"enum": [
"listed",
"outstanding",
"outstanding_plus_nci"
]
},
"include_pref": {
"description": "[wacc] Add 우선주 시총 into E (default true)",
"type": "boolean"
},
"ksic": {
"description": "[peers] KSIC 업종코드 instead of corp (비상장 target) or overriding corp's 업종; e.g. '26410'",
"type": "string"
},
"exclude": {
"description": "[peers] spac·reit·loss (LTM 순손실)·financial (KSIC 64~66). Default [spac, reit]; a given value replaces it",
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"size_band": {
"description": "[peers] Keep peers within N× the target's 시총 (10 = 1/10~10x; min 2); ignored without corp",
"type": "number"
},
"yq": {
"description": "[wacc·peers] 평가기준 분기 YYYYQn (e.g. 2026Q2, lowercase q OK); default latest snapshot",
"type": "string"
},
"tax_rate": {
"description": "[wacc·peers] 한계법인세율, decimal; default 0.264 (24%×1.1). Also Hamada t (beta.unlevered·beta_unlev)",
"type": "number"
},
"limit": {
"description": "[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)",
"type": "number"
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence