Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI โ†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt โ†— (opens in a new tab)
  • Catalog JSON โ†— (opens in a new tab)
  • Remote MCP โ†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) โ†— (opens in a new tab)
  • GitHub โ†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
ยฉ 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. ๐Ÿ’ฐ Finance & Fintech
  3. Aikstockdata โ€” Korean Stock Data
Aikstockdata โ€” Korean Stock Data logo
Health: ActiveRecent health check succeeded.Last checked 8/10/2026, 11:16:36 PM

Aikstockdata โ€” Korean Stock Data

Enrichment pendingWe havenโ€™t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time โ€” check back soon.
View Repository2 GitHub StarsTotal stargazers on GitHub for the source repository (2 stars).Visit Website

KOSPI/KOSDAQ closing prices and DART regulatory filings. Free, no signup, no API key.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON โ–พ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "aikstockdata-korean-stock-data": {
      "command": "npx",
      "args": [
        "-y",
        "https://aikstockdata.com"
      ]
    }
  }
}

๐Ÿ’ก Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Directory Badge Claim listing Alternatives๐Ÿ’ฐ More in Finance & Fintech

Documentation Overview

aikstockdata โ€” ํ•œ๊ตญ ์ฃผ์‹ ๊ณต์‹œยท์‹œ์„ธ๋ฅผ AI๊ฐ€ ๋ฐ”๋กœ ์ฝ๋Š” ๋ฌด๋ฃŒ JSON + MCP ์„œ๋ฒ„

KOSPIยทKOSDAQ ์•ฝ 1,500์ข…๋ชฉ์˜ ํ™•์ • ์ข…๊ฐ€ยท์ง€์ˆ˜, DART ๊ณต์‹œ, ์ข…๋ชฉ๋‹น 1๋…„์น˜ ์ผ๋ณ„ ์‹œ์„ธ๋ฅผ ๋งค ๊ฑฐ๋ž˜์ผ ์ €๋… AI๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” JSON์œผ๋กœ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ž…๋„, API ํ‚ค๋„, ์š”์ฒญ ์ œํ•œ๋„ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿ”— ์‚ฌ์ดํŠธ https://aikstockdata.com ยท MCP ์ฃผ์†Œ https://mcp.aikstockdata.com/mcp

๊ณต์‹ MCP ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— com.aikstockdata/mcp ๋กœ ๋“ฑ์žฌ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ ํ™•์ธ ์™„๋ฃŒ).

Hugging Face Kaggle MCP Auth License

English documentation is in the second half of this page.


30์ดˆ ๋งŒ์— AI์— ๋ถ™์ด๊ธฐ

Claude ยท ChatGPT โ€” MCP ์ปค๋„ฅํ„ฐ

์„ค์ •์˜ ์ปค์Šคํ…€ ์ปค๋„ฅํ„ฐ์— ์•„๋ž˜ ์ฃผ์†Œ๋ฅผ ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๋์ž…๋‹ˆ๋‹ค. ์ธ์ฆ์ด ์—†์Šต๋‹ˆ๋‹ค.

Code
https://mcp.aikstockdata.com/mcp

๋„๊ตฌ 10๊ฐœ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

๋„๊ตฌ๋ฌด์—‡์„
get_today์˜ค๋Š˜ ์‹œ์žฅ ํ•œ ๋ฐฉ์— โ€” ๋“ฑ๋ฝยท์ƒ์Šนํ•˜๋ฝ ์ข…๋ชฉ ์ˆ˜ยท์ฃผ์š” ๊ณต์‹œ
search_stock ยท get_stock์ข…๋ชฉ ์ฐพ๊ธฐ ยท ์ข…๋ชฉ ์ƒ์„ธ(์‹œ์„ธยท์žฌ๋ฌดยท๊ณต์‹œ)
get_rankings ยท get_market_summary์ˆœ์œ„ํ‘œ ยท ์‹œ์žฅ ์š”์•ฝ
list_stocks์กฐ๊ฑด์— ๋งž๋Š” ์ข…๋ชฉ ๋ชฉ๋ก โ€” ํ‘์ž์ „ํ™˜ยท52์ฃผ ์‹ ๊ณ ์ €์— ์‹œ์ดรท์—ฐํ™˜์‚ฐ์˜์—…์ด์ต ๋ฐฐ์ˆ˜ ์ƒํ•œ๊นŒ์ง€
get_earnings์ž ์ • ์‹ค์  ํฌํ•จ โ€” ์ •๊ธฐ๋ณด๊ณ ์„œ๋ณด๋‹ค 2์ฃผ ๋น ๋ฆ…๋‹ˆ๋‹ค
get_history250๊ฑฐ๋ž˜์ผ ์ผ๋ณ„ ์‹œ์„ธ + 52์ฃผ ๊ณ ์ €ยท๊ณ ์  ๋Œ€๋น„ ๋‚™ํญยท๊ฑฐ๋ž˜๋Ÿ‰ ๋ฐฐ์ˆ˜
get_disclosure_impact๊ณต์‹œ ์œ ํ˜•๋ณ„๋กœ ๊ทธ ๋’ค 1ยท5ยท20๊ฑฐ๋ž˜์ผ ์ฃผ๊ฐ€(์‹œ์žฅ ๋“ฑ๋ฝ์„ ๋บ€ ๊ฐ’)
get_data_urls์›์ž๋ฃŒ ์ฃผ์†Œ ์นดํƒˆ๋กœ๊ทธ โ€” ๋„๊ตฌ์— ์—†๋Š” ๊ฒƒ๋„ JSON ์œผ๋กœ ๋‹ค ์žˆ์Šต๋‹ˆ๋‹ค

๊ทธ๋‹ค์Œ์—” ๊ทธ๋ƒฅ ๋ฌผ์–ด๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค: "์˜ค๋Š˜ ํ•œ๊ตญ ์‹œ์žฅ ์–ด๋• ์–ด?" ยท "์‚ผ์„ฑ์ „์ž ์ตœ๊ทผ ๊ณต์‹œ ์ •๋ฆฌํ•ด์ค˜" ยท "ํ‘์ž์ „ํ™˜ํ•œ ์ข…๋ชฉ ์ค‘์— ์‹œ์ด์ด ์˜์—…์ด์ต์˜ 10๋ฐฐ ์•ˆ ๋˜๋Š” ๊ฒƒ๋งŒ"

MCP ์—†์ด โ€” ์ฃผ์†Œ๋งŒ ๋ถ™์—ฌ๋„ฃ๊ธฐ

Code
https://aikstockdata.com/data/public/today.json ์„ ์ฝ๊ณ  ์˜ค๋Š˜ ํ•œ๊ตญ ์‹œ์žฅ์„ ์š”์•ฝํ•ด์ค˜.

Python

