aikstockdata

aikstockdata

MCP server for Korean stock market data (KOSPI/KOSDAQ) and DART disclosures, providing tools to get today's market summary, search stocks, retrieve quotes, rankings, and data URLs. No authentication required.

Category
Visit Server

README

aikstockdata โ€” Korean Stock Data for AI (MCP + free JSON)

KOSPI / KOSDAQ closing prices and DART regulatory filings, published every trading day as AIโ€‘readable JSON. No signup. No API key. No rate limit.

๐Ÿ”— Site: https://aikstockdata.com ยท MCP endpoint: https://mcp.aikstockdata.com/mcp

Listed in the official MCP Registry as com.aikstockdata/mcp (domain-verified).

MCP Auth License


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.

https://mcp.aikstockdata.com/mcp

Six tools become available: get_today, search_stock, get_stock, get_rankings, get_market_summary, get_data_urls.

Then just ask: "์˜ค๋Š˜ ํ•œ๊ตญ ์‹œ์žฅ ์–ด๋• ์–ด?" or "Samsung Electronics latest disclosures?"

Any AI, without MCP โ€” paste a URL

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

Python

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"])

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

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

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

Endpoints

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

https://aikstockdata.com/data/public/index.json
Endpoint What it is Size
today.json Oneโ€‘day market digest โ€” breadth, top filings, rankings, earnings 7 KB
s/{code6}.json One stock โ€” quote, financials, recent filings, signals ~5 KB
search_index_min.json Name โ†’ code lookup (URL patterns declared once) 83 KB
disclosures_top100.json Top 100 filings by importance score, plainโ€‘Korean explanation 80 KB
quotes_top300.json Top 300 by market cap, sort order guaranteed 84 KB
rankings.json Growth top 8, quiet performers, 52โ€‘week highs/lows, movers 17 KB
earnings.json Earnings filings, 120โ€‘day rolling scoreboard 148 KB
quotes_slim.json All stocks, 6 core fields 201 KB
quotes.json All stocks, all fields 400 KB
disclosures.json All filings from the last 7 days, with financial detail 380 KB
excluded.json Stocks in the universe with no quote, and why 9 KB
notices.json Machineโ€‘readable incident and correction log 9 KB
quotes.csv / quotes_en.csv Same data as CSV (Korean / English headers) 161 KB

Also: /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.


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.


Repository contents

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.


ํ•œ๊ตญ์–ด ์•ˆ๋‚ด

ํ•œ๊ตญ ์ฃผ์‹ ๊ณต์‹œยท์ข…๊ฐ€๋ฅผ AI๊ฐ€ ๋ฐ”๋กœ ์ฝ๋Š” ๋ฌด๋ฃŒ JSON + MCP ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ๊ฐ€์ž…ยทAPI ํ‚ค๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

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

  • AI์— ์—ฐ๊ฒฐํ•˜๊ธฐ: ClaudeยทChatGPT ์„ค์ •์˜ '์ปค์Šคํ…€ ์ปค๋„ฅํ„ฐ'์— ์œ„ MCP ์ฃผ์†Œ๋ฅผ ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๋์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋ƒฅ ๋ฌผ์–ด๋ณด๊ธฐ: https://aikstockdata.com/data/public/today.json ์ฝ๊ณ  ์˜ค๋Š˜ ์‹œ์žฅ ์š”์•ฝํ•ด์ค˜
  • ํ•œ ์ข…๋ชฉ๋งŒ: https://aikstockdata.com/data/public/s/005930.json (์•ฝ 5KB)
  • ์‚ฌ๋žŒ์ด ๋ณด๋Š” ์•ˆ๋‚ด: https://aikstockdata.com/ai.html

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

  • null์€ 0์ด ์•„๋‹™๋‹ˆ๋‹ค โ€” ๊ฒฐ์ธก์€ null, 0์€ ์‹ค์ œ๋กœ 0(๊ฑฐ๋ž˜ ์—†์Œ ๋“ฑ)์ž…๋‹ˆ๋‹ค.
  • ์‹œ์„ธ ๊ธฐ์ค€์ผ(quote_as_of)๊ณผ ๊ณต์‹œ ์ˆ˜๋ก์ผ(disclosure_through)์„ ๋ถ„๋ฆฌํ•ด์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ ์„ ๋„๋Š” ์ฃผ์žฅ์ด ์•„๋‹ˆ๋ผ ๊ณ„์‚ฐ๊ฐ’์ž…๋‹ˆ๋‹ค โ€” ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๋ž˜๋˜๋ฉด ์Šค์Šค๋กœ stale์ด๋ผ๊ณ  ๋ฐํž™๋‹ˆ๋‹ค.
  • ํšŒ๊ณ„ ํ•ญ๋“ฑ์‹์„ ์–ด๊ธฐ๋Š” ์ˆ˜์น˜(์ˆœ์ด์ต > ๋งค์ถœ์•ก ๋“ฑ)๋Š” ๊ฒŒ์‹œํ•˜์ง€ ์•Š๊ณ  ์ฒ ํšŒํ•ฉ๋‹ˆ๋‹ค.
  • ๋žญํ‚น ์‚ฐ์‹์€ ์ „๋ถ€ ๊ณต๊ฐœ๋ผ ์žˆ์–ด ๋ˆ„๊ตฌ๋‚˜ ์žฌ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ดํ”„๋ผ์ธ ์‹คํŒจ๋„ ๊ณต๊ฐœ ๊ธฐ๋ก(notices.json)์— ๋‚จ๊น๋‹ˆ๋‹ค.
  • ํˆฌ์ž ๊ถŒ์œ ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ณต๊ฐœ ๊ณต์‹œ์— ๋Œ€ํ•œ ๊ธฐ๊ณ„์  ์ง‘๊ณ„์ด๋ฉฐ ๋ชฉํ‘œ์ฃผ๊ฐ€ยทํˆฌ์ž์˜๊ฒฌ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured