Skip to main content

MCP server for pykrx - Korean stock market data library

Project description

pykrx-mcp

CI PyPI version Python 3.10+ License: MIT

한국 주식 시장 데이터를 AI 에이전트에게!

pykrx-mcp는 한국 주식 시장 데이터 라이브러리인 pykrxModel Context Protocol (MCP) 서버로 제공하는 프로젝트입니다. Claude, GPT 등 AI 에이전트가 한국 주식 데이터를 직접 조회하고 분석할 수 있도록 지원합니다.

✨ 주요 기능

  • 📊 실시간 한국 주식 데이터: KOSPI, KOSDAQ 종목의 OHLCV 데이터 조회
  • 🤖 AI 에이전트 통합: Claude Desktop 등에서 바로 사용 가능
  • 간편한 실행: uvx pykrx-mcp 한 줄로 즉시 실행
  • 🔄 자동 업데이트: pykrx 업데이트 시 자동으로 MCP 서버도 업데이트
  • 🌐 MCP Registry 등록: 공식 MCP Registry에 등록된 서버

🚀 빠른 시작

Via MCP Registry (공식)

MCP Registry에서 설치:

# mcp-publisher CLI 사용
mcp-publisher install io.github.sharebook-kr/pykrx-mcp

Via Smithery (권장)

Smithery는 MCP 서버를 위한 패키지 매니저입니다.

smithery install pykrx-mcp

설치 없이 바로 실행

uvx pykrx-mcp

uv가 설치되어 있지 않다면:

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Claude Desktop 연동

Claude Desktop에서 한국 주식 데이터를 사용하려면 설정 파일을 수정하세요:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "pykrx": {
      "command": "uvx",
      "args": ["pykrx-mcp"]
    }
  }
}

설정 후 Claude Desktop을 재시작하면 한국 주식 데이터를 조회할 수 있습니다!

HTTP/SSE Transport (호스팅용)

로컬이 아닌 원격 서버에서 실행하거나 Smithery에서 스캔하려면 HTTP/SSE transport를 사용하세요:

# HTTP/SSE 모드로 실행 (포트 8000)
pykrx-mcp --transport sse --host 0.0.0.0 --port 8000

# 환경 변수로 제어
MCP_TRANSPORT=sse MCP_HOST=0.0.0.0 MCP_PORT=8000 pykrx-mcp

Transport 모드:

  • stdio (기본값): 로컬 Claude Desktop 연동, 표준 입출력 사용
  • sse: HTTP Server-Sent Events, 원격 접속 및 Smithery 스캔 지원

사용 예시:

# Docker 컨테이너에서 실행
docker run -p 8000:8000 -e MCP_TRANSPORT=sse pykrx-mcp

# 개발 서버로 실행
pykrx-mcp --transport sse
# 이제 http://localhost:8000 으로 접속 가능

💬 스마트 프롬프트 (Prompts)

pykrx-mcp는 복잡한 워크플로우를 자동화하는 MCP Prompts를 제공합니다:

1. 종목명으로 주가 분석

종목 코드를 몰라도 회사명만으로 분석 가능:

prompt_analyze_stock_by_name("삼성전자", "1M", "price")

자동 처리:

  • 주요 50개 종목은 ticker 자동 매핑
  • 그 외 종목은 자동으로 ticker 검색 후 조회
  • 주가 데이터 조회 → 분석 → 시각화까지 가이드

Claude에서 사용 예시:

  • "삼성전자 최근 3개월 주가 분석해줘"
  • "네이버 1년치 주가 추이 보여줘"

2. 투자자별 수급 분석

외국인/기관/개인 투자자별 매매 패턴 분석:

prompt_analyze_investor_flow("카카오", "3M", "foreign")

자동 처리:

  • Ticker 조회 → 수급 데이터 조회
  • 주가와 수급의 상관관계 분석
  • 투자자별 매매 패턴 시각화

Claude에서 사용 예시:

  • "삼성전자 외국인 수급 추이 분석해줘"
  • "SK하이닉스 최근 1개월 기관 매매 보여줘"

3. 저평가 종목 스크리닝

PER/PBR 기준으로 저평가 종목 찾기:

prompt_screen_undervalued_stocks(max_per=10, max_pbr=1, market="KOSPI")

자동 처리:

  • 전체 시장 스캔 → 기본 지표 조회
  • PER/PBR 필터링 및 정렬
  • 상위 30개 추천 종목 리스트

Claude에서 사용 예시:

  • "PER 10 이하, PBR 1 이하 저평가 종목 찾아줘"
  • "코스닥에서 저평가 종목 스크리닝해줘"

사용 예시

기본 질문 (Prompts 없이):

  • "삼성전자(005930) 최근 한 달 주가 데이터를 가져와줘"
  • "2024년 1월 카카오(035720) 주가 흐름을 분석해줘"
  • "SK하이닉스(000660) 최근 3개월 거래량 추이를 보여줘"