server.ts
import urllib.request, json

def get(path):
    url = "https://aikstockdata.com/data/public/" + path
    return json.load(urllib.request.urlopen(url))

today = get("today.json")            # ์˜ค๋Š˜ ํ•˜๋ฃจ ์š”์•ฝ (7KB)
samsung = get("s/005930.json")       # ํ•œ ์ข…๋ชฉ (5KB)
hist = get("s/005930_history.json")  # 1๋…„์น˜ [๋‚ ์งœ, ์ข…๊ฐ€, ๊ฑฐ๋ž˜๋Ÿ‰] (7KB)

โ˜…์ข…๋ชฉ์ฝ”๋“œ๋Š” ์—ฌ์„ฏ ์ž๋ฆฌ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ •์ˆ˜๋กœ ์ฝ์œผ๋ฉด 000020์ด 20์ด ๋ฉ๋‹ˆ๋‹ค. pandas ๋ฅผ ์“ด๋‹ค๋ฉด dtype={"code": str} ๋ฅผ ๋ฐ˜๋“œ์‹œ ์ฃผ์„ธ์š”.

curl

Terminal
curl -s https://aikstockdata.com/data/public/s/005930.json

์ด๋ ‡๊ฒŒ ๋ฌผ์–ด๋ณด์„ธ์š”

MCP ๋ฅผ ๋ถ™์˜€๊ฑฐ๋‚˜ ์ฃผ์†Œ๋ฅผ ๋ถ™์—ฌ๋„ฃ์—ˆ๋‹ค๋ฉด, ์•„๋ž˜๋Š” ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด ์“ฐ๋Š” ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ „๋ถ€ ์šฐ๋ฆฌ ๋ฐ์ดํ„ฐ๋กœ ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋งŒ ๊ณจ๋ž์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋‚˜

Code
์˜ค๋Š˜ ํ•œ๊ตญ ์‹œ์žฅ ์–ด๋• ์–ด? ์ง€์ˆ˜๋ž‘ ์˜ค๋ฅธ ์ข…๋ชฉ ์ˆ˜๋ฅผ ๊ฐ™์ด ์•Œ๋ ค์ค˜.

์ง€์ˆ˜์™€ ์ƒ์Šน ์ข…๋ชฉ ์ˆ˜๋Š” ์ž์ฃผ ๋ฐ˜๋Œ€๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Code
์˜ค๋Š˜ ์ ‘์ˆ˜๋œ ๊ณต์‹œ ์ค‘ ์ค‘์š”๋„ ๋†’์€ ๊ฒƒ 10๊ฑด๋งŒ ์‰ฌ์šด ๋ง๋กœ ํ’€์–ด์ค˜.
Code
์˜ค๋Š˜ ์žฅ ๋งˆ๊ฐ ํ›„์— ๋‚˜์˜จ ๊ณต์‹œ๋งŒ ๊ณจ๋ผ์ค˜. ์•„์ง ์ข…๊ฐ€์— ๋ฐ˜์˜๋˜์ง€ ์•Š์€ ๊ฒƒ๋“ค์ด์•ผ.

์ด๊ฒŒ ์šฐ๋ฆฌ๋งŒ ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค โ€” ๊ณต๊ฐœ API ์—๋Š” ์ ‘์ˆ˜ ๋‚ ์งœ๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ ์ข…๋ชฉ์„ ํŒŒ๊ณ ๋“ค ๋•Œ

Code
์‚ผ์„ฑ์ „์ž ์ตœ๊ทผ ๊ณต์‹œ๋ž‘ ๋ถ„๊ธฐ ์‹ค์  ์ •๋ฆฌํ•ด์ค˜. ์ „๋…„ ๋™๊ธฐ ๋Œ€๋น„๋„.
Code
005930 ์˜ ์ตœ๊ทผ 1๋…„ ์ข…๊ฐ€ ํ๋ฆ„์—์„œ ์ตœ๊ณ ๊ฐ€ ๋Œ€๋น„ ์ง€๊ธˆ ๋ช‡ % ์ง€์ ์ธ์ง€ ๊ณ„์‚ฐํ•ด์ค˜.

s/005930_history.json ํ•œ ํŒŒ์ผ(7KB)๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.

Code
SKํ•˜์ด๋‹‰์Šค๊ฐ€ ์ตœ๊ทผ์— ๋‚ธ ๊ณต์‹œ ์ค‘์— ์ž๊ธฐ์ฃผ์‹ ๊ด€๋ จ๋œ ๊ฒŒ ์žˆ์–ด?

์—ฌ๋Ÿฌ ์ข…๋ชฉ์„ ํ›‘์„ ๋•Œ

Code
์‹œ๊ฐ€์ด์•ก ์ƒ์œ„ 20๊ฐœ ์ข…๋ชฉ์˜ ์˜ค๋Š˜ ๋“ฑ๋ฝ๋ฅ ์„ ํ‘œ๋กœ ๋งŒ๋“ค์–ด์ค˜.
Code
์ตœ๊ทผ 120์ผ ์•ˆ์— ์‹ค์ ์„ ๋ฐœํ‘œํ•œ ์ข…๋ชฉ ์ค‘ ์˜์—…์ด์ต์ด ์ „๋…„ ๋Œ€๋น„ ๋Š˜์–ด๋‚œ ๊ณณ์„ ์ฐพ์•„์ค˜.
Code
52์ฃผ ์‹ ๊ณ ๊ฐ€๋ฅผ ์ฐ์€ ์ข…๋ชฉ์ด ์˜ค๋Š˜ ๋ช‡ ๊ฐœ์•ผ?

๊ณต์‹œ๊ฐ€ ๋‚˜์˜จ ๋’ค์— ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€

Code
๋ฐฐ๋‹น ๊ฒฐ์ • ๊ณต์‹œ ๋’ค 5๊ฑฐ๋ž˜์ผ ๋™์•ˆ ์‹œ์žฅ ๋Œ€๋น„ ์ˆ˜์ต๋ฅ ์ด ์–ด๋• ๋Š”์ง€ ์•Œ๋ ค์ค˜.
์‹ ๋ขฐ๊ตฌ๊ฐ„๋„ ๊ฐ™์ด ๋ณด์—ฌ์ฃผ๊ณ , 0์„ ํฌํ•จํ•˜๋Š”์ง€ ํŒ๋‹จํ•ด์ค˜.

์ˆซ์ž๋งŒ ๋ฐ›์•„ ์˜ค์ง€ ๋ง๊ณ  ๊ตฌ๊ฐ„์„ ๊ฐ™์ด ๋ฌผ์–ด๋ณด์„ธ์š”. ํ˜„์žฌ ์ˆซ์ž๊ฐ€ ์žˆ๋Š” 18์นธ ์ค‘ 15์นธ์˜ 95% ๊ตฌ๊ฐ„์ด 0์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ์‹ค์„ ๊ฐ์ถ”์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ด ํ‘œ์˜ ์š”์ ์ž…๋‹ˆ๋‹ค.

