关于 MCP News API Server
MCP News API Server 通过两个 MCP 工具向应用提供 News API 的文章搜索和头条检索,适用于需要查询新闻数据的 MCP 客户端与工作流,并支持多种筛选条件。
主要功能
- 01按关键词和条件搜索文章
- 02按类别获取头条新闻
- 03按来源、域名、日期和语言筛选
- 04对文章结果排序和分页
- 05返回文章元数据与内容
适用场景
- 01按主题和日期范围查找文章
- 02获取指定国家或类别的头条
- 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)
设置
-
克隆代码仓库,或确保当前位于项目目录中。
-
安装依赖项:
npm install -
构建服务:
npm run build这会创建一个
build目录,其中包含编译后的 JavaScript 代码。 -
设置 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 中导入并注册该工具。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。