korean-dart-mcp
Click on "Install 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., "@korean-dart-mcp삼성전자 최근 1년 내부자 거래 분석"
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.
Korean DART MCP
OpenDART 83개 API를 15개 도구로. 공시·재무·지분·XBRL + 버핏급 애널리스트 프레임(내부자 시그널·회계 리스크·퀄리티 체크리스트) + HWP/PDF 첨부 마크다운화를 AI 어시스턴트에서 바로 사용.
금융감독원 OpenDART 전자공시 기반 MCP 서버 + CLI. Claude Desktop, Cursor, Windsurf, Claude Code 등에서 바로 사용 가능.
자매 프로젝트: korean-law-mcp (법제처 41 API → 15 도구)
English documentation → README-EN.md
⚡ 30초 설치 — 한 줄로 끝
macOS / Linux / Windows 공용. Node.js 20.19+ 만 깔려있으면 됩니다.
npx -y korean-dart-mcp setup대화형 마법사가 띄웁니다:
OpenDART 인증키 입력 (없으면 Enter — 나중에 설정 가능, 여기서 무료 발급)
사용 중인 AI 클라이언트 번호 선택 (Claude Desktop / Cursor / Claude Code / Windsurf / VS Code / Gemini CLI / Zed / Antigravity — 설치된 건
[감지됨]표시)설정 파일 자동 패치 → 클라이언트 재시작
Windows 도 자동으로 cmd /c npx 래핑해줘서 npx not found 이슈 해결됨. 수동 JSON 편집 불필요.
수동 설정을 원하면 아래 설치 및 사용법 섹션 참고.
Related MCP server: opendart-mcp-server
v0.9 — 무엇이 새로운가
get_xbrl format="markdown_full"— presentation/calculation linkbase 를 파싱해 전체 계정 + 계층 구조 + 합산 검증. 기존markdown의 whitelist 50태그 대비 BS 50+ / IS 15+ / CF 10+ 전부 커버. 금융지주DXprefix 등 업종별 택소노미 자동 대응. 6MB XBRL → ~30-60KB 마크다운.search_disclosures90일 자동분할 —corp_code미지정 + 기간 90일 초과 시 자동으로 90일 청크 분할 (OpenDART "전체시장 3개월 제약" 우회). 최대 40 chunks(≈10년).insider_signal/disclosure_anomalysummary_text— 한국어 자동 요약문 필드 추가. LLM 이 원시 테이블 뽑기 전 한 줄로 맥락 파악.보안 하드닝 (v0.9.1) — ZIP slip / ZIP bomb 방어 공용 헬퍼, HTTPS 뷰어 스크래핑, chunks 상한, presentation 재귀 depth 가드, XBRL 파싱 경고 노출.
💡 주식에 관심 많은 일반인이 쓸 수 있는 5가지
증권사 앱만으론 아쉬운 개미 투자자 기준 킬러 유스케이스. Claude 에게 프롬프트로 그냥 말하면 됨.
1. 내 보유종목 "경영진 눈치게임"
"삼성전자 최근 1년 임원·대주주 매수/매도 보고 어때?"→ insider_signal 이 매수 vs 매도 클러스터 시그널로 집계. 실측: 매수 2,429 vs 매도 43 → strong_buy_cluster (경영진이 자기 돈으로 사고 있음).
HTS 에선 공시 하나하나 뒤져야 알 수 있는 것을 한 줄 프롬프트로.
2. "이 회사 회계 뭐 수상한 거 없나"
"카카오 최근 3년 회계 리스크 점수 뽑아줘"→ disclosure_anomaly 로 0-100 스코어 + verdict(clean/watch/warning/red_flag). 실측: 카카오 40점 warning — 정정공시 32.8% 가 임계 초과. 개인이 수동으로 확인 불가능한 리스크 플래그를 자동 탐지.
3. "사업보고서 300쪽 읽기 싫어"
"삼성전자 2023 사업보고서에서 '위험요소'·'주요 사업' 섹션 요약"→ get_attachments(mode="extract") 가 PDF 2.2MB → 마크다운 92만 자로 변환 (3.7초). Claude 가 섹션별로 직접 검색·요약. 증권사 리포트 없이도 원본 읽기 가능.
4. "오늘 이런 공시 낸 회사 누구?"
"최근 30일 자기주식 취득 결정한 상장사 전부"
"최근 일주일 유상증자·CB 발행 공시 회사"
"최근 30일 합병·분할 결정 공시"→ search_disclosures(preset=...) 22개 프리셋. 자기주식 취득 = 주가 부양 시그널 / 유상증자·CB = 희석 경계. 실측: 최근 30일 자기주식 취득 59건. HTS 에서 놓치는 배치 정보를 한 번에.
5. "A랑 B 중 뭐가 더 튼튼해"
"삼성전자 · SK하이닉스 · LG전자 5년 ROE·부채·성장성 비교"→ buffett_quality_snapshot(corps=[...]) 이 5지표 자동 랭킹. 실측 (위 실전 시나리오 1 표 참고): SK하이닉스 3/4 체크 통과, 부채 안정성은 삼성 압도적. 종목 고를 때 감각 의존 대신 수치 근거.
이런 사람에게 딱
본인 보유 종목 5-20개 있고 분기·반기마다 공시 점검하는 중급 개미
뉴스 해석 말고 원본 공시 직접 보고 싶은 사람 (기자 편향 싫어하는 타입)
네이버 금융·HTS 정보 부족해서 답답한 사람
증권사 리포트 안 사고 직접 기업 분석하고 싶은 사람
이런 사람한텐 오버스펙
차트 보고 들어가는 단타 — 이 도구엔 차트·실시간 주가 없음
코스피 ETF 만 사는 장투 — 개별 종목 분석 필요 없음
Excel·Python 으로 DataFrame 돌리는 퀀트 — OpenDartReader·dart-fss 가 나음 (pandas 네이티브)
솔직한 진입 장벽
Claude Desktop / Cursor 설치 + OpenDART 키 발급 (10분, 무료, 일 20,000건)
ROE · CAGR · 부채비율 용어는 알아야 결과 이해 가능
Claude Pro 구독 $20/월 (대용량 PDF 요약엔 컨텍스트 넉넉한 상위 플랜이 편함)
이 도구는 리서치 보조용. 투자 판단은 본인이.
실전 시나리오 — 실제 API 호출 결과
아래 결과는 실제 DART API 를 때려 얻은 실측값. 전부 scripts/showcase-v0_9_1.mjs 로 재현 가능 (12/12 PASS).
1. 버핏식 5년 퀄리티 비교 + 자동 랭킹
프롬프트: "삼성전자·SK하이닉스·LG전자 최근 5년 퀄리티 지표 비교해줘"
→ buffett_quality_snapshot(corps=["삼성전자","SK하이닉스","LG전자"], years=5)
기업 | 평균 ROE | 최근 D/E | 매출 CAGR | 순이익 CAGR | 체크리스트 |
삼성전자 | 10.39% | 29.94% | 4.51% | 3.17% | 1/4 |
SK하이닉스 | 12.86% | 45.95% | 22.6% | 45.37% | 3/4 |
LG전자 | 5.37% | 140.33% | 4.81% | -3.63% | 0/4 |
자동 생성 랭킹 (5지표별):
ROE: SK하이닉스(12.86) > 삼성전자(10.39) > LG전자(5.37)
부채 안정성: 삼성전자(29.94) > SK하이닉스(45.95) > LG전자(140.33)
순이익 CAGR: SK하이닉스(45.37) > 삼성전자(3.17) > LG전자(-3.63)
ROE 일관성 (stddev ↓): LG전자(2.09) > 삼성전자(3.91) > SK하이닉스(18.44)
2. 경영진이 본인 돈으로 매수하고 있는가 (insider_signal)
프롬프트: "삼성전자 최근 1년 내부자 거래 매수/매도 클러스터"
→ insider_signal(corp="삼성전자", start="2025-04-18", end="2026-04-18")
삼성전자: 2,473건 보고 (매수 2,429 / 매도 43).
고유 매수자 1,047명 vs 매도자 40명, 순매수 +2,302,375주.
→ strong_buy_cluster 시그널.
최강 클러스터: 2026Q1 (매수 985명/매도 18명).버핏 철학의 "경영진이 본인 돈으로 매수하는가" 를 한 호출로 정량화. 최근 24:1 매수 우세.
3. 회계·거버넌스 리스크 스코어 (disclosure_anomaly)
프롬프트: "카카오 최근 3년 회계 리스크"
→ disclosure_anomaly(corp="카카오")
카카오 (2023-04~2026-04): ⚠️ 경고, 점수 40/100
- 정정공시 167/509건 (32.8%) ← 임계(20%) 초과로 +30점
- 자본 스트레스 공시 5건 ← +10점
- verdict: warning정정공시·감사인 교체·비적정 의견·자본 스트레스 4개 축을 0-100 스코어로 집계 + 개별 flag 의 evidence 구조화. LLM 은 스토리만 만들면 됨.
4. XBRL 전체 계정 + 계산 검증 (v0.9 markdown_full)
프롬프트: "삼성전자 2023 사업보고서 재무제표 전체 계정 뽑아줘"
→ get_xbrl(rcept_no="20240312000736", format="markdown_full")
기간: 당기 2023-12-31 / 전기 2022-12-31 / 전전기 2021-12-31
계정 수: BS 52행 · IS 18행 · CF 12행 (whitelist 모드의 17/13/7행 대비 3배)
마크다운 크기: 8,905자 (원본 XBRL 6MB → 99.85% 절감)
계산 검증: ✅ 모두 일치 (0 건 위반)
taxonomy roles: presentation 10개 · calculation 8개
소요: 615ms계산 검증 자동화가 핵심 — calculation linkbase 의 summation-item 관계로 "부모=자식 합산"을 검증해서 공시 오기재를 즉시 탐지.
5. 업종별 택소노미 자동 대응 (금융지주)
프롬프트: "신한지주 최신 사업보고서 재무제표 전체"
→ 내부적으로 search_disclosures 로 rcept_no 찾고 → get_xbrl(format="markdown_full")
신한지주 2025 사업보고서 (rcept_no=20260318000826)
BS 44행 · IS 49행
계산 검증 위반: 3건 (금융업 특유 항목)
→ DX prefix (금융지주 전용) taxonomy 를 코드 변경 없이 자동 처리dart-fss 도 XBRL ZIP 은 받지만 금융업 DX prefix 택소노미 자동 대응은 문서에 명시되어있지 않음. 업종별 커버리지는 이 MCP 의 강점.
6. 최근 30일 자기주식 취득 결정 상장사 전수
프롬프트: "최근 30일 자기주식 취득 결정한 상장사 전부"
→ search_disclosures(preset="treasury_buy", days=30, limit=500)
매칭 공시 59건 / 8페이지 병렬 수집 (17.5초)
최신 5건:
2026-04-17 티플랙스 — 자기주식취득신탁계약해지결정
2026-04-17 엠투엔 — 자기주식취득결정
2026-04-17 PS일렉트로닉스 — 자기주식취득신탁계약해지결정
2026-04-15 아세아 — 자기주식취득신탁계약해지결정
2026-04-15 아세아시멘트 — 자기주식취득신탁계약해지결정22개 프리셋이 pblntf_ty + report_nm 정규식을 자동 조립. LLM 이 DART 코드를 외울 필요 없음.
7. 전체시장 180일 공시 (90일 자동분할, v0.9)
프롬프트: "최근 6개월 사업보고서 낸 회사 전부"
→ search_disclosures(preset="annual_report", days=180)
자동분할: 3 chunks (DART '전체시장 3개월' 제약 자동 우회)
총 수집 6,000건 → 사업보고서 매칭 2,625건 (10.3초)
최신 3건:
2026-01-09 미라셀 사업보고서 (2024.12)
2026-01-08 케이원제15호판교위탁관리부동산투자회사 사업보고서 (2025.10)
2026-01-08 삼성FN리츠 사업보고서 (2025.10)8. 자본 이벤트 타임라인 (카카오 3년)
프롬프트: "카카오 최근 3년 자본 이벤트 전부"
→ get_corporate_event(corp="카카오", mode="timeline", start="2023-04-18", end="2026-04-18")
이벤트 유형 | 건수 |
자기주식 처분 | 14 |
감자 | 3 |
합병 | 2 |
CB 발행 | 1 |
EB 발행 | 1 |
합계 | 21 |
36개 이벤트 enum 을 한 번에 병렬 수집 → 날짜순 통합. LLM 이 "카카오가 최근 뭘 했는지" 즉시 파악.
9. 지분공시 통합 (5%룰 + 임원 지분)
프롬프트: "삼성전자 최근 3년 지분 변동 전부"
→ get_major_holdings(corp="삼성전자")
majorstock(5%룰): 41건 — 최근: 삼성물산 19.70% (2026-04-17)
elestock(임원·주요주주): 200건 반환 (2,615건 중 최근순)
기간: 2023-04-18 ~ 2026-04-18두 엔드포인트(majorstock + elestock)를 한 호출로 합성 — Python 래퍼는 두 번 호출 + pandas merge 필요.
10. 단일기업 버핏 체크리스트 (근거 포함)
프롬프트: "삼성전자 6년 버핏 체크리스트"
→ buffett_quality_snapshot(corps=["삼성전자"], years=6)
삼성전자 2020~2025:
- ROE 평균 10.26% (min 4.26 / max 15.69 / stddev 3.58)
- D/E 최근 29.94% / 평균 31.11%
- 매출 CAGR 7.09% · 순이익 CAGR 11.35%
체크리스트 3/4:
❌ consistent_high_roe (모든 연도 ROE ≥ 15%)
✅ low_debt (최근 부채비율 ≤ 100%)
✅ growing_revenue (매출 CAGR ≥ 5%)
✅ growing_earnings (순이익 CAGR ≥ 5%)11. 공시 원문 마크다운 (DART XML → MD)
프롬프트: "삼성전자 최근 자기주식 취득 결정 공시 원문"
→ search_disclosures(preset="treasury_buy") 로 rcept_no 찾고 → download_document(format="markdown")
원본: 2026-03-18 주요사항보고서(자기주식취득결정)
원본 XML 32,618자 → 마크다운 2,272자 변환 (93% 절감)
# 주요사항보고서(자기주식 취득 결정) / 삼성전자
## 자기주식 취득 결정
| 1. 취득예정주식(주) | 보통주식 | ...
| 3. 취득예상기간 | 시작일 | 2026년 03월 19일 |DART 전용 XML(dart4.xsd)을 자체 파서로 heading·테이블 보존 마크다운으로.
12. 사업보고서 첨부 → 마크다운 본문
프롬프트: "삼성전자 2023 사업보고서 PDF 본문"
→ get_attachments(rcept_no="20240312000736", mode="extract", index=0)
PDF 첨부 2.2MB → 921,998자 마크다운 (3.7초). LLM 이 "위험요소" 섹션을 직접 검색해 요약 가능.
kordoc 엔진 (HWP/HWPX/PDF/DOCX/XLSX 통합) — OpenDartReader·dart-fss·기존 DART MCP 6종 어디에도 없는 기능.
기존 DART 도구와의 차별점
한국 DART 생태계 조사 결과 (2026-04-18 기준):
기능 | OpenDartReader (438⭐, Python) | dart-fss (364⭐, Python) | hypn4/opendart-fss-mcp (85 도구) | RealYoungk/opendart-mcp (83 도구) | korean-dart-mcp (15 도구) |
MCP 네이티브 | ❌ | ❌ | ✅ | ✅ | ✅ |
Node.js/TypeScript (npm) | ❌ | ❌ | ❌ | ❌ | ✅ (유일) |
엔드포인트 1:1 커버리지 | 대부분 | 공시+재무 | 85개 전부 | 83개 전부 | 83→15 enum 압축 |
회사명 자동 해결 | 부분 | 부분 | ✅ (오타·초성) | ✅ | ✅ (SQLite FTS 선적재) |
XBRL presentation/calculation linkbase | ❌ | ZIP만 | ZIP+taxonomy | ZIP만 | ✅ 자동 markdown + 계산 검증 |
HWP/PDF 첨부 → 마크다운 | ❌ | ❌ | ❌ | ❌ | ✅ (유일, kordoc) |
| ❌ | ❌ | ❌ | ❌ | ✅ (유일) |
| ❌ | ❌ | ❌ | ❌ | ✅ (유일) |
| ❌ | ❌ | ❌ | ❌ | ✅ (유일) |
90일 자동분할 · 페이지 병렬화 | ❌ | ❌ | ❌ | ❌ | ✅ |
ZIP slip/bomb 방어 | n/a | n/a | ❌ | ❌ | ✅ |
포지셔닝 한 줄
Python 래퍼(OpenDartReader · dart-fss) 는 "quant·백테스터가 Jupyter 에서 DataFrame 으로 쓰는 용", 기존 Python DART MCP 6종은 "LLM 이 DART 원시 JSON 을 그대로 받아보는 용", 이 프로젝트는 한국 DART 생태계에서 유일하게 LLM 네이티브로 설계된 Node.js MCP — 83 API 를 15 enum 으로 압축하고, XBRL 완전 파싱 · HWP/PDF 마크다운화 · 내부자/어노말리/버핏 애널리스트 프레임을 기본 탑재한 유일한 서버.
정직한 약점
엔드포인트 1:1 커버리지는 hypn4 (85 도구) / RealYoungk (83 도구) 가 더 넓음 — 희귀 엔드포인트 직접 호출이 필요하면 그쪽이 낫다. 이 프로젝트는 83→15 압축이라 자주 쓰는 조합을 제외한 엣지 엔드포인트는 제공하지 않음.
한국 DART MCP 시장 전체가 작아서 (최대 9⭐ · 2026-04 기준) 생태계 자체가 아직 초기.
v0.7.0 — LLM 네이티브 분석 레이어
DART 83 API 를 LLM 이 스토리로 해석 가능한 분석 프레임으로 가공해서 넘깁니다. 아래는 대표적인 네 가지 사용 시나리오.
버핏·그레이엄 관점 정량화
"삼성전자 임원 거래 최근 2년 매수/매도 클러스터 분석해줘"→ insider_signal 한 번으로:
매수 보고 103건 (고유 임원 103명)
매도 보고 4건 (고유 임원 4명)
시그널:
strong_buy_cluster(매수/매도 비율 25:1)분기별 클러스터: 2024Q1
buy_cluster(n=42, net +380만주) → 2024Q2buy_cluster(n=31, net +210만주) ...
버핏 철학의 "경영진이 본인 돈으로 매수하는가?" 를 데이터로 굳혀 LLM 에 넘깁니다.
N년 퀄리티 체크리스트 + 피어 비교
"삼성전자·SK하이닉스·LG전자 5년 퀄리티 비교"→ buffett_quality_snapshot(corps=[...]):
기업 | 평균 ROE | D/E | 매출 CAGR | 순이익 CAGR | 체크리스트 |
SK하이닉스 | 12.86% | 45.95% | 22.6% | 45.37% | 3/4 |
삼성전자 | 10.39% | 29.94% | 4.51% | 3.17% | 1/4 |
LG전자 | 5.37% | 140.33% | 4.81% | -3.63% | 0/4 |
ROE 랭킹: SK하이닉스 > 삼성전자 > LG전자
부채 안정성 랭킹: 삼성전자 > SK하이닉스 > LG전자
ROE 일관성 (stddev): LG전자(2.09) > 삼성전자(3.91) > SK하이닉스(18.44)
회계·거버넌스 리스크 스코어
"카카오 최근 3년 회계 리스크 스코어"→ disclosure_anomaly:
정정공시 비율, 감사인 교체 이력, 감사의견 비적정, 자본 스트레스 이벤트 빈도를 0-100 스코어로 집계
verdict: clean / watch / warning / red_flag각 flag 의 근거(evidence) 구조화
HWP/PDF 첨부를 LLM이 직접 읽음
"삼성전자 2023 사업보고서 본문에서 '위험요소' 섹션 요약해줘"→ get_attachments(mode=extract):
DART 뷰어 HTML 스크래핑으로 첨부 목록 조회
kordoc 엔진으로 HWP/HWPX/PDF/DOCX/XLSX → 마크다운 변환
삼성전자 2.2MB PDF 사업보고서 → 921,998 자 마크다운 (3.7초). LLM 이 원문 전체를 컨텍스트로 읽고 분석
DART XML 원문(download_document(format=markdown)) 도 자체 파서로 heading/테이블 보존된 마크다운 변환.
왜 만들었나
한국 상장사 약 3,000개의 공시·재무가 DART 한 곳에 모여 있지만, 개발자가 쓰려면 83개 엔드포인트를 직접 조합해야 합니다. 다행히 한국 개발자 생태계에는 OpenDartReader(438⭐) 와 dart-fss(364⭐) 라는 훌륭한 Python 래퍼가 있어, 엔드포인트 매핑·XBRL 파싱 노하우가 이미 정리돼 있습니다. 이 프로젝트도 그 매핑을 상당 부분 그대로 수용했습니다.
이 프로젝트는 두 래퍼가 커버하지 못하는 다른 레이어를 목표로 합니다:
pandas 생태계용 — OpenDartReader / dart-fss. DataFrame 으로 분석가가 직접 핸들링.
LLM 네이티브용 — 이 프로젝트. raw 테이블을 전문가가 쓰는 각도(버핏 체크리스트·내부자 시그널·회계 리스크 스코어·공시 타임라인·마크다운 원문)로 한 번 더 정제해, AI 어시스턴트가 바로 스토리를 만들 수 있게 합니다.
둘은 보완 관계입니다. DataFrame 이 필요하면 Python 래퍼, AI 에이전트용 프레임이 필요하면 이 MCP.
설치 및 사용법
0단계: API 키 발급 (무료, 1분)
모든 방법에 공통으로 OpenDART 인증키가 필요합니다.
OpenDART 가입 페이지 에서 회원가입
로그인 후 인증키 신청 → 이메일로 40자 인증키 즉시 수신
이 인증키를 아래 설정의
DART_API_KEY에 넣습니다. 일 20,000건 무료.
방법 0: setup 마법사 (추천, 30초)
npx -y korean-dart-mcp setup대화형으로 API 키 입력 → 클라이언트 감지 → 설정 파일 자동 패치. macOS / Linux / Windows 공용. Windows 에선 cmd /c npx 래핑까지 자동 처리. 수동 JSON 편집 불필요.
지원: Claude Desktop / Claude Code / Cursor / VS Code / Windsurf / Gemini CLI / Zed / Antigravity.
MODULE_NOT_FOUND/Cannot find module ...\build\index.js가 뜨면: 과거에 깨진 글로벌 설치가 남아있는 상태입니다. 아래 중 하나로 해결:# A. 글로벌 구버전 제거 후 재시도 (Windows/Mac/Linux 공통) npm uninstall -g korean-dart-mcp npx -y korean-dart-mcp@latest setup # B. 또는 글로벌 무시하고 항상 최신 받아오기 npx --yes --package=korean-dart-mcp@latest korean-dart-mcp setup
방법 1: Claude Code 플러그인 (한 줄 설치)
Claude Code 사용자는 marketplace 등록 후 /plugin 으로 설치하면 끝.
/plugin marketplace add chrisryugj/korean-dart-mcp
/plugin install korean-dart설치 시 OpenDART 인증키 입력 프롬프트가 뜸 (한 번만). 이후 15개 DART 도구 자동 활성화.
방법 2: Claude Desktop / Cursor / Windsurf (수동 설정)
사전 준비: Node.js 20.19.0 이상 설치 (LTS 권장).
설정 파일에 아래 내용을 추가하세요 (YOUR_API_KEY 를 본인 키로 교체):
설정 파일 위치:
앱 | Windows | Mac |
Claude Desktop |
|
|
Cursor | 프로젝트 | 프로젝트 |
Windsurf | 프로젝트 | 프로젝트 |
Claude Code |
|
|
설정 내용:
{
"mcpServers": {
"korean-dart": {
"command": "npx",
"args": ["-y", "korean-dart-mcp"],
"env": {
"DART_API_KEY": "YOUR_API_KEY"
}
}
}
}저장 후 앱을 재시작하면 15개 DART 도구가 활성화됩니다.
이미 다른 MCP 서버를 쓰고 있다면,
"mcpServers": { ... }안에"korean-dart": { ... }부분만 추가하세요.
⚠️ Windows 사용자: 위 설정으로 fail 이 뜨면 Claude Desktop 이 Windows PATH 의
.cmd확장자를 해석하지 못해npx를 못 찾는 이슈입니다. 아래처럼cmd /c로 래핑하세요:{ "mcpServers": { "korean-dart": { "command": "cmd", "args": ["/c", "npx", "-y", "korean-dart-mcp"], "env": { "DART_API_KEY": "YOUR_API_KEY" } } } }그래도 안 되면: ① Node.js 20.19.0 이상 설치 여부 확인 (
node --version), ② 방화벽이opendart.fss.or.kr차단하는지 확인, ③ 첫 기동 시 corp_code 덤프(11.6만건, 약 5-10초) 다운로드 중이니 10초 정도 기다린 후 재시도.
방법 3: 내 컴퓨터에 직접 설치 (글로벌)
npm install -g korean-dart-mcp설정 파일에 command 를 바꿔 등록:
{
"mcpServers": {
"korean-dart": {
"command": "korean-dart-mcp",
"env": {
"DART_API_KEY": "YOUR_API_KEY"
}
}
}
}첫 실행 시 OpenDART 가 제공하는 전체 기업 덤프(약 11.6만 건) 를 내려받아 ~/.korean-dart-mcp/corp_code.sqlite 에 FTS 인덱싱합니다 (약 5초, 24시간 TTL). 이후 회사명 / 종목코드 / corp_code 어느 형식으로 넘겨도 자동 해석됩니다.
API 키 전달 방법
방법 | 사용법 | 언제 쓰나 |
환경변수 |
| Claude Desktop 등 설정 파일 |
| 프로젝트 루트 | 로컬 개발 |
사용 예시 — 킬러 프롬프트
기본 조회
"삼성전자 최근 분기 매출·영업이익, 전년 동기 대비 변화"
"최근 30일 자기주식 취득 결정한 상장사 전부"
"네이버 2023년 임원 보수 5억 이상 명단"애널리스트 프레임
"삼성전자 임원 거래 최근 2년 매수/매도 클러스터 분석" → insider_signal
"카카오 최근 3년 회계 리스크 스코어 (정정·감사인·의견)" → disclosure_anomaly
"네이버 10년 버핏식 퀄리티 체크리스트" → buffett_quality_snapshot
"삼성·SK하이닉스·LG전자 5년 퀄리티 비교 + 순위" → buffett_quality_snapshot(corps=[...])
"LG에너지솔루션 2021년 이후 자본 이벤트 타임라인 전부" → get_corporate_event(mode=timeline)원문 분석
"삼성전자 2023 사업보고서 PDF 본문에서 '위험요소' 섹션 요약" → get_attachments(mode=extract)
"삼성전자 자기주식 취득 결정 원본 XML 마크다운으로" → download_document(format=markdown)배치 조회
"최근 7일 자기주식 취득 결정 상장사 전부" → search_disclosures(preset=treasury_buy)
"최근 30일 전환사채·신주인수권부사채 발행 공시" → search_disclosures(preset=cb_issue, days=30)도구 구조 (15개)
기본 조회 (7)
도구 | 용도 |
| 회사명 → corp_code (SQLite FTS 선적재, 전수 11.6만 건) |
| 공시 검색. |
| 기업 개황 (업종·대표자·설립일) |
| 재무정보. |
| 공시 원문 → |
| XBRL. |
| 정기보고서 29 섹션 enum (배당·최대주주·감사인·보수·자금사용 등) |
합성 래퍼 (4)
도구 | 용도 |
| 지배구조 4섹션(최대주주·변동·소액주주·주식총수) 병렬 합성 |
| 임원 보수 6섹션(전체·5억 이상·상위 5·미등기·주총승인·유형별) |
| 5%룰(majorstock) + 임원·주요주주 본인 지분(elestock) |
| 주요사항보고서 36 이벤트 enum + |
애널리스트 프레임 (3 · 킬러)
도구 | 용도 |
| 임원 거래를 매수/매도 클러스터 시그널로 집계 ( |
| 정정공시·감사인 교체·비적정 의견·자본 스트레스 → 0-100 score + verdict |
| N년 ROE/부채/CAGR + 버핏 체크리스트 4종. corps 배열 지원 (1개=시계열, 2+=비교+랭킹) |
원문 분석 (1)
도구 | 용도 |
| 공시 첨부 HWP/HWPX/PDF/DOCX/XLSX → 마크다운 (kordoc) + ZIP 재귀 파싱 |
주요 특징
83 API → 15 도구 — OpenDART 전체(공시·재무·지분·주요사항·정기보고서·XBRL) 를 enum 압축. LLM 컨텍스트 8-10k → 6-8k 토큰
회사명 자동 해결 — "삼성전자" / "005930" / "00126380" 어느 형식이든 자동 변환 (SQLite FTS 선적재, 24h TTL)
버핏급 애널리스트 프레임 — raw 테이블 위에 시그널/스코어/체크리스트 레이어를 얹어 AI 에이전트가 바로 쓰도록 가공
HWP/PDF 첨부 마크다운화 — kordoc 엔진으로 공시 원문 본문을 LLM 이 직접 읽음 (2.2MB PDF → 3.7초)
DART XML 자체 파서 —
dart4.xsd전용 마크업을 heading·테이블 보존된 마크다운으로 변환페이지 병렬화 —
search_disclosures배치 모드 30-50초 → 17초 (2-3배)22 프리셋 — 자기주식·CB/BW·합병·5%보유·정정·부실·소송 등 자주 쓰는 조합을 enum 으로
XBRL 원본 노출 — 파싱 안 하고 해제 경로만 반환. Claude 가 직접 집계 가능
OpenDartReader/dart-fss 호환 매핑 — 검증된 Python 래퍼들의 엔드포인트 매핑을 그대로 수용
참고
OpenDART API 목록 — 공식 83 엔드포인트
FinanceData/OpenDartReader — pandas 래퍼 (438⭐)
josw123/dart-fss — XBRL 파싱 (364⭐)
자매 프로젝트 korean-law-mcp — 법제처 MCP
Star History
라이선스
Made by 류주임 @ 광진구청 AI동호회 AI.Do
Available Tools
15 toolsbuffett_quality_snapshotA
버핏 퀄리티 체크리스트. corps 1개 → N년 ROE/부채/CAGR 시계열 + 체크 4종. corps 2~10개 → 각 기업 스냅샷 + 5지표별 랭킹 (기존 quality_compare 통합). 기업별 병렬 실행.
| Name | Required | Description | Default |
|---|---|---|---|
| corps | Yes | 회사 1~10개. 1개면 시계열+체크리스트, 2+면 비교+랭킹 추가 | |
| years | No | 과거 N년 (기본 10) | |
| end_year | No | 기준연도 (미지정=작년) | |
| prefer_consolidated | No | 연결재무제표 우선 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses parallel execution per company, the mode switching based on input count, and the type of metrics (ROE, Debt, CAGR, checks, rankings). However, it lacks details on what the '4 check types' or '5 indicators' are and does not describe output format, which slightly reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences in Korean, front-loading the purpose ('버핏 퀄리티 체크리스트'). It efficiently covers the two modes, time series details, and integration. No redundant or unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, no annotations), the description provides high-level behavioral context but omits specific definitions of 'check types' and 'indicator rankings'. The output structure is not described, which could leave an agent uncertain about the exact return format. It is adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all four parameters. The tool description reinforces the corps parameter's mode-switching behavior but adds minimal new meaning beyond the schema. The description introduces output-related terms (ROE, CAGR, checks) but these are not tied to specific parameters, so the added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a 'Buffett quality checklist' and distinguishes two modes based on the number of companies: for one company it returns a time series of ROE/Debt/CAGR and four checks; for multiple companies it returns snapshots and rankings. It also mentions integration with the existing 'quality_compare' tool, making its purpose and behavior specific and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Buffett quality analysis but does not explicitly state when to use this tool versus alternatives, such as 'get_financials' or 'search_disclosures'. No when-not or exclusion criteria are provided. The integration note with quality_compare gives some context but not clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disclosure_anomalyA
회계·거버넌스 이상 징후 스코어: 정정공시 비율, 감사인 교체, 감사의견 비적정, 자본 스트레스. 점수 0-100 + 개별 flag 와 evidence 를 구조화해 반환. LLM 이 판단을 내릴 수 있는 데이터 프레임 제공 (직접 권고하지 않음).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | 기간 종료 (기본: 오늘) | |
| corp | Yes | 회사명/종목코드/corp_code | |
| start | No | 기간 시작 (기본: 3년 전) | |
| audit_years | No | 감사인·의견 비교할 연도 (미지정 시 기간의 최근 3년) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains what the tool computes (score, flags, evidence) and that it does not give recommendations. It does not disclose data freshness, rate limits, or side effects of calling the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence succinctly listing what the tool does and returns, with no wasted words. It is front-loaded with the key concept and then details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description adequately explains the output (score, flags, evidence, data frame). Parameters are fully covered. Sibling tools exist but not explicitly compared. The description is fairly complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters. The added description explains the composite nature of the score and the purpose of audit_years for comparing auditor/opinion, providing meaning beyond schema parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool computes a score (0-100) for accounting/governance anomaly signs including restatement ratio, auditor change, adverse audit opinion, capital stress, and returns structured flags and evidence. This distinguishes it from sibling tools like buffett_quality_snapshot or insider_signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use for anomaly detection and provides a data frame for LLM judgment without direct recommendations. However, it lacks explicit when-to-use, when-not-to-use, or mention of alternative tools among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_documentA
공시서류 원문을 마크다운/원본XML/plain text 로 반환합니다. 기본값 markdown — DART 전용 XML 을 자체 파서로 heading·테이블 보존해 변환. 대형 사업보고서는 수백 KB 이상이라 기본 10만 자에서 절단. 사업보고서·반기보고서·주요사항보고 등 모든 공시 원문에 사용.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | 출력 포맷. markdown=DART XML → 마크다운, raw=원본 XML, text=태그 제거 | markdown |
| rcept_no | Yes | 접수번호 14자리 (search_disclosures 의 rcept_no) | |
| truncate_at | No | 텍스트 최대 길이 (초과분은 잘림) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors: custom parser for markdown, default truncation at 100,000 characters, and handling of large documents. Missing details like error handling or authentication, but overall transparent for a download tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with dense, relevant information. No fluff, front-loaded purpose, every sentence adds value. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return formats, custom processing, truncation, and scope. Missing details on error responses or behavior for missing documents, but adequate given the tool's simplicity and full schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the custom parser for markdown and the truncation behavior, providing context beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns disclosure documents in markdown, raw XML, or plain text, and mentions the custom parser and default format. However, it doesn't explicitly differentiate from sibling tools like get_periodic_report, which may also return document content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says the tool is used for 'all disclosure originals' and lists examples, implying broad usage. However, it lacks explicit when-not-to-use guidance or references to alternatives among siblings, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attachmentsA
공시 첨부파일(HWP/PDF/DOCX/XLSX)을 목록 조회(mode=list) 하거나 다운받아 마크다운으로 추출(mode=extract). DART 뷰어 HTML 스크래핑 기반 — OpenDART 표준 API 에 첨부 엔드포인트가 없어 공식 뷰어를 통해 접근. extract 모드는 kordoc 엔진으로 HWP/HWPX/PDF/DOCX/XLSX → 마크다운 변환.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | list: 첨부 목록만. extract: 파일 하나 다운·파싱해 마크다운 | list |
| index | No | extract 모드에서 0-based index (filename 우선) | |
| filename | No | extract 모드에서 정확한 파일명 (부분일치 폴백 없음) | |
| rcept_no | Yes | 접수번호 14자리 | |
| zip_index | No | ZIP 첨부 extract 시 내부 파일 index (0-based). 미지정 & ZIP 인 경우 내부 파일 목록만 반환. | |
| truncate_at | No | extract 마크다운 최대 길이 | |
| outline_max_items | No | outline(목차) 최대 항목 수. 사업보고서 outline 은 수천 개 → 디폴트 50. 0=outline 생략. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It transparently discloses the scraping-based approach and the kordoc conversion engine. It also mentions truncation and outline parameters, providing insight into limitations. However, it does not detail failure modes, rate limits, or the exact behavior when scraping fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that convey the purpose, mode options, file types, and technical background. Every sentence adds essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (2 modes, multiple file types, scraping-based) and no output schema, the description covers key aspects. However, it lacks details about the return format for list mode (e.g., what fields are in the attachment list) and the exact structure of the extracted markdown. This minor gap prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value beyond the schema. It explains the mode-dependent behavior of index/filename, the special handling of ZIP attachments via zip_index, and the purpose of truncate_at and outline_max_items. This allows an agent to understand parameter interactions and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the two modes (list/extract) and the types of attachments (HWP/PDF/DOCX/XLSX). It distinguishes the tool as a specialized attachment handler for DART disclosures, which is distinct from other sibling tools that focus on financial data or document downloads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two modes and when to use each ('list' for listing attachments, 'extract' for downloading and converting to markdown). It provides context that the tool uses DART viewer scraping due to missing official API endpoints. However, it does not explicitly compare against sibling tools like 'download_document' or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companyA
기업의 개황(업종·설립일·대표자·주소·홈페이지·종목코드 등)을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| corp | Yes | 회사명/종목코드/corp_code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It indicates a read operation without side effects, but lacks details on authentication, rate limits, or data freshness. Adequate for a simple retrieval but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the purpose with specific details. No filler words; every part contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description covers the essential returned fields and input format. Minor gaps like error conditions or response format are not critical but could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description covers the 'corp' parameter fully (company name/stock code/corp_code). The tool description adds value by listing output fields but does not enhance parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a company overview, listing specific fields (industry, establishment date, etc.). It uses a specific verb and resource, distinguishing it from sibling tools like search_disclosures and resolve_corp_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting company overview by name/code, but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_corporate_eventA
DS005 주요사항보고서 36종 이벤트 조회. mode='single' 은 단일 event_type 상세, mode='timeline' 은 자본 관련 이벤트(증자·감자·CB/BW/EB·자사주·합병분할·영업양수도 등)를 지정 기간 병렬 수집 후 날짜순 통합. timeline 은 '최근 N년 자본 스트레스 내러티브' 를 한 번에 뽑기 위한 킬러 모드.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | 종료일 (YYYY-MM-DD / YYYYMMDD) | |
| corp | Yes | 회사명/종목코드/corp_code | |
| mode | No | single: 단일 event_type 조회. timeline: 여러 자본 관련 이벤트를 날짜순 통합 (킬러 모드) | single |
| start | No | 시작일 (YYYY-MM-DD / YYYYMMDD) | |
| event_type | No | single 모드 필수. 36개 이벤트 중 하나 | |
| event_types | No | timeline 모드용 수동 선택. 미지정 시 자본 관련 이벤트(capital=true) 전체 자동 선택 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the two modes but does not explicitly state that the tool is read-only, nor does it mention any side effects, rate limits, or auth requirements. The Korean word '조회' implies inquiry, but it is not explicit for non-Korean readers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose. It is concise but could be better structured (e.g., bullet points). Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, 100% schema coverage, and no output schema, the description covers the two modes well but lacks details on return format, pagination, or any constraints. It is moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining mode semantics (e.g., timeline auto-selects capital events if event_types not specified) and the corporate parameter. It goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves corporate events from a specific report (DS005) with two modes. It distinguishes itself from sibling tools, none of which query events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use each mode: single for one event type, timeline for capital-related events over a period, calling it a 'killer mode' for extracting capital stress narratives. It does not explicitly mention when not to use, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_executive_compensationA
임원 보수 6개 섹션을 한 번에 합성 조회: 전체·개인별 5억 이상·상위 5인·미등기·주총 승인금액·유형별. (단일 섹션은 get_periodic_report 로도 조회 가능.)
| Name | Required | Description | Default |
|---|---|---|---|
| corp | Yes | 회사명/종목코드/corp_code | |
| year | Yes | ||
| report | No | annual | |
| sections | No | 조회할 섹션 (미지정 시 6개 모두). total=전체 평균, individual_5eok=개인별 5억↑, top5=상위 5인, unregistered=미등기 임원, approval_limit=주총 승인한도, by_type=직책별 지급금액 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. While '조회' (inquiry) implies a read-only operation, the description does not explicitly state that the tool does not mutate data or require special authorization. It focuses on data retrieval but lacks explicit safety or permission cues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the primary purpose and sections, then provide an alternative usage note. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, composite of 6 sections, no output schema), the description covers the core purpose and usage context well. It could mention the output format to aid agent understanding, but the schema's section descriptions already handle defaults. Adequate for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, and the description adds value by listing and explaining the six section values for the 'sections' parameter. However, it does not elaborate on the 'corp', 'year', or 'report' parameters beyond what the schema minimally provides, leaving gaps for an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a composite query of six sections of executive compensation, listing each section and distinguishing it from the sibling tool get_periodic_report for single-section queries. The verb '합성 조회' (synthetic query) and resource '임원 보수 6개 섹션' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (for all six sections at once) and when to use an alternative (get_periodic_report for a single section), providing clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financialsA
재무정보 조회 — scope=summary(주요계정, 단일/다중사 자동) 또는 full(전체 재무제표, 단일사). summary 는 매출·영업이익·당기순이익·자산/부채/자본 핵심만, full 은 BS/IS/CF 전체 수백 행.
| Name | Required | Description | Default |
|---|---|---|---|
| fs | No | scope=full 시 연결(consolidated)/별도(separate) 선택 | consolidated |
| year | Yes | ||
| corps | Yes | 회사 배열. scope=summary 면 1개(단일) 또는 2+(다중사 비교). full 은 1개만. | |
| scope | No | summary: 주요계정 8~10행 (빠름). full: 전체 재무제표(BS/IS/CF/CIS/SCE) 수백~천여 행 | summary |
| report | No | q1/half/q3/annual | annual |
| sj_div | No | scope=full 시 재무제표 종류 필터 (미지정 시 BS+IS — 기본 응답 사이즈 ~70% 절감). BS=재무상태표, IS=손익계산서, CF=현금흐름표, CIS=포괄손익계산서, SCE=자본변동표. 전체 받으려면 ["BS","IS","CF","CIS","SCE"] 명시. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description explains scope-dependent behavior, response size impact of sj_div, and speed differences. Lacks error conditions or rate limits but sufficient for safe use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is informative but somewhat verbose with multi-sentence explanations. Core purpose is front-loaded, but could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Completeness is good given no output schema; covers all parameters and behavioral nuances. Does not describe return format explicitly but implied by '행' (rows).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (83%), but description adds valuable context for scope and sj_div, including corps count limitations and default response size reduction that schema doesn't capture.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states '재무정보 조회' (financial info retrieval) and distinguishes between summary (key accounts) and full (complete statements). However, it could better differentiate from sibling tools like get_xbrl.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use summary (single/multi companies, fast) vs full (single company, detailed), and how sj_div can reduce response size. Also explains constraints on corps count per scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_major_holdingsA
지분공시 2종 합성 조회: 대량보유(5%룰) + 임원·주요주주 본인 소유. 내부자·외부 대주주 지분 이력을 한 번에 스냅샷.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | 기간 종료 (미지정 시 오늘) | |
| corp | Yes | 회사명/종목코드/corp_code | |
| limit | No | 최대 반환 행 수 (각 kind 별). 대형 상장사는 누적 수만 건 → 디폴트 200. | |
| start | No | 기간 시작 (YYYY-MM-DD / YYYYMMDD). 미지정 시 최근 3년. | |
| include | No | 조회 대상 (미지정 시 둘 다). majorstock=대량보유 5%룰, elestock=임원·주요주주 본인 보유 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It mentions 'snapshot' but lacks details on data merging, pagination effects, authorization needs, or output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences in Korean with no redundancy, efficiently conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a 5-parameter tool with high schema coverage, but lacks explanation of output structure (no output schema) and how combined results are presented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already documented. The description adds little extra meaning beyond naming the two disclosure types, which the schema's include parameter already enumerates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a synthetic query combining two types of equity disclosure (major shareholding and executive holdings), providing a snapshot of insider/outsider history. This distinguishes it from simpler sibling tools like get_shareholders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for consolidated equity disclosure but provides no explicit guidance on when to use it versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_periodic_reportA
사업보고서 내 29개 세부 섹션을 report_type enum 으로 단일 도구 호출. 예: 최대주주 현황·임원 보수·감사인·배당·자기주식·회사채 미상환 등. (정기보고서 전체 원문이 필요하면 download_document.)
| Name | Required | Description | Default |
|---|---|---|---|
| corp | Yes | 회사명/종목코드/corp_code | |
| year | Yes | ||
| report | No | annual | |
| report_type | Yes | 섹션 29종: 주주(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) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should disclose behavioral traits. It does not mention read-only nature, authorization needs, rate limits, or side effects. The description focuses on functionality rather than behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with core information. Every word adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 4 parameters, the description covers the tool's purpose, provides examples, and mentions alternatives. It lacks details on return format or pagination, but is adequate for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%. The description adds value by grouping report_type values into semantic categories (주주, 임직원, 보수, etc.) that are not in the schema, aiding understanding beyond the enum list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves 29 specific sections from a business report using enum values. It gives concrete examples and distinguishes from the sibling tool download_document for full-text retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use this for individual sections and notes that download_document is the alternative for full document text, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_xbrlA
재무제표 XBRL 조회 — format 선택: raw=원본 ZIP 파일시스템 해제, markdown=whitelist 50태그 3년 3열 (~8KB), markdown_full=taxonomy 전체 계정 + 계산 검증 (업종별 자동 대응, ~30-60KB).
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | raw: ZIP 파일시스템 저장. markdown: whitelist 50태그 마크다운. markdown_full(v0.9.0+): taxonomy 전체 계정 + 계산 검증. | raw |
| fs_div | No | markdown/markdown_full 전용: 연결/별도 기준 | consolidated |
| report | No | 보고서 종류 | annual |
| out_dir | No | format="raw" 전용: 저장 디렉터리 (미지정 시 ~/.korean-dart-mcp/xbrl/{rcept_no}_{report}/) | |
| rcept_no | Yes | 접수번호 14자리 | |
| sections | No | markdown/markdown_full 전용: 생성할 재무제표 종류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: raw returns original ZIP, markdown is filtered (50 tags, 3 years, 3 columns, ~8KB), markdown_full includes full taxonomy with calculation verification (~30-60KB). No contradictions or missing destructive hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with a dash structure efficiently conveys all key options and their characteristics. No extraneous information; every part is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, 3 enums, and no output schema, the description adequately explains the tool's core functionality and format trade-offs. However, it could explicitly state when to choose each format (e.g., raw for full data, markdown for quick analysis) and what the output structure looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining the format options' implications (e.g., file sizes, industry-specific auto response) and connecting parameters like fs_div and out_dir to specific formats, enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves XBRL financial statements and explicitly differentiates three format options (raw, markdown, markdown_full) with specifics about each, such as file sizes and content scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus sibling tools like get_financials or get_periodic_report. Usage context is implied through format descriptions but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insider_signalA
임원·주요주주 거래(DS004 elestock)를 매수·매도 클러스터로 집계. 기간 내 순증감·매수자수·분기별 클러스터 여부 산출. 버핏 철학의 '경영진 본인 돈으로 매수' 시그널을 LLM 해석 가능한 단위로 제공.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | 기간 종료 | |
| corp | Yes | 회사명/종목코드/corp_code | |
| start | No | 기간 시작 (YYYY-MM-DD / YYYYMMDD) | |
| reporters_topn | No | 분기별 reporters 명단 상위 N (절대값 큰 순). 대형사는 분기당 수백명 → 디폴트 5. 0=빈 배열. | |
| cluster_threshold | No | cluster 인정 최소 인원 (기본 3: 분기 내 같은 방향 거래 3명 이상) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It explains clustering based on direction and threshold (default 3), but omits details about data source limitations, rate limits, or authentication needs. Some behavioral context is provided, but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with main purpose and key outputs. No fluff, every sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must clarify return format. It mentions net change, buyer count, cluster presence, and signal, but lacks specifics on structure or data types. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with Korean descriptions. The description adds meaning by explaining the aggregation logic and signal interpretation, going beyond individual parameter descriptions. However, all content is in Korean, which may limit universal clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool aggregates insider transactions into buy/sell clusters, calculates net change, buyer counts, and quarterly clusters, providing a Buffett-style signal. This distinctively separates it from siblings like buffett_quality_snapshot or disclosure_anomaly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While the purpose is clear, the description does not specify scenarios or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_corp_codeA
회사명 또는 종목코드로 OpenDART corp_code 를 조회합니다. 상장사·정확일치·짧은 이름 순으로 정렬해 반환. 모든 다른 도구에 회사명을 바로 넘겨도 내부에서 자동 해결되지만, 결과가 모호할 때 후보를 확인하는 용도로 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 최대 반환 개수 | |
| query | Yes | 회사명(한/영), 6자리 종목코드, 또는 8자리 corp_code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes sorting order and that it returns corp_code candidates. With no annotations, description carries full burden. Does not mention not-found behavior or rate limits, but the read-only nature is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose, no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description implies a list of candidates. Could be more explicit about return format, but adequate given the tool's simple purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description repeats the schema's parameter descriptions. Does not add new meaning beyond the schema, but mentions sorting behavior which indirectly helps understand query use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool resolves company names or stock codes to OpenDART corp_code, with sorting logic (listed, exact match, short name). Clearly distinguishes from sibling tools that use internal resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states that other tools automatically resolve corp_code internally, and this tool is for checking candidates when results are ambiguous. Provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_disclosuresA
DART 공시 검색 (3 모드): 기본(단일 페이지, page+size), preset(22개 프리셋 자동 필터+전량 병렬), all_pages(프리셋 없이 기간 전체 병렬). rcp_no(rcept_no) 로 download_document / get_attachments 연동.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | 종료일 (생략 시 오늘) | |
| corp | No | 회사명/종목코드/corp_code. 생략 시 전체 | |
| days | No | begin 대신 오늘 기준 과거 N일 (preset 모드 기본 7, 일반 90) | |
| kind | No | 공시유형: periodic/major/issuance/holdings/audit/other/fund/abs/exchange/ftc | |
| page | No | 페이지 모드 시 페이지 번호 | |
| size | No | 페이지 모드 시 페이지 크기 | |
| begin | No | 시작일 YYYY-MM-DD (생략 시 기본값) | |
| limit | No | 배치 모드 최종 반환 개수 상한 | |
| preset | No | 프리셋 22종: treasury_buy/sell/trust · cb/bw/eb_issue · rights_offering/bonus_issue/capital_reduction · merger/split/stock_exchange · business_transfer/acquisition · large_holding_5pct · annual_report/half_report/quarterly_report · audit_report · correction_all · insolvency · litigation. 지정 시 kind·키워드 자동 + 전량 페이지 병렬 수집. | |
| all_pages | No | preset 없이도 기간 전체를 병렬 수집. true 시 page/size 대신 limit 적용. | |
| final_only | No | 최종보고서만 (정정공시 제외) | |
| concurrency | No | 배치 모드 페이지 병렬 동시성 (1~10, 기본 5). 높이면 빠르지만 DART 일일 20,000건 한도/분당 쿼터 근접 위험. | |
| include_corrections | No | 정정공시 포함 (preset 모드 전용). correction_all 은 자동 true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It details behavioral traits: three modes with parallel execution, automatic filter application in preset, concurrency limits, and DART API daily/quota limits. It also links results to download/get_attachments via rcp_no.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence) but dense; it packs mode details and linking into a single line. Could benefit from structured formatting, but remains clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, 3 modes, no output schema), the description covers modes, parameter notes, and API limits. However, it does not explicitly describe the output format (e.g., that results include rcp_no), which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all 13 parameters described. The description adds context beyond schema, e.g., 'days' default for preset vs. normal mode, and concurrency parameter notes about API limits. Baseline is 3, and extra context justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'DART disclosure search' and lists three distinct modes (basic, preset, all_pages), specifying their use cases. This distinguishes it from sibling tools like download_document or get_attachments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use each mode (basic for single page, preset for automatic filters, all_pages for full period), providing clear context. However, it does not explicitly exclude alternative tools or state prerequisites, as there are no similar sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
15 tool updates
v0.9.2- First observed
buffett_quality_snapshot - First observed
disclosure_anomaly - First observed
download_document - First observed
get_attachments - First observed
get_company - First observed
get_corporate_event - First observed
get_executive_compensation - First observed
get_financials - First observed
get_major_holdings - First observed
get_periodic_report - First observed
get_shareholders - First observed
get_xbrl - First observed
insider_signal - First observed
resolve_corp_code - First observed
search_disclosures
TDQS
Each tool has a distinct purpose: quality snapshot, anomaly scoring, document download, financials, XBRL, corporate events, insider trading, etc. Overlaps are minimal and clarified by descriptions.
Naming uses mixed conventions: some prefixed with 'get_', others not (e.g., 'buffett_quality_snapshot', 'insider_signal'). Also varied verb forms like 'download_document' vs 'get_attachments'. While mostly readable, the pattern is inconsistent.
15 tools is well-scoped for a comprehensive Korean disclosure server. Covers company info, financials, filings, governance, and anomalies without being overwhelming.
The tool set covers the full lifecycle of disclosure analysis: search, retrieve raw documents, extract sections, financials, XBRL, corporate events, shareholder info, executive comp, insider trading, and anomaly detection. No dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Powerful OpenDART API-based Korean corporate disclosure tools for accounting professionals
Official-source financial data for AI agents: Korea, US, Taiwan, Japan, Europe. 37 tools, free tier.
Provide AI assistants with real-time access to official SEC EDGAR filings and financial data. Enab…
SEC filing intelligence for AI agents. Financials, screening, peer comparison for 5,000+ companies.
Related MCP Servers
- FlicenseCqualityNot gradedmaintenanceEnables AI assistants to access South Korea's financial disclosure system (OpenDART), allowing users to retrieve corporate financial reports, disclosure documents, shareholder information, and automatically extract and search financial statement notes through natural language queries.85-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access Korean corporate disclosure data from DART, allowing natural language queries about companies, financial statements, and disclosures.612MIT
- AlicenseAqualityBmaintenanceProvides 15 tools covering OpenDART 83 APIs for disclosures, financials, equity, XBRL, plus insider signals, accounting risk scores, and Buffett-style quality checklists, and converts HWP/PDF attachments to markdown for AI assistants.1532796MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with real-time access to Korean listed companies' disclosures, financial statements, and corporate information via the DART API.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aesthetic-legalism5470/korean-dart-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server