Code
๊ณต์‹œ ์ ‘์ˆ˜ ์‹œ๊ฐ์ด ์žฅ ์‹œ์ž‘ ์ „์ธ ๊ฑด๊ณผ ์žฅ ๋งˆ๊ฐ ํ›„์ธ ๊ฑด์„ ๋‚˜๋ˆ ์„œ,
๊ณต์‹œ ๋‹น์ผ ์ˆ˜์ต๋ฅ  ์ค‘์•™๊ฐ’์„ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•ด์ค˜.

์ ‘์ˆ˜ ์‹œ๊ฐ์ด ์—†์œผ๋ฉด ์ด ์งˆ๋ฌธ ์ž์ฒด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ์‹ถ์„ ๋•Œ

Code
https://aikstockdata.com/data/public/index.json ์„ ์ฝ๊ณ 
์ง€๊ธˆ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉฐ์น  ์ „ ๊ฒƒ์ธ์ง€, ์‹ ์„ ๋„ ์ƒํƒœ๊ฐ€ ๋ญ”์ง€ ์•Œ๋ ค์ค˜.

์‹ ์„ ๋„๋Š” ์ €ํฌ ์ฃผ์žฅ์ด ์•„๋‹ˆ๋ผ ๊ณ„์‚ฐ๊ฐ’์ž…๋‹ˆ๋‹ค. ์˜ค๋ž˜๋˜๋ฉด ์Šค์Šค๋กœ stale ์ด๋ผ๊ณ  ๋ฐํž™๋‹ˆ๋‹ค.

Code
disclosure_impact.json ์˜ per_event ๋ฅผ ๋ฐ›์•„์„œ ๋ฐฐ๋‹น ๊ฒฐ์ • ์œ ํ˜•์˜ +5์ผ
์ค‘์•™๊ฐ’์„ ์ง์ ‘ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ด์ค˜. cluster ๋กœ ์ค‘๋ณต์„ ๋จผ์ € ์ œ๊ฑฐํ•˜๊ณ .

์ง‘๊ณ„๋ฅผ ๋ฐ˜๋ฐ•ํ•˜๋ผ๊ณ  ๊ฐœ๋ณ„ ๊ฐ’์„ ์‹ฃ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ cluster ๋Š” ํ•œ ๋ฒˆ๋งŒ ์„ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค โ€” ์•ˆ ๊ทธ๋Ÿฌ๋ฉด ์ €ํฌ๊ฐ€ ์ €์งˆ๋ €๋˜ ์ค‘๋ณต ๊ณ„์‚ฐ์ด ์žฌํ˜„๋ฉ๋‹ˆ๋‹ค.


์™œ ๋งŒ๋“ค์—ˆ๋‚˜

ํ•œ๊ตญ ์‹œ์žฅ ๋ฐ์ดํ„ฐ๋Š” AI๊ฐ€ ์“ฐ๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ์ถœ์ฒ˜(๊ธˆ์œต์œ„์›ํšŒ ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ, ๊ธˆ์œต๊ฐ๋…์› DART)๋Š” API ํ‚ค๋ฅผ ๋จผ์ € ๋ฐ›์•„์•ผ ํ•˜๊ณ , ํ•œ๊ธ€ ํ•„๋“œ๋ช…์ด ๊ทธ๋Œ€๋กœ์ธ XMLยทJSON์„ ์ฃผ๋ฉฐ, ๊ฐ’์ด ์—†๋Š” ๊ฒƒ์ธ์ง€ 0์ธ ๊ฒƒ์ธ์ง€ ๊ตฌ๋ถ„ํ•  ๋ฐฉ๋ฒ•์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ทธ๊ฒƒ์„ LLM์ด ๊ทธ๋Œ€๋กœ ์ฝ๋Š” ์ž๊ธฐ์„ค๋ช…ํ˜• JSON์œผ๋กœ ์ •๊ทœํ™”ํ•˜๊ณ , ์ฃผ์†Œ ํ•˜๋‚˜๋งŒ ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๋˜๋Š” MCP ์„œ๋ฒ„๋ฅผ ์–น์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์งˆ์ ์ธ ์ฐจ์ด๋Š” ์ž๊ฒฉ์ฆ๋ช…์ž…๋‹ˆ๋‹ค. ํ•œ๊ตญ ์ฃผ์‹ MCP ์„œ๋ฒ„ ๋Œ€๋ถ€๋ถ„์€ DARTยท์ฆ๊ถŒ์‚ฌ API๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ค‘๊ณ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ํ˜ธ์ถœ ์ „์— ํ‚ค ๋ฐœ๊ธ‰์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋ฒ„๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘” ๊ณต๊ฐœ ํŒŒ์ผ์„ ๋‚ด๋ณด๋‚ด๋ฏ€๋กœ ์ฃผ์†Œ๋ฅผ ๋ถ™์—ฌ๋„ฃ๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.


์—ฌ๊ธฐ์„œ๋งŒ ๋ฌด๋ฃŒ๋กœ ์–ป๋Š” ๊ฒƒ

1. โ˜…๊ณต์‹œ ์ ‘์ˆ˜ ์‹œ๊ฐ (HH:MM) โ€” ๊ณต๊ฐœ API ์–ด๋””์—๋„ ์—†์Šต๋‹ˆ๋‹ค

DART ๊ณต์‹œ๊ฒ€์ƒ‰ API๊ฐ€ ์ฃผ๋Š” ์ ‘์ˆ˜ ์ •๋ณด๋Š” ๋‚ ์งœ(YYYYMMDD)๋ฟ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ๊ณต์‹œ ๋ทฐ์–ด์—๋„, ๊ณต์‹œ๊ฒ€์ƒ‰ ํ™”๋ฉด์—๋„ ์‹œ:๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ™์€ ๋‚ ์งœ์˜ ๊ณต์‹œ๋ผ๋„ ์žฅ์ค‘์— ๋‚˜์˜จ ๊ฒƒ๊ณผ ์žฅ ๋งˆ๊ฐ ํ›„์— ๋‚˜์˜จ ๊ฒƒ์€ ๊ทธ๋‚  ์ข…๊ฐ€์— ๋Œ€ํ•ด ์ •๋ฐ˜๋Œ€๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค โ€” ์•ž์˜ ๊ฒƒ์€ ์ด๋ฏธ ์ฃผ๊ฐ€์— ๋ฐ˜์˜๋๊ณ , ๋’ค์˜ ๊ฒƒ์€ ์•„์ง ๋ฐ˜์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ €ํฌ๋Š” ์‹œ:๋ถ„์ด ๋‚จ์•„ ์žˆ๋Š” ์œ ์ผํ•œ ๊ณณ์—์„œ ์ด ๊ฐ’์„ ๋”ฐ๋กœ ๋ชจ์•„ ๋ถ™์ž…๋‹ˆ๋‹ค.

