eluc1a
服务介绍
news-mcp MCP 服务器
mcp 新闻服务器
组件
资源
服务器通过资源 URI 暴露存储在数据库中的新闻文章:
news://{category}/{limit}: 获取给定类别的最新文章列表。{category}: 按类别过滤文章(例如,tech、data_science、news)。请参阅工具描述以获取完整列表。{limit}(可选,默认为 10): 指定要返回的文章最大数量。
- 每篇返回的文章包括标题、链接、发布日期和来源。
提示
服务器目前不暴露任何提示。(摘要逻辑存在于内部,但无法通过 MCP 提示访问)。
工具
服务器实现了一个工具:
summarize_news: 从数据库中检索原始新闻文章,允许客户端(LLM)对其进行摘要。- 接受可选的
category(字符串) 和limit(整数,默认为 20) 参数。 - 返回一个文章字典列表,每个字典包含
id、title、link、published、source和content。 - 可用类别:
tech、data_science、llm_tools、cybersecurity、linux、audio_dsp、startups、news、science、research、policy。
- 接受可选的
配置
服务器依赖于通过 DATABASE_URL 环境变量配置的 PostgreSQL 数据库(默认为 postgresql://localhost/mcp_news)。
news_gatherer.py 脚本(打算单独运行或计划运行)从各种 RSS 源填充数据库。
摘要逻辑(内部,不通过 MCP 暴露)使用 OpenAI API,通过 OPENAI_API_KEY 环境变量进行配置。
其他配置(通过环境变量或默认值):
LOOKBACK_HOURS:news_gatherer.py查找新文章的时间范围(默认为 6 小时)。SUMMARY_WORD_TARGET: 内部摘要的目标字数(默认为 500 字)。MAX_ARTICLES_PER_SUMMARY: 单个摘要批次中包含的最大文章数量(默认为 25 篇)。KEYWORD_FILTER: 内部摘要逻辑使用的关键词。
快速开始
安装
Claude 桌面版
在 MacOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json
在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json
"mcpServers": {
"news-mcp": {
"command": "uv",
"args": [
"--directory",
"~/dev/news-mcp",
"run",
"news-mcp"
]
}
}
"mcpServers": {
"news-mcp": {
"command": "uvx",
"args": [
"news-mcp"
]
}
}
开发
构建和发布
准备包以供分发:
-
同步依赖项并更新锁文件:
bash
uv sync -
构建包分发:
bash
uv build
这将在 dist/ 目录中创建源码和 wheel 分发。
- 发布到 PyPI:
bash
uv publish
注意:您需要通过环境变量或命令标志设置 PyPI 凭证:
- 令牌:
--token或UV_PUBLISH_TOKEN - 或用户名/密码:
--username/UV_PUBLISH_USERNAME和--password/UV_PUBLISH_PASSWORD
调试
由于 MCP 服务器通过 stdio 运行,调试可能会很困难。为了获得最佳调试体验,我们强烈建议使用 MCP Inspector。
您可以使用 npm 通过以下命令启动 MCP Inspector:
bash
npx @modelcontextprotocol/inspector uv --directory ~/dev/news-mcp run news-mcp
启动后,Inspector 会显示一个 URL,您可以在浏览器中访问该 URL 以开始调试。