Skip to main content
Glama
Mrbaeksang

Korea Stock Analyzer MCP Server

by Mrbaeksang

๐Ÿ“ˆ korea-stock-mcp

ํ•œ๊ตญ ์ฃผ์‹์„ ์œ„ํ•œ ๋ณด์ˆ˜์ ยท๋ฐ์ดํ„ฐ ์ •์ง ์›๊ฒฉ MCP ์„œ๋ฒ„ Conservative, data-honest Korean equity analysis for Claude, Cursor and any MCP client

CI Python FastMCP MCP License


DART ์ „์ž๊ณต์‹œ์˜ ์‹ค์ธก ์žฌ๋ฌด์ œํ‘œ์™€ KRX ์‹œ์„ธ๋งŒ์œผ๋กœ ํ•œ๊ตญ ์ƒ์žฅ์‚ฌ๋ฅผ ๋ถ„์„ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ์—†๋‹ค๊ณ  ๋‹ตํ•˜๊ณ , ๋ชฉํ‘œ ์ฃผ๊ฐ€ ๋Œ€์‹  ๊ฐ€์ •์ด ๋ช…์‹œ๋œ ๋ฒ”์œ„๋ฅผ ์ œ์‹œํ•˜๋ฉฐ, ๋งค์ˆ˜ยท๋งค๋„ ๊ถŒ๊ณ ๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

โœจ Features

  • ๋‚ ์กฐ ์ œ๋กœ โ€” ๋ชจ๋“  ์ˆ˜์น˜๋Š” DART ๊ณต์‹œยทKRX ์‹œ์„ธ ์‹ค์ธก์น˜. ๊ฒฐ์ธก์€ null + ์‚ฌ์œ ๋กœ ๋ช…์‹œ, ๊ธฐ๋ณธ๊ฐ’ ์ฃผ์ž… ์—†์Œ

  • ์‹ค์ธก ์žฌ๋ฌด์ œํ‘œ โ€” ์‚ฌ์—…๋ณด๊ณ ์„œ ๊ธฐ๋ฐ˜ ๋งค์ถœยท์˜์—…์ด์ตยทํ˜„๊ธˆํ๋ฆ„ 3~10๊ฐœ๋…„, ์—ฐ๊ฒฐ(CFS) ์šฐ์„ /๋ณ„๋„(OFS) ํด๋ฐฑ ํ‘œ์‹œ

  • ๋ณด์ˆ˜์  ๋ฐธ๋ฅ˜์—์ด์…˜ โ€” ๋‹จ์ผ ์ ์ •๊ฐ€ ๋Œ€์‹  3์‹œ๋‚˜๋ฆฌ์˜ค(๋น„๊ด€/์ค‘๋ฆฝ/๋‚™๊ด€) ๋ฒ”์œ„, ์„ฑ์žฅ๋ฅ ยท๋ฉ€ํ‹ฐํ”Œ ๊ฐ€์ • ์ „๋ถ€ ์‘๋‹ต์— ํฌํ•จ

  • ๋ฆฌ์Šคํฌ ์šฐ์„  โ€” ์žฌ๋ฌด ์ ์‹ ํ˜ธ 6์ข… ์ž๋™ ๊ฒ€์‚ฌ + ๊ณต์‹œ ์œ„ํ—˜ ํ‚ค์›Œ๋“œ ํ•˜์ด๋ผ์ดํŠธ, ๊ฒ€์‚ฌ ๋ถˆ๊ฐ€ ํ•ญ๋ชฉ๋„ ๊ตฌ๋ถ„ ๋ณด๊ณ 

  • ๊ต์ฐจ ๊ฒ€์ฆ โ€” ์‹œ๊ฐ€์ด์•ก ์ •ํ•ฉ์„ฑ ๊ฒ€์‚ฌ(์ฃผ๊ฐ€ร—์ฃผ์‹์ˆ˜ vs ๋ณด๊ณ  ์‹œ์ด) ๋“ฑ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ ๊ฒ€์ฆ ๋‚ด์žฅ

  • ์šด์˜ ๊ธฐ๋ณธ๊ธฐ โ€” ๊ธ€๋กœ๋ฒŒ ๋ ˆ์ดํŠธ ๋ฆฌ๋ฐ‹, DART ์ฟผํ„ฐ ๋ณดํ˜ธ ์บ์‹ฑ, KRX IP ์ฐจ๋‹จ ๋ฐฉ์ง€ ์ง๋ ฌํ™”, ๊ตฌ์กฐํ™” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€

