mcpField
M
MCP News API Server

MCP News API Server

本地服务
github.com/matteoantoci开发工具377 周前更新

关于 MCP News API Server

MCP News API Server 通过两个 MCP 工具向应用提供 News API 的文章搜索和头条检索,适用于需要查询新闻数据的 MCP 客户端与工作流,并支持多种筛选条件。

主要功能

  1. 01按关键词和条件搜索文章
  2. 02按类别获取头条新闻
  3. 03按来源、域名、日期和语言筛选
  4. 04对文章结果排序和分页
  5. 05返回文章元数据与内容

适用场景

  1. 01按主题和日期范围查找文章
  2. 02获取指定国家或类别的头条
  3. 03将新闻文章数据接入 MCP 工作流

MCP 相关

该 MCP 服务向 MCP 客户端提供 `search_articles` 和 `get_top_headlines` 工具,使用 stdio 传输,并从 `NEWSAPI_KEY` 读取 News API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP News API 服务

一个模型上下文协议(MCP)服务,用于公开 News API (https://newsapi.org) 的端点,以搜索和检索新闻文章。此服务可通过 MCP 协议以编程方式访问新闻数据。

前置条件

  • Node.js(建议使用 v18 或更高版本)
  • npm(随 Node.js 一起安装)
  • News API 密钥(从 https://newsapi.org 获取)
  • (可选)兼容 MCP 的客户端或运行器(例如 VSCode 扩展、CLI)

设置

  1. 克隆代码仓库,或确保当前位于项目目录中。

  2. 安装依赖项:

    npm install
    
  3. 构建服务:

    npm run build
    

    这会创建一个 build 目录,其中包含编译后的 JavaScript 代码。

  4. 设置 News API 密钥: 服务会从 NEWSAPI_KEY 环境变量读取 API 密钥。运行服务前,请在环境中设置此变量。 示例(Bash/Zsh):

    export NEWSAPI_KEY="YOUR_API_KEY"
    

    将 "YOUR_API_KEY" 替换为实际的 News API 密钥。

运行服务

  • 直接运行: 确保已设置 NEWSAPI_KEY 环境变量,然后运行:

    node build/index.js
    

    或者,如果你有启动脚本:

    npm run start
    
  • 通过 MCP 运行器运行: 将 MCP 客户端配置为使用 stdio 传输运行服务。还需要在 MCP 运行器的设置中配置 API 密钥环境变量。 MCP 设置项示例:

    "mcp-newsapi": {
      "transportType": "stdio",
      "command": "node",
      "args": [
        "/path/to/mcp-newsapi/build/index.js"
      ],
      "environment": {
        "NEWSAPI_KEY": "YOUR_API_KEY"
      }
      // ... other optional settings ...
    }
    

    将 "YOUR_API_KEY" 替换为实际的 News API 密钥。

可用工具

该服务通过 MCP 暴露以下工具,对应 News API 的端点:

search_articles
  • 说明: 使用 News API 的“Everything”端点搜索新闻文章。
  • 输入:
    • q(字符串,必填):用于搜索文章标题和正文的关键词或短语。
    • sources(字符串,可选):以逗号分隔的新闻来源或博客标识符,用于指定要获取头条新闻的来源。
    • domains(字符串,可选):以逗号分隔的域名(例如 bbc.co.uk、techcrunch.com),用于限定搜索范围。
    • excludeDomains(字符串,可选):以逗号分隔的域名(例如 bbc.co.uk、techcrunch.com),用于排除搜索范围。
    • from(字符串,可选):允许的最早文章日期和可选时间。格式:YYYY-MM-DD 或 YYYY-MM-DDTHH:MM:SS(例如 2024-01-01 或 2024-01-01T10:00:00)。
    • to(字符串,可选):允许的最新文章日期和可选时间。格式:YYYY-MM-DD 或 YYYY-MM-DDTHH:MM:SS。
    • language(字符串,可选):要获取头条新闻所用语言的 2 字母 ISO 639-1 代码。可选值:ar、de、en、es、fr、he、it、nl、no、pt、ru、sv、ud、zh。默认:返回所有语言的结果。
    • sortBy(枚举:'relevancy'、'popularity'、'publishedAt',可选):文章的排序方式。可选值:relevancy、popularity、publishedAt。默认:relevancy。
    • pageSize(整数,可选,默认 100):每页(每次请求)返回的结果数。默认值为 20,最大值为 100。
    • page(整数,可选,默认 1):如果找到的结果总数大于 pageSize,可用此参数翻页浏览结果。
  • 输出:
    • 一个对象,包含 status、totalResults,以及一个 articles 数组,其中包含来源、作者、标题、描述、URL、图片 URL、发布日期和内容等详细信息。
get_top_headlines
  • 描述: 使用 News API 的“Top Headlines”端点获取头条新闻。
  • 输入:
    • q(字符串,可选):要在文章标题和正文中搜索的关键词或短语。
    • sources(字符串,可选):以逗号分隔的新闻来源或博客标识符字符串,用于指定要获取头条新闻的来源。
    • category(枚举:'business'、'entertainment'、'general'、'health'、'science'、'sports'、'technology',可选):要获取头条新闻的类别。可选项:business、entertainment、general、health、science、sports、technology。
    • language(字符串,可选):要获取头条新闻所用语言的 2 字母 ISO 639-1 代码。可选项:ar、de、en、es、fr、he、it、nl、no、pt、ru、sv、ud、zh。默认值:返回所有语言的结果。
    • country(字符串,可选):要获取头条新闻所属国家/地区的 2 字母 ISO 3166-1 国家/地区代码。可选项:ae、ar、at、au、be、bg、br、ca、ch、cn、co、cu、cz、de、eg、fr、gb、gr、hk、hu、id、ie、il、in、it、jp、kr、lt、lv、ma、mx、my、ng、nl、no、nz、ph、pl、pt、ro、rs、ru、sa、se、sg、si、sk、th、tr、tw、ua、us、ve、za。默认值:返回所有国家/地区的结果。
    • pageSize(整数,可选,默认值 100):每页(每次请求)返回的结果数量。默认值为 20,最大值为 100。
    • page(整数,可选,默认值 1):如果找到的结果总数大于 pageSize,可使用此参数翻页浏览结果。
  • 输出:
    • 一个对象,包含 status、totalResults,以及一个 articles 数组,其中包含来源、作者、标题、描述、URL、图片 URL、发布日期和内容等详细信息。

错误处理

服务会根据 News API 的响应尝试提供有意义的错误消息。如果 API 调用失败,工具会抛出错误,其中包含失败详情,以及 News API 错误消息和代码(如果有)。

扩展

若要将更多 News API 端点添加为工具,请在 src/tools/ 中创建一个新的 TypeScript 文件,使用 Zod 定义其输入架构,实现调用 News API SDK 的处理函数,并导出工具定义。然后,在 src/tools/index.ts 中导入并注册该工具。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。