Code
https://aikstockdata.com/data/public/disclosures.json          # 18:10 ๋ฐœํ–‰ ยท events[].receipt_time ยท session
https://aikstockdata.com/data/public/disclosures_intraday.json # 15:00 ๋ฐœํ–‰ ยท ๊ทธ๋‚  ์ ‘์ˆ˜ ์ „๊ฑด
https://aikstockdata.com/data/public/dart_receipt_times.json   # ์ ‘์ˆ˜๋ฒˆํ˜ธ โ†” ์‹œ๊ฐ ๋Œ€์กฐํ‘œ

session ์€ ์ •๊ทœ์žฅ(09:00~15:30) ๊ธฐ์ค€ ์„ธ ๊ฐˆ๋ž˜์ž…๋‹ˆ๋‹ค.

๊ฐ’๋œป๊ทธ๋‚  ์ข…๊ฐ€ ์›€์ง์ž„์€
pre_open~09:00 ์ ‘์ˆ˜์ „์ฒด๊ฐ€ ๊ณต์‹œ ๋’ค โ€” ๋ฐ˜์‘์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๊ฒฝ์šฐ
intraday09:00~15:30์•ž๋ถ€๋ถ„์€ ๊ณต์‹œ ์ด์ „ โ€” ์„ž์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค
after_close15:30~์ „์ฒด๊ฐ€ ๊ณต์‹œ ์•ž โ€” ๊ณต์‹œ ๋ฐ˜์‘์ด ์•„๋‹™๋‹ˆ๋‹ค
python
d = get("disclosures.json")
late = [e for e in d["events"] if e["session"] == "after_close"]
# ์˜ค๋Š˜ ์žฅ ๋งˆ๊ฐ ๋’ค์— ๋‚˜์˜จ ๊ณต์‹œ โ€” ์•„์ง ์ข…๊ฐ€์— ๋ฐ˜์˜๋˜์ง€ ์•Š์•˜๋‹ค

์‹ค์ธก์œผ๋กœ ์ ‘์ˆ˜ ๊ฑด์˜ 40% ์•ˆํŒŽ์ด ์žฅ ๋งˆ๊ฐ ํ›„์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ์ด ์—†์œผ๋ฉด ๊ทธ 40%๋ฅผ ๊ทธ๋‚  ์ข…๊ฐ€์˜ ๋ฐ˜์‘์œผ๋กœ ์ž˜๋ชป ์ฝ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

2. ๊ณต์‹œ ์œ ํ˜•๋ณ„๋กœ ๊ทธ ๋’ค์— ์‹ค์ œ๋กœ ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋‚˜

๊ณต์‹œ๋งˆ๋‹ค ๊ทธ ์ข…๋ชฉ์˜ ์ผ๋ณ„ ์ข…๊ฐ€์™€ ์†Œ์† ์ง€์ˆ˜๋ฅผ ๋ถ™์—ฌ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. "์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ณต์‹œ ๋’ค์— ์‹œ์žฅ์€ ์–ด๋–ป๊ฒŒ ์›€์ง์˜€๋‚˜" ๋ฅผ ๊ธฐ๋ก์œผ๋กœ์„œ ๋ฌผ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์˜ˆ์ธก์ด ์•„๋‹™๋‹ˆ๋‹ค.

Code
https://aikstockdata.com/data/public/disclosure_impact.json

์œ ํ˜•๋ณ„๋กœ +1 / +5 / +20๊ฑฐ๋ž˜์ผ ๋’ค์˜ ์‹œ์žฅ์กฐ์ • ์ˆ˜์ต๋ฅ  ์ค‘์•™๊ฐ’(์ข…๋ชฉ ์ˆ˜์ต๋ฅ  โˆ’ ๊ฐ™์€ ๊ธฐ๊ฐ„ ์†Œ์† ์ง€์ˆ˜ ์ˆ˜์ต๋ฅ )๊ณผ ์‹œ์žฅ์„ ์ด๊ธด ๋น„์œจ์„ ํ•จ๊ป˜ ๋ƒ…๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ๊ฐ’์€ DART ์ ‘์ˆ˜๋ฒˆํ˜ธ๋ฅผ ์—ด์‡ ๋กœ ์‹ฃ๊ธฐ ๋•Œ๋ฌธ์— ์›๋ฌธ๊ณผ ๋Œ€์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‘œ๋ณธ์ด 20๊ฑด ๋ฏธ๋งŒ์ธ ์œ ํ˜•์—๋Š” ์ˆซ์ž๋ฅผ ๋„ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฑด์งœ๋ฆฌ ์ค‘์•™๊ฐ’์€ ์šฐ์—ฐ์„ ํ†ต๊ณ„๋กœ ๋‘”๊ฐ‘์‹œํ‚ต๋‹ˆ๋‹ค. 95% ๊ตฌ๊ฐ„๋„ ํ•จ๊ป˜ ์‹ฃ๋Š”๋ฐ, ํ˜„์žฌ ์ˆซ์ž๊ฐ€ ์žˆ๋Š” 18์นธ ์ค‘ 17์นธ์˜ ๊ตฌ๊ฐ„์ด 0์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ์‹ค์„ ๊ฐ์ถ”์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ด ํ‘œ์˜ ์š”์ ์ž…๋‹ˆ๋‹ค.

3. ์ข…๋ชฉ๋‹น 1๋…„ ์‹œ์„ธ๊ฐ€ ํ•œ ํŒŒ์ผ 7KB

s/{์ข…๋ชฉ์ฝ”๋“œ}_history.json โ€” ์ตœ๋Œ€ 250๊ฑฐ๋ž˜์ผ์˜ [๋‚ ์งœ, ์ข…๊ฐ€, ๊ฑฐ๋ž˜๋Ÿ‰]. ํ–‰์„ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐฐ์—ด๋กœ ๋‘ก๋‹ˆ๋‹ค. ์—ฌ์„ฏ ๊ฐœ ํ‚ค ์ด๋ฆ„์„ 250๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด ์ •๋ณด ์—†์ด ํŒŒ์ผ๋งŒ ๋‘ ๋ฐฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค(์‹ค์ธก 14.3KB โ†’ 6.8KB).

4. ์ง€์ˆ˜์™€ ์ƒ์Šน ์ข…๋ชฉ ์ˆ˜๋ฅผ ๋”ฐ๋กœ ์ค๋‹ˆ๋‹ค โ€” ๋‘˜์ด ์–ด๊ธ‹๋‚˜๊ธฐ ๋•Œ๋ฌธ์—

