매 거래일 18:30 전후 갱신시세 기준일 2026-09-17 (확정 종가)정상 발행 09-18 18:10실시간 시세 아님

한국 주식 데이터를 AI에 연결 MCP · 주소 한 줄 · 무인증

클로드(Claude)·ChatGPT 에 주소 하나를 등록하면, 대화 중에 코스피·코스닥·코넥스 전 종목의 확정 종가와 DART 공시·분기 실적을 AI 가 직접 조회합니다. 설치도, 회원가입도, API 키 발급도 없습니다 — 한국주식데이터가 운영하는 무료 원격 MCP 서버이고 도구는 12개입니다(2026.09.18 기준 2,796종목 · 그날 시세가 있는 종목 2,787).

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

설치도 발급도 없습니다. 이 서버는 미리 만들어 둔 공개 파일을 그대로 내보냅니다. 그래서 API 키 없이, 주소를 붙여넣는 즉시 동작합니다. 인증 헤더도 없어서 설정 장벽은 주소 한 줄을 붙여넣는 것뿐입니다. 내려받아 설치하지 않고 주소로 붙이는 원격(remote) MCP 서버입니다. 공식 MCP 레지스트리 이름은 com.aikstockdata/mcp 입니다. 시세는 전 영업일(T+1) 확정 종가이며 실시간이 아닙니다. 출처는 금융위원회 공공데이터포털과 금융감독원 전자공시(DART)입니다. 출처를 표기하면 비영리 목적으로 인용·이용할 수 있고, 상업적 재배포는 허용하지 않습니다.

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

처음이라면 → 주식 AI 연결 3단계 · 주소만 필요하시면 → MCP 주소 · 개발자라면 → curl 로 5분 시작

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

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

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

Claude (웹·데스크톱): Customize › Connectors+Add custom connector → 이름(예: 한국주식데이터)과 위 주소를 붙여넣고 저장. 무인증이라 추가 로그인 화면이 없는 게 정상입니다. 유료 구독이 없어도 쓸 수 있고, 커스텀 커넥터는 1개까지입니다.
ChatGPT (웹 · Plus·Pro·Business·Enterprise·Edu): Settings › Security and login에서 Developer mode를 켠 뒤 → ChatGPT Plugins+로 개발자 모드 앱을 만들고 위 주소를 넣습니다. 인증은 No Authentication. 무료 요금제와 모바일 앱에서는 아직 안 됩니다.

