使用说明
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) |
支持的主题:
WORLDNATIONBUSINESSTECHNOLOGYENTERTAINMENTSPORTSSCIENCEHEALTHPOLITICSCELEBRITIES
例子:
{
"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包管理器)
本地设置
-
克隆存储库:
git clone https://github.com/yourusername/google_news_MCP.git cd google_news_MCP -
创建虚拟环境:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
安装依赖项:
pip install -r requirements.txt -
运行服务器:
python gnews_mcp_server.py服务器将于启动
http://localhost:8000默认情况下。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT |
8000 |
服务器的端口号 |
HOST |
0.0.0.0 |
要绑定的主机地址 |
部署到Heroku
先决条件
- Heroku命令行界面 安装
- Herold帐户
部署步骤
-
登录Heroku:
heroku login -
创建一个新的Heroku应用程序:
heroku create your-app-name -
设置Python运行时(可选): 这
.python-version文件指定Python 3.11。Heroku将自动使用此版本。 -
部署应用程序:
git push heroku main -
验证部署:
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许可证下使用。
贡献
欢迎投稿!请随时提交拉取请求。