한국주식데이터 · 매 거래일 18:10 KST 발행시세: 2026-08-31 종가확정 · 2026-09-01 18:10 KST 수집 · 다음 갱신 다음 거래일 18:10 KST정상 발행 18:10실시간 시세가 아닌 스냅샷입니다

한국 주식 MCP 서버 무료 · 무인증

기계 독자용 안내는 셋으로 갈립니다 — 무엇이 있나 데이터셋 정의·필드·스키마 · AI 에이전트가 쓰는 법 · 사람이 받아 가는 법 CSV·JSON 파일

주소 하나를 커넥터에 등록하면 Claude·ChatGPT가 KOSPI·KOSDAQ·KONEX 2,792종목의 확정 종가·DART 공시·분기 실적을 직접 조회합니다. 설치도 발급도 없습니다 — 다른 한국 주식 MCP 서버는 대부분 한국투자증권·DART API 키를 먼저 발급받아야 하지만, 이 서버는 미리 만들어 둔 공개 파일을 그대로 내보내므로 주소를 붙여넣는 즉시 동작합니다. 공식 MCP 레지스트리에 com.aikstockdata/mcp 로 등록돼 있습니다. 시세는 전 영업일(T+1) 확정 종가이며 실시간이 아닙니다. 출처는 금융위원회 공공데이터포털과 금융감독원 전자공시(DART)이고, 출처 표기 후 영리 목적을 포함해 자유롭게 이용할 수 있습니다.

MCP 를 쓰지 않아도 됩니다 — 아래 JSON·CSV 주소를 챗봇에 그대로 붙여넣어도 같은 데이터를 읽힐 수 있습니다.

