Files
opennews-mcp/docs/README_JA.md
T
bathfire 601ae367fe docs(readme): 添加 WebSocket 实时订阅功能文档
- 在 README.md 中新增 WebSocket 实时订阅章节
- 在中文版文档中新增 WebSocket 实时订阅章节
- 在日文版文档中新增 WebSocket 实时订阅章节
- 在韩文版文档中新增 WebSocket 实时订阅章节
- 详细说明订阅和取消订阅的方法及参数
- 提供服务器推送新闻更新和 AI 新闻更新的示例
- 添加过滤参数说明和 JSON-RPC 接口定义
2026-03-10 23:50:24 +08:00

460 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p align="center">
<b>OpenNews MCP Server</b><br>
暗号通貨ニュース集約 · 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
```
---
## 何ができる?
接続後、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` | エンジンタイプとソース別 |
| | `get_news_by_engine` | タイプ別(news, listing, onchain, meme, market |
| | `search_news_advanced` | 高度な検索(複数フィルタ) |
| AI | `get_high_score_news` | スコア >= 閾値の記事 |
| | `get_news_by_signal` | シグナル別: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 サーバー > 追加 > タイプ stdioCommand `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