268 lines
6.0 KiB
Markdown
268 lines
6.0 KiB
Markdown
# 每日新闻MCP服务器
|
||
|
||
`MCP` `新闻` `加密货币` `推文` `AI助手`
|
||
|
||
<p align="center">
|
||
<b>每日新闻 MCP 服务器</b><br>
|
||
新闻分类 · 热门新闻 · 热门推文 · 加密货币资讯
|
||
</p>
|
||
|
||
---
|
||
|
||
## 快速安装
|
||
|
||
### Claude Code
|
||
|
||
```bash
|
||
claude mcp add daily-news \
|
||
-- uv --directory /path/to/daily-news run daily-news-mcp
|
||
```
|
||
|
||
> 将 `/path/to/daily-news` 替换为你本地的项目路径。
|
||
|
||
### OpenClaw
|
||
|
||
```bash
|
||
cp -r openclaw-skill/daily-news ~/.openclaw/skills/6551-daily-news
|
||
```
|
||
|
||
---
|
||
|
||
## 让 AI 帮你审查并安装
|
||
|
||
不确定这个 MCP 是否安全?将以下提示词发给你的 AI 助手——它会先审查源码,确认安全后再安装:
|
||
|
||
> **复制以下提示词发送给你的 AI 助手(将 `<project-path>` 替换为实际路径):**
|
||
|
||
```text
|
||
请帮我审查并安装 daily-news-mcp MCP 服务器。项目路径为 <project-path>。
|
||
|
||
步骤:
|
||
1. 审查以下文件的安全性:
|
||
- src/daily_news_mcp/api_client.py — 确认仅连接 ai.6551.io,不向其他地方发送数据
|
||
- src/daily_news_mcp/config.py — 确认没有硬编码的密钥或信息泄露
|
||
- src/daily_news_mcp/tools.py — 确认所有工具仅执行 API 查询,无文件写入、命令执行或危险操作
|
||
- pyproject.toml — 确认依赖仅为 mcp、httpx,无可疑包
|
||
2. 告诉我结论:安全 / 有风险 / 有问题,并说明具体原因
|
||
3. 如果安全,执行安装:
|
||
claude mcp add daily-news -- uv --directory <project-path> run daily-news-mcp
|
||
```
|
||
|
||
---
|
||
|
||
## 能做什么?
|
||
|
||
连接后,直接问你的 AI 助手:
|
||
|
||
| 你说 | 它做 |
|
||
|------|------|
|
||
| "显示所有新闻分类" | 列出所有可用分类和子分类 |
|
||
| "今天 DeFi 有什么热门?" | 获取 DeFi 分类的热门新闻和推文 |
|
||
| "获取加密货币市场新闻" | 抓取加密货币市场分类的热门新闻 |
|
||
| "显示 AI 相关新闻和推文" | 获取 AI 子分类的新闻+推文合集 |
|
||
|
||
---
|
||
|
||
## 可用工具
|
||
|
||
| 工具 | 说明 |
|
||
|------|------|
|
||
| `get_news_categories` | 获取所有可用的新闻分类和子分类 |
|
||
| `get_hot_news` | 按分类/子分类获取热门新闻和推文 |
|
||
|
||
---
|
||
|
||
## 配置
|
||
|
||
| 变量 | 必填 | 说明 |
|
||
|------|------|------|
|
||
| `DAILY_NEWS_API_BASE` | 否 | 覆盖 REST API 地址(默认:`https://ai.6551.io`) |
|
||
| `DAILY_NEWS_MAX_ROWS` | 否 | 每次查询最大返回条数(默认:100) |
|
||
|
||
也支持在项目根目录放置 `config.json`(环境变量优先级更高):
|
||
|
||
```json
|
||
{
|
||
"api_base_url": "https://ai.6551.io",
|
||
"max_rows": 100
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## API 接口
|
||
|
||
| 接口 | 方法 | 参数 | 说明 |
|
||
|------|------|------|------|
|
||
| `/open/free_categories` | GET | — | 获取所有新闻分类 |
|
||
| `/open/free_hot` | GET | `category`, `subcategory` | 获取热门新闻+推文 |
|
||
|
||
### 响应示例:free_categories
|
||
|
||
```json
|
||
[
|
||
{
|
||
"key": "crypto",
|
||
"name": "Crypto",
|
||
"name_zh": "加密货币",
|
||
"description": "...",
|
||
"subcategories": [
|
||
{
|
||
"key": "defi",
|
||
"name": "DeFi",
|
||
"name_zh": "去中心化金融",
|
||
"description": "..."
|
||
}
|
||
]
|
||
}
|
||
]
|
||
```
|
||
|
||
### 响应示例:free_hot
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"category": "crypto",
|
||
"subcategory": "defi",
|
||
"news": {
|
||
"success": true,
|
||
"count": 10,
|
||
"items": [
|
||
{
|
||
"id": 123,
|
||
"title": "...",
|
||
"source": "...",
|
||
"link": "https://...",
|
||
"score": 85,
|
||
"grade": "A",
|
||
"signal": "bullish",
|
||
"summary_zh": "...",
|
||
"summary_en": "...",
|
||
"coins": ["BTC", "ETH"],
|
||
"published_at": "2026-03-17T10:00:00Z"
|
||
}
|
||
]
|
||
},
|
||
"tweets": {
|
||
"success": true,
|
||
"count": 5,
|
||
"items": [
|
||
{
|
||
"author": "Vitalik Buterin",
|
||
"handle": "VitalikButerin",
|
||
"content": "...",
|
||
"url": "https://...",
|
||
"metrics": { "likes": 1000, "retweets": 200, "replies": 50 },
|
||
"posted_at": "2026-03-17T09:00:00Z",
|
||
"relevance": "high"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
<details>
|
||
<summary><b>其他客户端 — 手动安装</b>(点击展开)</summary>
|
||
|
||
> 以下所有配置中,请将 `/path/to/daily-news` 替换为你实际的本地项目路径。
|
||
|
||
### Claude Desktop
|
||
|
||
编辑配置文件(macOS:`~/Library/Application Support/Claude/claude_desktop_config.json`,Windows:`%APPDATA%\Claude\claude_desktop_config.json`):
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"daily-news": {
|
||
"command": "uv",
|
||
"args": ["--directory", "/path/to/daily-news", "run", "daily-news-mcp"]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### Cursor
|
||
|
||
`~/.cursor/mcp.json` 或 Settings > MCP Servers:
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"daily-news": {
|
||
"command": "uv",
|
||
"args": ["--directory", "/path/to/daily-news", "run", "daily-news-mcp"]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### Windsurf
|
||
|
||
`~/.codeium/windsurf/mcp_config.json`:
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"daily-news": {
|
||
"command": "uv",
|
||
"args": ["--directory", "/path/to/daily-news", "run", "daily-news-mcp"]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
</details>
|
||
|
||
---
|
||
|
||
## 支持的客户端
|
||
|
||
| 客户端 | 配置方式 | 状态 |
|
||
|--------|----------|------|
|
||
| Claude Code | CLI | 已支持 |
|
||
| Claude Desktop | JSON 配置 | 已支持 |
|
||
| Cursor | JSON 配置 | 已支持 |
|
||
| Windsurf | JSON 配置 | 已支持 |
|
||
| Cherry Studio | 图形界面 | 已支持 |
|
||
| Zed | JSON 配置 | 已支持 |
|
||
|
||
---
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
cd /path/to/daily-news
|
||
uv sync
|
||
uv run daily-news-mcp
|
||
```
|
||
|
||
```bash
|
||
# MCP Inspector
|
||
npx @modelcontextprotocol/inspector uv --directory /path/to/daily-news run daily-news-mcp
|
||
```
|
||
|
||
### 项目结构
|
||
|
||
```
|
||
├── README.md # 英文
|
||
├── docs/
|
||
│ ├── README_ZH.md # 中文
|
||
│ ├── README_JA.md # 日本語
|
||
│ └── README_KO.md # 한국어
|
||
├── openclaw-skill/daily-news/ # OpenClaw 技能
|
||
├── pyproject.toml
|
||
├── config.json
|
||
└── src/daily_news_mcp/
|
||
├── server.py # 入口点
|
||
├── app.py # FastMCP 实例
|
||
├── config.py # 配置加载器
|
||
├── api_client.py # HTTP 客户端
|
||
└── tools.py # 2 个工具
|
||
```
|
||
|
||
## 许可证
|
||
|
||
MIT |