Back to Browse

Aikstockdata MCP Server

Developer ToolsLow Risk9.7MCP RegistryRemote
Free

Server data from the Official MCP Registry

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

About

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

Remote endpoints: streamable-http: https://mcp.aikstockdata.com/mcp

Security Report

9.7
Low Risk9.7Low Risk

Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

6 tools verified · Open access · 2 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

database

Check that this permission is expected for this type of plugin.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "com-aikstockdata-mcp": {
      "url": "https://mcp.aikstockdata.com/mcp"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub 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
EndpointWhat it isSize
today.jsonOne‑day market digest — breadth, top filings, rankings, earnings7 KB
s/{code6}.jsonOne stock — quote, financials, recent filings, signals~5 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: /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

Reviews

No reviews yet

Be the first to review this server!