today.json ์€ KOSPIยทKOSDAQ ์ข…๊ฐ€์™€ ์ƒ์Šนยทํ•˜๋ฝ ์ข…๋ชฉ ์ˆ˜๋ฅผ ๋‘˜ ๋‹ค ์‹ฃ์Šต๋‹ˆ๋‹ค. ์ด ๋‘˜์€ ์ž์ฃผ ๋ฐ˜๋Œ€๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. 2026-08-03 ์—๋Š” ์ฝ”์Šคํ”ผ๊ฐ€ 5.12% ๋‚ด๋ ธ๋Š”๋ฐ 855์ข…๋ชฉ์ด ์˜ค๋ฅด๊ณ  518์ข…๋ชฉ์ด ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค โ€” ์ง€์ˆ˜๋Š” ์‹œ์ด ๊ฐ€์ค‘์ด๊ณ  ์ข…๋ชฉ ์ˆ˜๋Š” ํ•œ ์ข…๋ชฉ ํ•œ ํ‘œ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ถœ์ฒ˜๋Š” ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์ฃผ๊ณ  ๋‚˜๋จธ์ง€๋Š” ๊ฐ™์œผ๋ ค๋‹ˆ ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

5. ๊ฑฐ๋ž˜์ผ๋งˆ๋‹ค ์˜๊ตฌ ์ฃผ์†Œ๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค

https://aikstockdata.com/market/{YYYY-MM-DD} โ€” ์ฃผ์†Œ์˜ ๋‚ ์งœ๋Š” ๋ฐœํ–‰์ผ์ด ์•„๋‹ˆ๋ผ ์ข…๊ฐ€ ๊ธฐ์ค€์ผ์ž…๋‹ˆ๋‹ค. (ํ•œ ๋ฒˆ ํ‹€๋ฆฐ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํญ๋ฝํ•œ ๋‚  ํŽ˜์ด์ง€๊ฐ€ ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ +17.9% ๋จธ๋ฆฌ๊ธฐ์‚ฌ๋ฅผ ๋‹ฌ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋‚ ์งœ์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๊ธ‹๋‚  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.)


ํ†ต์งœ๋กœ ๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด

๋ฐœํ–‰์ผ์— ๊ณ ์ •๋œ ์Šค๋ƒ…์ƒท์ž…๋‹ˆ๋‹ค. ๋งค ๊ฑฐ๋ž˜์ผ ๊ฐฑ์‹ ๋˜๋Š” ์›๋ณธ์€ ์œ„ ์ฃผ์†Œ๋“ค์ž…๋‹ˆ๋‹ค.

์–ด๋””๋ฌด์—‡
Hugging FaceJSON Lines ยท ์ข…๋ชฉ ๋งˆ์Šคํ„ฐ ยท ์ผ๋ณ„ ์ข…๊ฐ€ ยท ๊ณต์‹œ ์œ ํ˜•๋ณ„ ์ดํ›„ ์ฃผ๊ฐ€
KaggleCSV 4๊ฐœ ยท ๊ณต์‹œ ์ ‘์ˆ˜ ์‹œ๊ฐ ์—ด ํฌํ•จ

์ธ์šฉ์šฉ ์›”๊ฐ„ ๋™๊ฒฐ๋ณธ์€ ํ—ˆ๊น…ํŽ˜์ด์Šค์˜ korea-equity-daily-YYYY-MM ์— ๋”ฐ๋กœ ์žˆ์Šต๋‹ˆ๋‹ค. main ์€ ๋งค ๊ฑฐ๋ž˜์ผ ๋ฎ์–ด์“ฐ์ด๋ฏ€๋กœ ์ธ์šฉ์— ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


์„ค๊ณ„ ์›์น™

  • null ์€ 0์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฒฐ์ธก์€ null, 0 ์€ ์‹ค์ œ๋กœ ์ธก์ •๋œ 0์ž…๋‹ˆ๋‹ค(๊ฑฐ๋ž˜ ์—†์Œ ๋“ฑ, has_trade: false ๋กœ ํ‘œ์‹œ).
  • '๊ธฐ์ค€์ผ'์ด ๋‘ ๊ฐœ์ž…๋‹ˆ๋‹ค. quote_as_of(์‹œ์„ธ ๊ธฐ์ค€์ผ, T+1 ํ™•์ • ์ข…๊ฐ€)์™€ disclosure_through(๊ณต์‹œ ์ˆ˜๋ก์ผ)๋Š” ๋”ฐ๋กœ ์›€์ง์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ "์˜ค๋Š˜"๋กœ ํ•ฉ์น˜์ง€ ๋งˆ์„ธ์š”.
  • ์‹ ์„ ๋„๋Š” ์ฃผ์žฅ์ด ์•„๋‹ˆ๋ผ ๊ณ„์‚ฐ๊ฐ’์ž…๋‹ˆ๋‹ค. index.json โ†’ freshness.status ๋Š” ์‹ค์ œ ๊ฒฝ๊ณผ์ผ์—์„œ ๋‚˜์˜ต๋‹ˆ๋‹ค(fresh 4์ผ ์ด๋‚ด / delayed 5~7์ผ / stale 8์ผ ์ด์ƒ). quote_as_of_age_days ๋ฅผ ๊ฐ™์ด ์‹ค์–ด ์ง์ ‘ ๊ฒ€์‚ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํšŒ๊ณ„ ํ•ญ๋“ฑ์‹์„ ์–ด๊ธฐ๋Š” ์ˆ˜์น˜๋Š” ๊ฒŒ์‹œํ•˜์ง€ ์•Š๊ณ  ์ฒ ํšŒํ•ฉ๋‹ˆ๋‹ค. ์ˆœ์ด์ต์ด ๋งค์ถœ์•ก์„ ๋„˜๋Š” ๋“ฑ์˜ ํŒŒ์‹ฑ ๊ฒฐ๊ณผ๋Š” ์ˆซ์ž๋ฅผ ์ง€์šฐ๊ณ  ๊ณต์‹œ ์ œ๋ชฉ๊ณผ DART ์›๋ฌธ ๋งํฌ๋งŒ ๋‚จ๊น๋‹ˆ๋‹ค (value_status: "withdrawn_inconsistent").
  • ๋žญํ‚น ์‚ฐ์‹์€ ์ „๋ถ€ ๊ณต๊ฐœ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค โ€” rankings.json ์•ˆ์— ์„ฑ๋ถ„๋ณ„ ์ ์ˆ˜๊นŒ์ง€ ๋“ค์–ด ์žˆ์–ด ๋ˆ„๊ตฌ๋‚˜ ์žฌ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹คํŒจ๋„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค. notices.json ์— ํŒŒ์ดํ”„๋ผ์ธ ์‹คํŒจ์™€ ์ •์ •์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰์ด ์‹คํŒจํ•˜๋ฉด ๋ฐ˜์ฏค ๋งŒ๋“  ๊ฒƒ์„ ๋‚ด๋ณด๋‚ด์ง€ ์•Š๊ณ  ๋งˆ์ง€๋ง‰ ์ •์ƒ ์Šค๋ƒ…์ƒท์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ํˆฌ์ž ๊ถŒ์œ ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ณต๊ฐœ ๊ณต์‹œ์— ๋Œ€ํ•œ ๊ธฐ๊ณ„์  ์ง‘๊ณ„์ด๋ฉฐ ๋ชฉํ‘œ์ฃผ๊ฐ€ยทํˆฌ์ž์˜๊ฒฌยท๋งค์ˆ˜๋งค๋„ ์ถ”์ฒœ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ค๊ณ„์ƒ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

