一个模型上下文协议(MCP)服务器实现,通过 SerpAPI 集成提供 Google News 搜索功能。自动对新闻结果进行分类,并支持多种语言和地区。
https://github.com/user-attachments/assets/1cc71c27-f840-4c94-9ab5-460d84ba4779
✨ 功能
🔍 灵活的搜索选项
全面的搜索功能,包括基于查询的搜索、主题搜索、出版物过滤和新闻报道覆盖。
🌐 全球覆盖
通过可配置的语言和国家代码支持多种语言和地区。
📊 智能分类
自动将新闻结果分类到 AI & 技术、商业、科学 & 研究、医疗保健等主题。
🔀 多种结果类型
处理各种新闻结果类型,包括头条新闻、故事、相关主题和菜单链接。
🛠️ 健壮的错误处理
全面的错误处理,适用于 API 失败和无效输入,并提供有帮助的错误消息。
🌍 语言支持
对于不支持的语言代码自动回退到英语,并适当通知用户。
🔑 SERP API 设置指南
在开始之前,您需要获取一个 SERP API 密钥。以下是步骤:
-
访问 SERP API 网站 并创建一个账户
-
注册后,进入您的仪表板:
- 定位到 "API 密钥" 部分
- 复制您的 API 密钥
- 新用户获得 100 次免费 API 调用
-
API 使用详情:
- 免费套餐:每月 100 次搜索
- 付费套餐从每月 $50 开始,提供 5000 次搜索
- 按成功的 API 调用计费
- 多种支付方式:信用卡、PayPal 等
-
使用限制:
- 请求速率:每秒 2 个请求
- IP 限制:无
- 并发请求:5 个
- 响应缓存时间:1 小时
👩🔧 解决 MCP 服务器与 NVM/NPM 连接问题的方案
点击查看我的配置解决方案 👉 https://github.com/modelcontextprotocol/servers/issues/76
🚀 快速入门
- 安装依赖:
npm install
- 构建服务器:
npm run build
- 配置环境:
修改您的
claude_desktop_config.json,添加以下内容(根据您的系统调整路径):
"google-news": {
"command": "D:\\Program\\nvm\\node.exe",
"args": [
"D:\\github_repository\\path_to\\dist\\index.js"
],
"env": {
"SERP_API_KEY": "your-api-key"
}
}
- 启动服务器:
npm start
故障排除
- 无效的 API 密钥
- 验证
claude_desktop_config.json中的 API 密钥配置 - 确认 SERP API 仪表板中的 API 密钥状态正常
- 请求失败
- 检查网络连接
- 确认 API 调用配额未超限
- 验证请求参数格式
运行 evals
evals 包加载一个 MCP 客户端,然后运行 index.ts 文件,因此测试之间无需重新构建。您可以通过在 npx 命令前添加环境变量来加载环境变量。完整文档可参考 此处。
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
📦 安装
通过 Smithery 安装
通过 Smithery 自动安装 Google News for Claude Desktop:
npx -y @smithery/cli install @chanmeng666/google-news-server --client claude
通过 mcp-get 安装
npx @michaellatman/mcp-get@latest install @chanmeng666/google-news-server
如果您使用的是旧版本的 Windows PowerShell,可能需要在执行此命令前运行
Set-ExecutionPolicy Bypass -Scope Process。
手动安装
@chanmeng666/google-news-server
# 使用 npm
npm i @chanmeng666/google-news-server
# 或
npm install @chanmeng666/google-news-server
# 使用 yarn
yarn add @chanmeng666/google-news-server
# 使用 pnpm
pnpm add @chanmeng666/google-news-server
💻 技术栈
📖 API 文档
服务器实现了模型上下文协议(MCP),并暴露了一个 Google News 搜索工具,具有以下参数:
q: 搜索查询字符串gl: 国家代码(例如,'us', 'uk')hl: 语言代码(例如,'en', 'es')topic_token: 特定新闻主题的令牌publication_token: 特定出版商的令牌story_token: 故事全面覆盖的令牌section_token: 特定部分的令牌
🔧 开发
# 以开发模式运行,支持热重载
npm run dev
# 运行代码检查
npm run lint
# 运行测试
npm run test
📝 许可证
本项目采用 MIT 许可证。
🙋♀ 作者
由 Chan Meng 创建和维护。