스마트 질문 (Prompts 활용):

  • "삼성전자 최근 주가 분석해줘" ← ticker 코드 불필요!
  • "외국인이 많이 사고 있는 반도체 종목 찾아줘"
  • "오늘 저평가 종목 추천해줘"

🛠️ 개발자 가이드

로컬 개발 환경 설정

# 저장소 클론
git clone https://github.com/sharebook-kr/pykrx-mcp.git
cd pykrx-mcp

# Python 의존성 설치
uv sync --dev

# Node.js 도구 설치 (MCP Inspector)
npm install

# 서버 실행
pykrx-mcp

필수 요구사항:

  • Python 3.10+
  • Node.js 18+ (MCP Inspector용, nodejs.org에서 설치)

개발 명령어:

# MCP Inspector 실행
npm run inspector

# 테스트 실행
pytest -v
# 또는
npm run test

# 코드 포맷팅
black src/
# 또는
npm run format

# 린팅
ruff check src/
# 또는
npm run lint

MCP Inspector는 개발 환경에 포함되어 있습니다:

npm run inspector

Inspector UI가 열리면 웹 브라우저에서 서버 상태, 도구 목록, 실시간 요청/응답을 확인할 수 있습니다.


#### 2. Claude Desktop 로그 확인

Claude Desktop과 통신하면서 발생하는 로그를 실시간으로 확인:

```bash
# macOS
tail -n 100 -f ~/Library/Logs/Claude/mcp*.log

# Windows (PowerShell)
Get-Content "$env:APPDATA\Claude\logs\mcp*.log" -Wait -Tail 100

3. VS Code 디버거

F5 키를 눌러 VS Code 디버거로 서버를 실행하고 중단점을 설정할 수 있습니다. (.vscode/launch.json 설정 포함)

4. 로깅 확인

서버는 모든 로그를 stderr로 출력합니다 (stdout은 MCP 프로토콜용):

# 로그를 파일로 저장하며 실행
pykrx-mcp 2> debug.log

직접 설치하여 사용

pip install pykrx-mcp
pykrx-mcp

📋 제공되는 도구 (Tools)

get_stock_ohlcv

한국 주식의 OHLCV (시가, 고가, 저가, 종가, 거래량) 데이터를 조회합니다.

매개변수:

  • ticker (str): 종목 코드 (예: "005930" - 삼성전자)
  • start_date (str): 시작일 (YYYYMMDD 형식, 예: "20240101")
  • end_date (str): 종료일 (YYYYMMDD 형식, 예: "20240131")
  • adjusted (bool): 수정주가 여부 (기본값: True)

반환값: 날짜별 주가 데이터 (Open, High, Low, Close, Volume, 거래대금 포함)

🔗 관련 링크

📦 자동 업데이트

pykrx 본체 라이브러리가 업데이트되면 repository_dispatch 이벤트를 통해 이 MCP 서버도 자동으로 새 버전이 배포됩니다.

배포 프로세스:

  1. pykrx 릴리스 → pykrx_release 이벤트 발생
  2. 의존성 자동 업데이트 (uv lock --upgrade-package pykrx)
  3. 패치 버전 자동 증가 (예: 0.1.0 → 0.1.1)
  4. Git 태그 생성 및 푸시
  5. PyPI 자동 배포 (Trusted Publishing)
  6. GitHub Release 생성

GitHub Actions를 통해 완전 자동화되어 있어 항상 최신 데이터 소스를 사용할 수 있습니다.

📄 라이선스

MIT License - 자유롭게 사용하세요!

🤝 기여

이슈와 PR은 언제나 환영합니다!


Made with ❤️ by sharebook-kr

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pykrx_mcp-0.1.3.tar.gz (196.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pykrx_mcp-0.1.3-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

Details for the file pykrx_mcp-0.1.3.tar.gz.

File metadata

  • Download URL: pykrx_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 196.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pykrx_mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 face782aaebc7db48765021825c90a8d045f85668f8f10255b487d45516e92b4
MD5 0182ec63fb74ca53e7c891ce4208a300
BLAKE2b-256 a4b73c7402214746685aec0a5f7291a86fde803ee3f57b8de65c67012d31ace6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pykrx_mcp-0.1.3.tar.gz:

Publisher: publish.yml on sharebook-kr/pykrx-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pykrx_mcp-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pykrx_mcp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 32.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pykrx_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f11c2ded67e2b026fd9b20306bd2128c21abb7b192227e5c434091c2da367d4f
MD5 0b9a116c176bcf6c0235cb3a391230b8
BLAKE2b-256 d2c43d172211e2a7841cf506a95fccbd398f11373d3290b0c6d804abf711f9b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pykrx_mcp-0.1.3-py3-none-any.whl:

Publisher: publish.yml on sharebook-kr/pykrx-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page