์—†๋Š” ๊ฒƒ

์‹ค์‹œ๊ฐ„ยท๋ถ„๋ด‰ ์‹œ์„ธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(์ „ ์˜์—…์ผ ํ™•์ • ์ข…๊ฐ€, T+1). ์ฆ๊ถŒ์‚ฌ ์œ ๋ž˜์˜ PERยทPBRยท์ปจ์„ผ์„œ์Šคยท ๋ชฉํ‘œ์ฃผ๊ฐ€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฃผ๋ฌธ ์‹คํ–‰ ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ์˜๋„๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค โ€” ์žฌ๋ฐฐํฌํ•  ๊ถŒ๋ฆฌ๊ฐ€ ๋ถ„๋ช…ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋‹ค๋ฃน๋‹ˆ๋‹ค.


์ถœ์ฒ˜์™€ ๋ผ์ด์„ ์Šค

  • ๊ธˆ์œต๊ฐ๋…์› ์ „์ž๊ณต์‹œ์‹œ์Šคํ…œ(DART) โ€” ๊ณต์‹œ
  • ๊ธˆ์œต์œ„์›ํšŒ ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ โ€” ์ผ๋ณ„ ํ™•์ • ์ข…๊ฐ€

๋ฐœํ–‰ ํŒŒ์ผ์€ ๊ณต๊ณต๋ฐ์ดํ„ฐ ๊ฐ€๊ณต๋ฌผ์ด๋ฉฐ ์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•˜๋ฉด ์˜๋ฆฌ ๋ชฉ์ ์„ ํฌํ•จํ•ด ์ž์œ ๋กญ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฃŒ: ํ•œ๊ตญ์ฃผ์‹๋ฐ์ดํ„ฐ(aikstockdata.com) โ€” ์›์ฒœ: ๊ธˆ์œต๊ฐ๋…์› DART ยท ๊ธˆ์œต์œ„์›ํšŒ ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ

์ด ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ๋Š” MIT ๋ผ์ด์„ ์Šค์ž…๋‹ˆ๋‹ค(LICENSE ์ฐธ์กฐ). ์œ„ ๋ฐ์ดํ„ฐ ๋ผ์ด์„ ์Šค๋Š” ๋ฐœํ–‰๋˜๋Š” JSONยทCSV ํŒŒ์ผ์— ์ ์šฉ๋˜๋ฉฐ ์ด ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐœํ–‰ ๋ฐ์ดํ„ฐ๋Š” ์ •๋ณด ์ œ๊ณต ๋ชฉ์ ์ด๋ฉฐ ํˆฌ์ž ์กฐ์–ธ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ธฐ๊ณ„๊ฐ€ ์ง‘๊ณ„ํ•œ ๊ณผ๊ฑฐ ๊ธฐ๋ก์ด๊ณ  ์–ด๋–ค ์ข…๋ชฉ์˜ ๋งค์ˆ˜ยท๋งค๋„๋ฅผ ๊ถŒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


์ €์žฅ์†Œ ๊ตฌ์„ฑ

Code
mcp/worker.js      MCP ์„œ๋ฒ„ (Cloudflare Worker ยท ์ƒํƒœ ์—†๋Š” JSON-RPC over HTTP)
examples/          ๋ฐ”๋กœ ๋Œ์•„๊ฐ€๋Š” Python ยท JavaScript ยท ์…ธ ์˜ˆ์ œ

๋ฐœํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์€ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


English

The Korean documentation above is the primary reference. This section mirrors it.

Why this exists

Korean market data is hard for AI to use. The official sources (๊ธˆ์œต์œ„์›ํšŒ public data portal, ๊ธˆ์œต๊ฐ๋…์› DART) require API keys, return raw XML/JSON with untranslated Korean field names, and give you no way to tell whether a number is missing or actually zero.

This project normalizes them into selfโ€‘describing JSON that an LLM can read directly โ€” and adds an MCP server so Claude and ChatGPT can query it midโ€‘conversation without any setup beyond pasting a URL.

The practical difference: no credentials. Most Korean stock MCP servers proxy the DART or brokerage APIs live, so you have to register for a key before the first call. This one serves preโ€‘built public files, so it works the moment you paste the URL.


Quick start โ€” connect an AI in 30 seconds

Claude / ChatGPT (MCP connector)

Add this URL as a custom connector in settings. No authentication.

Code
https://mcp.aikstockdata.com/mcp

Ten tools become available.

ToolWhat it does
get_todayWhole market in one call โ€” breadth, tone, top filings
search_stock ยท get_stockFind a ticker ยท full detail (price, financials, filings)
get_rankings ยท get_market_summaryRanking tables ยท market digest
list_stocksThe list, not just the count โ€” turnaround to profit, 52-week high/low, with a capรทannualised-operating-income ceiling
get_earningsPreliminary results included โ€” filed ~2 weeks before the regular report
get_history250 trading days of daily prices + 52w high/low, drawdown, volume ratio
get_disclosure_impactMarket-adjusted price path at +1/+5/+20 days after each filing type
get_data_urlsCatalogue of raw JSON โ€” the tool list is not the extent of the data

Then just ask: "์˜ค๋Š˜ ํ•œ๊ตญ ์‹œ์žฅ ์–ด๋• ์–ด?" or "Samsung Electronics latest disclosures?" or "Which stocks turned profitable and trade under 10ร— operating income?"

Any AI, without MCP โ€” paste a URL

Code
https://aikstockdata.com/data/public/today.json ์„ ์ฝ๊ณ  ์˜ค๋Š˜ ํ•œ๊ตญ ์‹œ์žฅ์„ ์š”์•ฝํ•ด์ค˜.

Python

server.ts
import urllib.request, json

def get(path):
    req = urllib.request.Request("https://aikstockdata.com" + path,
                                 headers={"User-Agent": "my-app"})
    return json.loads(urllib.request.urlopen(req).read())

