dart-risk-mcp
Analyze DART disclosures for unfair-trading risk signals and related governance, financial, and market facts without scoring, grading, or investment advice.
Analyze company-level risk, build event timelines, check disclosure anomalies, and scan market-wide disclosure presets.
Inspect individual disclosures: risk, major decisions, CB/BW/EB terms, board conflicts, originals, sections, and note searches.
Track capital structure, fund usage, debt balances, affiliate investments, insider trading, shareholders, executive pay, and report revisions.
Compare financial statements, scan financial anomalies, track turnover trends, review audit-opinion history/text, and read unlisted-company audit reports.
Find actor overlap across 2–5 companies, manage watchlists, and look up known actors from an opt-in public-record registry.
Add market reaction context from KRX/KIS and retrieve risk precedents, company info, and disclosure lists.
Integrates with the Korean DART (Data Analysis, Retrieval and Transfer) financial disclosure system to detect unfair trading risk signals, enabling AI agents to analyze company disclosures, track insider trading, monitor capital structure changes, scan market-wide disclosures, and compare financial anomalies.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dart-risk-mcp 삼성전자 최근 공시 위험 분석해줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
dart-risk-mcp
개인 작업용. DART 공시를 흐름으로 읽어 불공정거래 신호를 사실로 표기하는 MCP 서버.
하는 일
공시를 한 건씩 조회하는 대신 흐름과 연결로 읽는다. 공시 제목·원문·구조화 데이터에서 신호(CB·BW 발행, 최대주주 변경, 감사의견, 자금 유출 등)를 뽑고, 여러 신호가 겹치는 패턴과 그 뒤의 행위자(누가 돈을 댔나)를 사실로 적는다. 점수·등급은 매기지 않고 투자 판단도 하지 않는다.
회사 단위 —
analyze_company_risk(신호·복합 패턴·CB 인수자 종합) ·build_event_timeline(시간순 흐름) ·check_disclosure_anomaly(정정·감사·조회공시 등 공시 구조 지표)공시 한 건 —
check_disclosure_risk·get_major_decision(양수도·합병의 상대방·규모·외부평가) ·get_mezzanine_terms(CB·BW·EB 발행 조건) ·check_board_conflict(특수관계 거래를 결의한 이사의 겸직)자금·자본 —
track_capital_structure(증자·감자·메자닌·희석) ·track_fund_usage(조달 자금의 계획과 집행) ·track_debt_balance(채무증권 잔액·만기) ·get_affiliate_investments(타법인 출자)사람 —
find_actor_overlap(여러 회사의 임원 겸직·공통 인수자) ·track_insider_trading(최대주주·임원 지분 변동) ·get_shareholder_info·get_executive_compensation·manage_watchlist·lookup_known_actor재무·감사 —
scan_financial_anomaly·track_turnover_trend·get_financial_summary·get_financial_statements_full·compare_financials·get_audit_opinion_history·get_audit_opinion_text·list_report_revisions·get_unlisted_financials(비상장사 감사보고서 원문)시장 —
search_market_disclosures(시장 전체 공시를 신호 유형별로 스캔) ·track_market_reaction(공시 전후 시세·거래량·시장경보)원문 —
list_disclosures_by_stock(공시 목록·접수번호) ·get_disclosure_document·list_disclosure_sections·view_disclosure·search_notes_in_report(주석 본문 검색)참고 —
get_company_info·find_risk_precedents(신호 유형의 뜻과 금감원 적발 사례)
Related MCP server: Korean DART MCP
돌리기
pip install -e .
python -m dart_risk_mcp{
"mcpServers": {
"dart-risk": {
"command": "python",
"args": ["-m", "dart_risk_mcp"],
"env": { "DART_API_KEY": "..." }
}
}
}DART_API_KEY필수KRX_API_KEY·KIS_APP_KEY+KIS_APP_SECRET선택 — 시세 대조용(KRX 먼저, 빈 날은 KIS)
메모
설계·실측 근거는 전부
CLAUDE.md보류한 판단은
docs/DEFERRED-DECISIONS.md뷰어 소스는
docs/tool/테스트는 키 없이:
env -u DART_API_KEY python -m pytest tests/ -q골든 재생성:
python scripts/regen_goldens.py릴리스 순서:
CLAUDE.md「릴리스 정책」
MIT. 일부 로직은 kreports-dart-mcp(Apache 2.0)에서 이식 — THIRD_PARTY_NOTICES.md.
Available Tools
35 toolsanalyze_company_riskA
기업명 또는 종목코드로 공시 기반 불공정거래 위험 신호를 분석한다.
공개기록 레지스트리(opt-in)가 설정돼 있고 이 회사가 등재 행위자의 관련기업으로 태깅된 경우, 리포트 말미에 공개기록 참고 섹션이 추가된다.
Args: company_name: 기업명 (예: "에코프로") 또는 종목코드 6자리 (예: "086520") lookback_years: 조회 기간(년). 기본 1년, 1~5년 범위. 1년을 넘으면 원문 사실 블록 없이 신호·패턴·타임라인만 담은 "지도"가 된다 — 특정 구간을 깊게 보려면 from_date/to_date로 좁혀 다시 조회한다. from_date: 조회 시작일(선택). "2024-01-01"·"20240101" 형식. 주면 lookback_years는 무시된다. to_date: 조회 종료일(선택). 미지정 시 오늘. from_date만 주면 그날부터 오늘까지, to_date만 주면 그날 기준 1년.
Inputs: company_name (required), to_date, from_date, lookback_days, +1 more. Returns: result
build_event_timelineA
기업의 공시 이벤트를 시간순으로 정렬해 조작 흐름의 서사를 구성한다.
각 이벤트를 진입기(자금 조달/경영권 진입), 심화기(지배구조 변화), 탈출기(의심/수사/부실) 단계로 분류하고, 알려진 위기 패턴과 매칭한다.
공개기록 레지스트리(opt-in)가 설정돼 있고 이 회사가 등재 행위자의 관련기업으로 태깅된 경우, 리포트 말미에 공개기록 참고 섹션이 추가된다.
Args: company_name: 기업명 (예: "에코프로") 또는 종목코드 6자리 (예: "086520") lookback_years: 조회 기간(년). 기본 1년, 1~5년 범위. 1년을 넘으면 원문 사실 블록 없이 신호·패턴·타임라인만 담은 "지도"가 된다. from_date: 조회 시작일(선택). "2024-01-01"·"20240101" 형식. 주면 lookback_years는 무시된다. to_date: 조회 종료일(선택). 미지정 시 오늘. from_date만 주면 그날부터 오늘까지, to_date만 주면 그날 기준 1년.
Inputs: company_name (required), to_date, from_date, lookback_days, +1 more. Returns: result
check_board_conflictA
주요사항보고서 거래의 상대방이 최대주주·특수관계인일 때, 그 결의에 참여한 이사가 상대방·대상회사 임원을 겸하는지 공시 범위에서 대조합니다.
결정 공시 원문(상대방·대표자·이사회결의일) → 정기보고서 「이사회의 주요 의결사항」 표(이사별 찬반 표기) → 임원현황(직위·주요경력·최대주주와의 관계)을 엮어 사실로 나열합니다. 비상장 상대방 임원은 공시 기재(대표자·발행사 임원 주요경력)로만 확인되므로 등기부로 보완해야 합니다. 이사회의사록 첨부는 읽지 않습니다. 의결표의 「-」는 불참과 제척을 가르지 않아 표기 그대로 적습니다. 판정·점수·등급은 없습니다.
1차 대상 유형: 타법인 주식·영업·유형자산 양수·양도 결정, 금전대여·채무보증· 담보제공, 특수관계인 자금거래. CB·BW·유상증자 발행대상자 유형은 범위 밖입니다.
Args: company_name: 기업명, 종목코드 6자리 또는 corp_code 8자리. rcept_no: 결정 공시 접수번호 14자리(선택). 주면 그 한 건만 확인하고 lookback_days는 무시합니다. lookback_days: 접수번호가 없을 때의 조회 창(일). 기본 180, 1~730. 해당 유형의 정정·태그 없는 공시 중 최근 6건까지 원문을 열어, 상대방 관계 표기가 최대주주·특수관계인인 건을 최대 3건 대조합니다.
Inputs: company_name (required), rcept_no, lookback_days. Returns: result
check_disclosure_anomalyA
공시 구조 지표 5종의 건수·비율을 집계해 사실 요약을 반환합니다.
정정공시 비율·감사의견 이슈·공시의무 위반·자본 스트레스·조회공시 빈도 5개 지표를 나열합니다. 위험도를 정량화하거나 등급화하지 않습니다(v0.8.5 원칙).
Args: company_name: 기업명 또는 종목코드 lookback_years: 조회 기간(년). 기본 1년, 1~5년 범위.
Returns: 지표별 탐지 건수·근거 공시명 텍스트 (점수·등급 없음)
Inputs: company_name (required), lookback_days, lookback_years. Returns: result
check_disclosure_riskB
DART 공시 접수번호 또는 공시 제목으로 해당 공시의 위험도를 분석한다.
Args: rcept_no: DART 접수번호 14자리 (예: "20240315000123") report_name: 공시 제목 (접수번호 없을 때 사용, 예: "전환사채권발행결정")
Inputs: rcept_no, report_name. Returns: result
compare_financialsA
여러 기업의 재무제표를 나란히 비교한다 (최대 20개 기업 · 최대 10개 연도).
매출액·영업이익·당기순이익·자산총계·부채총계를 기본으로 내고, accounts로
좁힐 수 있다. year_to를 주면 그 구간을 연도별로 조회해 시계열로 낸다.
⚠ 조회 콜은 회사 수와 무관하게 연도 수만큼이다 — fnlttMultiAcnt가
corp_code를 콤마로 묶어 한 번에 받는다(실측 2026-09-11: 20개사 1콜 606행,
누락 0). 연도 폭 상한 10이 곧 콜 상한이다.
Args:
company_names: 비교할 기업명 목록 (220개).
year: 사업연도 4자리. 미입력 시 직전 연도.
year_to: 구간의 끝 사업연도. 주면 yearyear_to를 시계열로 낸다.
report_type: "annual" | "half" | "q1" | "q3".
accounts: 계정명 부분일치 목록. 미지정이면 응답의 전 계정.
Inputs: company_names (required), year, year_to, accounts, +1 more. Returns: result
find_actor_overlapA
여러 기업(2~5개)의 임원 겸직과 CB/BW/EB·유상증자 인수자를 비교해 공통 행위자(세력)를 탐지한다.
⚠ 실제로는 임원 겸직이 주 산출물이다. 인수자 쪽은 원문 ZIP을 열어야 해 기업당 CB 3건 + 유상증자 3건으로 상한이 걸린다 — CB를 열 번 스무 번 굴린 회사에서는 최근 3건만 본다(상한에 걸리면 「N건 중 3건 조회 · M건 미조회」로 분모를 적는다). 반면 임원현황은 사업연도 단위 명부를 다년 합집합으로 받아 상한이 없다. 무자본 M&A 세력은 인수마다 새 SPC·조합을 만들어 조합명이 매번 다르지만 사람 이름은 고정점이라, 겸직 쪽이 더 자주 걸린다.
임원은 등기·미등기를 가리지 않고 수집하며 회사별 직위·등기 여부를 함께 표기한다(동명이인을 눈으로 가릴 수 있게 하는 사실 표기이며 필터가 아니다).
DART API 제약상, 분석 대상 기업을 직접 지정해야 한다. "행위자 이름으로 역검색"은 현재 불가능하다.
CB/BW/EB 공시(CB_BW, EB 신호)와 유상증자 공시(3PCA, RIGHTS_UNDER 신호)를 모두 수집해 인수자를 통합 비교하며, 공통 행위자에는 출처 태그 (CB / 유상증자 / 임원)를 표시한다.
무자본 M&A 세력은 인수 시점에 CB를 한 번 박은 뒤 수년에 걸쳐 리픽싱·차환으로 굴리므로, 신규 CB 발행결정 공시는 과거에 몰린다. lookback_years로 조회 윈도우를 넓혀야 단년 창에 안 잡히는 다년 공통 인수자를 포착할 수 있다.
Args:
company_names: 비교할 기업명 또는 종목코드 목록 (25개, 예: ["에코프로", "바이오제닉스"])
lookback_years: 조회 기간(년). 기본 1년(하위호환), 15년 범위.
watchlist: 저장된 워치리스트 인물명. 지정 시 해당 회사군을 company_names와
합집합으로 분석한다 (manage_watchlist로 관리).
Inputs: watchlist, company_names, lookback_years. Returns: result
find_risk_precedentsC
신호 유형 조합으로 해당 신호의 특성과 위험 해석을 반환한다.
Args: signal_types: 신호 유형 목록 (예: ["CB_BW", "3PCA", "SHAREHOLDER"]) lookback_days: 참고용 (현재 버전에서는 사용되지 않음)
Inputs: signal_types (required), lookback_days. Returns: result
get_affiliate_investmentsA
타법인 출자현황을 조회합니다 — 이 회사가 어떤 법인들에 돈을 넣었는지.
피출자 법인명·출자목적·최초취득일·최초취득금액·기초 장부가액·
증감(취득·처분)·증감(평가)·기말 장부가액·기말 지분율·피투자사
최근 순이익을 사실로 나열합니다. 기초와 증감을 함께 실어야 「그해에
전액을 털었다」가 보입니다 — 기말만 보면 그 건은 - 한 글자입니다.
무자본 M&A 세력의 SPC·자회사망 추적, 특수관계자 자산 공동화 패턴
확인에 활용합니다.
Args: company_name: 기업명 또는 종목코드(6자리). year: 사업연도(예: "2024"). 빈 값이면 직전 연도.
Returns: 출자 내역 표(기초·기말 장부가액 중 큰 값 기준 상위 30건) + 요약 사실 (전액 상각·처분 건수 포함) + 단위 유의 안내. 원문의 합계 행은 제외합니다.
Inputs: company_name (required), year. Returns: result
get_audit_opinion_historyA
감사의견·감사인 교체·비감사용역 이력을 조회합니다.
연도별 의견 결과와 감사인 교체를 봅니다. 감사인이 그 의견에 무엇이라고
썼는지(의견근거·계속기업 관련 불확실성·강조사항·핵심감사사항)는 구조화
응답에 없고 원문에 있습니다 — **get_audit_opinion_text**가 그 문장을
원문 그대로 인용합니다.
DART OpenAPI 3개 엔드포인트(accnutAdtorNmNdAdtOpinion,
adtServcCnclsSttus, accnutAdtorNonAdtServcCnclsSttus)를 결합해
연도별 감사의견·감사인·보수 경고 신호를 한글 서술로 반환합니다.
Args: company_name: 기업명 또는 종목코드(6자리). lookback_years: 1~10(밖이면 5로 강제).
Returns: 감사의견 표·감사인 교체 이력·비감사용역 계약 건수 텍스트.
Inputs: company_name (required), lookback_years. Returns: result
get_audit_opinion_textA
감사보고서 원문에서 감사인이 쓴 문장을 그대로 읽는다.
감사의견·의견근거·계속기업 관련 불확실성·강조사항·핵심감사사항·기타사항을
원문 그대로 인용한다. 연도별 의견과 감사인 교체 이력은
get_audit_opinion_history가 낸다 — 이력·교체는 그쪽, 감사인이 뭐라고
썼는지는 이 도구다.
Args: company_name: 기업명 또는 종목코드 6자리. year: 사업연도 4자리. 빈 값이면 직전 연도. scope: "consolidated"(연결감사보고서) | "separate"(감사보고서).
Returns: 절별 유무 표와 원문 인용. 판정·점수·등급은 붙이지 않는다 — 계속기업 절이 있다는 사실과 그 문단을 보여줄 뿐이다.
Inputs: company_name (required), year, scope. Returns: result
get_company_infoB
기업 개요를 조회한다 (대표자, 업종, 설립일, 상장 구분 등).
Args: company_name: 기업명 (예: "삼성전자") 또는 종목코드 6자리 (예: "005930")
Inputs: company_name (required). Returns: result
get_disclosure_documentA
DART 공시 접수번호로 공시 원문 전체를 조회한다.
한 번의 호출로 원문 내용과 수록 파일 목록을 반환한다. 긴 문서는 max_chars로 제한하며, 잘린 경우 안내 메시지가 표시된다. 더 긴 문서나 특정 섹션을 읽으려면 list_disclosure_sections / view_disclosure 를 사용한다.
Args: rcept_no: DART 접수번호 14자리 (예: "20240315000123") max_chars: 최대 반환 글자수 (기본 8000, 최대 20000)
Inputs: rcept_no (required), max_chars. Returns: result
get_executive_compensationB
임원 보수 현황을 조회합니다 (불공정거래 탐지 참고 자료).
이사·감사 전체 보수·개인별 보수·미등기임원 보수·이사감사 개인별· 주총 승인 한도 5개 섹션을 반환합니다.
Args: company_name: 기업명 또는 종목코드 year: 사업연도 (기본값: 직전 연도) report_type: annual(사업) | half(반기) | q1(1분기) | q3(3분기)
Returns: 임원 보수 4섹션 텍스트
Inputs: company_name (required), year, report_type. Returns: result
get_financial_statements_fullA
재무제표의 전체 계정을 원문 순서·원문 계정명 그대로 낸다.
get_financial_summary는 주요 계정만 낸다 — 훑을 때는 그쪽이 낫다.
매출원가·판매비와관리비·금융수익·금융원가·기타이익·기타손실·지분법손익
처럼 그 요약에 없는 줄이 필요할 때 이 도구를 쓴다.
Args: company_name: 기업명 또는 종목코드 6자리. year: 사업연도 4자리. 빈 값이면 직전 연도. report_type: "annual" | "half" | "q1" | "q3". fs_div: "CFS"(연결) | "OFS"(별도). CFS가 비면 OFS로 한 번 더 시도하고 어느 쪽을 썼는지 밝힌다. statement: 빈 값이면 재무상태표·손익·현금흐름표. "BS" | "IS" | "CIS" | "CF" | "SCE" 중 하나로 좁힐 수 있다. ⚠ **"IS"는 손익계산서와 포괄손익계산서를 둘 다 고른다 — 포괄손익계산서 하나만 내는 회사가 있어 글자대로 받으면 0행이 된다.
Returns: 재무제표별 표(계정명 · 당기 · 전기 · 전전기). 계정 순서와 계정명은 원문 그대로이며 판정·점수·등급은 붙이지 않는다.
Inputs: company_name (required), year, fs_div, statement, +1 more. Returns: result
get_financial_summaryA
기업의 주요 재무제표를 조회한다 (매출, 영업이익, 순이익, 자산, 부채).
훑어볼 때 쓴다 — 이 API(fnlttSinglAcnt)는 주요 계정만 준다(실측 CSA 코스믹
2025에서 계정명 14종). 매출원가·판매비와관리비·금융수익·금융원가·기타이익·
기타손실·지분법손익처럼 **여기 없는 줄이 필요하면
get_financial_statements_full**이 전체 계정을 원문 순서 그대로 낸다.
Args: company_name: 기업명 (예: "삼성전자") 또는 종목코드 6자리 year: 사업연도 4자리 (예: "2024"). 미입력 시 직전 연도 report_type: 보고서 유형 — "annual"(사업보고서), "half"(반기), "q1"(1분기), "q3"(3분기)
Inputs: company_name (required), year, report_type. Returns: result
get_major_decisionA
DS005 주요사항보고서 12종 결정 공시(양수도·합병·분할·교환)를 구조화 필드로 조회한다. related_party_hollowing·delisting_evasion 패턴의 경로 추적에 사용.
Args: rcept_no: 14자리 접수번호 decision_type: 결정 유형 (미지정 시 지원 타입 안내). business_acq | business_div | tangible_acq | tangible_div | stock_acq | stock_div | bond_acq | bond_div | merger | demerger | demerger_merger | stock_exchange corp_code: DART 기업 코드 8자리. 권장 — DART API가 rcept_no 단독 호출을 거부하는 엔드포인트가 있어 정확한 조회를 위해 corp_code 전달을 권장한다. 미지정 시 rcept_no 단독 폴백을 시도하나 일부 결정 유형은 빈 결과가 반환될 수 있다.
Inputs: rcept_no (required), corp_code, decision_type. Returns: result
get_mezzanine_termsA
CB·BW·EB 발행결정 한 건의 발행 조건을 표로 낸다.
전환가액·리픽싱 하한·잠재 희석·이자율·청구기간·자금용도를 공시 원문
구조화 응답에서 그대로 읽는다. 회사 전체를 훑는
track_capital_structure·analyze_company_risk와 달리 접수번호 하나만
본다 — 취재에서는 이쪽이 더 자주 필요하다.
Args: rcept_no: DART 접수번호 14자리(발행결정 공시). corp_code: DART 기업코드 8자리. 권장 — DS005 계열은 DART 스펙상 corp_code가 사실상 필수다. 비우면 접수번호로 역해석한다.
Returns: 발행 조건 표. 맨 위에 잠재 희석률과 리픽싱 하한을 둔다. ⚠ EB는 서식에 리픽싱 항목 자체가 없다 — 「조항 없음」과 구분해 적는다. 판정·점수·등급은 붙이지 않는다.
Inputs: rcept_no (required), corp_code. Returns: result
get_unlisted_financialsA
비상장 외부감사대상 법인의 재무제표·주석을 감사보고서 원문에서 읽는다.
OpenDART 재무제표 API는 정기보고서 제출 법인 위주라 비상장사는 자료가
없다. 감사보고서는 공시되므로 그 원문에서 재무제표와 주석을 꺼낸다.
상장사라면 get_financial_summary가 구조화 데이터를 주므로 그쪽이 낫다.
Args: company_name: 기업명. 동명 법인이 있으면 후보를 보여 주고 되묻는다 (되물을 때 안내하는 corp_code 8자리를 그대로 넣어도 된다). year: 사업연도(예: "2025"). 빈 값이면 가장 최근 감사보고서. ⚠ 공시 제목의 괄호 연도이며 접수일이 아니다 — 2025 사업연도 보고서는 2026년에 접수된다. scope: "consolidated"(연결감사보고서) | "separate"(감사보고서). section: "fs"(재무제표) | "notes"(주석 목차) | "all".
Returns: 감사보고서 출처(접수번호·제출 회계법인·법인구분)와 요청 구간. 주석 참조번호 열은 원문에 있으면 그대로 남긴다 — 숫자에서 주석으로 건너뛰는 통로다. 판정·점수·등급은 붙이지 않는다.
Inputs: company_name (required), year, scope, section. Returns: result
list_disclosures_by_stockA
종목코드·기업명·기업코드로 최근 공시의 접수번호(rcept_no) 목록을 조회한다.
반환된 접수번호는 get_disclosure_document, view_disclosure, check_disclosure_risk 등에 바로 사용할 수 있다. 종목코드가 없는 회사 (상장을 준비하는 비상장사 등)도 기업명이나 기업코드로 조회된다 — 증권신고서·투자설명서의 접수번호를 여기서 찾는다.
Args: stock_code: 종목코드 6자리(예: "086520"), 기업명(예: "데스틴파워"), 또는 DART 기업코드 8자리(예: "01135039"). 같은 이름의 법인이 여럿이면 조회하지 않고 기업코드 목록을 보여 준다. lookback_years: 조회 기간(년). 기본 1년, 1~5년 범위.
Inputs: stock_code (required), to_date, from_date, lookback_days, +1 more. Returns: result
list_disclosure_sectionsA
DART 공시 원문의 목차(섹션 구조)를 조회한다.
view_disclosure 호출 전에 이 도구로 섹션 ID와 분량을 먼저 확인하면 좋다.
Args: rcept_no: DART 접수번호 14자리 (예: "20240315000123")
Inputs: rcept_no (required). Returns: result
list_report_revisionsA
한 사업연도의 정기보고서 판본을 늘어놓는다 (원본 + 정정본).
같은 보고서가 여러 번 접수된다. 재무 숫자를 기사에 옮길 때 원본을 봤는지 최종 정정본을 봤는지가 갈리는데, 지금까지 그걸 볼 수단이 없었다.
⚠ 어느 판본이 옳다고 판정하지 않는다. 존재하는 판본을 사실대로 늘어놓고 이 도구·이 서버가 어느 것을 기본으로 쓰는지 규칙만 밝힌다. 정정본이 오히려 최종 확정 정보를 담는 경우가 있어 「정정 = 오류」로 읽히는 말을 쓰지 않는다.
Args: company_name: 기업명 또는 종목코드 6자리. year: 사업연도 4자리. 빈 값이면 직전 연도. report_type: "annual"(사업보고서) | "half"(반기) | "q1" · "q3"(분기).
Returns: 접수일 순 판본 목록과, 그중 DART 재무 API가 실제로 내주는 판본 표시.
Inputs: company_name (required), year, report_type. Returns: result
lookup_known_actorA
인물명으로 공개기록 레지스트리를 조회한다 (사실 표기 — 판정 아님).
출처가 명확한 공개기록(DART 임원현황·CB/유상증자 인수 등)에 그 인물이 어느 상장사에 등장했는지를 사실로만 반환한다. 위험 판정·점수·등급은 부여하지 않으며, 동명이인 가능성과 원본 확인 필요를 함께 고지한다.
Args: name: 조회할 인물명
Inputs: name (required). Returns: result
manage_watchlistA
감시 대상 인물↔회사군 워치리스트를 관리한다 (list / show / add / remove).
DART는 인물명 역검색이 불가능해 회사 목록을 직접 입력해야 한다. 자주 보는 인물의 연관 회사군을 저장해두면 find_actor_overlap(watchlist=인물명)으로 바로 재조회할 수 있다. 회사군은 사용자가 직접 채운다(예: find_actor_overlap의 임원 겸직 결과를 add).
Args: action: "list" | "show" | "add" | "remove" person: 인물명 (show/add/remove에 필요) companies: 회사명 목록 (add에 필요, 기존과 합집합 병합) note: 메모 (add 시 선택)
Inputs: action (required), note, person, companies. Returns: result
scan_financial_anomalyA
재무제표 4개 지표(매출채권·재고자산·현금흐름·자본잠식)를 전년 대비로 비교해 분식·부실 초기 조짐을 탐지합니다. 발생액 비율(사실 표기)과 연결/별도 당기순이익 비교(별도>연결 역전 시 종속회사 합산 손실 플래그)를 함께 표기합니다.
Args: company_name: 기업명 또는 종목코드(6자리). year: 사업연도(예: "2024"). 빈 값이면 직전 연도. report_type: "annual"(사업보고서) | "half"(반기) | "q1" | "q3".
Returns: 지표별 당기/전기/Δ 표 + 이상 징후별 쉬운 설명 텍스트.
Inputs: company_name (required), year, report_type. Returns: result
search_market_disclosuresA
시장 전체 공시에서 preset에 해당하는 위험 신호를 일괄 스캔한다.
기업명을 지정하지 않고 전체 상장사 공시를 조회하므로, 특정 위험 신호가 시장에 얼마나 확산되어 있는지 조기경보로 활용할 수 있다.
사용법:
"최근 7일 동안 CB/BW 발행 공시 전수": search_market_disclosures("cb_issue", 7)
"최근 30일 자사주 취득 결정": search_market_disclosures("treasury", 30)
"최근 14일 감자 공시": search_market_disclosures("reverse_split", 14)
Args: preset: 신호 프리셋 — cb_issue / treasury / reverse_split / 3pca / shareholder_change / exec_change / audit_issue / asset_transfer / going_concern / delisting / embezzle / inquiry / fund_outflow / all_risk days: 조회 기간 (기본 7일, 최대 90일). from_date/to_date를 주면 무시된다. max_results: 최대 반환 건수 (기본 50, 최대 200) from_date: 조회 시작일(선택). "2024-01-01"·"20240101" 형식. to_date: 조회 종료일(선택). 미지정 시 오늘. confirm_long: 창이 길어 오래 걸리는 조회를 실제로 실행할지. 미지정 상태로 긴 창을 요청하면 예상 소요와 함께 안내만 반환한다.
Inputs: preset (required), days, to_date, from_date, +2 more. Returns: result
search_notes_in_reportA
공시 한 건의 주석 본문을 낱말로 찾아 앞뒤 문맥과 함께 보여준다.
⚠ 이것은 보고서 한 건 안에서만 도는 검색이다. 「전 상장사에서 이런 주석이 있는 회사를 찾아줘」는 이 도구로 안 된다 — 그러려면 전 회사 주석을 미리 훑어 둔 색인 DB가 있어야 한다. 회사를 먼저 고른 뒤 그 회사의 접수번호로 부르는 순서다.
Args:
rcept_no: DART 접수번호 14자리. 비상장 법인은
get_unlisted_financials가 알려주는 감사보고서 접수번호를 쓰고,
상장사는 list_disclosures_by_stock으로 고른다.
terms: 찾을 낱말 목록. 띄어쓰기는 무시하고 찾으므로
「영업권손상차손」 하나만 넣어도 원문의 「영업권 손상차손」이
걸린다(실측: 「매입채무및기타채무」가 8곳 → 15곳). 원문 표기가
검색어와 다르면 결과에 그 표기를 함께 보여 준다.
각 원소 안의 세로줄(|)은 OR이라 뜻이 같은 다른 표현을
묶을 때 쓴다 — ["판매후리스|세일앤리스백"].
세로줄은 낱말 구분자이고 정규식이 아니다(괄호·별표가 든
회계 용어를 그대로 찾는다).
mode: "all"(모든 원소가 함께 있는 주석만) | "any"(하나라도).
context_chars: 적중 앞뒤로 함께 낼 글자 수(기본 600).
Returns: 적중한 주석의 번호·제목과 발췌. 판정·점수·등급은 붙이지 않는다.
Inputs: terms (required), rcept_no (required), mode, context_chars. Returns: result
track_capital_structureA
자본 이벤트(증자·감자·자사주·CB/BW/EB/RCPS 등)를 시간순으로 집계해 '자본 주무르기' 리듬을 탐지합니다.
Args: company_name: 기업명 또는 종목코드(6자리). lookback_years: 1~5(밖이면 3으로 강제).
Returns: 이벤트 총수·12개월 집중도·연도별 집계·시계열·플래그 텍스트.
Inputs: company_name (required), lookback_years. Returns: result
track_debt_balanceA
미상환 채무증권 5종 잔액을 조회합니다.
회사채·단기사채·기업어음·신종자본증권·조건부자본증권 잔액과 1년 이내 만기 비중을 집계해 한글 서술로 반환합니다.
Args: company_name: 기업명 또는 종목코드(6자리). year: 사업연도(YYYY). 비우면 직전 연도.
Returns: 종류별 잔액 표 + 만기 1년 이내 비중 텍스트.
Inputs: company_name (required), year. Returns: result
track_fund_usageB
공모/사모 자금 사용내역(계획 vs 실제)을 조회해 조달자금 유용· 목적외 사용 신호를 탐지한다. zombie_ma·fake_new_biz 패턴의 핵심 증거.
Args: company_name: 기업명 또는 6자리 종목코드 lookback_years: 조회 연도 수 (1~5, 기본 3)
Inputs: company_name (required), lookback_years. Returns: result
track_insider_tradingB
최대주주·5% 대량보유자의 지분 변동 시계열을 분석합니다.
보유 비율(Δ) 변화로 매수·매도 클러스터를 탐지합니다.
Args: company_name: 기업명 또는 종목코드 lookback_years: 조회 연수 (기본값 2년, 최대 5년)
Returns: 보고자별 지분 변동 테이블 + 클러스터 알림
Inputs: company_name (required), lookback_years. Returns: result
track_market_reactionA
공시 전후 시장 반응(KRX·한국투자증권 시세, KIND 시장경보)을 사실로 표기한다.
시세 원천은 KRX_API_KEY(일자별 시총·회전율 포함) 또는 한국투자증권
KIS_APP_KEY·KIS_APP_SECRET(원주가 일봉) 중 하나면 된다. 둘 다 있으면 KRX가
먼저이고 KRX가 못 받은 날만 KIS로 메운다.
DART 공시만으로는 "무슨 일이 있었는가"까지만 안다 — 이 도구는 그 전후로 시세·거래량·회전율이 어떻게 움직였는지를 붙인다. 점수·등급은 매기지 않는다(v0.8.5) — 임계값·판정 어휘("급등"·"급락"·"이상"·"과열" 등) 없이 등락률·배수·회전율·일수만 적는다. 신호·패턴 입력으로 쓰지 않는다.
Args: company_name: 기업명 (예: "에코프로") 또는 종목코드 6자리 lookback_years: 조회 기간(년). 기본 1년, 1~5년 범위. rcept_no를 주면 무시된다. from_date: 조회 시작일(선택). "2024-01-01"·"20240101" 형식. to_date: 조회 종료일(선택). 미지정 시 오늘. rcept_no: 공시 접수번호 하나만 볼 때(선택) — 그 건 전후 10거래일만 본다. 주면 lookback_years/from_date/to_date는 무시된다.
Inputs: company_name (required), to_date, rcept_no, from_date, +2 more. Returns: result
track_turnover_trendA
매출채권·재고자산·매입채무·운전자본·총자산 회전율을 다년(기말잔액 기준)으로 추적하고, 분자·분모(매출·매출원가·매출채권 등)의 전년 대비 변화와 현금전환 주기(CCC)를 사실로 표기합니다. 임계값·판정 없음(v0.8.5 원칙).
Args: company_name: 기업명 또는 종목코드(6자리). lookback_years: 1~5(밖이면 3으로 강제).
Returns: 연도별 회전율 표 + 분자·분모 내역 + 관찰된 사실(단조 추세·부호 변화· 분자분모 괴리) + CCC 텍스트.
Inputs: company_name (required), lookback_years. Returns: result
view_disclosureA
DART 공시 원문을 조회한다. 섹션 지정 또는 페이지 단위로 전체 원문을 읽을 수 있다.
사용법:
list_disclosure_sections(rcept_no) → 목차/섹션 ID 확인
view_disclosure(rcept_no, section_id="f0s2") → 특정 섹션 읽기
view_disclosure(rcept_no, page=2) → 다음 페이지로 순차 읽기
Args: rcept_no: DART 접수번호 14자리 (예: "20240315000123") section_id: 섹션 ID (list_disclosure_sections 결과 참조, 비워두면 전체 문서) page: 페이지 번호 (기본 1) page_size: 페이지당 글자 수 (기본 4000, 범위 1000~8000)
Inputs: rcept_no (required), page, page_size, section_id. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 35 tools
Most tools target a clearly distinct resource+action (e.g. get_financial_summary vs get_financial_statements_full, get_audit_opinion_history vs get_audit_opinion_text are explicitly cross-referenced and separated). Two residual overlaps exist: get_disclosure_document vs view_disclosure both return raw disclosure text, and analyze_company_risk vs build_event_timeline both emit company-level signal/pattern/timeline reports. Descriptions largely resolve these, so an agent can pick correctly with care.
Every tool follows snake_case verb_noun (check_disclosure_anomaly, track_capital_structure, get_shareholder_info, search_market_disclosures, etc.), with no camelCase or bare-noun outliers. Verb variety (get/track/check/scan/find) is domain-motivated rather than chaotic.
35 tools is well past the heavy threshold; the surface spans financials, disclosures, capital events, actor networks, market scanning, and board conflicts in one server. While the domain is genuinely broad and most tools earn their place, an agent faces a large selection space and several near-neighbors could be consolidated (document viewing trio, risk report vs timeline).
Coverage is unusually deep for DART-based risk analysis: disclosure listing/viewing/sections, summary+full+comparative+unlisted financials, capital structure, debt, insider/shareholder data, audit opinions (history and raw text), executive pay, market-wide presets, market reaction, and actor overlap. Minor gaps remain (e.g. no dedicated litigation/legal-proceeding or ownership-graph tool), but no major dead ends.
Maintenance
Related MCP Connectors
Powerful OpenDART API-based Korean corporate disclosure tools for accounting professionals
Korean (DART/KIND) and US SEC filings with AI summaries, direction labels and market reaction.
Search company disclosures and financial statements from the Korean market. Retrieve stock profile…
DART — Korea's Data Analysis, Retrieval and Transfer System. The Korean equivalent of SEC EDGAR.…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables investors and analysts to query Korean listed companies' financial health, accounting risks, and disclosure events using DART filings, accessible via natural language through Claude.2Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search Korean DART corporate disclosures, financial statements, ownership filings, and fully parsed XBRL, while converting HWP/PDF attachments into markdown. It also provides analyst-style frames such as insider trading signals, accounting-risk scoring, and Buffett-style quality checklists for comparing companies.544 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to query Korean OpenDART electronic disclosure data — disclosures, financials, equity, and XBRL — through 15 consolidated tools, including insider-trading signals, accounting-risk scoring, Buffett-style quality checklists, and HWP/PDF attachment-to-Markdown conversion.544 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search and analyze Korean OpenDART electronic disclosures, financial statements, equity filings, and XBRL data through a compressed set of enum-based tools, including insider-trading cluster signals, 0-100 accounting risk scoring, and Buffett-style quality checklists. It also converts DART XML and HWP/PDF report attachments into readable markdown for direct document analysis.544 npmMIT