MCP NewNow Server
by sligter
MCP NewNow Server is a news aggregation server based on the Model Context Protocol (MCP). It provides hot news and trending topics from multiple platforms via the Newsnow API.
View on GitHub
Last updated: N/A
MCP NewNow Server
一个基于 Model Context Protocol (MCP) 的新闻聚合服务器,通过 Newsnow API 提供多平台热点新闻和趋势话题。
功能特点
- 多平台热点聚合:一站式获取来自酷安、知乎、微博、B站、抖音、GitHub等14+平台的热点内容
- 中英文源名识别:支持中英文新闻源名称,并提供模糊匹配功能
- 自定义API端点:通过环境变量或命令行参数配置NewNow API端点
安装方法
方法一:从 PyPI 安装
# 使用 pip 安装
pip install mcp-newsnow
# 或使用 uv 安装
uv pip install mcp-newsnow
方法二:配置 Claude Desktop
在 Claude Desktop 配置文件中添加服务器配置:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"get_news": {
"command": "uvx",
"args": [
"mcp-newsnow"
]
}
}
}
使用方法
使用 Claude Desktop
- 安装并配置 Claude Desktop
- 在配置文件中添加上述 MCP 服务器配置
- 重启 Claude Desktop
- 在对话中使用新闻相关工具
使用 MCP CLI 进行开发
# 通过环境变量设置API端点
NEWS_API_URL=https://newsnow.example.com
# 运行测试
mcp test server.py
可用工具
1. 获取单一源新闻 (get_newsnow)
async def get_newsnow(source: str) -> dict[str, Any] | None
从指定源获取最新新闻。
参数:
source
: 新闻源名称 (支持中英文,例如"知乎"、"zhihu"、"B站"等)
返回: 包含新闻数据的字典
2. 获取多源新闻 (get_multi_news)
async def get_multi_news(sources: list[str] = None) -> dict[str, Any]
从多个源获取最新新闻 (最多5个)。
参数:
sources
: 新闻源名称列表
返回: 包含多个新闻源数据的字典
3. 获取所有源新闻 (get_all_news)
async def get_all_news() -> dict[str, Any]
获取所有配置的新闻源数据。
返回: 包含所有新闻源数据和元数据的字典
4. 列出可用新闻源 (list_sources)
async def list_sources() -> dict[str, str]
列出所有可用的新闻源及其中文名称。
返回: 新闻源ID到中文名称的映射字典
环境变量
NEWS_API_URL
: Newsnow API的基础URL (默认: "https://newsnow.busiyi.world/")
支持的新闻源
- 酷安 (coolapk)
- B站热搜 (bilibili-hot-search)
- 知乎 (zhihu)
- 微博 (weibo)
- 今日头条 (toutiao)
- 抖音 (douyin)
- GitHub趋势 (github-trending-today)
- Linux热榜 (linuxdo-hot)
- 贴吧 (tieba)
- 华尔街见闻 (wallstreetcn)
- 澎湃新闻 (thepaper)
- 财联社 (cls-hot)
- 雪球 (xueqiu)
- 快手 (kuaishou)
贡献指南
欢迎提交问题和拉取请求!以下是一些潜在的改进方向:
- 添加更多新闻源支持
- 增强内容提取和处理能力
- 添加缓存层减少API调用
- 改进错误处理和重试机制
- 添加结果过滤和分类功能
许可证
本项目采用 MIT 许可证。