crypto_market_html_mcp
# Crypto Market HTML Agent
완성된 리서치 JSON과 시장 금액을 결합해 독립 실행 가능한 인터랙티브 HTML을 만드는 MCP 서버입니다.
등록용 이름: `crypto_market_html_mcp`. 라이선스: MIT.
## 시작하기
Python 3.11 이상과 [uv](https://docs.astral.sh/uv/)가 필요합니다.
```sh
git clone https://github.com/poqopo/crypto-market-html.git
cd crypto-market-html
uv sync --python 3.12
uv run python agent.py
```
서버는 stdio MCP를 사용하며 stdout은 프로토콜 전용입니다.
MCP 클라이언트 설정 예:
```json
{
"mcpServers": {
"crypto_market_html": {
"command": "uv",
"args": ["--directory", "/ABSOLUTE/PATH/crypto-market-html", "run", "python", "agent.py"]
}
}
}
```
## 도구와 디자인
| Tool | 역할 |
| --- | --- |
| fetch_market_snapshot | CoinGecko의 USD 가격·시가총액·24h 거래량·등락률·BTC/ETH 도미넌스 수집 |
| build_crypto_market_html | 본문 근거와 시장 데이터를 연결해 단일 HTML 생성 |
입력 `news_digest`는 [Crypto News Research Agent](https://github.com/poqopo/crypto-news-research)의 `analyze_crypto_insights` 결과입니다. 이 에이전트는 새로운 기사 해석을 생성하지 않습니다.
화면 기능:
- BTC·비BTC·ETH 집합 다이어그램 클릭과 코인 필터
- 관측값과 분리된 도미넌스 가정 슬라이더·복원
- 본문·인사이트 검색과 카드/목록 전환
- 근거 문단 강조·원문 위치 링크·기사 상세 패널
- 리서치 JSON 내보내기
BTC와 비BTC의 교집합은 없고 ETH는 비BTC의 부분집합입니다. 원 크기는 면적 비례가 아닌 집합 도식입니다. 슬라이더는 실제 시세나 상단의 관측 비중을 바꾸지 않습니다.
## HTML 데모
```sh
uv run python demo.py
```
`output/report.html`을 브라우저에서 열면 됩니다. 데모 리서치·시세는 2026-09-19의 가상 데이터이며 실제 시장 보고서가 아닙니다. 인사이트는 규칙 기반 초안이라는 표시를 보존합니다.
실시간 시세 모드는 `mode=live`(기본)입니다. 필요할 때 COINGECKO_DEMO_API_KEY를 환경변수로 주입합니다. 연결 실패 시 데모 값으로 자동 대체하지 않습니다.
## Contents
AGENTS.md, HTML 구성 스킬, 보고서 프롬프트, 입력 계약, templates/report.html과 가상 데모 데이터가 포함되어 있습니다.
MCP Prompt: `market_html_brief(date)`. MCP Resource: `market://demo-snapshot`.
## 테스트
```sh
uv run python -m unittest discover -s tests -v
```
실제 MCP 도구 호출로 시장 스냅샷과 기사 근거가 연결된 HTML을 생성합니다.
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: one fetches market data, the other builds HTML from it. There is no ambiguity or overlap between fetching and rendering.
Both tool names follow a consistent verb_noun snake_case pattern (fetch_market_snapshot, build_crypto_market_html), making the naming predictable and readable.
With only 2 tools, the server is on the thin side, but the tools cover the core pipeline of fetching data and generating HTML. The count is borderline for the scope, not excessive.
The domain is narrowly focused on generating crypto market HTML. The two tools provide a complete workflow from data retrieval to final output. Minor gaps like data refresh scheduling or multiple template variants exist, but agents can work around them.