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

10 KiB
Raw Blame History

OpenNews MCP Server
加密货币新闻聚合 · AI 评分 · 交易信号 · 实时更新

English | 中文 | 日本語 | 한국어


快速安装

首先,在 https://6551.io/mcp 获取你的 API Token。

Claude Code

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

export OPENNEWS_TOKEN="<your-token>"
cp -r openclaw-skill/opennews ~/.openclaw/skills/

让 AI 审查并安装

不确定这个 MCP 是否安全?发送以下提示词给你的 AI 助手,让它在安装前审查源代码:

复制下面的提示词并发送给你的 AI 助手(将 <project-path><your-token> 替换为实际值):

请帮我审查并安装 opennews-mcp MCP 服务器。项目位于 <project-path>。

步骤:
1. 审查以下文件的安全性:
   - src/opennews_mcp/api_client.py — 确认只连接 ai.6551.io,没有向其他地方发送数据
   - src/opennews_mcp/config.py — 确认 token 只从本地 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 获取你的 API Token。

设置环境变量:

# macOS / Linux
export OPENNEWS_TOKEN="<your-token>"

# Windows PowerShell
$env:OPENNEWS_TOKEN = "<your-token>"
变量 必需 描述
OPENNEWS_TOKEN 6551 API Bearer Token(从 https://6551.io/mcp 获取)
OPENNEWS_API_BASE 覆盖 REST API URL
OPENNEWS_WSS_URL 覆盖 WebSocket URL
OPENNEWS_MAX_ROWS 每次请求最大结果数(默认 100

也支持项目根目录的 config.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

订阅实时加密货币新闻更新。

订阅新闻

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "news.subscribe",
  "params": {
    "engineTypes": {
      "news": ["Bloomberg", "CoinDesk"],
      "onchain": []
    },
    "coins": ["BTC", "ETH"],
    "hasCoin": true
  }
}

响应:

{
  "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 时只接收带币种标签的新闻

取消订阅

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "news.unsubscribe"
}

服务器推送 - 新闻更新

当有新闻匹配你的过滤条件时,服务器推送:

{
  "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 分析的新闻(如果订阅):

{
  "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
  }
}

数据结构

每篇文章返回:

{
  "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 替换为你的实际本地项目路径,<your-token> 替换为从 https://6551.io/mcp 获取的 Token。

Claude Desktop

编辑配置文件(macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.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

{
  "mcpServers": {
    "opennews": {
      "command": "uv",
      "args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.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

{
  "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

mcpServers:
  - name: opennews
    command: uv
    args:
      - --directory
      - /path/to/opennews-mcp
      - run
      - opennews-mcp
    env:
      OPENNEWS_TOKEN: <your-token>

Cherry Studio

Settings > MCP Servers > Add > Type stdioCommand uvArgs --directory /path/to/opennews-mcp run opennews-mcpEnv OPENNEWS_TOKEN

Zed Editor

~/.config/zed/settings.json

{
  "context_servers": {
    "opennews": {
      "command": {
        "path": "uv",
        "args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"],
        "env": {
          "OPENNEWS_TOKEN": "<your-token>"
        }
      }
    }
  }
}

任意 stdio MCP 客户端

OPENNEWS_TOKEN=<your-token> \
  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.ML / JSON 支持
Cherry Studio GUI 支持
Zed JSON 配置 支持

相关项目


开发

cd /path/to/opennews-mcp
uv sync
uv run opennews-mcp
# 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