KOSPI/KOSDAQ Stock Data

KOSPI/KOSDAQ Stock Data

dragon1086

Provides real-time access to Korean stock market data from KOSPI and KOSDAQ exchanges, including prices, volumes, and financial metrics.

Integrates with pykrx to provide real-time access to KOSPI and KOSDAQ stock market data, offering tools for retrieving ticker symbols, OHLCV data, market capitalization, fundamental metrics, and trading volumes.

634,924 views23RemoteLocal (stdio)

What it does

  • Retrieve OHLCV price data for Korean stocks
  • Get market capitalization for individual stocks
  • Access fundamental metrics like PER, PBR, and dividend yield
  • Query trading volumes by investor type
  • Load all KOSPI/KOSDAQ ticker symbols
  • Retrieve index data for market benchmarks

Best for

Korean stock market analysis and researchBuilding financial applications for KRX dataAlgorithmic trading with Korean equitiesInvestment portfolio tracking
Direct KRX API integration with OAuthAutomatic session managementRequires Kakao account login

About KOSPI/KOSDAQ Stock Data

KOSPI/KOSDAQ Stock Data is a community-built MCP server published by dragon1086 that provides AI assistants with tools and capabilities via the Model Context Protocol. Access real-time KOSPI stock index data with tools for ticker symbols, OHLCV, market cap, and trading activity via pykrx It is categorized under finance, analytics data. This server exposes 6 tools that AI clients can invoke during conversations and coding sessions.

How to install

You can install KOSPI/KOSDAQ Stock Data in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport. This server supports remote connections over HTTP, so no local installation is required.

License

KOSPI/KOSDAQ Stock Data is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.

Tools (6)

load_all_tickers

Loads all ticker symbols and names for KOSPI and KOSDAQ into memory. Returns: Dict[str, str]: A dictionary mapping tickers to stock names. Example: {"005930": "삼성전자", "035720": "카카오", ...}

get_stock_ohlcv

Retrieves OHLCV (Open/High/Low/Close/Volume) data for a specific stock. Args: fromdate (str): Start date for retrieval (YYYYMMDD) todate (str): End date for retrieval (YYYYMMDD) ticker (str): Stock ticker symbol adjusted (bool, optional): Whether to use adjusted prices (True: adjusted, False: unadjusted). Defaults to True. Returns: DataFrame: >> get_stock_ohlcv("20210118", "20210126", "005930") Open High Low Close Volume Date 2021-01-26 89500 94800 89500 93800 46415214 2021-01-25 87300 89400 86800 88700 25577517 2021-01-22 89000 89700 86800 86800 30861661 2021-01-21 87500 88600 86500 88100 25318011 2021-01-20 89000 89000 86500 87200 25211127 2021-01-19 84500 88000 83600 87000 39895044 2021-01-18 86600 87300 84100 85000 43227951

get_stock_market_cap

Retrieves market capitalization data for a specific stock. Args: fromdate (str): Start date for retrieval (YYYYMMDD) todate (str): End date for retrieval (YYYYMMDD) ticker (str): Stock ticker symbol Returns: DataFrame: >> get_stock_market_cap("20150720", "20150724", "005930") Market Cap Volume Trading Value Listed Shares Date 2015-07-24 181030885173000 196584 241383636000 147299337 2015-07-23 181767381858000 208965 259446564000 147299337 2015-07-22 184566069261000 268323 333813094000 147299337 2015-07-21 186039062631000 194055 244129106000 147299337 2015-07-20 187806654675000 128928 165366199000 147299337

get_stock_fundamental

Retrieves fundamental data (PER/PBR/Dividend Yield) for a specific stock. Args: fromdate (str): Start date for retrieval (YYYYMMDD) todate (str): End date for retrieval (YYYYMMDD) ticker (str): Stock ticker symbol Returns: DataFrame: >> get_stock_fundamental("20210104", "20210108", "005930") BPS PER PBR EPS DIV DPS Date 2021-01-08 37528 28.046875 2.369141 3166 1.589844 1416 2021-01-07 37528 26.187500 2.210938 3166 1.709961 1416 2021-01-06 37528 25.953125 2.189453 3166 1.719727 1416 2021-01-05 37528 26.500000 2.240234 3166 1.690430 1416 2021-01-04 37528 26.218750 2.210938 3166 1.709961 1416

