e

eluc1a

@eluc1a/mcp-news
0 Stars 12 次浏览 eluc1a 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

news-mcp MCP 服务器

mcp 新闻服务器

组件

资源

服务器通过资源 URI 暴露存储在数据库中的新闻文章:

  • news://{category}/{limit}: 获取给定类别的最新文章列表。
    • {category}: 按类别过滤文章(例如,techdata_sciencenews)。请参阅工具描述以获取完整列表。
    • {limit} (可选,默认为 10): 指定要返回的文章最大数量。
  • 每篇返回的文章包括标题、链接、发布日期和来源。

提示

服务器目前不暴露任何提示。(摘要逻辑存在于内部,但无法通过 MCP 提示访问)。

工具

服务器实现了一个工具:

  • summarize_news: 从数据库中检索原始新闻文章,允许客户端(LLM)对其进行摘要。
    • 接受可选的 category (字符串) 和 limit (整数,默认为 20) 参数。
    • 返回一个文章字典列表,每个字典包含 idtitlelinkpublishedsourcecontent
    • 可用类别:techdata_sciencellm_toolscybersecuritylinuxaudio_dspstartupsnewsscienceresearchpolicy

配置

服务器依赖于通过 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"
]
}
}

开发

构建和发布

准备包以供分发:

  1. 同步依赖项并更新锁文件:
    bash
    uv sync

  2. 构建包分发:
    bash
    uv build

这将在 dist/ 目录中创建源码和 wheel 分发。

  1. 发布到 PyPI:
    bash
    uv publish

注意:您需要通过环境变量或命令标志设置 PyPI 凭证:

  • 令牌:--tokenUV_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 以开始调试。

相关 MCP 服务