Skip to main content
Glama
whdghk1907

MCP News Collector

by whdghk1907

πŸ“° 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     β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Related MCP server: Financial MCP Server

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

사전 μš”κ΅¬μ‚¬ν•­

  • 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λ₯Ό λˆŒλŸ¬μ£Όμ„Έμš”!

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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-news-collector'

If you have feedback or need assistance with the MCP directory API, please join our Discord server