Related MCP server: RagAlgo MCP Server

๐Ÿ—๏ธ Architecture

graph LR
    C1[Claude / claude.ai] -->|Streamable HTTP| S
    C2[Claude Desktop / Cursor] -->|Streamable HTTP| S
    subgraph Railway
        S[FastMCP 3 ยท stateless] --> T[tools/ ๋“ฑ๋ก ๊ณ„์ธต]
        T --> A[analysis/ ์ˆœ์ˆ˜ ๊ณ„์‚ฐ<br>ratios ยท valuation ยท risk]
        T --> SV[services/ ๋ฐ์ดํ„ฐ ํด๋ผ์ด์–ธํŠธ]
        SV --> CA[(TTL cache)]
    end
    SV -->|์žฌ๋ฌด์ œํ‘œ ยท ๊ณต์‹œ| DART[DART OpenAPI]
    SV -->|์‹œ์„ธ ยท ์ƒ์žฅ๋ชฉ๋ก| KRX[KRX via FinanceDataReader]

๊ณ„์ธต ์›์น™: tools/๋Š” ๋“ฑ๋ก๋งŒ(์–‡๊ฒŒ) โ†’ services/๋Š” ์™ธ๋ถ€ API + ์บ์‹ฑ โ†’ analysis/๋Š” ์ˆœ์ˆ˜ํ•จ์ˆ˜(๊ฐ€์žฅ ๋‘๊บผ์šด ํ…Œ์ŠคํŠธ). LLM๋„ ์„œ๋ฒ„๋„ ์ˆ˜์น˜๋ฅผ "์•”์‚ฐ"ํ•˜์ง€ ์•Š๋Š”๋‹ค โ€” ๋ชจ๋“  ๊ณ„์‚ฐ์€ ๊ฒฐ์ •๋ก ์  ํ•จ์ˆ˜๋‹ค.

๐Ÿš€ Quickstart

๋ฐฐํฌ๋œ ์„œ๋ฒ„ URL ํ•˜๋‚˜๋ฉด ๋œ๋‹ค. API ํ‚ค ๋ถˆํ•„์š”(๊ณต๊ฐœ ๋ฐ์ดํ„ฐ๋งŒ ์ œ๊ณต).

claude.ai โ€” ์„ค์ • โ†’ ์ปค๋„ฅํ„ฐ โ†’ ์ปค์Šคํ…€ ์ปค๋„ฅํ„ฐ ์ถ”๊ฐ€:

https://korea-stock-analyzer-mcp-production.up.railway.app/mcp

Claude Code:

claude mcp add --transport http korea-stock https://korea-stock-analyzer-mcp-production.up.railway.app/mcp
{
  "mcpServers": {
    "korea-stock": {
      "type": "http",
      "url": "https://korea-stock-analyzer-mcp-production.up.railway.app/mcp"
    }
  }
}

์—ฐ๊ฒฐ ํ›„ ์ด๋ ‡๊ฒŒ ๋ฌผ์–ด๋ณด๋ฉด ๋œ๋‹ค:

"์‚ผ์„ฑ์ „์ž ์ตœ๊ทผ 5๋…„ ์žฌ๋ฌด์ œํ‘œ ํ๋ฆ„์ด๋ž‘ ๋ฆฌ์Šคํฌ ์š”์ธ ์งš์–ด์ค˜"

๐Ÿ› ๏ธ Tools

๋„๊ตฌ

์„ค๋ช…

์ฃผ์š” ํŒŒ๋ผ๋ฏธํ„ฐ

search_company

