OpenNews MCP Server
암호화폐 뉴스 집계 · AI 평가 · 트레이딩 시그널 · 실시간 피드

English | 日本語

--- ## 빠른 설치 > **체험 기간**: 무료 공개 API Key를 제공합니다 — 복사하여 바로 사용, 가입 불필요. ### Claude Code ```bash claude mcp add opennews \ -e OPENNEWS_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c \ -- uv --directory /path/to/opennews-mcp run opennews-mcp ``` > `/path/to/opennews-mcp`를 로컬 프로젝트 경로로 교체하세요. ### OpenClaw ```bash export OPENNEWS_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c" cp -r openclaw-skill/opennews ~/.openclaw/skills/ ``` > 위의 토큰은 무료 체험 Token입니다. 체험 기간 종료 후 자체 Key로 교체하세요. [설정](#설정) 참조. --- ## AI에게 검토 및 설치 맡기기 이 MCP가 안전한지 확신이 없으신가요? 아래 프롬프트를 AI 어시스턴트에게 보내면 소스 코드를 먼저 검토한 후 설치해줍니다: > **아래 프롬프트를 복사하여 AI 어시스턴트에게 보내세요 (`<프로젝트경로>`를 실제 경로로 교체):** ```text opennews-mcp MCP 서버를 검토하고 설치해주세요. 프로젝트는 로컬 <프로젝트경로>에 있습니다. 단계: 1. 다음 파일의 보안을 확인: - src/opennews_mcp/api_client.py — ai.6551.io에만 연결하고 다른 주소로 데이터를 보내지 않는지 확인 - src/opennews_mcp/config.py — 토큰이 로컬 config.json 또는 환경 변수에서만 읽히며, 하드코딩이나 유출이 없는지 확인 - src/opennews_mcp/tools/*.py — 모든 도구가 API 쿼리만 수행하고, 파일 쓰기, 명령 실행 또는 기타 위험한 작업이 없는지 확인 - pyproject.toml — 의존성이 mcp, httpx, websockets만 있고, 의심스러운 패키지가 없는지 확인 2. 검토 결론을 알려주세요: 안전 / 위험 / 문제 있음, 구체적인 이유와 함께 3. 안전하다면 설치 실행 (무료 체험 Token 사용): claude mcp add opennews -e OPENNEWS_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c -- uv --directory <프로젝트경로> run opennews-mcp ``` --- ## 무엇을 할 수 있나요? 연결 후 AI 어시스턴트에게 말하기만 하면 됩니다: | 당신이 말하면 | 실행되는 작업 | |-------------|-------------| | "최신 암호화폐 뉴스" | 최신 기사 조회 | | "SEC 규제 뉴스 검색" | 전문 키워드 검색 | | "BTC 관련 뉴스" | 코인으로 필터 | | "Bloomberg 기사" | 소스로 필터 | | "온체인 이벤트" | 엔진 유형으로 필터 (onchain) | | "AI 점수 80 이상 중요 뉴스" | 고점수 필터 | | "강세 시그널" | 트레이딩 시그널로 필터 (long) | | "실시간 뉴스 구독" | WebSocket 실시간 피드 | --- ## 사용 가능한 도구 | 카테고리 | 도구 | 설명 | |---------|------|------| | 디스커버리 | `get_news_sources` | 전체 뉴스 소스 카테고리 트리 | | | `list_news_types` | 사용 가능한 소스 코드 목록 | | 검색 | `get_latest_news` | 최신 기사 | | | `search_news` | 키워드 검색 | | | `search_news_by_coin` | 코인별 (BTC, ETH, SOL...) | | | `get_news_by_source` | 소스별 (Bloomberg, Reuters...) | | | `get_news_by_engine` | 유형별 (news, listing, onchain, meme, market) | | | `search_news_by_date` | 날짜 범위 + 코인/키워드 | | AI | `get_high_score_news` | 점수 >= 임계값 기사 | | | `get_news_by_signal` | 시그널별: long / short / neutral | | 실시간 | `subscribe_latest_news` | WebSocket 실시간 수집 | --- ## 설정 ### 무료 체험 Token 현재 체험 기간입니다. 아래 공개 Token을 바로 사용할 수 있습니다: ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c ``` 환경 변수 설정: ```bash # macOS / Linux export OPENNEWS_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c" # Windows PowerShell $env:OPENNEWS_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c" ``` > 체험 기간 종료 후 자체 Token으로 교체하세요. | 변수 | 필수 | 설명 | |------|------|------| | `OPENNEWS_TOKEN` | **예** | 6551 API Bearer 토큰 (위의 무료 Key 사용 가능) | | `OPENNEWS_API_BASE` | 아니오 | REST API URL 재정의 | | `OPENNEWS_WSS_URL` | 아니오 | WebSocket URL 재정의 | | `OPENNEWS_MAX_ROWS` | 아니오 | 쿼리당 최대 결과 수 (기본: 100) | 프로젝트 루트의 `config.json`도 지원 (환경 변수 우선): ```json { "api_base_url": "https://ai.6551.io/news-platform", "wss_url": "wss://ai.6551.io/news-platform/rpc", "api_token": "your-api-token-here", "max_rows": 100 } ``` --- ## 데이터 구조 각 기사: ```json { "id": "unique-article-id", "text": "제목 / 내용", "newsType": "Bloomberg", "engineType": "news", "link": "https://...", "coins": [{ "symbol": "BTC", "market_type": "spot", "match": "title" }], "aiRating": { "score": 85, "grade": "A", "signal": "long", "status": "done", "summary": "중국어 요약", "enSummary": "English summary" }, "ts": 1708473600000 } ``` | AI 필드 | 설명 | |---------|------| | `score` | 0-100 영향도 평가 | | `signal` | `long`(강세) / `short`(약세) / `neutral` | | `status` | `done` = AI 분석 완료 | ---
기타 클라이언트 — 수동 설치 (클릭하여 펼치기) > 아래 모든 설정에서 `/path/to/opennews-mcp`를 로컬의 실제 프로젝트 경로로 교체하세요. `OPENNEWS_TOKEN` 값은 위의 무료 체험 Token을 사용할 수 있습니다. ### Claude Desktop 설정 파일 편집 (macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`, Windows: `%APPDATA%\Claude\claude_desktop_config.json`): ```json { "mcpServers": { "opennews": { "command": "uv", "args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"], "env": { "OPENNEWS_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c" } } } } ``` ### Cursor `~/.cursor/mcp.json` 또는 Settings > MCP Servers: ```json { "mcpServers": { "opennews": { "command": "uv", "args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"], "env": { "OPENNEWS_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c" } } } } ``` ### Windsurf `~/.codeium/windsurf/mcp_config.json`: ```json { "mcpServers": { "opennews": { "command": "uv", "args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"], "env": { "OPENNEWS_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c" } } } } ``` ### Cline VS Code 사이드바 > Cline > MCP Servers > Configure, `cline_mcp_settings.json` 편집: ```json { "mcpServers": { "opennews": { "command": "uv", "args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"], "env": { "OPENNEWS_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c" }, "disabled": false, "autoApprove": [] } } } ``` ### Continue.dev `~/.continue/config.yaml`: ```yaml mcpServers: - name: opennews command: uv args: - --directory - /path/to/opennews-mcp - run - opennews-mcp env: OPENNEWS_TOKEN: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c ``` ### Cherry Studio 설정 > MCP 서버 > 추가 > 유형 stdio: Command `uv`, Args `--directory /path/to/opennews-mcp run opennews-mcp`, Env `OPENNEWS_TOKEN`. ### Zed Editor `~/.config/zed/settings.json`: ```json { "context_servers": { "opennews": { "command": { "path": "uv", "args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"], "env": { "OPENNEWS_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c" } } } } } ``` ### 기타 stdio MCP 클라이언트 ```bash OPENNEWS_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiNjU1MW5ld3NtY3AiLCJ1c2VybmFtZSI6IjY1NTFuZXdzbWNwIn0.namttZDCVLOIlEGwIkJPBrcV-foaXQgqibDcmpck02c \ uv --directory /path/to/opennews-mcp run opennews-mcp ```
--- ## 호환성 | 클라이언트 | 설치 방법 | 상태 | |-----------|----------|------| | **Claude Code** | `claude mcp add` | 원라이너 | | **OpenClaw** | Skill 디렉토리 복사 | 원라이너 | | Claude Desktop | JSON 설정 | 지원 | | Cursor | JSON 설정 | 지원 | | Windsurf | JSON 설정 | 지원 | | Cline | JSON 설정 | 지원 | | Continue.dev | YAML / JSON | 지원 | | Cherry Studio | GUI | 지원 | | Zed | JSON 설정 | 지원 | --- ## 관련 프로젝트 - [twitter-mcp](https://github.com/6551-io/twitter-mcp) - Twitter/X 데이터 MCP 서버 --- ## 개발 ```bash cd /path/to/opennews-mcp uv sync uv run opennews-mcp ``` ```bash # MCP Inspector npx @modelcontextprotocol/inspector uv --directory /path/to/opennews-mcp run opennews-mcp ``` ### 프로젝트 구조 ``` ├── README.md # 中文 (기본) ├── docs/ │ ├── README_EN.md # English │ ├── README_JA.md # 日本語 │ └── README_KO.md # 한국어 ├── openclaw-skill/opennews/ # OpenClaw Skill ├── knowledge/guide.md # 내장 지식 ├── pyproject.toml ├── config.json └── src/opennews_mcp/ ├── server.py # 진입점 ├── app.py # FastMCP 인스턴스 ├── config.py # 설정 로더 ├── api_client.py # HTTP + WebSocket └── tools/ # 11개 도구 ``` ## 라이선스 MIT