get_stock_trading_volume

Retrieves trading volume by investor type for a specific stock. Args: fromdate (str): Start date for retrieval (YYYYMMDD) todate (str): End date for retrieval (YYYYMMDD) ticker (str): Stock ticker symbol Returns: DataFrame with columns: - Volume (Sell/Buy/Net Buy) - Trading Value (Sell/Buy/Net Buy) Broken down by investor types (Financial Investment, Insurance, Trust, etc.)

MseeP.ai Security Assessment Badge

kospi-kosdaq-stock-server

PyPI version smithery badge

README image Link to glama.ai

An MCP server that provides KOSPI/KOSDAQ stock data from KRX Data Marketplace.

What's New in v0.3.0

Since December 27, 2024, KRX Data Marketplace requires Kakao/Naver login for data access. This version implements:

  • Direct KRX API integration with Kakao OAuth login
  • Playwright-based headless browser for authentication
  • Automatic session management with 4-hour timeout and auto re-login
  • No more pykrx dependency for core functionality

Features

  • Lookup KOSPI/KOSDAQ ticker symbols and names
  • Retrieve OHLCV (Open/High/Low/Close/Volume) data for stocks
  • Retrieve market capitalization data
  • Retrieve fundamental data (PER/PBR/Dividend Yield)
  • Retrieve trading volume by investor type (institutional, foreign, individual)
  • Retrieve index OHLCV data (KOSPI, KOSDAQ indices)

Requirements

  • Python 3.10+
  • Kakao account (2FA must be disabled)
  • Playwright Chromium browser

Environment Variables

# Required: Kakao login credentials
KAKAO_ID=your_kakao_id
KAKAO_PW=your_kakao_password

Important: Your Kakao account must have 2-step verification (2FA) disabled. On first login, you may need to approve the login request via KakaoTalk.

Installation

Prerequisites

# Install Playwright and Chromium browser
pip install playwright
playwright install chromium

Installing via Smithery

npx -y @smithery/cli install @dragon1086/kospi-kosdaq-stock-server --client claude

Manual Installation

# 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

Configuration for Claude Desktop

macOS

  1. Open the config file:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. Add the server configuration:
{
  "mcpServers": {
    "kospi-kosdaq": {
      "command": "uvx",
      "args": ["kospi_kosdaq_stock_server"],
      "env": {
        "KAKAO_ID": "your_kakao_id",
        "KAKAO_PW": "your_kakao_password"
      }
    }
  }
}

Windows

  1. Open the config file at %APPDATA%/Claude/claude_desktop_config.json

  2. Add the same configuration as above

  3. Restart Claude Desktop

Available Tools

load_all_tickers

Loads all ticker symbols and names for KOSPI and KOSDAQ.

  • No arguments required
  • Returns: Dictionary mapping ticker codes to stock names

get_stock_ohlcv

Retrieves OHLCV (Open/High/Low/Close/Volume) data for a specific stock.

  • fromdate (string, required): Start date (YYYYMMDD)
  • todate (string, required): End date (YYYYMMDD)
  • ticker (string, required): Stock ticker symbol (e.g., "005930")
  • adjusted (boolean, optional): Use adjusted prices (default: True)

get_stock_market_cap

Retrieves market capitalization data for a specific stock.

  • fromdate (string, required): Start date (YYYYMMDD)
  • todate (string, required): End date (YYYYMMDD)
  • ticker (string, required): Stock ticker symbol

get_stock_fundamental

Retrieves fundamental data (PER/PBR/Dividend Yield) for a specific stock.

  • fromdate (string, required): Start date (YYYYMMDD)
  • todate (string, required): End date (YYYYMMDD)
  • ticker (string, required): Stock ticker symbol

get_stock_trading_volume

