- 在 README.md 中新增 WebSocket 实时订阅章节 - 在中文版文档中新增 WebSocket 实时订阅章节 - 在日文版文档中新增 WebSocket 实时订阅章节 - 在韩文版文档中新增 WebSocket 实时订阅章节 - 详细说明订阅和取消订阅的方法及参数 - 提供服务器推送新闻更新和 AI 新闻更新的示例 - 添加过滤参数说明和 JSON-RPC 接口定义
10 KiB
OpenNews MCP Server
加密货币新闻聚合 · AI 评分 · 交易信号 · 实时更新
快速安装
首先,在 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.json,Windows: %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 stdio:Command uv,Args --directory /path/to/opennews-mcp run opennews-mcp,Env 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 配置 | 支持 |
相关项目
- twitter-mcp - Twitter/X 数据 MCP 服务器
开发
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