mcpField
K
kospi-kosdaq-stock-server

kospi-kosdaq-stock-server

ローカル
github.com/dragon1086金融データ747 週間前に更新

kospi-kosdaq-stock-server について

kospi-kosdaq-stock-server は、KRX データマーケットプレイスから KOSPI と KOSDAQ の株式およびインデックスデータを提供する MCP サーバーです。AI アシスタントから韓国市場のデータを利用したいアナリストや開発者向けです。

主な機能

  1. 01KOSPI と KOSDAQ の銘柄コードと名称の検索
  2. 02株価 OHLCV データの取得
  3. 03時価総額、PER、PBR、配当利回りの取得
  4. 04投資家タイプ別の売買高の取得
  5. 05KOSPI と KOSDAQ のインデックス OHLCV の取得
  6. 06Playwright による Kakao ログインとセッション管理

活用シーン

  1. 01指定期間の銘柄の日足データをアシスタントに問い合わせる
  2. 02PER、PBR、配当利回りなどのファンダメンタル指標を比較する
  3. 03外国人、機関、個人投資家の売買高の推移を確認する

MCP 対応

kospi-kosdaq-stock-server は FastMCP で構築された MCP サーバーです。株価、時価総額、ファンダメンタル、売買高、インデックスのツールと、銘柄一覧やデータソース状態のリソースを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kospi-kosdaq-stock-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@smithery/cli

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MseeP.ai Security Assessment Badge

kospi-kosdaq-stock-server

PyPI version smithery badge

README の画像

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
  1. 設定ファイルを開きます。
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. サーバー設定を追加します。
{
  "mcpServers": {
    "kospi-kosdaq": {
      "command": "uvx",
      "args": ["kospi_kosdaq_stock_server"],
      "env": {
        "KAKAO_ID": "your_kakao_id",
        "KAKAO_PW": "your_kakao_password"
      }
    }
  }
}
Windows
  1. %APPDATA%/Claude/claude_desktop_config.json の設定ファイルを開きます。

  2. 上記と同じ設定を追加します。

  3. 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 による承認が必要になる場合があります:

  1. headless=False で実行して、ブラウザーを表示します
  2. KakaoTalk でログインを承認します
  3. Cookie は今後のセッション用に保存されます
401 Unauthorized / セッションの期限切れ

セッションは約4時間で期限切れになります。サーバーは自動で更新しますが、失敗した場合は:

  1. ~/.krx_session.json を削除します
  2. サーバーを再起動します
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 のログイン要件により非推奨)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。