新闻搜索服务

一个提供Google新闻搜索功能的MCP服务器,支持按关键词、主题、地理位置和网站检索新闻文章,适用于AI助手和其他MCP客户端。

  • by Sallytion
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Sallytion/google_news_MCP

使用说明

GNews MCP服务器

提供Google新闻搜索功能的模型上下文协议(MCP)服务器。该服务器使人工智能助手和其他MCP客户端能够从谷歌新闻中搜索和检索新闻文章。

特性

  • 🔍 关键字搜索 -按关键字搜索新闻文章
  • 📰 头条新闻 -获取头条新闻
  • 📂 主题新闻 -按类别浏览新闻(科技、体育、商业等)
  • 🌍 基于位置的新闻 -从特定地理位置获取新闻
  • 🌐 网站特定新闻 -从特定网站检索新闻
  • 🗣️ 多语言支持 -支持30多种语言
  • 🌎 多国支持 -支持40多个国家

工具参考

1. search_news

按关键字搜索新闻文章。

参数:

参数 类型 默认值 说明
keyword 字符串 必需的 搜索新闻关键字
language 字符串 "en" 语言代码(例如。, en, es, fr)
country 字符串 "US" 国家代码(例如。, US, GB, IN)
period 字符串 "7d" 时间段(例如。, 7d, 12h, 1m, 1y)
max_results 整数 10 最大结果数(1-100)
exclude_websites 字符串 "" 以逗号分隔的要排除的网站列表

例子:

{
  "keyword": "artificial intelligence",
  "language": "en",
  "country": "US",
  "period": "7d",
  "max_results": 10
}

2. get_top_news

获取头条新闻。

参数:

参数 类型 默认值 说明
language 字符串 "en" 语言代码
country 字符串 "US" 国家代码
max_results 整数 10 最大结果数(1-100)

例子:

{
  "language": "en",
  "country": "GB",
  "max_results": 5
}

3. get_news_by_topic

按主题类别获取新闻。

参数:

参数 类型 默认值 说明
topic 字符串 必需的 主题名称
language 字符串 "en" 语言代码
country 字符串 "US" 国家代码
max_results 整数 10 最大结果数(1-100)

支持的主题:

  • WORLD
  • NATION
  • BUSINESS
  • TECHNOLOGY
  • ENTERTAINMENT
  • SPORTS
  • SCIENCE
  • HEALTH
  • POLITICS
  • CELEBRITIES

例子:

{
  "topic": "TECHNOLOGY",
  "language": "en",
  "country": "US",
  "max_results": 10
}

4. get_news_by_location

按地理位置获取新闻。

参数:

参数 类型 默认值 说明
location 字符串 必需的 地点名称(城市、州或国家)
language 字符串 "en" 语言代码
max_results 整数 10 最大结果数(1-100)

例子:

{
  "location": "London",
  "language": "en",
  "max_results": 10
}

5. get_news_by_site

从特定网站获取新闻。

参数:

参数 类型 默认值 说明
site 字符串 必需的 网站域名
language 字符串 "en" 语言代码
country 字符串 "US" 国家代码
max_results 整数 10 最大结果数(1-100)

例子:

{
  "site": "techcrunch.com",
  "language": "en",
  "country": "US",
  "max_results": 5
}

6. get_available_countries

获取所有受支持国家及其代码的列表。

参数: 无

退货: 带有国家名称和代码的JSON对象。

7. get_available_languages

获取所有支持的语言及其代码的列表。

参数: 无

退货: 带有语言名称和代码的JSON对象。

安装

先决条件

  • Python 3.11或更高版本
  • pip(Python包管理器)

本地设置

  1. 克隆存储库:

    git clone https://github.com/yourusername/google_news_MCP.git
    cd google_news_MCP
    
  2. 创建虚拟环境:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 运行服务器:

    python gnews_mcp_server.py
    

    服务器将于启动 http://localhost:8000 默认情况下。

环境变量

变量 默认值 描述
PORT 8000 服务器的端口号
HOST 0.0.0.0 要绑定的主机地址

部署到Heroku

先决条件

部署步骤

  1. 登录Heroku:

    heroku login
    
  2. 创建一个新的Heroku应用程序:

    heroku create your-app-name
    
  3. 设置Python运行时(可选): 这 .python-version 文件指定Python 3.11。Heroku将自动使用此版本。

  4. 部署应用程序:

    git push heroku main
    
  5. 验证部署:

    heroku open
    

    您的服务器应在以下位置运行 https://your-app-name.herokuapp.com

Heroku配置

存储库包括Heroku部署所需的文件:

  • Procfile -告诉Heroku如何运行应用程序
  • requirements.txt -Python依赖关系
  • .python-version -指定Python 3.11

扩展

要扩展您的Heroku dyno:

heroku ps:scale web=1

查看日志

要查看应用程序日志,请执行以下操作:

heroku logs --tail

连接到MCP服务器

服务器端点

端点 描述
/ 根端点-返回服务器信息和可用工具
/mcp 客户端连接的MCP协议端点

MCP客户端配置

要将MCP客户端连接到此服务器,请使用服务器URL对其进行配置:

当地:

http://localhost:8000/mcp

Heroku:

https://your-app-name.herokuapp.com/mcp

客户端配置示例(Claude桌面)

将以下内容添加到您的Claude Desktop MCP配置中:

{
  "mcpServers": {
    "gnews": {
      "url": "https://your-app-name.herokuapp.com/mcp"
    }
  }
}

API响应格式

所有工具都返回具有以下结构的JSON响应:

成功响应

{
  "status": "success",
  "results": [
    {
      "title": "Article Title",
      "description": "Article description...",
      "published date": "2024-01-15 10:30:00",
      "url": "https://example.com/article",
      "publisher": {
        "href": "https://example.com",
        "title": "Example News"
      }
    }
  ]
}

错误响应

{
  "status": "error",
  "message": "Error description"
}

资源

服务器还公开了一个资源端点以获取配置信息:

  • gnews://config -返回服务器配置和功能

依赖项

包 版本 描述
mcp ≥1.0.0 模型上下文协议SDK
gnews 0.4.2 Google新闻API包装
newspaper3k 0.2.8 文章提取库
uvicorn ≥0.30.0 ASGI服务器
starlette ≥0.37.0 ASGI框架

许可证

这个项目是开源的,可以在MIT许可证下使用。

贡献

欢迎投稿!请随时提交拉取请求。