Skip to main content
Glama
whdghk1907

MCP Market Statistics Server

by whdghk1907
README.md
# πŸ“Š MCP Market Statistics Server

ν•œκ΅­ μ£Όμ‹μ‹œμž₯의 쒅합적인 톡계 데이터와 μ‹œμž₯ 뢄석 정보λ₯Ό μ œκ³΅ν•˜λŠ” MCP(Model Context Protocol) μ„œλ²„μž…λ‹ˆλ‹€.

[![CI/CD Pipeline](https://github.com/your-org/mcp-market-statistics/workflows/CI/CD%20Pipeline/badge.svg)](https://github.com/your-org/mcp-market-statistics/actions)
[![codecov](https://codecov.io/gh/your-org/mcp-market-statistics/branch/main/graph/badge.svg)](https://codecov.io/gh/your-org/mcp-market-statistics)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## ✨ μ£Όμš” κΈ°λŠ₯

### 🏒 μ‹œμž₯ 데이터
- **μ‹€μ‹œκ°„ μ§€μˆ˜ ν˜„ν™©**: KOSPI, KOSDAQ, KOSPI200 λ“±
- **μ‹œμž₯ 전체 톡계**: μ‹œκ°€μ΄μ•‘, κ±°λž˜λŒ€κΈˆ, μƒμŠΉ/ν•˜λ½ μ’…λͺ© 수
- **52μ£Ό μ‹ κ³ κ°€/μ‹ μ €κ°€** 톡계 및 뢄석

### πŸ“ˆ 섹터별 뢄석
- **μ—…μ’… λ‘œν…Œμ΄μ…˜** 뢄석 및 좔적
- **섹터별 λ°Έλ₯˜μ—μ΄μ…˜** 비ꡐ
- **리더/λž˜κ±°λ“œ μ’…λͺ©** 식별

### πŸ’° 투자자 동ν–₯
- **개인/κΈ°κ΄€/외ꡭ인** λ§€λ§€ 동ν–₯
- **ν”„λ‘œκ·Έλž¨ λ§€λ§€** ν˜„ν™© 뢄석
- **μŠ€λ§ˆνŠΈλ¨Έλ‹ˆ μΆ”μ’…** μ§€ν‘œ

### 🌊 μ‹œμž₯ 심리 μ§€ν‘œ
- **Fear & Greed Index** (ν•œκ΅­νŒ)
- **Put/Call Ratio** 뢄석
- **변동성 μ§€μˆ˜** (VKOSPI)
- **λ‰΄μŠ€ 감성 뢄석**

### πŸ” κ³ κΈ‰ 뢄석
- **μ‹œμž₯ 이상 μ§•ν›„ 탐지** - AI 기반 이상 νŒ¨ν„΄ 감지
- **μ‹œμž₯ κ΅­λ©΄ νŒλ‹¨** - 뢈μž₯/κ³°μž₯/횑보μž₯ ꡬ뢄
- **μœ λ™μ„± 뢄석** - μ‹œμž₯ 깊이 및 μœ λ™μ„± μΈ‘μ •
- **상관관계 맀트릭슀** - μžμ‚° κ°„ 상관관계 뢄석
- **νŒ¨ν„΄ 인식** - 차트 νŒ¨ν„΄ 및 기술적 μ§€ν‘œ 뢄석
- **닀쀑 μ‹œκ°„λŒ€ 뢄석** - μ—¬λŸ¬ νƒ€μž„ν”„λ ˆμž„ 톡합 뢄석
- **감정 뢄석** - λ‰΄μŠ€ 및 μ†Œμ…œλ―Έλ””μ–΄ 감정 뢄석
- **가격 예츑** - λ¨Έμ‹ λŸ¬λ‹ 기반 가격 예츑
- **리슀크 평가** - 포트폴리였 리슀크 뢄석

## πŸš€ λΉ λ₯Έ μ‹œμž‘

### 사전 μš”κ΅¬μ‚¬ν•­
- Python 3.11 이상
- TimescaleDB
- Redis
- Docker (선택사항)

### μ„€μΉ˜

1. **μ €μž₯μ†Œ 클둠**
   ```bash
   git clone https://github.com/your-org/mcp-market-statistics.git
   cd mcp-market-statistics
   ```

2. **κ°€μƒν™˜κ²½ 생성 및 ν™œμ„±ν™”**
   ```bash
   python -m venv venv
   source venv/bin/activate  # Linux/Mac
   # λ˜λŠ”
   venv\Scripts\activate  # Windows
   ```

3. **μ˜μ‘΄μ„± μ„€μΉ˜**
   ```bash
   make install
   # λ˜λŠ”
   pip install -r requirements.txt
   ```

4. **ν™˜κ²½ λ³€μˆ˜ μ„€μ •**
   ```bash
   cp .env.example .env
   # .env νŒŒμΌμ„ νŽΈμ§‘ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ 및 API μ„€μ •
   ```

### Dockerλ₯Ό μ΄μš©ν•œ μ‹€ν–‰

```bash
# 이미지 λΉŒλ“œ 및 μ‹€ν–‰
make docker-run

# λ˜λŠ” 직접 μ‹€ν–‰
docker-compose up -d
```

### 개발 λͺ¨λ“œ μ‹€ν–‰

```bash
# 개발 μ„œλ²„ μ‹œμž‘
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)** 방법둠을 λ”°λ¦…λ‹ˆλ‹€.

```bash
# λͺ¨λ“  ν…ŒμŠ€νŠΈ μ‹€ν–‰
make test

# 컀버리지와 ν•¨κ»˜ ν…ŒμŠ€νŠΈ
make test-cov

# 톡합 ν…ŒμŠ€νŠΈ μ‹€ν–‰
make test-integration
```

### μ½”λ“œ ν’ˆμ§ˆ

```bash
# λ¦°νŒ… μ‹€ν–‰
make lint

# μ½”λ“œ ν¬λ§·νŒ…
make format

# λ³΄μ•ˆ 검사
make security

# λͺ¨λ“  체크 μ‹€ν–‰
make ci-test
```

## πŸ”§ μ„€μ •

### ν™˜κ²½ λ³€μˆ˜

| λ³€μˆ˜λͺ… | μ„€λͺ… | κΈ°λ³Έκ°’ |
|--------|------|--------|
| `TIMESCALE_DB_HOST` | TimescaleDB 호슀트 | localhost |
| `TIMESCALE_DB_PORT` | TimescaleDB 포트 | 5432 |
| `TIMESCALE_DB_NAME` | λ°μ΄ν„°λ² μ΄μŠ€ 이름 | market_stats |
| `REDIS_HOST` | Redis 호슀트 | localhost |
| `REDIS_PORT` | Redis 포트 | 6379 |
| `LOG_LEVEL` | 둜그 레벨 | INFO |
| `KRX_API_KEY` | KRX API ν‚€ | - |

### λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ

λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό μ΄ˆκΈ°ν™”ν•˜λ €λ©΄:

```bash
make db-setup
```

## πŸ“‘ API μ‚¬μš©λ²•

### MCP 도ꡬ λͺ©λ‘

#### κΈ°λ³Έ μ‹œμž₯ 데이터
1. **`get_market_overview`** - μ‹œμž₯ 전체 ν˜„ν™©
2. **`get_sector_statistics`** - 섹터별 톡계
3. **`get_investor_flows`** - νˆ¬μžμžλ³„ λ§€λ§€ 동ν–₯
4. **`get_market_breadth`** - μ‹œμž₯ 폭 μ§€ν‘œ

#### κ³ κΈ‰ 뢄석 도ꡬ
5. **`analyze_advanced_patterns`** - κ³ κΈ‰ νŒ¨ν„΄ 인식 및 뢄석
6. **`analyze_multi_timeframe`** - 닀쀑 μ‹œκ°„λŒ€ 뢄석
7. **`analyze_correlations`** - 상관관계 μ—”μ§„
8. **`predict_prices`** - AI 기반 가격 예츑
9. **`analyze_sentiment`** - 감정 뢄석
10. **`detect_anomalies`** - μ‹œμž₯ 이상 μ§•ν›„ 탐지
11. **`assess_risks`** - 리슀크 평가
12. **`get_market_sentiment`** - μ‹œμž₯ 심리 μ§€ν‘œ
13. **`get_market_regime`** - μ‹œμž₯ κ΅­λ©΄ νŒλ‹¨

### μ‚¬μš© μ˜ˆμ‹œ

```python
# 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"
})
```

## πŸ” λͺ¨λ‹ˆν„°λ§

### ν—¬μŠ€μ²΄ν¬

```bash
curl http://localhost:8000/health
```

### λ©”νŠΈλ¦­

μ„œλ²„λŠ” Prometheus λ©”νŠΈλ¦­μ„ `/metrics` μ—”λ“œν¬μΈνŠΈμ—μ„œ μ œκ³΅ν•©λ‹ˆλ‹€.

### 둜그

κ΅¬μ‘°ν™”λœ JSON 둜그λ₯Ό μ‚¬μš©ν•˜μ—¬ ELK μŠ€νƒκ³Ό ν˜Έν™˜λ©λ‹ˆλ‹€.

## 🀝 κΈ°μ—¬ν•˜κΈ°

1. 이슈λ₯Ό μƒμ„±ν•˜μ—¬ κΈ°λŠ₯ μš”μ²­μ΄λ‚˜ 버그λ₯Ό λ¦¬ν¬νŠΈν•΄μ£Όμ„Έμš”
2. ν¬ν¬ν•˜μ—¬ μƒˆλ‘œμš΄ 브랜치λ₯Ό μƒμ„±ν•΄μ£Όμ„Έμš”
3. 변경사항을 μ»€λ°‹ν•΄μ£Όμ„Έμš”
4. ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜κ³  ν†΅κ³Όν•˜λŠ”μ§€ ν™•μΈν•΄μ£Όμ„Έμš”
5. ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό μƒμ„±ν•΄μ£Όμ„Έμš”

### 개발 μ›Œν¬ν”Œλ‘œμš°

```bash
# μ˜μ‘΄μ„± μ„€μΉ˜ 및 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](LICENSE) νŒŒμΌμ„ μ°Έμ‘°ν•˜μ„Έμš”.

## πŸ™‹β€β™‚οΈ 지원

- **λ¬Έμ„œ**: [ν”„λ‘œμ νŠΈ μœ„ν‚€](https://github.com/your-org/mcp-market-statistics/wiki)
- **이슈**: [GitHub Issues](https://github.com/your-org/mcp-market-statistics/issues)
- **ν† λ‘ **: [GitHub Discussions](https://github.com/your-org/mcp-market-statistics/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 방법둠** 적용으둜 높은 μ½”λ“œ ν’ˆμ§ˆ 보μž₯