Files
opennews-mcp/docs/README_KO.md
T
beare 836a3341da feat(docs): add .gitignore and enhance README with data source details
- Introduced a .gitignore file to exclude environment variables, logs, and temporary files.
- Updated README.md to reflect the new description and added a detailed table of 72+ data sources across 5 categories.
- Enhanced documentation in multiple languages (Japanese, Korean, Chinese) to include the new data source information.
2026-03-11 19:44:20 +08:00

476 lines
12 KiB
Markdown

<p align="center">
<b>OpenNews MCP Server</b><br>
72+ 실시간 데이터 소스 · 5개 엔진 카테고리 · AI 평가 · 트레이딩 시그널
</p>
<p align="center">
<a href="../README.md">English</a> | <a href="./README_ZH.md">中文</a> | <a href="./README_JA.md">日本語</a> | <a href="./README_KO.md">한국어</a>
</p>
---
## 빠른 설치
> **먼저 [https://6551.io/mcp](https://6551.io/mcp)에서 API Token을 받으세요.**
### Claude Code
```bash
claude mcp add opennews \
-e OPENNEWS_TOKEN=<your-token> \
-- uv --directory /path/to/opennews-mcp run opennews-mcp
```
> `/path/to/opennews-mcp`를 로컬 프로젝트 경로로, `<your-token>`을 API Token으로 교체하세요.
### OpenClaw
```bash
export OPENNEWS_TOKEN="<your-token>"
cp -r openclaw-skill/opennews ~/.openclaw/skills/
```
---
## AI에게 검토 및 설치 맡기기
이 MCP가 안전한지 확신이 없으신가요? 아래 프롬프트를 AI 어시스턴트에게 보내면 소스 코드를 먼저 검토한 후 설치해줍니다:
> **아래 프롬프트를 복사하여 AI 어시스턴트에게 보내세요 (`<project-path>`와 `<your-token>`을 실제 값으로 교체):**
```text
opennews-mcp MCP 서버를 검토하고 설치해주세요. 프로젝트는 로컬 <project-path>에 있습니다.
단계:
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은 https://6551.io/mcp에서 받기):
claude mcp add opennews -e OPENNEWS_TOKEN=<your-token> -- uv --directory <project-path> run opennews-mcp
```
---
## 데이터 소스 — 5개 카테고리 72+ 소스
| 카테고리 | 수량 | 주요 소스 |
|---------|------|----------|
| **News** | 53 | Bloomberg, Reuters, Financial Times, CNBC, CNN, BBC, Fox Business, CoinDesk, Cointelegraph, The Block, Blockworks, Decrypt, DlNews, A16Z, TechCrunch, Wired, Politico, Business Insider, Twitter/X, Telegram, Weibo, Truth Social, U.S. Treasury, ECB, TASS, Handelsblatt, Welt, Ambrey, Morgan Stanley, PR Newswire, Coinbase, Phoenixnews 등 |
| **Listing** | 9 | Binance, Coinbase, OKX, Bybit, Upbit, Bithumb, Robinhood, Hyperliquid, Aster |
| **OnChain** | 3 | Hyperliquid Whale Trade, Hyperliquid Large Position, KOL Trade |
| **Meme** | 1 | Twitter 밈코인 소셜 센티먼트 |
| **Market** | 6 | Price Change, Funding Rate, Funding Rate Difference, Large Liquidation, Market Trends, OI Change |
모든 기사는 **AI 분석** 완료 — 영향도 점수(0-100), 트레이딩 시그널(long/short/neutral), 중영 이중 언어 요약 포함.
---
## 무엇을 할 수 있나요?
연결 후 AI 어시스턴트에게 말하기만 하면 됩니다:
| 당신이 말하면 | 실행되는 작업 |
|-------------|-------------|
| "최신 암호화폐 뉴스" | 최신 기사 조회 |
| "SEC 규제 뉴스 검색" | 전문 키워드 검색 |
| "BTC 관련 뉴스" | 코인으로 필터 |
| "Bloomberg 기사" | 소스로 필터 |
| "온체인 이벤트" | 엔진 유형으로 필터 (onchain) |
| "AI 점수 80 이상 중요 뉴스" | 고점수 필터 |
| "강세 시그널" | 트레이딩 시그널로 필터 (long) |
| "실시간 뉴스 구독" | WebSocket 실시간 업데이트 |
---
## 사용 가능한 도구
| 카테고리 | 도구 | 설명 |
|---------|------|------|
| 디스커버리 | `get_news_sources` | 완전한 엔진 트리 — 5개 카테고리 72+ 소스 및 메타데이터 |
| | `list_news_types` | 필터용 소스 코드 플랫 리스트 |
| 검색 | `get_latest_news` | 72+ 소스에서 최신 기사 조회 |
| | `search_news` | 전체 소스 대상 키워드 검색 |
| | `search_news_by_coin` | 코인별 (BTC, ETH, SOL...) 전체 소스 대상 |
| | `get_news_by_source` | 특정 소스 지정 (예: engine_type="news", news_type="Bloomberg") |
| | `get_news_by_engine` | 카테고리별: news, listing, onchain, meme, market |
| | `search_news_advanced` | 복합 필터: 코인 + 키워드 + 엔진 유형 조합 |
| AI | `get_high_score_news` | 높은 AI 영향도 점수 기사 (0-100 스케일) |
| | `get_news_by_signal` | AI 트레이딩 시그널별: long / short / neutral |
| 실시간 | `subscribe_latest_news` | WebSocket 라이브 피드, 코인 및 엔진 유형 필터 지원 |
---
## 설정
### API Token 받기
[https://6551.io/mcp](https://6551.io/mcp)에서 API Token을 받으세요.
환경 변수 설정:
```bash
# macOS / Linux
export OPENNEWS_TOKEN="<your-token>"
# Windows PowerShell
$env:OPENNEWS_TOKEN = "<your-token>"
```
| 변수 | 필수 | 설명 |
|------|------|------|
| `OPENNEWS_TOKEN` | **예** | 6551 API Bearer 토큰 (https://6551.io/mcp에서 받기) |
| `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",
"wss_url": "wss://ai.6551.io/open/news_wss",
"api_token": "<your-token>",
"max_rows": 100
}
```
---
## WebSocket 실시간 구독
**엔드포인트**: `wss://ai.6551.io/open/news_wss?token=YOUR_TOKEN`
실시간 암호화폐 뉴스 업데이트를 구독합니다.
### 뉴스 구독
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "news.subscribe",
"params": {
"engineTypes": {
"news": ["Bloomberg", "CoinDesk"],
"onchain": []
},
"coins": ["BTC", "ETH"],
"hasCoin": true
}
}
```
**응답**:
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true,
"filters": {
"engineTypes": {...},
"coins": [...],
"hasCoin": true
}
}
}
```
**필터 매개변수** (모두 선택사항):
- `engineTypes`: 엔진 유형에서 뉴스 유형 코드로의 매핑 객체
- 키: 엔진 유형 (예: `"news"`, `"onchain"`, `"listing"`, `"meme"`, `"market"`)
- 값: 뉴스 유형 코드 배열 (예: `["Bloomberg", "CoinDesk"]`)
- 빈 배열 `[]`은 해당 엔진의 모든 뉴스 유형을 의미
- `list_news_types` 도구로 사용 가능한 코드 확인
- `coins`: 코인 심볼 배열 (예: `["BTC", "ETH"]`)
- 지정한 코인으로 뉴스 필터
- 빈 배열 `[]` 또는 생략 시 모든 코인 수신
- `hasCoin`: 불리언, true일 경우 코인 태그가 있는 뉴스만 수신
### 구독 취소
```json
{
"jsonrpc": "2.0",
"id": 2,
"method": "news.unsubscribe"
}
```
### 서버 푸시 - 뉴스 업데이트
필터와 일치하는 새 뉴스가 있으면 서버가 푸시:
```json
{
"jsonrpc": "2.0",
"method": "news.update",
"params": {
"id": "unique-article-id",
"text": "기사 제목 또는 내용",
"newsType": "Bloomberg",
"engineType": "news",
"link": "https://...",
"coins": [
{
"symbol": "BTC",
"market_type": "spot",
"match": "title"
}
],
"ts": 1708473600000
}
}
```
### 서버 푸시 - AI 뉴스 업데이트
AI 분석이 있는 뉴스 (구독한 경우):
```json
{
"jsonrpc": "2.0",
"method": "news.ai_update",
"params": {
"id": "unique-article-id",
"text": "기사 제목",
"newsType": "Bloomberg",
"engineType": "news",
"link": "https://...",
"coins": [...],
"aiRating": {
"score": 85,
"grade": "A",
"signal": "long",
"status": "done",
"summary": "중국어 요약",
"enSummary": "English summary"
},
"ts": 1708473600000
}
}
```
---
## 데이터 구조
각 기사:
```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 분석 완료 |
---
<details>
<summary><b>기타 클라이언트 — 수동 설치</b> (클릭하여 펼치기)</summary>
> 아래 모든 설정에서 `/path/to/opennews-mcp`를 로컬의 실제 프로젝트 경로로, `<your-token>`을 [https://6551.io/mcp](https://6551.io/mcp)에서 받은 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": "<your-token>"
}
}
}
}
```
### Cursor
`~/.cursor/mcp.json` 또는 Settings > MCP Servers:
```json
{
"mcpServers": {
"opennews": {
"command": "uv",
"args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"],
"env": {
"OPENNEWS_TOKEN": "<your-token>"
}
}
}
}
```
### Windsurf
`~/.codeium/windsurf/mcp_config.json`:
```json
{
"mcpServers": {
"opennews": {
"command": "uv",
"args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"],
"env": {
"OPENNEWS_TOKEN": "<your-token>"
}
}
}
}
```
### 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": "<your-token>"
},
"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: <your-token>
```
### 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": "<your-token>"
}
}
}
}
}
```
### 기타 stdio MCP 클라이언트
```bash
OPENNEWS_TOKEN=<your-token> \
uv --directory /path/to/opennews-mcp run opennews-mcp
```
</details>
---
## 호환성
| 클라이언트 | 설치 방법 | 상태 |
|-----------|----------|------|
| **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
├── 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/ # 도구
```
## 라이선스
MIT