today = get("/data/public/today.json")
print(today["market_breadth"], today["quote_as_of"])

samsung = get("/data/public/s/005930.json")     # one stock, ~5 KB
print(samsung["quote"], samsung["financials"])

Why the User-Agent header? The CDN's bot filter rejects the default Python-urllib user agent with a 403. requests, curl, httpx and browser fetch work without it. Sending any UA string is enough.

JavaScript (browser or Node โ€” CORS is open)

server.ts
const r = await fetch("https://aikstockdata.com/data/public/today.json");
const today = await r.json();
console.log(today.market_breadth, today.quote_as_of);

curl

Terminal
curl -s https://aikstockdata.com/data/public/s/005930.json | jq .quote

Prefer a bulk download? Hugging Face

The live API below is republished every trading evening. If you would rather pull one file and work offline, a dated snapshot is mirrored there:

https://huggingface.co/datasets/aikstockdata/korea-equity-daily

server.ts
from datasets import load_dataset

px = load_dataset("aikstockdata/korea-equity-daily", "daily_prices", split="train")
# 361,111 rows across 1,463 stocks, up to 250 trading days each (close and volume)

Four configs: daily_prices, stocks, filing_impact_summary, and filing_price_impact โ€” the individual filings behind the summary, one row each, so the published medians can be recomputed rather than taken on trust.

The loadable files are JSON Lines, not CSV. A Korean ticker is six digits including leading zeros, and type inference on CSV turns 000020 into 20, at which point it joins to nothing. The snapshot is frozen at its upload date โ€” the endpoints below are the ones that stay current.


Endpoints

Start at the catalog โ€” it lists every file with its size, freshness and archive dates:

Code
https://aikstockdata.com/data/public/index.json
EndpointWhat it isSize
today.jsonOneโ€‘day digest โ€” KOSPI/KOSDAQ index close, breadth, top filings, rankings7 KB
s/{code6}.jsonOne stock โ€” quote, financials, recent filings, signals~5 KB
s/{code6}_history.jsonOne stock, 250 trading days โ€” [date, close, volume]~7 KB
disclosure_impact.jsonWhat happened after each filing type โ€” marketโ€‘adjusted median return at +1/+5/+20 trading days60 KB
disclosures_intraday.jsonToday's filings with receipt times (HH:MM) โ€” published 15:00 KST, before the close60 KB
dart_receipt_times.jsonReceipt number โ†’ HH:MM lookup โ€” not available from any public API110 KB
earnings_recent60.jsonEarnings scoreboard, latest 60 (truncationโ€‘safe)40 KB
daily/today_{YYYYMMDD}.jsonArchived daily digest (30โ€‘day window)7 KB
search_index_min.jsonName โ†’ code lookup (URL patterns declared once)83 KB
disclosures_top100.jsonTop 100 filings by importance score, plainโ€‘Korean explanation80 KB
quotes_top300.jsonTop 300 by market cap, sort order guaranteed84 KB
rankings.jsonGrowth top 8, quiet performers, 52โ€‘week highs/lows, movers17 KB
earnings.jsonEarnings filings, 120โ€‘day rolling scoreboard148 KB
quotes_slim.jsonAll stocks, 6 core fields201 KB
quotes.jsonAll stocks, all fields400 KB
disclosures.jsonAll filings from the last 7 days, with financial detail380 KB
excluded.jsonStocks in the universe with no quote, and why9 KB
notices.jsonMachineโ€‘readable incident and correction log9 KB
quotes.csv / quotes_en.csvSame data as CSV (Korean / English headers)161 KB

Also: /openapi.json (OpenAPI 3.1 โ€” drop it into a ChatGPT custom GPT as an Action, or generate an SDK) ยท /llms.txt ยท /llms-full.txt ยท /feed.xml ยท JSON Schemas under /data/public/schemas/

โš ๏ธ Large files get truncated by AI fetch tools

Most AI fetch tools cut responses at 50โ€“150 KB, and a truncated JSON is unparseable โ€” which produces silently wrong answers rather than an error. index.json carries a machineโ€‘readable fetch_guide block with the small alternative for every large file. Rule of thumb: if you need one stock, always use s/{code}.json.


What you can't get anywhere else for free

0. Filing receipt times (HH:MM) โ€” not in any public Korean source

The DART search API returns a receipt date, never a time. Neither does the filing viewer, nor the search screen. But an intraday filing and an after-close filing mean opposite things for that day's close: the first is already in the price, the second is not.

Code
/data/public/disclosures.json           # 18:10 KST ยท events[].receipt_time and .session
/data/public/disclosures_intraday.json  # 15:00 KST ยท every filing received that day
/data/public/dart_receipt_times.json    # receipt number to time lookup

session splits on the Korean regular session (09:00-15:30): pre_open (the whole day follows the filing โ€” the only identifiable case), intraday (mixed), after_close (the whole day precedes it โ€” not a reaction at all). Measured: roughly 40% of filings arrive after the close. Without the minute, that 40% gets read as same-day reaction.

1. What actually happened after each filing type

Every filing is joined to that stock's daily closes and to its market index, so you can ask "what did the market do after this kind of filing, historically?" โ€” as a record, not a forecast.

Code
https://aikstockdata.com/data/public/disclosure_impact.json

For each filing type: the median marketโ€‘adjusted return at +1 / +5 / +20 trading days (stock return minus its own index over the same window), plus how often it beat the market. Perโ€‘filing values are keyed by DART receipt number, so you can join back to the original document. (๋ฐฐ๋‹น ๊ฒฐ์ • = dividend decision. Live values as of 2026โ€‘08โ€‘07; they change every trading evening โ€” always read the interval from the file, not from this page.)

config.json
{ "label": "๋ฐฐ๋‹น ๊ฒฐ์ •",
  "h5": { "n": 41, "enough": true, "median_excess_pct": 2.28,
          "median_ci95": [0.23, 4.65], "ci_includes_zero": false,
          "up_ratio_pct": 68.3 } }

Read median_ci95 before median_excess_pct. Of the cells currently carrying a number, most have an interval spanning zero โ€” those values are not distinguishable from zero. The interval ships in the same object so you cannot take the median alone by accident.

Types with fewer than 20 samples are not given a number โ€” a median over a handful of cases turns coincidence into a statistic. This is a record of what happened, not a claim about cause, and not a prediction.

2. One year of daily prices per stock, as one small file

s/{code6}_history.json โ€” up to 250 trading days of [date, close, volume], ~7 KB. Rows are arrays, not objects: repeating six key names 250 times doubles the file for no information (measured: 14.3 KB โ†’ 6.8 KB).

3. Index and breadth are kept separate โ€” because they disagree

