Skip to main content
Glama

get_audit_report

Read-onlyIdempotent

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 with none_declared: declared "없음" = normal; undeclared = 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

TableJSON Schema
NameRequiredDescriptionDefault
corpNo회사명/종목코드/corp_code (required when rcept_no is absent). corp+year auto-locates the 사업보고서, falling back to the 감사보고서 F 단독공시 for unlisted companies; results on that path are cached
yearNo결산 사업연도 (회계연도, fiscal year) — the number you pass IS the 사업연도=회계연도=결산연도. Do NOT subtract it; pass it as-is. Only tools where year is optional auto-select the latest published year when omitted (if year is required in the tool you are calling, it cannot be omitted — confirm the year actually used via the response `year` field).e.g. 'FY2025'·'2025년 재무제표'·'2025 사업보고서'·'2025 회계연도' → all 2025 (결산일 2025-12-31). Convert ONLY when the user explicitly names the 공시(제출)연도, as in '○○년에 공시된 보고서': a 12월 결산법인 files by the end of March of the following year.(e.g. '2026년에 공시된 사업보고서' → 2025). Otherwise the input is ALWAYS on a 사업연도=회계연도=결산연도 basis. Relative expressions ('최근 N개년'·'작년' and the like) count back from the most recent PUBLISHED 사업연도 as of today: a 사업보고서 is filed within about 90 days after 결산 (12월 결산 법인 → March of the following year), so from April the latest is last year, and in Jan~Mar it is the year before last. e.g. if today is 2026-06 the latest is FY2025 → '최근 5개년'=2021~2025 (NOT 2020~2024). Supported floor is FY2015 (the range OpenDART's structured APIs cover) — 2014 and earlier are rejected. A 비12월 결산 (3·6·9월) 법인 may have its latest 사업연도 equal to the calendar year (e.g. a 3월 결산 company from July onward).
fs_divNoboth (default — 연결+별도 both)/연결(CFS)/별도(OFS). Aliases consolidated/separate·연결/별도 also accepted. With both, reports[] holds 2 entries — reading only the first drops an axis.
refreshNoBypass the cache and re-collect (corp+year path only)
rcept_noNo접수번호 given directly (instead of corp/year) — parses that filing live (never cached) and returns resolved/applicability as null. A 감사보고서제출(F) 단독공시 works too.
sectionsNoWhich section BODIES to include. full (default) = every section. summary = the paragraphs that carry a finding — 의견(opinion)·KAM·강조(emphasis)·기타(other_matter)·계속기업(going_concern), plus 의견근거(basis) ONLY when the opinion is not 적정 (for 적정 that paragraph is boilerplate: p50 575 bytes with almost no variance across 27,067 reports; for 한정/부적정/의견거절 it is the reason itself, 2.5~3.1x longer). Or pass an explicit key array, e.g. ["opinion","kam"]; [] = 목차만. Keys: opinion·basis·going_concern·kam·emphasis·other_matter·other_information·mgmt_resp·auditor_resp·other_reporting. Unselected sections are NOT dropped — they stay as {key, heading, char_count, body_omitted:true} so you can re-request them. The structured fields (opinion·kam.matters titles·emphasis·other_matters·going_concern_mentioned) are ALWAYS returned regardless of this argument.
truncate_atNoMax length per section body (default 8,000 chars; the excess is cut, out-of-range values are clamped to the bound). On truncated=true check char_count and re-call with a higher value. Applies only to sections whose body is included — see `sections`.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description meaningfully adds behavioral context beyond those: it explains the 'body_omitted:true' semantics (section exists but body not requested, not absent), disclosure rules about unlisted F 단독공시 legitimately lacking KAM, and the behavior of 'kam.count=0 with none_declared' (declared 없음 normal vs undeclared suspect). It also reveals cache behavior via refresh and rcept_no annotations, which is beyond the basic annotation hints. A small gap: it doesn't describe pagination or network failure behavior, but the added detail is substantial, so 4 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a model of structured front-loading: it opens with a one-sentence purpose summary with a bullet list, then uses labeled sections ([Purpose], [Usage], [Response], [Rules]) that each contain dense but relevant information. Every sentence earns its place — e.g., the rules section bundles the most decision-relevant operational caveats (body_omitted, none_declared, internal_control verdict-only) in compact form. There is no padding or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 params, 10 section keys, conditional behaviors) and the fact that there is no output schema, the description is remarkably complete. It covers: what the response structure looks like (sections[].key, fs_label, source_note, correction_note), edge-case interpretations (kam.count=0 with none_declared), unlisted-company caveats, the body_omitted contract, and where to route other needs (download_document, get_internal_control). No output schema exists, so the description's response-structure coverage is essential and well done.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3 per rubric. The description adds meaningful semantic value beyond the schema: it maps natural-language intent to parameters ('삼부토건 FY2024 별도 의견거절 근거 원문' → corp='삼부토건', year=2024, fs_div='OFS'), explains the sections argument's selection and body_omitted mechanics, and gives truncate_at usage guidance ('잘리면 truncate_at 상향'). It also clarifies the years semantics in the schema itself. This lifts it above baseline 3, though not to 5 because the schema already carries detailed per-parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('returns'), a precise resource ('audit report body structured by paragraph'), and explicitly lists the section types ('감사의견·감사의견근거·KAM·강조사항·기타사항·계속기업가정불확실성'). It distinguishes itself from sibling tools by name ('get_audit_profile', 'get_internal_control'), so an agent can identify this tool as the verbatim-paragraph audit report tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides detailed, explicit when-to-use guidance: it contrasts with 'structured fact summaries' (get_audit_profile) and ICFR detail (get_internal_control), gives concrete query-to-parameter examples ('LG에너지솔루션 2024 KAM 문단 전문' → corp='LG에너지솔루션', year=2024), and includes conditional advice such as '발견사항만 → sections="summary"; 잘리면 truncate_at 상향'. This exceeds the bar for usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Every tool targets a distinct aspect of the DART disclosure domain: full text, attachments, financial figures, audit facts, audit narrative, ICFR, going concern, company profile, events, periodic report sections, XBRL, valuation, usage stats, and two search entry points. Overlaps are resolved by explicit cross-references and clear purpose statements (e.g., get_audit_profile vs get_audit_report vs get_internal_control). No ambiguity remains.

Naming Consistency5/5

All 16 tools follow a consistent snake_case verb_noun pattern, with get_ for data retrieval, search_ for list queries, find_ for ID resolution, and download_ for the one document fetch. There is no mixing of camelCase, action words, or stylistic inconsistency. The pattern is immediately predictable.

Tool Count5/5

16 tools is slightly above the typical 3–15 range but fully justified by the breadth of DART (Korea's electronic disclosure system) – covering company lookup, filings, financials, audit reports, internal control, going concern, events, periodic reports, attachments, XBRL, valuation, and usage stats. Each tool address a distinct functional need, and no tool feels redundant or extraneous. The scope is comprehensive yet not bloated.

Completeness5/5

The tool surface covers the full lifecycle of disclosure data access: finding entities (find_corp_code), locating filings (search_disclosures), retrieving financials (get_financials, get_xbrl), reading full text (download_document), fetching attachments (get_attachments), and drilling into audit-related details (get_audit_profile, get_audit_report, get_internal_control, get_going_concern). Periodic report sections (28 types) and corporate events cover governance and capital changes. No obvious dead ends or missing critical operations for a read-only disclosure access server.

Resources