Skip to main content
Glama
poqopo

crypto_news_research_mcp

by poqopo
README.md
# Crypto News Research Agent

기사 본문을 읽고 문단별 근거·해석 초안·반대 설명·확인할 지표를 다른 에이전트에 전달하는 독립 실행형 MCP 서버입니다.

등록용 이름: `crypto_news_research_mcp`. 라이선스: MIT.

## 시작하기

Python 3.11 이상과 [uv](https://docs.astral.sh/uv/)가 필요합니다.

```sh
git clone https://github.com/poqopo/crypto-news-research.git
cd crypto-news-research
uv sync --python 3.12
uv run python agent.py
```

서버는 stdio MCP를 사용합니다. stdout은 프로토콜 전용이므로 터미널에서 바로 실행하면 입력을 기다립니다.

MCP 클라이언트 설정 예:

```json
{
  "mcpServers": {
    "crypto_news_research": {
      "command": "uv",
      "args": ["--directory", "/ABSOLUTE/PATH/crypto-news-research", "run", "python", "agent.py"]
    }
  }
}
```

## 역할과 도구

| Tool | 역할 |
| --- | --- |
| fetch_today_crypto_news | Asia/Seoul 날짜 기준으로 CoinDesk·Cointelegraph RSS 뉴스 수집 |
| collect_article_evidence | 공개 기사 HTML/JSON-LD에서 본문을 읽고 원문 URL·문단 ID 보존 |
| summarize_crypto_news | 제목·RSS 발췌·출처·관련 코인 정리 |
| analyze_crypto_insights | 본문 관측·해석 초안·반대 설명·확인 지표를 근거 문단과 연결 |

워크플로: fetch_today_crypto_news → collect_article_evidence → summarize_crypto_news → analyze_crypto_insights.

처음 도구 호출 예:

```json
{"mode": "demo"}
```

실시간 모드는 `mode=live`(기본)이며 선택적으로 `date=YYYY-MM-DD`를 지정할 수 있습니다. 로그인·페이월·JavaScript 실행으로 제한을 우회하지 않습니다. 읽히지 않는 본문은 상태로 남기고 본문 기반 인사이트를 생성하지 않습니다.

데모는 2026-09-19로 고정된 가상 뉴스 4개와 각 3개 문단의 가상 본문입니다. 실제 뉴스가 아닙니다.

인사이트는 주제별 **규칙 기반 초안**입니다. LLM 추론이나 독립적 사실 검증은 수행하지 않습니다. 추가 분석을 원하는 MCP 호스트는 본문·프롬프트·근거를 사용할 수 있습니다.

## Contents

- AGENTS.md: 리서치 행동 규칙
- skills/news_review/SKILL.md: 근거 검토 스킬
- prompts/daily_news.md: 일일 리서치 프롬프트
- docs/output_contract.md: 다음 에이전트에 전달할 JSON 계약
- data/sources.json: 발행사 RSS 목록
- data/demo_*.json: 가상 데모 데이터

MCP Prompt: `crypto_news_brief(date)`. MCP Resource: `news://sources`.

## 다음 에이전트에 전달하기

`analyze_crypto_insights` 결과를 [Crypto Market HTML Agent](https://github.com/poqopo/crypto-market-html)의 `build_crypto_market_html`에 `news_digest`로 전달합니다. 뉴스 에이전트는 HTML 디자인이나 시세 수집을 하지 않습니다.

## 테스트

```sh
uv run python -m unittest discover -s tests -v
```

실제 stdio MCP 서버를 실행하고 가상 본문·인사이트·출처 문단의 연결을 확인합니다.

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose in the news research pipeline: fetching raw news, creating an extractive summary, collecting article-body evidence, and building insight drafts. The descriptions reinforce these boundaries with specific outputs and methods, leaving little room for misselection.

Naming Consistency5/5

All tool names follow a uniform verb_noun snake_case pattern (fetch_today_crypto_news, summarize_crypto_news, collect_article_evidence, analyze_crypto_insights). The verbs and objects are semantically aligned with each tool's function, making the naming predictable and readable.

Tool Count5/5

With four tools, the server is well-scoped for a focused crypto news research workflow. Each tool represents a necessary step in the pipeline without redundancy, fitting comfortably within the ideal 3-15 tool range.

Completeness4/5

The tool set forms a coherent pipeline from fetching news to generating insight drafts, covering all core research steps. A minor gap is the absence of a dedicated search or filter tool, but agents can work around this by fetching specific dates, so no major dead ends exist.

Maintenance

ActivityMaintained
ResponsivenessNo issues