MCP Market Statistics Server
π MCP Market Statistics Server
νκ΅ μ£Όμμμ₯μ μ’ ν©μ μΈ ν΅κ³ λ°μ΄ν°μ μμ₯ λΆμ μ 보λ₯Ό μ 곡νλ MCP(Model Context Protocol) μλ²μ λλ€.
β¨ μ£Όμ κΈ°λ₯
π’ μμ₯ λ°μ΄ν°
μ€μκ° μ§μ νν©: KOSPI, KOSDAQ, KOSPI200 λ±
μμ₯ μ 체 ν΅κ³: μκ°μ΄μ‘, κ±°λλκΈ, μμΉ/νλ½ μ’ λͺ© μ
52μ£Ό μ κ³ κ°/μ μ κ° ν΅κ³ λ° λΆμ
π μΉν°λ³ λΆμ
μ μ’ λ‘ν μ΄μ λΆμ λ° μΆμ
μΉν°λ³ λ°Έλ₯μμ΄μ λΉκ΅
리λ/λκ±°λ μ’ λͺ© μλ³
π° ν¬μμ λν₯
κ°μΈ/κΈ°κ΄/μΈκ΅μΈ λ§€λ§€ λν₯
νλ‘κ·Έλ¨ λ§€λ§€ νν© λΆμ
μ€λ§νΈλ¨Έλ μΆμ’ μ§ν
π μμ₯ μ¬λ¦¬ μ§ν
Fear & Greed Index (νκ΅ν)
Put/Call Ratio λΆμ
λ³λμ± μ§μ (VKOSPI)
λ΄μ€ κ°μ± λΆμ
π κ³ κΈ λΆμ
μμ₯ μ΄μ μ§ν νμ§ - AI κΈ°λ° μ΄μ ν¨ν΄ κ°μ§
μμ₯ κ΅λ©΄ νλ¨ - λΆμ₯/κ³°μ₯/ν‘보μ₯ ꡬλΆ
μ λμ± λΆμ - μμ₯ κΉμ΄ λ° μ λμ± μΈ‘μ
μκ΄κ΄κ³ λ§€νΈλ¦μ€ - μμ° κ° μκ΄κ΄κ³ λΆμ
ν¨ν΄ μΈμ - μ°¨νΈ ν¨ν΄ λ° κΈ°μ μ μ§ν λΆμ
λ€μ€ μκ°λ λΆμ - μ¬λ¬ νμνλ μ ν΅ν© λΆμ
κ°μ λΆμ - λ΄μ€ λ° μμ λ―Έλμ΄ κ°μ λΆμ
κ°κ²© μμΈ‘ - λ¨Έμ λ¬λ κΈ°λ° κ°κ²© μμΈ‘
리μ€ν¬ νκ° - ν¬νΈν΄λ¦¬μ€ 리μ€ν¬ λΆμ
π λΉ λ₯Έ μμ
μ¬μ μꡬμ¬ν
Python 3.11 μ΄μ
TimescaleDB
Redis
Docker (μ νμ¬ν)
μ€μΉ
μ μ₯μ ν΄λ‘
git clone https://github.com/your-org/mcp-market-statistics.git cd mcp-market-statisticsκ°μνκ²½ μμ± λ° νμ±ν
python -m venv venv source venv/bin/activate # Linux/Mac # λλ venv\Scripts\activate # Windowsμμ‘΄μ± μ€μΉ
make install # λλ pip install -r requirements.txtνκ²½ λ³μ μ€μ
cp .env.example .env # .env νμΌμ νΈμ§νμ¬ λ°μ΄ν°λ² μ΄μ€ λ° API μ€μ
Dockerλ₯Ό μ΄μ©ν μ€ν
# μ΄λ―Έμ§ λΉλ λ° μ€ν
make docker-run
# λλ μ§μ μ€ν
docker-compose up -dκ°λ° λͺ¨λ μ€ν
# κ°λ° μλ² μμ
make dev-server
# ν
μ€νΈ μ€ν
make test
# μ½λ ν¬λ§·ν
make format
# 보μ κ²μ¬
make securityπ οΈ κ°λ° κ°μ΄λ
νλ‘μ νΈ κ΅¬μ‘°
mcp-market-statistics/
βββ src/ # μμ€ μ½λ
β βββ server.py # MCP μλ² λ©μΈ
β βββ tools/ # MCP λꡬ μ μ
β βββ collectors/ # λ°μ΄ν° μμ§
β βββ analytics/ # κ³ κΈ λΆμ μμ§
β β βββ advanced_pattern_recognition.py
β β βββ multi_timeframe_analyzer.py
β β βββ correlation_engine.py
β β βββ price_predictor.py
β β βββ sentiment_analyzer.py
β β βββ market_anomaly_detector.py
β β βββ risk_assessment_engine.py
β βββ analyzers/ # μμ₯ λΆμκΈ°
β βββ calculators/ # κ³μ° λͺ¨λ
β βββ models/ # λ°μ΄ν° λͺ¨λΈ
β βββ utils/ # μ νΈλ¦¬ν°
β βββ exceptions.py # 컀μ€ν
μμΈ
β βββ config.py # μ€μ κ΄λ¦¬
βββ tests/ # ν
μ€νΈ μ½λ
βββ .github/workflows/ # CI/CD νμ΄νλΌμΈ
βββ requirements.txt # Python μμ‘΄μ±
βββ Dockerfile # Docker μ΄λ―Έμ§ λΉλ
βββ docker-compose.yml # μλΉμ€ μ€μΌμ€νΈλ μ΄μ
βββ Makefile # κ°λ° λͺ
λ Ήμ΄ν μ€νΈ μμ±
μ΄ νλ‘μ νΈλ TDD(Test-Driven Development) λ°©λ²λ‘ μ λ°λ¦ λλ€.
# λͺ¨λ ν
μ€νΈ μ€ν
make test
# 컀λ²λ¦¬μ§μ ν¨κ» ν
μ€νΈ
make test-cov
# ν΅ν© ν
μ€νΈ μ€ν
make test-integrationμ½λ νμ§
# λ¦°ν
μ€ν
make lint
# μ½λ ν¬λ§·ν
make format
# 보μ κ²μ¬
make security
# λͺ¨λ μ²΄ν¬ μ€ν
make ci-testπ§ μ€μ
νκ²½ λ³μ
λ³μλͺ | μ€λͺ | κΈ°λ³Έκ° |
| TimescaleDB νΈμ€νΈ | localhost |
| TimescaleDB ν¬νΈ | 5432 |
| λ°μ΄ν°λ² μ΄μ€ μ΄λ¦ | market_stats |
| Redis νΈμ€νΈ | localhost |
| Redis ν¬νΈ | 6379 |
| λ‘κ·Έ λ 벨 | INFO |
| KRX API ν€ | - |
λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§
λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§λ₯Ό μ΄κΈ°ννλ €λ©΄:
make db-setupπ‘ API μ¬μ©λ²
MCP λꡬ λͺ©λ‘
κΈ°λ³Έ μμ₯ λ°μ΄ν°
get_market_overview- μμ₯ μ 체 νν©get_sector_statistics- μΉν°λ³ ν΅κ³get_investor_flows- ν¬μμλ³ λ§€λ§€ λν₯get_market_breadth- μμ₯ ν μ§ν
κ³ κΈ λΆμ λꡬ
analyze_advanced_patterns- κ³ κΈ ν¨ν΄ μΈμ λ° λΆμanalyze_multi_timeframe- λ€μ€ μκ°λ λΆμanalyze_correlations- μκ΄κ΄κ³ μμ§predict_prices- AI κΈ°λ° κ°κ²© μμΈ‘analyze_sentiment- κ°μ λΆμdetect_anomalies- μμ₯ μ΄μ μ§ν νμ§assess_risks- 리μ€ν¬ νκ°get_market_sentiment- μμ₯ μ¬λ¦¬ μ§νget_market_regime- μμ₯ κ΅λ©΄ νλ¨
μ¬μ© μμ
# MCP ν΄λΌμ΄μΈνΈλ₯Ό ν΅ν μ¬μ©
import mcp
client = mcp.Client("market-stats-server")
# μμ₯ κ°μ μ‘°ν
overview = await client.call_tool("get_market_overview", {
"market": "KOSPI",
"include_details": True
})
# μΉν° ν΅κ³ μ‘°ν
sectors = await client.call_tool("get_sector_statistics", {
"sector": "IT",
"period": "1d"
})π λͺ¨λν°λ§
ν¬μ€μ²΄ν¬
curl http://localhost:8000/healthλ©νΈλ¦
μλ²λ Prometheus λ©νΈλ¦μ /metrics μλν¬μΈνΈμμ μ 곡ν©λλ€.
λ‘κ·Έ
ꡬ쑰νλ JSON λ‘κ·Έλ₯Ό μ¬μ©νμ¬ ELK μ€νκ³Ό νΈνλ©λλ€.
π€ κΈ°μ¬νκΈ°
μ΄μλ₯Ό μμ±νμ¬ κΈ°λ₯ μμ²μ΄λ λ²κ·Έλ₯Ό 리ν¬νΈν΄μ£ΌμΈμ
ν¬ν¬νμ¬ μλ‘μ΄ λΈλμΉλ₯Ό μμ±ν΄μ£ΌμΈμ
λ³κ²½μ¬νμ 컀λ°ν΄μ£ΌμΈμ
ν μ€νΈλ₯Ό μ€ννκ³ ν΅κ³Όνλμ§ νμΈν΄μ£ΌμΈμ
ν 리νμ€νΈλ₯Ό μμ±ν΄μ£ΌμΈμ
κ°λ° μν¬νλ‘μ°
# μμ‘΄μ± μ€μΉ λ° pre-commit μ€μ
make install-dev
# μλ‘μ΄ κΈ°λ₯ λΈλμΉ μμ±
git checkout -b feature/new-feature
# κ°λ° λ° ν
μ€νΈ
make test
# μ»€λ° μ 체ν¬
make pre-commit
# μ»€λ° λ° νΈμ
git commit -m "feat: add new feature"
git push origin feature/new-featureπ λΌμ΄μ μ€
μ΄ νλ‘μ νΈλ MIT λΌμ΄μ μ€ νμ λ°°ν¬λ©λλ€. μμΈν λ΄μ©μ LICENSE νμΌμ μ°Έμ‘°νμΈμ.
πββοΈ μ§μ
λ¬Έμ: νλ‘μ νΈ μν€
μ΄μ: GitHub Issues
ν λ‘ : GitHub Discussions
ποΈ κ°λ° νν©
Phase 1-4: κΈ°λ³Έ μΈνλΌ λ° λ°μ΄ν° μμ§ (μλ£ β )
MCP μλ² μν€ν μ²
λ°μ΄ν° μμ§ νμ΄νλΌμΈ
κΈ°λ³Έ λΆμ λꡬ
λ°μ΄ν°λ² μ΄μ€ λ° μΊμ±
Phase 5: κ³ κΈ λΆμ μμ€ν (μλ£ β )
AdvancedPatternRecognition: μ°¨νΈ ν¨ν΄, μΊλ€μ€ν±, νλͺ¨λ ν¨ν΄ μΈμ
MultiTimeframeAnalyzer: λ€μ€ μκ°λ ν΅ν© λΆμ
CorrelationEngine: κ³ κΈ μκ΄κ΄κ³ λΆμ (18κ° λΆμ λ°©λ²)
PricePredictor: λ¨Έμ λ¬λ κΈ°λ° κ°κ²© μμΈ‘
SentimentAnalyzer: λ΄μ€ λ° μμ λ―Έλμ΄ κ°μ λΆμ
MarketAnomalyDetector: AI κΈ°λ° μ΄μ ν¨ν΄ νμ§
RiskAssessmentEngine: ν¬νΈν΄λ¦¬μ€ 리μ€ν¬ λΆμ
Phase 6-10: κ³μ° λͺ¨λ λ° μ΅μ ν (μ§ν μμ )
Calculator λͺ¨λ ꡬν
Analyzer λͺ¨λ ꡬν
Model λͺ¨λ ꡬν
μ±λ₯ μ΅μ ν
λ°°ν¬ λ° μ΄μ
π νλ‘μ νΈ ν΅κ³
μ΄ μ½λ λΌμΈ: 15,000+ λΌμΈ
ν μ€νΈ 컀λ²λ¦¬μ§: 95%+
ꡬνλ λΆμ λ°©λ²: 100+ κ°
μ§μ ν¨ν΄: 50+ μ’ λ₯
TDD λ°©λ²λ‘ μ μ©μΌλ‘ λμ μ½λ νμ§ λ³΄μ₯
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/whdghk1907/mcp-market-statistics'
If you have feedback or need assistance with the MCP directory API, please join our Discord server