kospi-kosdaq-stock-server について
kospi-kosdaq-stock-server は、KRX データマーケットプレイスから KOSPI と KOSDAQ の株式およびインデックスデータを提供する MCP サーバーです。AI アシスタントから韓国市場のデータを利用したいアナリストや開発者向けです。
主な機能
- 01KOSPI と KOSDAQ の銘柄コードと名称の検索
- 02株価 OHLCV データの取得
- 03時価総額、PER、PBR、配当利回りの取得
- 04投資家タイプ別の売買高の取得
- 05KOSPI と KOSDAQ のインデックス OHLCV の取得
- 06Playwright による Kakao ログインとセッション管理
活用シーン
- 01指定期間の銘柄の日足データをアシスタントに問い合わせる
- 02PER、PBR、配当利回りなどのファンダメンタル指標を比較する
- 03外国人、機関、個人投資家の売買高の推移を確認する
MCP 対応
kospi-kosdaq-stock-server は FastMCP で構築された MCP サーバーです。株価、時価総額、ファンダメンタル、売買高、インデックスのツールと、銘柄一覧やデータソース状態のリソースを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
kospi-kosdaq-stock-server
KRX Data Marketplace から KOSPI/KOSDAQ の株価データを提供する MCP サーバーです。
v0.3.0 の新機能
2024 年 12 月 27 日以降、KRX Data Marketplace でデータにアクセスするには Kakao/Naver ログインが必要になりました。このバージョンでは、以下を実装しています。
- Kakao OAuth ログインによる KRX API との直接連携
- 認証用の Playwright ベースのヘッドレスブラウザー
- 4 時間のタイムアウトと自動再ログインによるセッションの自動管理
- コア機能で pykrx への依存が不要
機能
- KOSPI/KOSDAQ のティッカーシンボルと名称を検索
- 株価の OHLCV(始値/高値/安値/終値/出来高)データを取得
- 時価総額データを取得
- ファンダメンタルデータ(PER/PBR/配当利回り)を取得
- 投資家区分(機関投資家、外国人、個人)ごとの取引量を取得
- 指数(KOSPI、KOSDAQ 指数)の OHLCV データを取得
要件
- Python 3.10+
- Kakao アカウント(2 要素認証を無効にする必要があります)
- Playwright Chromium ブラウザー
環境変数
# Required: Kakao login credentials
KAKAO_ID=your_kakao_id
KAKAO_PW=your_kakao_password
重要:Kakao アカウントでは 2 段階認証(2FA)を無効にする必要があります。 初回ログイン時に、KakaoTalk 経由でログインリクエストを承認する必要がある場合があります。
インストール
前提条件
# Install Playwright and Chromium browser
pip install playwright
playwright install chromium
Smithery 経由でのインストール
npx -y @smithery/cli install @dragon1086/kospi-kosdaq-stock-server --client claude
手動インストール
# Create and activate a virtual environment
uv venv .venv
source .venv/bin/activate # On Unix/macOS
# .venv\Scripts\activate # On Windows
# Install the package
uv pip install kospi-kosdaq-stock-server
# Install Playwright browser
playwright install chromium
Claude Desktop の設定
macOS
- 設定ファイルを開きます。
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
- サーバー設定を追加します。
{
"mcpServers": {
"kospi-kosdaq": {
"command": "uvx",
"args": ["kospi_kosdaq_stock_server"],
"env": {
"KAKAO_ID": "your_kakao_id",
"KAKAO_PW": "your_kakao_password"
}
}
}
}
Windows
-
%APPDATA%/Claude/claude_desktop_config.jsonの設定ファイルを開きます。 -
上記と同じ設定を追加します。
-
Claude Desktop を再起動します。
利用可能なツール
load_all_tickers
KOSPI と KOSDAQ のすべてのティッカーシンボルと名称を読み込みます。
- 引数:不要
- 戻り値:ティッカーコードから株式名へのマッピングを含む辞書
get_stock_ohlcv
特定の株式の OHLCV(始値/高値/安値/終値/出来高)データを取得します。
fromdate(string、必須):開始日(YYYYMMDD)todate(string、必須):終了日(YYYYMMDD)ticker(string、必須):株式ティッカーシンボル(例:"005930")adjusted(boolean、任意):調整後株価を使用するかどうか(デフォルト:True)
get_stock_market_cap
特定の株式の時価総額データを取得します。
fromdate(string、必須):開始日(YYYYMMDD)todate(string、必須):終了日(YYYYMMDD)ticker(string、必須):株式ティッカーシンボル
get_stock_fundamental
特定の株式のファンダメンタルデータ(PER/PBR/配当利回り)を取得します。
fromdate(string、必須):開始日(YYYYMMDD)todate(string、必須):終了日(YYYYMMDD)ticker(string、必須):株式ティッカーシンボル
get_stock_trading_volume
特定の株式について、投資家区分ごとの取引量を取得します。
fromdate(string、必須):開始日(YYYYMMDD)todate(string、必須):終了日(YYYYMMDD)ticker(string、必須):株式ティッカーシンボルdetail(boolean、任意):true の場合は 12 区分、false(デフォルト)の場合は集約した 5 区分を返します
get_index_ohlcv
市場指数の OHLCV データを取得します。
fromdate(string、必須):開始日(YYYYMMDD)todate(string、必須):終了日(YYYYMMDD)ticker(string、必須):指数ティッカー(KOSPI は "1001"、KOSDAQ は "2001" など)freq(string、任意):頻度 — "d"(日次)、"m"(月次)、"y"(年次)。デフォルト:"d"
利用可能なリソース
stock://tickers
KOSPI/KOSDAQ のすべてのティッカーシンボルと名称を返します。
stock://index-tickers
指数のティッカー情報を返します:
- KOSPI:1001、KOSPI 200:1028、KOSPI 100:1034、KOSPI 50:1035
- KOSDAQ:2001、KOSDAQ 150:2203
stock://data-sources
現在のデータソースの状態を返します。
Docker サポート
Docker Compose の使用
# Build and run
docker-compose up -d
# View logs
docker-compose logs -f
Docker の環境変数
.env ファイルを作成します:
KAKAO_ID=your_kakao_id
KAKAO_PW=your_kakao_password
トラブルシューティング
「KakaoTalk のログイン通知」ポップアップ
初回ログイン時に、KakaoTalk による承認が必要になる場合があります:
headless=Falseで実行して、ブラウザーを表示します- KakaoTalk でログインを承認します
- Cookie は今後のセッション用に保存されます
401 Unauthorized / セッションの期限切れ
セッションは約4時間で期限切れになります。サーバーは自動で更新しますが、失敗した場合は:
~/.krx_session.jsonを削除します- サーバーを再起動します
Linux のヘッドレス環境
# Install required packages on Ubuntu/Debian
apt-get install -y libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \
libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2
アーキテクチャ
┌─────────────────────────────────────────────────────┐
│ MCP Server (FastMCP) │
│ kospi_kosdaq_stock_server.py │
└──────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ KRXDataClient │
│ - get_market_ohlcv() │
│ - get_market_cap() │
│ - get_market_fundamental() │
│ - get_market_trading_volume_by_date() │
│ - get_index_ohlcv() │
└──────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ KakaoAuthManager │
│ - Playwright headless browser │
│ - Kakao OAuth login │
│ - Session cookie management │
│ - Auto re-login on session expiry (4h) │
└──────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ KRX Data Marketplace │
│ data.krx.co.kr │
└─────────────────────────────────────────────────────┘
既知の制限事項
- 2FA が有効な Kakao アカウントには対応していません
- 初回ログイン時に KakaoTalk による承認が必要になる場合があります
- セッションの有効期間:約4時間(自動更新に対応)
- Naver ログインはまだ実装されていません
使用例
Human: Please load all available stock tickers.
Assistant: I'll load all KOSPI and KOSDAQ stock tickers.
> Using tool 'load_all_tickers'...
Successfully loaded 2,738 stock tickers.
Human: Show me Samsung Electronics' stock data for December 2024.
Assistant: I'll retrieve Samsung Electronics' (005930) OHLCV data.
> Using tool 'get_stock_ohlcv'...
Date Open High Low Close Volume
2024-12-20 53,800 54,200 53,500 53,900 8,234,521
2024-12-19 54,000 54,300 53,700 53,800 7,123,456
...
ライセンス
MIT ライセンス
コントリビューション
Issue とプルリクエストを歓迎します!
変更履歴
v0.3.0 (2025-01-04)
- 破壊的変更:コア機能から pykrx の依存関係を削除
- Kakao OAuth による KRX Data Marketplace との直接連携を追加
- Playwright ベースのヘッドレス認証を追加
- セッションの自動管理を追加
- 指数の OHLCV 対応を追加
v0.2.x
- pykrx ベースの実装(KRX のログイン要件により非推奨)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