today.json carries both the KOSPI/KOSDAQ close and the advance/decline count, because they routinely point opposite ways. On 2026โ€‘08โ€‘03 KOSPI fell 5.12% while 855 stocks rose and 518 fell: the index is capโ€‘weighted, the count is one vote per stock. Most sources give you only one of the two and let you assume they agree.

4. A dated page per trading day, permanently

https://aikstockdata.com/market/{YYYY-MM-DD} โ€” the URL date is the closingโ€‘price date, not the publish date. (We got that wrong once and a crash day carried a +17.9% headline for a few hours. Now the date and the data cannot disagree.)


Design decisions that matter for AI

  • null never means zero. A missing value is null. 0 means an actual measured zero (e.g. no trades that day, flagged by has_trade: false).
  • Two different "as of" dates. quote_as_of (price date, T+1 settled close) and disclosure_through (last filing receipt date) are separate fields, because they move independently. Never collapse them into one "today".
  • Freshness is computed, not asserted. index.json โ†’ freshness.status is derived from the actual age of the data (fresh โ‰ค4d / delayed 5โ€“7d / stale 8d+), and quote_as_of_age_days is exposed so you can check the arithmetic yourself.
  • Numbers that violate accounting identities are withdrawn, not published. If a parsed filing shows net income exceeding revenue, the numbers are dropped and only the filing title and the DART original link remain, tagged value_status: "withdrawn_inconsistent".
  • Every ranking formula is published inside rankings.json itself, with perโ€‘component scores, so any result can be recomputed.
  • Failures are logged in public. notices.json records pipeline failures and corrections. When a run fails, the last good snapshot is kept rather than publishing a partial one.
  • Not investment advice. Rankings are mechanical screens over public filings. No target prices, no analyst opinions, no buy/sell recommendations โ€” by design.

What is not here

No realโ€‘time quotes (data is the previous trading day's settled close, T+1). No PER/PBR/analyst consensus/target prices from brokerage sources. No order execution. These are deliberate โ€” the project only redistributes data it has clear rights to redistribute.


Data sources & license

Data derives from Korean public sources:

  • ๊ธˆ์œต๊ฐ๋…์› ์ „์ž๊ณต์‹œ์‹œ์Šคํ…œ (DART) โ€” regulatory filings
  • ๊ธˆ์œต์œ„์›ํšŒ ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ โ€” daily settled closing prices

The published files are derived works of public data and are free to use, including commercially, with attribution:

์ž๋ฃŒ: ํ•œ๊ตญ์ฃผ์‹๋ฐ์ดํ„ฐ(aikstockdata.com) โ€” ์›์ฒœ: ๊ธˆ์œต๊ฐ๋…์› DART ยท ๊ธˆ์œต์œ„์›ํšŒ ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ

The code in this repository is MIT licensed (see LICENSE). The data license above applies to the published JSON/CSV files, not to this repository's code.

The data is provided for information purposes and is not investment advice. It is a machine aggregation of past records and does not recommend buying or selling any security.


Repository contents

Code
mcp/worker.js      MCP server (Cloudflare Worker, stateless JSON-RPC over HTTP)
examples/          Runnable Python / JavaScript / shell examples

The data pipeline that produces the published files is maintained separately.



Keywords: Korean stock market API, KOSPI JSON, KOSDAQ data, DART disclosures API, MCP server Korea, free Korean stock data, ํ•œ๊ตญ ์ฃผ์‹ API ๋ฌด๋ฃŒ, ํ•œ๊ตญ ์ฃผ์‹ MCP, DART ๊ณต์‹œ JSON, ์ฝ”์Šคํ”ผ ์ข…๊ฐ€ CSV

Related MCP Servers

View all in Finance & Fintech View all alternatives
  • M
    Mcp Server

    34 stock valuation, financial data, and portfolio management tools for AI agents.

    ๐Ÿ’ฐ Finance & Fintech0 views
    Compare vs Mcp Server โ†’
  • A
    Aicastle School Openai Api Agent Project

    Fetch current stock prices and key data for symbols across global markets. Look up companies likeโ€ฆ

    ๐Ÿ’ฐ Finance & Fintech0 views
    Compare vs Aicastle School Openai Api Agent Project โ†’
  • Plugin logoPlugin

    Circulara Observe MCP plugin - meters your AI agents' token spend and carbon, free tier.

    ๐Ÿ’ฐ Finance & Fintech0 views
    Compare vs Plugin โ†’
  • F
    Flow

    Live US diesel prices and optimized stop-by-stop fuel plans for trucking. Free snapshot tool.

    ๐Ÿ’ฐ Finance & Fintech1 views
    Compare vs Flow โ†’

Frequently Asked Questions about Aikstockdata โ€” Korean Stock Data

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "aikstockdata-korean-stock-data": { "command": "npx", "args": ["-y", "aikstockdata โ€” Korean Stock Data"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewAikstockdata โ€” Korean Stock Data AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/aikstockdata-korean-stock-data?style=directory)](https://allmcps.com/mcp/aikstockdata-korean-stock-data)
HTML Embed
<a href="https://allmcps.com/mcp/aikstockdata-korean-stock-data"><img src="https://allmcps.com/api/badge/aikstockdata-korean-stock-data?style=directory" alt="Aikstockdata โ€” Korean Stock Data on AllMCPs" /></a>

Technical Specs & Signals

Category๐Ÿ’ฐFinance & Fintech
More technical detailsExpand โ–พ
TransportSSE (Remote)
RuntimeNode.js
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
GitHub stars2
GitHub Star CountTotal stargazers on GitHub representing community popularity (2 stars).
Last commit1d ago
Last Repository CommitThe most recent commit or push recorded for this server's GitHub repository.Last commit on Aug 10, 2026
41Quality signal: Fair ยท 41/100How this signal is calculated โ–พ
Server availabilityNot measured

Not scored for repo-hosted servers โ€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership10/20
Documentation & tools16/30
Adoption & activity5/15
Community engagement0/10

A guidance signal from public completeness & health data โ€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

โ˜… FeaturedAllMCPs Server logo

AllMCPs Server

The official MCP server for AllMCPs.com - submit and manage tools directly from your AI. The open directory for MCP servers. Connect Claude, Cursor, Windsurf, and AI agents to databases, tools, files, and APIs. Explore 3,181+ servers. AllMCPs is the premier, open directory for discovering, evaluating, and installing Model Context Protocol (MCP) servers to equip AI agents and LLMs with real-world superpowers.

Explore Server โ†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge โ€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in ๐Ÿ’ฐ Finance & Fintech โ†’Best MCP servers for Finance & Fintech โ†’Alternatives to Aikstockdata โ€” Korean Stock Data โ†’Install in Claude DesktopInstall in CursorInstall in VS Code