์ข…๋ชฉ๋ช…/์ฝ”๋“œ๋กœ ์ƒ์žฅ์‚ฌ ๊ฒ€์ƒ‰ (KOSPIยทKOSDAQ)

query

get_quote

์‹œ์„ธยท์‹œ๊ฐ€์ด์•กยท52์ฃผ ๊ณ ์ €ยท๊ฑฐ๋ž˜๋Ÿ‰ + ์‹œ์ด ์ •ํ•ฉ์„ฑ ๊ฒ€์‚ฌ

ticker

get_financials

์‹ค์ธก ์—ฐ๊ฐ„ ์žฌ๋ฌด์ œํ‘œ + ์ˆ˜์ต์„ฑยท์•ˆ์ •์„ฑยท์„ฑ์žฅ์„ฑยทํ˜„๊ธˆํ๋ฆ„ ๋น„์œจ

ticker, years (2โ€“10)

get_valuation

PER/PBR ๋ฉ€ํ‹ฐํ”Œ + 3์‹œ๋‚˜๋ฆฌ์˜ค ๊ฐ€์น˜ ๋ฒ”์œ„ (๊ฐ€์ • ๋ช…์‹œ)

ticker

get_risk_flags

์žฌ๋ฌด ์ ์‹ ํ˜ธ 6์ข… + ์ตœ๊ทผ ๊ณต์‹œ ์œ„ํ—˜ ํ‚ค์›Œ๋“œ

ticker, disclosure_days

๋ชจ๋“  ์‘๋‹ต์— ๋ฐ์ดํ„ฐ ๊ธฐ์ค€์ผ(as_of)๊ณผ ์ถœ์ฒ˜(data_source)๊ฐ€ ๋ถ™๋Š”๋‹ค.

โ˜๏ธ Deploy Your Own

Railway ๊ธฐ์ค€ (Dockerfile ์ž๋™ ๊ฐ์ง€):

  1. ์ด ๋ ˆํฌ๋ฅผ ํฌํฌ โ†’ Railway์—์„œ GitHub ๋ ˆํฌ ์—ฐ๊ฒฐ

  2. ํ™˜๊ฒฝ๋ณ€์ˆ˜:

๋ณ€์ˆ˜

ํ•„์ˆ˜

์„ค๋ช…

DART_API_KEY

โœ…

opendart.fss.or.kr ๋ฌด๋ฃŒ ๋ฐœ๊ธ‰ (์ผ 20,000๊ฑด)

FASTMCP_HTTP_ALLOWED_HOSTS

โœ…

["<์„œ๋น„์Šค>.up.railway.app","healthcheck.railway.app"]

RATE_LIMIT_RPS / RATE_LIMIT_BURST

โ€”

๊ธฐ๋ณธ 5 / 15

์•…์„ฑ ์‚ฌ์šฉ์ž ์ฐจ๋‹จ์€ ๋ณ„๋„ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์—†์ด ์ž๋™ ์ ์šฉ๋œ๋‹ค. Railway ์š”์ฒญ์„ ์ž๋™์œผ๋กœ ์ธ์‹ํ•ด IP๋ณ„ ๋ถ„๋‹น 30ํšŒ, ๋ฐ˜๋ณต ์ดˆ๊ณผ 3ํšŒ ์‹œ 1์‹œ๊ฐ„ ์ฐจ๋‹จํ•˜๋ฉฐ, /health๋„ ๋ถ„๋‹น 120ํšŒ๋กœ ์ œํ•œํ•ด ์šฐํšŒ ๊ฒฝ๋กœ๋ฅผ ๋ง‰๋Š”๋‹ค.

  1. Serverless(App Sleeping) ๋น„ํ™œ์„ฑ ๊ถŒ์žฅ โ€” ์ฝœ๋“œ ์Šคํƒ€ํŠธ ์‹œ ์ปค๋„ฅํ„ฐ ์—ฐ๊ฒฐ ์‹คํŒจ ๋ฐฉ์ง€

๋กœ์ปฌ ์‹คํ–‰:

uv sync
DART_API_KEY=<key> uv run uvicorn app.main:app --app-dir src --port 8000

