Korean Dart MCP
Enables AI assistants to analyze Korean financial disclosures (DART) with insider trading signals, accounting risk scores, Buffett-style quality checklists, and automatic conversion of HWP/PDF attachments to markdown.
Ask AI about Korean Dart MCP
Powered by Claude ยท Grounded in docs
I know everything about Korean Dart MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
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 ํธ์ง ๋ถํ์.
์๋ ์ค์ ์ ์ํ๋ฉด ์๋ ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ ์น์ ์ฐธ๊ณ .
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) |
insider_signal ํด๋ฌ์คํฐ | โ | โ | โ | โ | โ (์ ์ผ) |
disclosure_anomaly 0-100 ์ค์ฝ์ด | โ | โ | โ | โ | โ (์ ์ผ) |
buffett_quality_snapshot ์ฒดํฌ๋ฆฌ์คํธ | โ | โ | โ | โ | โ (์ ์ผ) |
| 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 | %APPDATA%\Claude\claude_desktop_config.json | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | ํ๋ก์ ํธ .cursor/mcp.json | ํ๋ก์ ํธ .cursor/mcp.json |
| Windsurf | ํ๋ก์ ํธ .windsurf/mcp.json | ํ๋ก์ ํธ .windsurf/mcp.json |
| Claude Code | ~/.claude.json ๋๋ ํ๋ก์ ํธ .mcp.json | ~/.claude.json ๋๋ ํ๋ก์ ํธ .mcp.json |
์ค์ ๋ด์ฉ:
{
"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 ํค ์ ๋ฌ ๋ฐฉ๋ฒ
| ๋ฐฉ๋ฒ | ์ฌ์ฉ๋ฒ | ์ธ์ ์ฐ๋ |
|---|---|---|
| ํ๊ฒฝ๋ณ์ | DART_API_KEY=... | Claude Desktop ๋ฑ ์ค์ ํ์ผ |
.env ํ์ผ | ํ๋ก์ ํธ ๋ฃจํธ .env | ๋ก์ปฌ ๊ฐ๋ฐ |
์ฌ์ฉ ์์ โ ํฌ๋ฌ ํ๋กฌํํธ
๊ธฐ๋ณธ ์กฐํ
"์ผ์ฑ์ ์ ์ต๊ทผ ๋ถ๊ธฐ ๋งค์ถยท์์
์ด์ต, ์ ๋
๋๊ธฐ ๋๋น ๋ณํ"
"์ต๊ทผ 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)
| ๋๊ตฌ | ์ฉ๋ |
|---|---|
resolve_corp_code | ํ์ฌ๋ช โ corp_code (SQLite FTS ์ ์ ์ฌ, ์ ์ 11.6๋ง ๊ฑด) |
search_disclosures | ๊ณต์ ๊ฒ์. page / preset(22์ข
์๋ํํฐ) / all_pages 3๋ชจ๋ + ํ์ด์ง ๋ณ๋ ฌํ + 90์ผ ์๋๋ถํ (v0.9) |
get_company | ๊ธฐ์ ๊ฐํฉ (์ ์ข ยท๋ํ์ยท์ค๋ฆฝ์ผ) |
get_financials | ์ฌ๋ฌด์ ๋ณด. scope: summary(์ฃผ์๊ณ์ , ๋จ์ผ/๋ค์ค์ฌ) / full(์ ์ฒด BS/IS/CF, ๋จ์ผ์ฌ) |
download_document | ๊ณต์ ์๋ฌธ โ format: markdown(DART XML ์์ฒด ํ์) / raw / text |
get_xbrl | XBRL. format: raw ZIP ํด์ (๋ณด์ ๊ฐ๋) / markdown whitelist 50ํ๊ทธ / markdown_full taxonomy ์ ์ฒด(v0.9) |
get_periodic_report | ์ ๊ธฐ๋ณด๊ณ ์ 29 ์น์ enum (๋ฐฐ๋นยท์ต๋์ฃผ์ฃผยท๊ฐ์ฌ์ธยท๋ณด์ยท์๊ธ์ฌ์ฉ ๋ฑ) |
ํฉ์ฑ ๋ํผ (4)
| ๋๊ตฌ | ์ฉ๋ |
|---|---|
get_shareholders | ์ง๋ฐฐ๊ตฌ์กฐ 4์น์ (์ต๋์ฃผ์ฃผยท๋ณ๋ยท์์ก์ฃผ์ฃผยท์ฃผ์์ด์) ๋ณ๋ ฌ ํฉ์ฑ |
get_executive_compensation | ์์ ๋ณด์ 6์น์ (์ ์ฒดยท5์ต ์ด์ยท์์ 5ยท๋ฏธ๋ฑ๊ธฐยท์ฃผ์ด์น์ธยท์ ํ๋ณ) |
get_major_holdings | 5%๋ฃฐ(majorstock) + ์์ยท์ฃผ์์ฃผ์ฃผ ๋ณธ์ธ ์ง๋ถ(elestock) |
get_corporate_event | ์ฃผ์์ฌํญ๋ณด๊ณ ์ 36 ์ด๋ฒคํธ enum + mode: single / timeline |
์ ๋๋ฆฌ์คํธ ํ๋ ์ (3 ยท ํฌ๋ฌ)
| ๋๊ตฌ | ์ฉ๋ |
|---|---|
insider_signal | ์์ ๊ฑฐ๋๋ฅผ ๋งค์/๋งค๋ ํด๋ฌ์คํฐ ์๊ทธ๋๋ก ์ง๊ณ (strong_buy_cluster ๋ฑ) |
disclosure_anomaly | ์ ์ ๊ณต์ยท๊ฐ์ฌ์ธ ๊ต์ฒดยท๋น์ ์ ์๊ฒฌยท์๋ณธ ์คํธ๋ ์ค โ 0-100 score + verdict |
buffett_quality_snapshot | N๋ ROE/๋ถ์ฑ/CAGR + ๋ฒํ ์ฒดํฌ๋ฆฌ์คํธ 4์ข . corps ๋ฐฐ์ด ์ง์ (1๊ฐ=์๊ณ์ด, 2+=๋น๊ต+๋ญํน) |
์๋ฌธ ๋ถ์ (1)
| ๋๊ตฌ | ์ฉ๋ |
|---|---|
get_attachments | ๊ณต์ ์ฒจ๋ถ 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