메뉴 이름은 2026-09-11 기준 각 회사 공식 도움말(영어 화면)을 따랐습니다 — Claude · ChatGPT. 화면 언어·개편에 따라 이름이 다를 수 있습니다. 이 서비스를 1분으로 보고 싶으시면 유튜브 쇼츠.

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

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": "코스피·코스닥·코넥스 전 종목의 T+1 확정 종가·DART 공시(접수 시각 포함)·분기 실적을 매 거래일 18:30 전후(KST …(줄 잘림)
     "generated_kst": "2026-09-18 18:10",
     "generated_at": "2026-09-18T18:10:00+09:00",
     "code_rev": "8c687c8",
     "as_of": "2026.09.18",
     "published_date_iso": "2026-09-18",
     "quote_basis_date": "20260917",
    …

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

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

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

주소를 붙여넣을 필요가 없습니다. 아래는 이 서버가 아니면 답하기 어려운 질문들이고, 카드마다 어느 도구가 답하는지 적어 뒀습니다.
공급계약 공시 다음날 주가는 보통 어땠나
공급계약 체결 공시가 난 다음날 주가가 보통 어땠는지 알려줘. 표본 수와 신뢰구간도 같이 보여주고, 구간이 0을 포함하면 그 사실도 말해줘.
get_disclosure_impact — ★공시 유형별 이후 주가 — 시장조정 중앙값·95% 구간
정기보고서보다 2주 빠른 실적
삼성전자 최근 분기 실적을 알려줘. 잠정 실적이 이미 나와 있으면 정기보고서 숫자 말고 그걸로 보여주고, 어느 쪽인지 밝혀줘.
get_earnings — ★잠정 실적 포함 — 정기보고서보다 2주 빠름
고점 대비 얼마나 빠졌나
SK하이닉스 최근 250거래일 주가 흐름을 요약해줘. 52주 고점 대비 낙폭과 최근 거래량이 평소의 몇 배인지도 알려줘.
get_history — ★종목별 일별 시세 + 고점 대비 낙폭·거래량 배수
장중에 난 공시만 골라 보기
오늘 접수된 공시를 접수 시각과 함께 보여줘. 장 마감 뒤에 나온 건은 따로 묶어줘 — 그건 오늘 종가에 아직 안 들어간 소식이니까.
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 는 상장하지 않은 법인에도 종목코드를 달아 둡니다 (하나은행·케이비증권·신한투자증권 등). 상장했더라도 그날 시세가 없는 종목(거래정지·상장 직후 등 — excluded.json)은 발행하지 않습니다. 조인할 대상은 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 수집이므로 그 이후 접수분은 들어 있지 않습니다 — 저녁 발행의 disclosures.json우리가 분류하는 공시 유형(label 이 붙는 건)만 담으므로, 15:00 이후 접수된 그 밖의 공시는 어느 파일에도 없습니다(그런 공시는 DART 원문 목록에서 보세요). 또 이 파일은 접수 사실과 시각일 뿐이며, 가격·수익률·해석을 담지 않습니다. 같은 시각에 여러 건이 접수되는 일도 흔합니다.

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

15:00 파일은 그 시점까지입니다. 장 마감 후(15:30~)에 접수된 공시는 저녁 발행 전체판에만 있고(우리가 분류하는 유형만 담깁니다), 여기에도 events[].receipt_timeevents[].session 을 같은 규칙으로 싣습니다 (2026-08-07 추가). 마감 후 접수라면 그날 정규장 종가 움직임은 통째로 그 공시보다 앞선 것이라 공시 반응으로 읽으면 안 됩니다. 그날 저녁 반응은 2026-09-14 부터 열린 한국거래소 애프터마켓(16:00~20:00 실시간 매매 · 코넥스·관리종목 등 제외 — 보도 기준, 정본은 거래소 공지)에서 먼저 나타날 수 있습니다. 저희 시세는 정규장 종가만 담으므로, 그 움직임은 다음 거래일의 전일 대비 등락에 섞여 보입니다.

공시 전체판 — 매 거래일 18:30 전후
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,796 중 정상수집 2,787, 제외 9(해당 거래일 시세 미수신 — 거래정지·정리매매·신규상장 미반영·상장폐지·코드불일치 등)의 확정 종가·거래량·시가총액
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_top100.json 을 읽고(중요도순) 상위 10건을 골라, 각 공시가 무슨 뜻인지 초보자에게 설명하듯 한 줄씩 풀어줘. fact 와 meaning 필드를 활용해줘.
내 관심 종목 점검하기
내 관심 종목은 삼성전자(005930), 셀트리온(068270), 카카오(035720)야. https://aikstockdata.com/data/public/s/005930.json 처럼 종목코드별 JSON 을 각각 읽어서 어제 종가·등락률·거래량과 최근 공시를 쉬운 말 풀이(meaning)와 함께 정리해줘. 종목코드를 모르면 https://aikstockdata.com/data/public/search_index_rows.json(이름·코드·시장) 에서 이름으로 찾으면 돼. (종목은 원하는 것으로 바꿔 쓰세요)
급락 종목의 공시 확인하기
https://aikstockdata.com/data/public/rankings.json 의 movers.down(등락률 하위 10)을 보고, 그 종목들의 https://aikstockdata.com/data/public/s/종목코드.json 에 있는 recent_disclosures(최근 7일)를 보고 어떤 발표가 있었는지 사실만 정리해줘. 공시가 없는 종목은 '관련 공시 없음'으로 표시해줘.
성장 랭킹 뜯어보기
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/rankings.json 의 breadth 로 상승·하락·보합 종목 수를, https://aikstockdata.com/data/public/quotes_min.json 의 fltRt 로 등락률 분포(구간별 건수)를 보고, https://aikstockdata.com/data/public/quotes_top300.json 에서 거래대금(trPrc) 상위 10종목을 뽑아 어제 시장이 어떤 하루였는지 사실 위주로 요약해줘. (거래대금은 시총 상위 300종목 안에서 셉니다)
엑셀 파일로 공시 통계 내기
(파일 업로드용) https://aikstockdata.com/data/public/disclosures.csv 를 내려받아 챗봇에 올린 뒤 — 공시유형별 건수를 집계하고, 중요도점수 상위 10건을 표로 만들고, 자사주·증자 관련 공시만 따로 모아줘.

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

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

우리에게 없는 것(이 목록은 카탈로그의 quality.not_included_fields 와 같은 자리에서 옵니다): 선행PER(컨센서스) · 업종 · 투자의견 · 목표가 · 실시간가 · 투자자별 수급(외국인·기관·개인 순매수) · 분봉·틱 · 배당 · 재무상태표(자산·부채).

종목별 시계열은 매 거래일 한 행씩 적립합니다 — 자르지 않습니다. 각 파일의 count 가 실린 행 수이고, retention 이 보존 정책입니다.

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)이 우선합니다. 데이터셋 상세 정의·스키마는 데이터셋 안내를 참조하세요. 영문 안내는 MCP server for Korean stocks (English) 에 있습니다.

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

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

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