ํ…Œ์ŠคํŠธ:

uv run pytest                          # ๋‹จ์œ„ยท๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ (์™ธ๋ถ€ API ์—†์Œ)
uv run pytest -m live -o addopts=""    # ์‹ค์ œ KRX/DART ๊ฒ€์ฆ (ํ‚ค ํ•„์š”)

๐Ÿ“Š ๋ฐ์ดํ„ฐ ์ถœ์ฒ˜์™€ ํ•œ๊ณ„

๋ฐ์ดํ„ฐ

์ถœ์ฒ˜

ํ•œ๊ณ„

์žฌ๋ฌด์ œํ‘œ

DART OpenAPI (์‚ฌ์—…๋ณด๊ณ ์„œ XBRL)

์—ฐ๊ฐ„๋งŒ, ๋ถ„๊ธฐ ๋ฏธ์ œ๊ณต

์‹œ์„ธยท์‹œ์ด

KRX (FinanceDataReader)

์ผ๋ณ„ ์Šค๋ƒ…์ƒท, ์‹ค์‹œ๊ฐ„ ์•„๋‹˜

๊ณต์‹œ ๋ชฉ๋ก

DART OpenAPI

์ตœ๊ทผ 7~365์ผ

FCF

์˜์—…CF โˆ’ ์œ ํ˜•์ž์‚ฐ ์ทจ๋“

๊ทผ์‚ฌ์น˜ โ€” ๋ฌดํ˜•์ž์‚ฐยท๋ฆฌ์Šค ํˆฌ์ž ๋ฏธํฌํ•จ

๐Ÿ”’ Disclaimer

๋ณธ ์„œ๋ฒ„์˜ ์ถœ๋ ฅ์€ ๊ณต์‹œยท์‹œ์„ธ ๋ฐ์ดํ„ฐ์˜ ์‚ฐ์ˆ  ๊ฐ€๊ณต ๊ฒฐ๊ณผ์ด๋ฉฐ ํˆฌ์ž ์ž๋ฌธ์ด ์•„๋‹ˆ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค ๊ฐ’์€ ๋ช…์‹œ๋œ ๊ฐ€์ •์˜ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ์ผ ๋ฟ ๋ชฉํ‘œ ์ฃผ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ๋งค์ˆ˜ยท๋งค๋„ยท๋น„์ค‘ ํŒ๋‹จ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํˆฌ์ž ํŒ๋‹จ๊ณผ ์ฑ…์ž„์€ ์ „์ ์œผ๋กœ ์ด์šฉ์ž์—๊ฒŒ ์žˆ๋‹ค.

๐Ÿค Contributing

์ด์ŠˆยทPR ํ™˜์˜. ์›์น™ ํ•˜๋‚˜๋งŒ ์ง€์ผœ๋‹ฌ๋ผ: ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ์—†๋‹ค๊ณ  ๋‹ตํ•œ๋‹ค. ์ถ”์ •์น˜ ์ฃผ์ž…ยทํ•˜๋“œ์ฝ”๋”ฉ ํด๋ฐฑ์ด ๋“ค์–ด๊ฐ„ PR์€ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ํ…Œ์ŠคํŠธ๋Š” uv run pytest ํ†ต๊ณผ ํ•„์ˆ˜.

๐Ÿ“œ License

Apache-2.0

Maintenance

ActivitySlowing
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive statistics and advanced analysis tools for the Korean stock market, offering real-time index data, sector analysis, investor trend tracking, and AI-based market pattern recognition.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides access to Korean financial news and market data (stocks and crypto) with AI-ready mathematical scoring to prevent hallucinations. Includes tools for news retrieval, chart analysis, financial statements, tag matching, and trend analysis.
    29
    5
    MIT
  • F
    license
    B
    quality
    B
    maintenance
    Provides AI with real-time stock data from Naver Securities and Yahoo Finance via 47 tools, enabling accurate analysis without API keys for Korean and US markets.
    56
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered analysis of Korean stock market data and corporate disclosures using official DART and KRX APIs.
    121
    ISC