dart-risk-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DART_API_KEY | Yes | Your DART API key from opendart.fss.or.kr |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| analyze_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년. |
| check_disclosure_riskB | DART 공시 접수번호 또는 공시 제목으로 해당 공시의 위험도를 분석한다. Args: rcept_no: DART 접수번호 14자리 (예: "20240315000123") report_name: 공시 제목 (접수번호 없을 때 사용, 예: "전환사채권발행결정") |
| find_risk_precedentsC | 신호 유형 조합으로 해당 신호의 특성과 위험 해석을 반환한다. Args: signal_types: 신호 유형 목록 (예: ["CB_BW", "3PCA", "SHAREHOLDER"]) lookback_days: 참고용 (현재 버전에서는 사용되지 않음) |
| 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년. |
| lookup_known_actorA | 인물명으로 공개기록 레지스트리를 조회한다 (사실 표기 — 판정 아님). 출처가 명확한 공개기록(DART 임원현황·CB/유상증자 인수 등)에 그 인물이 어느 상장사에 등장했는지를 사실로만 반환한다. 위험 판정·점수·등급은 부여하지 않으며, 동명이인 가능성과 원본 확인 필요를 함께 고지한다. Args: name: 조회할 인물명 |
| 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 시 선택) |
| 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: 비교할 기업명 또는 종목코드 목록 (2 |
| list_disclosures_by_stockA | 종목코드로 최근 공시의 접수번호(rcept_no) 목록을 조회한다. 반환된 접수번호는 get_disclosure_document, view_disclosure, check_disclosure_risk 등에 바로 사용할 수 있다. Args: stock_code: 종목코드 6자리 (예: "086520") lookback_years: 조회 기간(년). 기본 1년, 1~5년 범위. |
| get_disclosure_documentA | DART 공시 접수번호로 공시 원문 전체를 조회한다. 한 번의 호출로 원문 내용과 수록 파일 목록을 반환한다. 긴 문서는 max_chars로 제한하며, 잘린 경우 안내 메시지가 표시된다. 더 긴 문서나 특정 섹션을 읽으려면 list_disclosure_sections / view_disclosure 를 사용한다. Args: rcept_no: DART 접수번호 14자리 (예: "20240315000123") max_chars: 최대 반환 글자수 (기본 8000, 최대 20000) |
| list_disclosure_sectionsA | DART 공시 원문의 목차(섹션 구조)를 조회한다. view_disclosure 호출 전에 이 도구로 섹션 ID와 분량을 먼저 확인하면 좋다. Args: rcept_no: DART 접수번호 14자리 (예: "20240315000123") |
| view_disclosureA | DART 공시 원문을 조회한다. 섹션 지정 또는 페이지 단위로 전체 원문을 읽을 수 있다. 사용법:
Args: rcept_no: DART 접수번호 14자리 (예: "20240315000123") section_id: 섹션 ID (list_disclosure_sections 결과 참조, 비워두면 전체 문서) page: 페이지 번호 (기본 1) page_size: 페이지당 글자 수 (기본 4000, 범위 1000~8000) |
| get_company_infoB | 기업 개요를 조회한다 (대표자, 업종, 설립일, 상장 구분 등). Args: company_name: 기업명 (예: "삼성전자") 또는 종목코드 6자리 (예: "005930") |
| get_financial_summaryA | 기업의 주요 재무제표를 조회한다 (매출, 영업이익, 순이익, 자산, 부채). 훑어볼 때 쓴다 — 이 API( Args: company_name: 기업명 (예: "삼성전자") 또는 종목코드 6자리 year: 사업연도 4자리 (예: "2024"). 미입력 시 직전 연도 report_type: 보고서 유형 — "annual"(사업보고서), "half"(반기), "q1"(1분기), "q3"(3분기) |
| compare_financialsA | 여러 기업의 재무제표를 나란히 비교한다 (최대 20개 기업 · 최대 10개 연도). 매출액·영업이익·당기순이익·자산총계·부채총계를 기본으로 내고, ⚠ 조회 콜은 회사 수와 무관하게 연도 수만큼이다 — Args:
company_names: 비교할 기업명 목록 (2 |
| get_shareholder_infoA | 기업의 최대주주 및 5% 이상 대량보유자 현황을 조회한다. Args: company_name: 기업명 (예: "삼성전자") 또는 종목코드 6자리 year: 사업연도 4자리 (예: "2024"). 미입력 시 직전 연도 |
| get_affiliate_investmentsA | 타법인 출자현황을 조회합니다 — 이 회사가 어떤 법인들에 돈을 넣었는지. 피출자 법인명·출자목적·최초취득일·최초취득금액·기초 장부가액·
증감(취득·처분)·증감(평가)·기말 장부가액·기말 지분율·피투자사
최근 순이익을 사실로 나열합니다. 기초와 증감을 함께 실어야 「그해에
전액을 털었다」가 보입니다 — 기말만 보면 그 건은 Args: company_name: 기업명 또는 종목코드(6자리). year: 사업연도(예: "2024"). 빈 값이면 직전 연도. Returns: 출자 내역 표(기초·기말 장부가액 중 큰 값 기준 상위 30건) + 요약 사실 (전액 상각·처분 건수 포함) + 단위 유의 안내. 원문의 합계 행은 제외합니다. |
| search_market_disclosuresA | 시장 전체 공시에서 preset에 해당하는 위험 신호를 일괄 스캔한다. 기업명을 지정하지 않고 전체 상장사 공시를 조회하므로, 특정 위험 신호가 시장에 얼마나 확산되어 있는지 조기경보로 활용할 수 있다. 사용법:
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: 창이 길어 오래 걸리는 조회를 실제로 실행할지. 미지정 상태로 긴 창을 요청하면 예상 소요와 함께 안내만 반환한다. |
| get_executive_compensationB | 임원 보수 현황을 조회합니다 (불공정거래 탐지 참고 자료). 이사·감사 전체 보수·개인별 보수·미등기임원 보수·이사감사 개인별· 주총 승인 한도 5개 섹션을 반환합니다. Args: company_name: 기업명 또는 종목코드 year: 사업연도 (기본값: 직전 연도) report_type: annual(사업) | half(반기) | q1(1분기) | q3(3분기) Returns: 임원 보수 4섹션 텍스트 |
| track_insider_tradingB | 최대주주·5% 대량보유자의 지분 변동 시계열을 분석합니다. 보유 비율(Δ) 변화로 매수·매도 클러스터를 탐지합니다. Args: company_name: 기업명 또는 종목코드 lookback_years: 조회 연수 (기본값 2년, 최대 5년) Returns: 보고자별 지분 변동 테이블 + 클러스터 알림 |
| get_audit_opinion_historyA | 감사의견·감사인 교체·비감사용역 이력을 조회합니다. 연도별 의견 결과와 감사인 교체를 봅니다. 감사인이 그 의견에 무엇이라고
썼는지(의견근거·계속기업 관련 불확실성·강조사항·핵심감사사항)는 구조화
응답에 없고 원문에 있습니다 — ** DART OpenAPI 3개 엔드포인트( Args: company_name: 기업명 또는 종목코드(6자리). lookback_years: 1~10(밖이면 5로 강제). Returns: 감사의견 표·감사인 교체 이력·비감사용역 계약 건수 텍스트. |
| track_debt_balanceA | 미상환 채무증권 5종 잔액을 조회합니다. 회사채·단기사채·기업어음·신종자본증권·조건부자본증권 잔액과 1년 이내 만기 비중을 집계해 한글 서술로 반환합니다. Args: company_name: 기업명 또는 종목코드(6자리). year: 사업연도(YYYY). 비우면 직전 연도. Returns: 종류별 잔액 표 + 만기 1년 이내 비중 텍스트. |
| check_disclosure_anomalyA | 공시 구조 지표 5종의 건수·비율을 집계해 사실 요약을 반환합니다. 정정공시 비율·감사의견 이슈·공시의무 위반·자본 스트레스·조회공시 빈도 5개 지표를 나열합니다. 위험도를 정량화하거나 등급화하지 않습니다(v0.8.5 원칙). Args: company_name: 기업명 또는 종목코드 lookback_years: 조회 기간(년). 기본 1년, 1~5년 범위. Returns: 지표별 탐지 건수·근거 공시명 텍스트 (점수·등급 없음) |
| track_fund_usageB | 공모/사모 자금 사용내역(계획 vs 실제)을 조회해 조달자금 유용· 목적외 사용 신호를 탐지한다. zombie_ma·fake_new_biz 패턴의 핵심 증거. Args: company_name: 기업명 또는 6자리 종목코드 lookback_years: 조회 연도 수 (1~5, 기본 3) |
| 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 단독 폴백을 시도하나 일부 결정 유형은 빈 결과가 반환될 수 있다. |
| scan_financial_anomalyA | 재무제표 4개 지표(매출채권·재고자산·현금흐름·자본잠식)를 전년 대비로 비교해 분식·부실 초기 조짐을 탐지합니다. 발생액 비율(사실 표기)과 연결/별도 당기순이익 비교(별도>연결 역전 시 종속회사 합산 손실 플래그)를 함께 표기합니다. Args: company_name: 기업명 또는 종목코드(6자리). year: 사업연도(예: "2024"). 빈 값이면 직전 연도. report_type: "annual"(사업보고서) | "half"(반기) | "q1" | "q3". Returns: 지표별 당기/전기/Δ 표 + 이상 징후별 쉬운 설명 텍스트. |
| track_capital_structureA | 자본 이벤트(증자·감자·자사주·CB/BW/EB/RCPS 등)를 시간순으로 집계해 '자본 주무르기' 리듬을 탐지합니다. Args: company_name: 기업명 또는 종목코드(6자리). lookback_years: 1~5(밖이면 3으로 강제). Returns: 이벤트 총수·12개월 집중도·연도별 집계·시계열·플래그 텍스트. |
| track_turnover_trendA | 매출채권·재고자산·매입채무·운전자본·총자산 회전율을 다년(기말잔액 기준)으로 추적하고, 분자·분모(매출·매출원가·매출채권 등)의 전년 대비 변화와 현금전환 주기(CCC)를 사실로 표기합니다. 임계값·판정 없음(v0.8.5 원칙). Args: company_name: 기업명 또는 종목코드(6자리). lookback_years: 1~5(밖이면 3으로 강제). Returns: 연도별 회전율 표 + 분자·분모 내역 + 관찰된 사실(단조 추세·부호 변화· 분자분모 괴리) + CCC 텍스트. |
| get_unlisted_financialsA | 비상장 외부감사대상 법인의 재무제표·주석을 감사보고서 원문에서 읽는다. OpenDART 재무제표 API는 정기보고서 제출 법인 위주라 비상장사는 자료가
없다. 감사보고서는 공시되므로 그 원문에서 재무제표와 주석을 꺼낸다.
상장사라면 Args: company_name: 기업명. 동명 법인이 있으면 후보를 보여 주고 되묻는다 (되물을 때 안내하는 corp_code 8자리를 그대로 넣어도 된다). year: 사업연도(예: "2025"). 빈 값이면 가장 최근 감사보고서. ⚠ 공시 제목의 괄호 연도이며 접수일이 아니다 — 2025 사업연도 보고서는 2026년에 접수된다. scope: "consolidated"(연결감사보고서) | "separate"(감사보고서). section: "fs"(재무제표) | "notes"(주석 목차) | "all". Returns: 감사보고서 출처(접수번호·제출 회계법인·법인구분)와 요청 구간. 주석 참조번호 열은 원문에 있으면 그대로 남긴다 — 숫자에서 주석으로 건너뛰는 통로다. 판정·점수·등급은 붙이지 않는다. |
| search_notes_in_reportA | 공시 한 건의 주석 본문을 낱말로 찾아 앞뒤 문맥과 함께 보여준다. ⚠ 이것은 보고서 한 건 안에서만 도는 검색이다. 「전 상장사에서 이런 주석이 있는 회사를 찾아줘」는 이 도구로 안 된다 — 그러려면 전 회사 주석을 미리 훑어 둔 색인 DB가 있어야 한다. 회사를 먼저 고른 뒤 그 회사의 접수번호로 부르는 순서다. Args:
rcept_no: DART 접수번호 14자리. 비상장 법인은
Returns: 적중한 주석의 번호·제목과 발췌. 판정·점수·등급은 붙이지 않는다. |
| get_mezzanine_termsA | CB·BW·EB 발행결정 한 건의 발행 조건을 표로 낸다. 전환가액·리픽싱 하한·잠재 희석·이자율·청구기간·자금용도를 공시 원문
구조화 응답에서 그대로 읽는다. 회사 전체를 훑는
Args: rcept_no: DART 접수번호 14자리(발행결정 공시). corp_code: DART 기업코드 8자리. 권장 — DS005 계열은 DART 스펙상 corp_code가 사실상 필수다. 비우면 접수번호로 역해석한다. Returns: 발행 조건 표. 맨 위에 잠재 희석률과 리픽싱 하한을 둔다. ⚠ EB는 서식에 리픽싱 항목 자체가 없다 — 「조항 없음」과 구분해 적는다. 판정·점수·등급은 붙이지 않는다. |
| get_financial_statements_fullA | 재무제표의 전체 계정을 원문 순서·원문 계정명 그대로 낸다.
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: 재무제표별 표(계정명 · 당기 · 전기 · 전전기). 계정 순서와 계정명은 원문 그대로이며 판정·점수·등급은 붙이지 않는다. |
| list_report_revisionsA | 한 사업연도의 정기보고서 판본을 늘어놓는다 (원본 + 정정본). 같은 보고서가 여러 번 접수된다. 재무 숫자를 기사에 옮길 때 원본을 봤는지 최종 정정본을 봤는지가 갈리는데, 지금까지 그걸 볼 수단이 없었다. ⚠ 어느 판본이 옳다고 판정하지 않는다. 존재하는 판본을 사실대로 늘어놓고 이 도구·이 서버가 어느 것을 기본으로 쓰는지 규칙만 밝힌다. 정정본이 오히려 최종 확정 정보를 담는 경우가 있어 「정정 = 오류」로 읽히는 말을 쓰지 않는다. Args: company_name: 기업명 또는 종목코드 6자리. year: 사업연도 4자리. 빈 값이면 직전 연도. report_type: "annual"(사업보고서) | "half"(반기) | "q1" · "q3"(분기). Returns: 접수일 순 판본 목록과, 그중 DART 재무 API가 실제로 내주는 판본 표시. |
| get_audit_opinion_textA | 감사보고서 원문에서 감사인이 쓴 문장을 그대로 읽는다. 감사의견·의견근거·계속기업 관련 불확실성·강조사항·핵심감사사항·기타사항을
원문 그대로 인용한다. 연도별 의견과 감사인 교체 이력은
Args: company_name: 기업명 또는 종목코드 6자리. year: 사업연도 4자리. 빈 값이면 직전 연도. scope: "consolidated"(연결감사보고서) | "separate"(감사보고서). Returns: 절별 유무 표와 원문 인용. 판정·점수·등급은 붙이지 않는다 — 계속기업 절이 있다는 사실과 그 문단을 보여줄 뿐이다. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 33 tools
The toolset covers a wide range of DART-related analyses; many tools target distinct resources (disclosures, financials, actors, capital events), but several pairs like get_audit_opinion_history vs get_audit_opinion_text, or get_financial_summary vs get_financial_statements_full are borderline and require careful reading of descriptions to distinguish. There is also potential confusion between analyze_company_risk, check_disclosure_anomaly, build_event_timeline, and find_risk_precedents, though descriptions clarify the differences.
Most tools follow a verb_noun or noun_verb pattern (e.g., find_actor_overlap, track_capital_structure, get_financial_summary), but some use only nouns (manage_watchlist is an action-noun mix, list_disclosures_by_stock is noun_verb). There are also inconsistencies like search_notes_in_report vs search_market_disclosures. The naming is generally readable but not fully systematic.
With 33 tools, this server is on the heavy side and contains many overlapping or niche functions that could be consolidated or grouped. For a risk analysis toolkit, this volume increases selection complexity and cognitive load.
The toolset covers a broad spectrum of DART-based risk analysis: financials, disclosures, actors, capital events, audit opinions, market scanning. However, some potential gaps exist: no direct tool for searching actors by name (explicitly noted as impossible), and the watchlist management is limited. Still, it provides comprehensive coverage for its domain.