MCP News Collector

MCP News Collector

A Model Context Protocol server that collects and analyzes Korean stock market news in real-time, providing investment insights through AI-based analysis of sentiment, market impact, and rumor detection.

Category
访问服务器

README

📰 MCP News Collector

한국 주식시장 뉴스 실시간 수집 및 분석을 위한 MCP 서버

Python FastAPI License Tests

🎯 프로젝트 개요

MCP News Collector는 한국 주식시장 관련 뉴스를 실시간으로 수집, 분석하여 투자 인사이트를 제공하는 MCP(Model Context Protocol) 서버입니다.

✨ 주요 기능

  • 🔄 실시간 뉴스 수집: 네이버, 다음, RSS 피드 등 다양한 소스
  • 🧠 AI 기반 분석: 감정 분석, 시장 영향도 예측, 루머 탐지
  • 📊 실시간 모니터링: WebSocket 기반 실시간 데이터 스트리밍
  • 🌐 REST API: FastAPI 기반 RESTful 엔드포인트
  • 🔧 MCP 통합: Claude 등 AI 어시스턴트와 원활한 연동

🏗️ 아키텍처

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Data Sources  │    │   MCP Server    │    │   AI Assistant  │
│                 │    │                 │    │                 │
│ • 네이버 뉴스   │────▶│ • 수집 엔진     │◀───│ • Claude        │
│ • 다음 뉴스     │    │ • 분석 엔진     │    │ • ChatGPT       │
│ • RSS 피드      │    │ • REST API      │    │ • 기타          │
│ • 빅카인즈      │    │ • WebSocket     │    │                 │
└─────────────────┘    └─────────────────┘    └─────────────────┘

🚀 빠른 시작

사전 요구사항

  • Python 3.11+
  • PostgreSQL 13+
  • Redis 6+

설치

# 1. 저장소 클론
git clone https://github.com/YOUR_USERNAME/mcp-news-collector.git
cd mcp-news-collector

# 2. 가상환경 생성 및 활성화
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 3. 의존성 설치
pip install -e .

# 4. 환경변수 설정
cp .env.example .env
# .env 파일을 편집하여 데이터베이스 및 API 설정

# 5. 데이터베이스 마이그레이션
alembic upgrade head

# 6. 서버 실행
python -m src.server.main

MCP 클라이언트 연결

from mcp import Client

# MCP 서버 연결
client = Client("stdio", ["python", "-m", "src.server.main"])

# 뉴스 수집
result = await client.call_tool("get_recent_news", {
    "keyword": "삼성전자",
    "limit": 10
})

📖 API 문서

MCP Tools

Tool 설명 파라미터
get_recent_news 최근 뉴스 조회 keyword, source, limit, hours
analyze_news_sentiment 뉴스 감정 분석 news_id, text, detail_level
analyze_news_impact 시장 영향도 분석 news_id, company, timeframe
detect_market_rumors 루머 탐지 news_id, threshold
monitor_news_stream 실시간 뉴스 모니터링 topics, filters

REST API

API 문서는 서버 실행 후 다음 URL에서 확인할 수 있습니다:

  • Swagger UI: http://localhost:8000/api/docs
  • ReDoc: http://localhost:8000/api/redoc

주요 엔드포인트

# 뉴스 조회
GET /api/v1/news?query=삼성전자&limit=10

# 감정 분석
POST /api/v1/analysis/sentiment
{
  "news_ids": ["news_1", "news_2"],
  "options": {"include_confidence": true}
}

# 실시간 모니터링 상태
GET /api/v1/monitoring/status

🧪 테스트

# 전체 테스트 실행
pytest

# 특정 모듈 테스트
pytest tests/unit/test_sentiment_analyzer.py

# 커버리지 확인
pytest --cov=src --cov-report=html

테스트 현황

  • 전체 테스트: 169개 통과
  • 커버리지:
    • 감정 분석기: 92%
    • 시장 영향 분석기: 85%
    • 실시간 모니터링: 76%
    • 루머 탐지: 89%
    • 뉴스 요약: 90%

📊 개발 현황

Phase 별 진행 상황

  • Phase 1: 기초 인프라 구축 (완료)
  • Phase 2: 핵심 수집 시스템 (완료)
  • Phase 3: 분석 엔진 구현 (완료)
  • 🔄 Phase 4: API 및 통합 시스템 (75% 완료)
  • Phase 5: 최적화 및 배포 (예정)

자세한 개발 계획은 detailed-development-plan.md를 참조하세요.

🏗️ 프로젝트 구조

mcp-news-collector/
├── src/                    # 메인 소스 코드
│   ├── analysis/          # 분석 엔진 (감정, 영향도, 루머 탐지 등)
│   ├── collectors/        # 뉴스 수집기 (네이버, 다음, RSS)
│   ├── monitoring/        # 실시간 모니터링 시스템
│   ├── server/            # MCP 서버 및 REST API
│   └── utils/             # 공통 유틸리티
├── tests/                 # 테스트 코드
│   ├── unit/              # 단위 테스트
│   └── integration/       # 통합 테스트
├── docs/                  # 문서
├── configs/               # 설정 파일
└── scripts/               # 유틸리티 스크립트

🔧 개발 도구

코드 품질

# 코드 포맷팅
black src/ tests/

# 타입 체킹
mypy src/

# 린팅
pylint src/

# 보안 스캔
bandit -r src/

TDD 개발 프로세스

이 프로젝트는 엄격한 TDD(Test-Driven Development) 방법론을 따릅니다:

  1. Red: 실패하는 테스트 작성
  2. Green: 테스트를 통과시키는 최소한의 코드 작성
  3. Refactor: 코드 개선 및 최적화

🤝 기여하기

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

개발 가이드라인

  • 모든 새로운 기능은 테스트와 함께 개발
  • 코드 커버리지 80% 이상 유지
  • 타입 힌트 사용 필수
  • 문서화 철저히

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

📞 문의

🙏 감사의 말


⭐ 이 프로젝트가 도움이 되셨다면 Star를 눌러주세요!

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选