Retrieves trading volume by investor type for a specific stock.

  • fromdate (string, required): Start date (YYYYMMDD)
  • todate (string, required): End date (YYYYMMDD)
  • ticker (string, required): Stock ticker symbol
  • detail (boolean, optional): If true, returns 12 investor types; if false (default), returns 5 aggregated types

get_index_ohlcv

Retrieves OHLCV data for market indices.

  • fromdate (string, required): Start date (YYYYMMDD)
  • todate (string, required): End date (YYYYMMDD)
  • ticker (string, required): Index ticker (e.g., "1001" for KOSPI, "2001" for KOSDAQ)
  • freq (string, optional): Frequency - "d" (daily), "m" (monthly), "y" (yearly). Default: "d"

Available Resources

stock://tickers

Returns all KOSPI/KOSDAQ ticker symbols and names.

stock://index-tickers

Returns index ticker information:

  • KOSPI: 1001, KOSPI 200: 1028, KOSPI 100: 1034, KOSPI 50: 1035
  • KOSDAQ: 2001, KOSDAQ 150: 2203

stock://data-sources

Returns current data source status.

Docker Support

Using Docker Compose

# Build and run
docker-compose up -d

# View logs
docker-compose logs -f

Environment Variables for Docker

Create a .env file:

KAKAO_ID=your_kakao_id
KAKAO_PW=your_kakao_password

Troubleshooting

"KakaoTalk login notification" popup

On first login, Kakao may require approval via KakaoTalk:

  1. Run with headless=False to see the browser
  2. Approve the login in KakaoTalk
  3. Cookies will be saved for future sessions

401 Unauthorized / Session Expired

Session expires after ~4 hours. The server auto-renews, but if it fails:

  1. Delete ~/.krx_session.json
  2. Restart the server

Linux Headless Environment

# 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

Architecture

┌─────────────────────────────────────────────────────┐
│                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                          │
└─────────────────────────────────────────────────────┘

Known Limitations

  • Kakao accounts with 2FA enabled are not supported
  • First login may require KakaoTalk approval
  • Session validity: ~4 hours (auto-renewal supported)
  • Naver login is not yet implemented

Usage Example

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
...

License

MIT License

Contributing

Issues and pull requests are welcome!

Changelog

v0.3.0 (2025-01-04)

  • Breaking: Removed pykrx dependency for core functionality
  • Added KRX Data Marketplace direct integration with Kakao OAuth
  • Added Playwright-based headless authentication
  • Added automatic session management
  • Added index OHLCV support

v0.2.x

  • pykrx-based implementation (deprecated due to KRX login requirement)

Alternatives

Related Skills

Browse all skills
stock-analysis

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.

7
financial-market-analysis

Precision Financial Insights - Analyze stocks, companies, and market sentiment using authoritative data. Powered by Yahoo Finance and enhanced with intelligent news synthesis by we-crafted.com/agents/financial-market-analysis - Buy CRAFTED_API_KEY in our website to start using

2
yahoo-data-fetcher

Fetch real-time stock quotes from Yahoo Finance.

1
ceorater

Get institutional-grade CEO performance analytics for S&P 500 companies. Proprietary scores: CEORaterScore (composite), AlphaScore (market outperformance), RevenueCAGRScore (revenue growth), CompScore (compensation efficiency). Underlying data includes Total Stock Return (TSR) vs. S&P 500 (SPY), average annual returns, CEO total compensation (most recent fiscal year from proxy filings), and tenure-adjusted Revenue CAGR. Each record includes CEO name, company name, ticker, sector, industry, and tenure dates. Coverage: 516 CEOs as of February 2026, updated daily. Useful for investment research, due diligence, and executive compensation analysis.

0
stock-analyzer

Provides comprehensive technical analysis for stocks and ETFs using RSI, MACD, Bollinger Bands, and other indicators. Activates when user requests stock analysis, technical indicators, trading signals, or market data for specific ticker symbols.

42
data-storytelling

Transform data into compelling narratives using visualization, context, and persuasive structure. Use when presenting analytics to stakeholders, creating data reports, or building executive presentations.

27