5분이면 됩니다

  1. 1
    부른다 — 카탈로그부터입니다. 나머지 파일의 주소가 전부 여기 있습니다.
    curl -s https://aikstockdata.com/data/public/index.json
  2. 2
    이렇게 옵니다 — 아래는 꾸며 낸 예시가 아니라 이 페이지를 발행할 때 그 파일에서 그대로 읽은 앞 12줄입니다.
    {
     "schema_version": "1.1",
     "site": "한국주식데이터 (aikstockdata.com)",
     "@type": "DataCatalog",
     "name": "한국주식데이터 — 공개 데이터 카탈로그",
     "description": "이 사이트가 공개하는 모든 JSON·CSV 의 목차입니다. 파일 크기(file_bytes)·소형 대체본(fetch_guide)· …(줄 잘림)
     "generated_kst": "2026-09-01 18:10",
     "generated_at": "2026-09-01T18:10:00+09:00",
     "code_rev": "b092b86",
     "as_of": "2026.09.01",
     "published_date_iso": "2026-09-01",
     "quote_basis_date": "20260831",
    …

    전체 1,094줄 · 이 파일은 우리가 공개하는 모든 JSON·CSV 의 목차입니다 (크기·신선도·소형 대체본 포함). 전문 보기

  3. 3
    아니면 한 줄로 — 이 주소를 Claude·ChatGPT 설정에 한 번 넣으면 됩니다. 넣는 법은 바로 아래에 있습니다.
    https://mcp.aikstockdata.com/mcp

Claude·ChatGPT에 바로 연결 — MCP 커넥터

아래 주소를 한 번 등록하면, 대화 중에 "삼성전자 실적 어때?" "오늘 성장 랭킹 알려줘"처럼 물어봐도 AI가 우리 데이터로 직접 답합니다. 링크를 매번 붙여넣지 않아도 됩니다.

MCP 엔드포인트
https://mcp.aikstockdata.com/mcp

Claude (웹·데스크톱): 설정 → 커넥터 → "커스텀 커넥터 추가" → 이름(예: 한국주식데이터)과 위 주소를 붙여넣고 저장. 무인증이라 추가 로그인 화면이 없는 게 정상입니다.
ChatGPT: 설정 → 커넥터 → 개발자 모드 활성화 → "커넥터 만들기"에 위 주소 붙여넣기 → 인증 '없음' 선택.

설정 파일에 직접 넣거나(Claude Code·Cursor 등) 명령 한 줄로도 됩니다.

claude mcp add --transport http aikstockdata https://mcp.aikstockdata.com/mcp
{
  "mcpServers": {
    "aikstockdata": {
      "type": "http",
      "url": "https://mcp.aikstockdata.com/mcp"
    }
  }
}

전송 방식은 Streamable HTTP입니다 — 인증 없음, 세션 헤더 불필요, CORS 전면 개방.

제공 도구 12개 — get_today(오늘의 시장 요약 — 지수·등락 폭·주요 공시·성장 랭킹) · search_stock(종목 검색(한글명 부분일치)) · get_stock(종목 상세 — 시세·분기 실적·랭킹 신호·더 최신 잠정실적) · get_rankings(성장 TOP8·조용한 실적주) · get_market_summary(지수·등락 폭 전용) · list_stocks(★조건으로 종목 목록 — 흑자전환·52주 신고저·시총÷영업이익 배수 상한) · get_earnings(★잠정 실적 포함 — 정기보고서보다 2주 빠름) · get_history(★250거래일 일별 시세 + 고점 대비 낙폭·거래량 배수) · get_disclosure_impact(★공시 유형별 이후 주가 — 다른 데서 무료로 못 구함) · get_disclosures(★공시 목록 — 접수 시각(HH:MM)·장 구분까지) · get_earnings_calendar(★실적 캘린더 — 누가 냈고 누가 아직인가 + 마감 D-day + 신규 diff) · get_data_urls(공개 데이터 URL 카탈로그). 모든 응답에 기준일·출처와 "투자 권유가 아님"이 포함됩니다. 원천은 공공데이터(금융위·DART) 가공물입니다. 무인증·무료지만 공정 이용 범위에서 써 주세요 — 같은 데이터는 매 거래일 18:10 한 번만 바뀝니다, 초당 반복 호출은 여러분에게도 새 값을 안 줍니다.

커넥터를 등록했다면 — 이렇게 물어보세요

주소를 붙여넣을 필요가 없습니다. 아래는 이 서버가 아니면 답하기 어려운 질문들이고, 카드마다 어느 도구가 답하는지 적어 뒀습니다.
유상증자 공시 다음날 주가는 보통 어땠나
유상증자 공시가 난 다음날 주가가 보통 어땠는지 알려줘. 표본 수와 신뢰구간도 같이 보여주고, 구간이 0을 포함하면 그 사실도 말해줘.
get_disclosure_impact — ★공시 유형별 이후 주가 — 다른 데서 무료로 못 구함
정기보고서보다 2주 빠른 실적
삼성전자 최근 분기 실적을 알려줘. 잠정 실적이 이미 나와 있으면 정기보고서 숫자 말고 그걸로 보여주고, 어느 쪽인지 밝혀줘.
get_earnings — ★잠정 실적 포함 — 정기보고서보다 2주 빠름
고점 대비 얼마나 빠졌나
SK하이닉스 최근 250거래일 주가 흐름을 요약해줘. 52주 고점 대비 낙폭과 최근 거래량이 평소의 몇 배인지도 알려줘.
get_history — ★250거래일 일별 시세 + 고점 대비 낙폭·거래량 배수
장중에 난 공시만 골라 보기
오늘 접수된 공시를 접수 시각과 함께 보여줘. 장 마감 뒤에 나온 건은 따로 묶어줘 — 그건 오늘 종가에 아직 안 들어간 소식이니까.
get_disclosures — ★공시 목록 — 접수 시각(HH:MM)·장 구분까지
이번 분기 실적, 아직 안 낸 곳
이번 분기 실적을 아직 접수하지 않은 회사를 시가총액 순으로 알려줘. 법정 마감까지 며칠 남았는지도 함께.
get_earnings_calendar — ★실적 캘린더 — 누가 냈고 누가 아직인가 + 마감 D-day + 신규 diff
조건으로 종목 목록 뽑기
적자에서 흑자로 돌아선 종목 목록을 뽑아줘. 개수 말고 종목 이름이 필요해.
list_stocks — ★조건으로 종목 목록 — 흑자전환·52주 신고저·시총÷영업이익 배수 상한

공시 접수 시각(HH:MM) — 공개 API 에 없는 값

문제. OpenDART 공시검색 API 가 주는 접수 정보는 rcept_dt, 즉 날짜(YYYYMMDD)뿐입니다. 개별 공시 뷰어에도, DART 공시검색 화면에도 시:분이 없습니다. 화면에 시:분이 남아 있는 곳은 최근공시 목록 한 곳뿐이고, 거기에도 조회·내려받기 수단이 없어 매 거래일 직접 훑어 모읍니다. 그런데 같은 날짜의 공시라도 장중에 나온 것장 마감 후에 나온 것은 그날 종가에 대해 정반대를 뜻합니다 — 앞의 것은 이미 주가에 반영됐고, 뒤의 것은 아직 반영되지 않았습니다. 날짜만으로는 이 둘이 구분되지 않습니다.

그래서 따로 모읍니다. 시:분이 남아 있는 곳은 DART 최근공시 목록 한 곳뿐이라, 그걸 매 거래일 15:00 에 훑어 붙입니다. 저희 공시 반응 집계도 이 값을 씁니다 — 그 결과 접수일 당일 칸이 왜 공시 반응의 추정치가 아닌지 숫자로 밝힐 수 있게 됐습니다.

장중 공시 목록 — 매 거래일 15:00
https://aikstockdata.com/data/public/disclosures_intraday.json
curl -s https://aikstockdata.com/data/public/disclosures_intraday.json | head -c 400
items[] 필드
필드
receipt_time★접수 시각 "HH:MM"(KST). 정규장은 09:00~15:30 입니다
session그 시각이 장의 어디인가 — pre_open(~09:00) · intraday(09:00~15:30) · after_close(15:30~) · unknown(시각 미확보). 시각을 직접 비교해도 같지만, 경계가 바뀌면 이 필드만 따라옵니다
code종목코드 6자리 문자열 — 앞자리 0 을 포함합니다. 정수로 읽으면 00002020 이 됩니다. 매핑이 없으면 null
in_universecode 가 있다고 저희 시세와 조인되는 것은 아닙니다. DART 는 상장하지 않은 법인에도 종목코드를 달아 둡니다 (하나은행·케이비증권·신한투자증권 등). 상장했더라도 스팩·소형주처럼 저희가 발행하지 않는 종목도 있습니다. 조인할 대상은 in_universe: true 인 건이고, 그때 /data/public/s/{code}.json 이 존재합니다. 실제 예: 어느 날 코드가 붙은 124건 가운데 42건이 저희 발행 목록 밖이었습니다
name · market회사명 · KOSPI/KOSDAQ/KONEX. 시장 배지가 없는 공시(채권·집합투자 등)는 null
titleDART 원문 보고서명 — 언제나 채워집니다
label저희 22유형 분류. 해당 없으면 null 이므로 그때는 title 을 쓰세요
rcept_no · dart_url접수번호(14자리 문자열)와 DART 원문 주소 — 개별 건을 원문과 대조할 수 있습니다

읽는 규칙 네 가지.code·rcept_no문자열로 읽으세요 (pd.read_json(..., dtype={"code": str})). ② 저희 시세와 붙일 거면 in_universe: true 로 먼저 거르세요. 코드가 있다고 다 조인되지 않습니다. ③ 모든 공시가 들어 있습니다 — 저희가 분류하는 유형만이 아니라 그날 접수된 전부입니다. 필요한 유형만 label 또는 title 로 걸러 쓰세요. ④ 공시가 0건이어도 파일은 나갑니다("items": []). 파일이 없으면 그건 고장입니다 — 정정·공지 로그에 기록됩니다.

import requests
d = requests.get("https://aikstockdata.com/data/public/disclosures_intraday.json").json()

# 저희 시세와 붙일 수 있는 건만, 장 마감 전 접수만
rows = [i for i in d["items"] if i["in_universe"] and i["receipt_time"] < "15:30"]
for i in rows[:5]:
    print(i["receipt_time"], i["code"], i["name"], i["label"] or i["title"])

한계도 밝힙니다. 15:00 수집이므로 그 이후 접수분은 들어 있지 않습니다 — 그날 전체는 18:10 발행의 disclosures.json 에 들어갑니다. 또 이 파일은 접수 사실과 시각일 뿐이며, 가격·수익률·해석을 담지 않습니다. 같은 시각에 여러 건이 접수되는 일도 흔합니다.

장 마감 후 공시 — 18:10 전체판에도 같은 두 필드가 있습니다

15:00 파일은 그 시점까지입니다. 장 마감 후(15:30~)에 접수된 공시가 들어 있는 곳은 18:10 발행 전체판 하나뿐인데, 여기에도 events[].receipt_timeevents[].session 을 같은 규칙으로 싣습니다 (2026-08-07 추가). 마감 후 접수라면 그날 종가 움직임은 통째로 그 공시보다 앞선 것이라 공시 반응으로 읽으면 안 되고, 반영은 다음 거래일로 넘어갑니다.

공시 전체판 — 매 거래일 18:10
https://aikstockdata.com/data/public/disclosures.json
import requests
d = requests.get("https://aikstockdata.com/data/public/disclosures.json").json()

# 오늘 장 마감 뒤에 나온 공시 — 아직 종가에 반영되지 않았다
late = [e for e in d["events"] if e["session"] == "after_close"]
for e in late[:5]:
    print(e["rcept_dt"], e["receipt_time"], e["code"], e["name"], e["title"])

시각을 못 얻은 건도 필드는 있습니다 (receipt_time: null, session: "unknown") — 필드가 있다 없다 하면 받아 쓰는 쪽이 깨집니다. 확보 비율은 파일 안 receipt_time_note.coverage 에 적힙니다. 접수번호↔시각 대조표만 필요하면 https://aikstockdata.com/data/public/dart_receipt_times.json 을 쓰세요 (covers.through 로 어디까지 수록됐는지 확인할 수 있습니다).

공개 데이터 (JSON · 무료 · 키 불필요)

★카탈로그 — 전 파일 목록·크기·신선도·아카이브 날짜(여기서 시작)
https://aikstockdata.com/data/public/index.json
오늘의 시장 다이제스트 — 등락 폭·주요 공시 TOP3·성장 랭킹·실적·집계 통계를 하루 요약으로 (AI가 '오늘 시장 어땠어?'에 바로 인용)
https://aikstockdata.com/data/public/today.json
시총 상위 300(내림차순 정렬 보장) — '시총 상위 N' 질문은 이 파일
https://aikstockdata.com/data/public/quotes_top300.json
주요 공시 TOP100(중요도순) — 큰 파일이 잘리는 환경의 기본 경로. 실제 크기는 index.json 의 file_bytes 참조
https://aikstockdata.com/data/public/disclosures_top100.json
종목 인덱스 경량판 — 이름→코드 조회. 실제 크기는 index.json 의 file_bytes 참조
https://aikstockdata.com/data/public/search_index_min.json
전 종목 경량판(핵심 6필드) — 큰 파일이 잘리는 환경용
https://aikstockdata.com/data/public/quotes_slim.json
종목 인덱스 — 이름→코드→종목별 JSON 주소
https://aikstockdata.com/data/public/search_index.json
T+1 종가 시세 전체판 — 수록 대상 2,798 중 정상수집 2,792, 제외 6(해당 거래일 시세 미수신 — 거래정지·정리매매·신규상장 미반영·상장폐지·코드불일치 등)의 확정 종가·거래량·시가총액
https://aikstockdata.com/data/public/quotes.json
종목별 소형 JSON — 한 종목만(영문 키 병기). /data/public/s/종목코드.json
https://aikstockdata.com/data/public/s/005930.json
★장중 공시 목록 — 매 거래일 15:00 수집. 그날 00:00~15:00 접수분 전부에 ★접수 시각(HH:MM)이 붙는다. 공개 DART API 에는 날짜만 있고 시:분이 없다
https://aikstockdata.com/data/public/disclosures_intraday.json
공시 브리핑 — 최근 7일 주요 공시 + 쉬운 말 풀이 + 중요도 점수 + 접수 시각(HH:MM)·장 구분
https://aikstockdata.com/data/public/disclosures.json
랭킹 — 성장 TOP8·조용한 실적주·52주 신고저·등락 상위(산식 성분 포함)
https://aikstockdata.com/data/public/rankings.json
OpenAPI 3.1 명세 — GPT Actions·Postman·SDK 생성용(전 엔드포인트·인증 없음)
https://aikstockdata.com/openapi.json
AI용 사이트 요약과 전체 목록(표준 llms.txt)
https://aikstockdata.com/llms.txt

시세는 전 영업일 확정 종가(T+1)이며 실시간이 아닙니다. 파일 안의 basDt(기준일자)를 꼭 확인하세요. 매 거래일 자동 갱신됩니다.

파일 다운로드 (CSV·JSON)

https://aikstockdata.com/data/public/quotes.csv
https://aikstockdata.com/data/public/disclosures.csv
https://aikstockdata.com/data/public/quotes.json
https://aikstockdata.com/data/public/disclosures.json
https://aikstockdata.com/data/public/rankings.json

날짜별 과거 파일은 다운로드 페이지에서 받을 수 있습니다.

CSV는 엑셀에서 바로 열리고, AI 챗봇에는 파일을 업로드하거나 위 주소를 그대로 붙여넣으면 됩니다. 전부 공공데이터 가공물 — 출처 표기 후 자유 이용.

복사해서 바로 쓰는 질문 예시

어제 시장 브리핑 받기
https://aikstockdata.com/data/public/quotes_top300.json 을 읽고(시총 내림차순 정렬 보장), 상위 30개 중 등락률이 가장 낮았던 5개와 가장 높았던 5개를 표로 정리해줘. 기준일(basDt)도 함께 표시해줘.
공시 쉽게 해설 받기
https://aikstockdata.com/data/public/disclosures.json 을 읽고 score 상위 10건을 골라, 각 공시가 무슨 뜻인지 초보자에게 설명하듯 한 줄씩 풀어줘. fact 와 meaning 필드를 활용해줘.
내 관심 종목 점검하기
내 관심 종목은 삼성전자(005930), 셀트리온(068270), 카카오(035720)야. https://aikstockdata.com/data/public/s/005930.json 처럼 종목코드별 JSON 을 각각 읽어서 어제 종가·등락률·거래량과 최근 공시를 쉬운 말 풀이(meaning)와 함께 정리해줘. 종목코드를 모르면 https://aikstockdata.com/data/public/search_index.json 에서 이름으로 찾으면 돼. (종목은 원하는 것으로 바꿔 쓰세요)
급락 종목의 공시 확인하기
https://aikstockdata.com/data/public/rankings.json 의 movers.down(등락률 하위 10)을 보고, https://aikstockdata.com/data/public/disclosures.json 에서 그 종목들의 최근 공시를 찾아 어떤 발표가 있었는지 사실만 정리해줘. 공시가 없는 종목은 '관련 공시 없음'으로 표시해줘.
성장 랭킹 뜯어보기
https://aikstockdata.com/data/public/rankings.json 의 growth_top8 을 읽고, 각 회사가 왜 순위에 들었는지 b1(증가율)·b2(규모)·b3(마진) 성분과 YoY 수치로 설명해줘.
조용한 실적주 이해하기
https://aikstockdata.com/data/public/rankings.json 의 quiet_top 상위 5개를 보고, 각 종목의 성장·무관심·미반응 백분위가 무슨 의미인지 이 산식을 모르는 사람에게 설명하듯 풀어줘. 점수가 추천이 아니라는 점도 함께 말해줘.
시장 체력 진단하기
https://aikstockdata.com/data/public/quotes_slim.json 전체를 읽고 상승·하락·보합 종목 수, 등락률 분포(구간별 건수), 거래대금 상위 10종목이 전체 거래대금에서 차지하는 비율을 계산해서 어제 시장이 어떤 하루였는지 사실 위주로 요약해줘.
엑셀 파일로 공시 통계 내기
(파일 업로드용) https://aikstockdata.com/data/public/disclosures.csv 를 내려받아 챗봇에 올린 뒤 — 공시유형별 건수를 집계하고, 중요도점수 상위 10건을 표로 만들고, 자사주·증자 관련 공시만 따로 모아줘.

다른 도구와 함께 쓰기 (pykrx 등)

역할이 다릅니다. pykrx 는 한국거래소(KRX) 통계를 파이썬으로 받아 오는 라이브러리로 수십 년치 일봉·투자자별 매매동향·공매도를 줍니다. 대신 DART 공시와 실적 해석은 다루지 않습니다. 우리는 그 반대입니다 — 공시·실적·신호는 주지만 긴 시세 시계열과 수급·공매도는 없습니다. 둘을 같이 쓰면 서로의 빈 칸이 메워집니다.

우리에게 없는 것(이 목록은 카탈로그의 quality.not_included_fields 와 같은 자리에서 옵니다): PER · PBR · 업종 · 투자의견 · 목표가 · 실시간가 · 투자자별 수급(외국인·기관·개인 순매수) · 분봉·틱 · 배당 · 재무상태표(자산·부채·자본). 종목별 시계열은 1년치(250거래일)까지입니다.

from pykrx import stock      # 시세 시계열은 이쪽
import requests              # 공시·실적·해석은 우리

ohlcv = stock.get_market_ohlcv("20260101", "20260820", "005930")
x = requests.get("https://aikstockdata.com/data/public/s/005930.json").json()
x["financials"], x["recent_disclosures"], x["signals"]

위 예제는 실제로 돌려 확인한 것입니다(pykrx 1.2.8 · 155거래일 수신). pykrx 가 시작할 때 KRX 로그인 실패 경고를 찍어도 공개 경로로 동작합니다. pykrx 는 KRX 화면 변경에 취약하니, 우리 쪽 주소만으로도 위 세 블록은 그대로 받을 수 있습니다.

이용 조건

출처 표기 예: "자료: 한국주식데이터(aikstockdata.com) — 원천: 금융감독원 DART · 금융위원회 공공데이터포털". 데이터의 정확성·완전성은 보증하지 않으며 공시 원문(DART)이 우선합니다. 데이터셋 상세 정의·스키마는 데이터셋 안내를 참조하세요.

본 데이터와 안내는 정보 제공 목적이며 투자 권유가 아니고, 특정 종목의 매수·매도를 추천하지 않습니다.

이 페이지의 모든 수치·표는 실시간이 아닌 2026-08-31 종가 기준 스냅샷입니다(2026.09.01 수집). 인용·분석 전 기준일을 확인하세요.

시세·공시·랭킹 데이터를 공공데이터(금융위원회·금융감독원 DART) 가공 JSON으로 무료 공개합니다 — AI로 읽기에서 안내. 증권사 원천 데이터는 약관에 따라 제공하지 않습니다.