谷歌新闻MCP
A. 模型上下文协议(MCP) 暴露的服务器 谷歌新闻RSS源 作为MCP工具,允许AI助手(Claude、GPT-4等)通过自动URL解码、并发处理和智能缓存访问实时新闻数据。
主要特点
异步和并发 -所有操作都以异步方式运行,同时进行URL解码,以获得最佳性能\ 智能缓存 -LRU缓存(1024个条目),用于快速重复URL解码\ 批量URL解码 -并行解码多个谷歌新闻网址\ 简明摘要 -从带有解码文章链接的HTML摘要中提取纯文本\ 面向令牌的对象表示法(TOON) -支持紧凑、令牌高效的响应格式(减少30-60%)\ 多语言支持 -配置任何语言/国家组合\ 高级搜索 -完全支持谷歌新闻搜索运营商(网址:、时间:、标题:等)\ 页面提取 -使用以下命令获取并总结整篇文章内容 阅读器名称 和 Groq
______________________________________________________________________
工具概述
| 工具 | 用途 | 参数 |
|---|---|---|
get_top_headlines | 按国家分列的最新头条新闻 | language, country |
get_category_feed | 按类别分类的新闻(技术、商业等) | category, language, country |
get_search_feed | 使用高级操作员搜索新闻 | query, language, country |
get_geo_feed | 特定地点新闻 | location, language, country |
get_topic_feed | 按ID分类的热门话题 | topic_id, language, country |
decode_google_news_url | 解码谷歌新闻网址 | urls (列表) |
list_categories | 可用新闻类别 | (无) |
fetch_content | 获取并总结页面内容 | url, summarize |
总计:8个工具
______________________________________________________________________
快速开始
安装
选项1:使用紫外线(推荐)
# Clone the repository
git clone https://github.com/moltrus/google-news-mcp.git
cd google-news-mcp
# Install with uv
uv sync选项2:在虚拟环境中使用pip
# Clone the repository
git clone https://github.com/moltrus/google-news-mcp.git
cd google-news-mcp
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install in development mode
pip install -e .全球使用(任何方法)
要使用 google-news-mcp 从任何地方全局命令:
pip install -e .这将在系统范围内安装命令行入口点,允许您运行 google-news-mcp 从任何目录。
配置
创建一个 .env 文件基于 .env.示例:
# RSS Preferences
GOOGLE_NEWS_LANGUAGE=en
GOOGLE_NEWS_COUNTRY=US
# Response Optimization
# Options: "json" (standard) or "toon" (token-optimized)
RESPONSE_FORMAT=json
# Fetching & Summarization
JINA_API_KEY=your_jina_key
GROQ_API_KEY=your_groq_key
GROQ_MODEL=qwen/qwen3-32b运行服务器
google-news-mcp或者直接:
python -m google_news_mcp.server______________________________________________________________________
工具文档
get_top_headlines
获取一个国家的最新头条新闻。
参数:
language(字符串,可选):语言代码(例如。,'en','fr','es').默认为GOOGLE_NEWS_LANGUAGE有人是。country(字符串,可选):国家代码(例如。,'US','GB','JP').默认为GOOGLE_NEWS_COUNTRY有人是。
退货:
{
"title": "Google News",
"link": "https://news.google.com",
"description": "Latest news",
"entries": [
{
"title": "Article Title",
"link": "https://source.com/article",
"published": "2026-03-31T10:00:00Z",
"summary": "Article Title (https://source.com/article)\nAnother Article (https://another.com/news)",
"source": "Source Name"
}
]
}笔记:
- 文章按相关性排序(谷歌新闻默认)
- URL会自动从谷歌新闻重定向中解码
- 摘要包含以纯文本格式提取的链接
______________________________________________________________________
get_category_feed
获取特定类别的新闻头条。
参数:
category(字符串,必填):新闻类别。有效值:
- WORLD -国际新闻 - NATION -国家/地方头条新闻 - BUSINESS -商业与金融 - TECHNOLOGY -技术与人工智能 - ENTERTAINMENT -娱乐与流行文化 - SPORTS -体育 - SCIENCE -科学与研究 - HEALTH -健康与医学
language(字符串,可选):语言代码。默认为config。country(字符串,可选):国家代码。默认为config。
退货: 同 get_top_headlines
示例:
get_category_feed(category="TECHNOLOGY")
get_category_feed(category="BUSINESS", country="UK")______________________________________________________________________
get_search_feed
使用关键字查询和高级运算符搜索谷歌新闻。
参数:
query(字符串,必填):使用可选运算符的搜索查询language(字符串,可选):语言代码。默认为config。country(字符串,可选):国家代码。默认为config。
支持的搜索运算符:
- 确切短语:
"Artificial Intelligence"(必须完全匹配) - 排除条款:
-apple(不包括带有“apple”的文章) - 现场特定:
site:techcrunch.com(仅来自域) - 时间范围(相对):
when:1h,when:24h,when:7d,when:30d,when:1y,when:1m - 时间范围(绝对值):
after:2026-01-01,before:2026-03-31 - 标题搜索:
intitle:merger(该术语仅出现在标题中) - 布尔OR:
Tesla OR SpaceX(任一术语) - 组合:
"GPT-4" site:openai.com when:7d(全部)
退货: 同 get_top_headlines (最多100篇文章)
查询示例:
"OpenAI Sora" # Exact phrase
AI -hype # Include AI, exclude hype
site:arxiv.org quantum computing # From academic site
when:1h breaking # Last hour
when:24h -rumor Bitcoin # Last 24h, exclude rumors
after:2026-03-01 before:2026-03-31 merger # Date range
intitle:IPO tech companies # IPO in headline
SpaceX OR Blue Origin # Either company OR other重要提示: 日期过滤器适用于 日常基础 (不是小时/分钟精度)。
______________________________________________________________________
get_geo_feed
获取特定地理位置的新闻。
参数:
location(string,必填):城市、州、地区或国家(例如。,'San Francisco','California','Japan')language(字符串,可选):语言代码。默认为config。country(字符串,可选):国家代码。默认为config。
退货: 同 get_top_headlines
示例:
get_geo_feed(location="New York")
get_geo_feed(location="London", language="en")
get_geo_feed(location="Tokyo", country="JP")______________________________________________________________________
食品成分
使用Jina Reader API从URL获取干净的页面内容,并通过Groq进行可选摘要。
参数:
url(字符串,必填):要获取的绝对URL(必须以http://或https://开头)summarize(布尔值,可选):如果true,通过Groq返回简洁的摘要,并省略完整的原始内容以节省令牌。默认为false.
退货:
{
"url": "https://example.com/article",
"reader_url": "https://r.jina.ai/https://example.com/article",
"content": "Full article text...",
"summary": "Concise summary points...",
"summary_model": "qwen/qwen3-32b",
"summary_error": "Error message if summarization fails"
}笔记:
- 令牌效率: 当
summarize是true,thecontent字段会自动从响应中删除,以防止上下文窗口膨胀。 - 环境变量:
- JINA_API_KEY:内容提取所需。 - GROQ_API_KEY:总结时需要。 - GROQ_MODEL:可选。要使用的特定模型(默认为 qwen/qwen3-32b).
______________________________________________________________________
decode_google_新闻中心_url
将多个Google新闻URL解码到其实际文章目的地 并行.
参数:
urls(字符串列表,必填):要解码的Google新闻重定向URL数组
退货:
{
"decoded_urls": [
{
"original_url": "https://news.google.com/articles/CBMi8wFAUU...",
"decoded_url": "https://techcrunch.com/2026/03/31/ai-news"
},
{
"original_url": "https://news.google.com/articles/CBMixAFAUU...",
"decoded_url": "https://theverge.com/2026/3/31/10987654"
}
]
}演出
- 所有URL已解码 同时 (无连续延迟)
- 缓存结果以供重复查找(缓存命中后立即)
- 具有1024个条目限制的LRU缓存
示例:
decode_google_news_url(urls=[
"https://news.google.com/articles/CBMi8wFAUU...",
"https://news.google.com/articles/CBMixAFAUU...",
"https://news.google.com/articles/CBMi5gFAUU..."
])______________________________________________________________________
get_topic_feed
通过主题ID获取特定热门话题的新闻。
谷歌新闻以哈希形式跟踪热门话题(例如,公司、事件、重复主题)。
参数:
topic_id(字符串,必填):谷歌新闻主题哈希标识符language(字符串,可选):语言代码。默认为config。country(字符串,可选):国家代码。默认为config。
退货: 同 get_top_headlines
常见主题ID:
CAAqKAgKIiJDQkFTRXdvS0wyMHZNSFp3YWpSZlloSUZaVzR0UjBJb0FBUAE-加密货币- 通过浏览谷歌新闻并检查网址中的主题参数来查找更多信息
示例:
get_topic_feed(topic_id="CAAqKAgKIiJDQkFTRXdvS0wyMHZNSFp3YWpSZlloSUZaVzR0UjBJb0FBUAE")______________________________________________________________________
列表_类别
获取可用新闻类别的列表。
参数: 无
退货:
{
"categories": [
"WORLD",
"NATION",
"BUSINESS",
"TECHNOLOGY",
"ENTERTAINMENT",
"SPORTS",
"SCIENCE",
"HEALTH"
]
}______________________________________________________________________
建筑
性能优化
- 异步/等待 -所有I/O操作(HTTP、解码)都是非阻塞的
- 并发处理 -通过并行处理多个URL和条目
asyncio.gather() - LRU缓存(1024个条目) -在函数级别缓存的解码URL
- 内存字典缓存 -解码URL的额外快速查找缓存
- 批量操作 -
decode_google_news_url同时处理URL列表
摘要格式
文章摘要从HTML中提取并返回为 纯文本 带有解码链接:
Article Title 1 (https://original-source.com/article1)
Image caption link (https://image-source.com/photo)
Article Title 2 (https://original-source.com/article2)HTML标签、CDATA包装器和实体被剥离,以获得干净、可读的文本。
______________________________________________________________________
使用示例
1.获取最后一小时的突发新闻
get_search_feed(query="when:1h breaking", country="US")2.一次解码多个文章URL
decode_google_news_url(urls=[
"https://news.google.com/articles/CBMi8wFAUU...",
"https://news.google.com/articles/CBMixAFAUU..."
])3.来自特定来源的技术新闻
get_search_feed(query="site:techcrunch.com AI")4.城市的地方新闻
get_geo_feed(location="San Francisco")5.按日期范围搜索
get_search_feed(query="SpaceX after:2026-03-01 before:2026-03-31")6.获取健康新闻
get_category_feed(category="HEALTH")7.加密货币趋势新闻
get_topic_feed(topic_id="CAAqJggKIiBDQkFTRWdvSUwyMHZNR3d5YldFeVpYVXVhVzV6U0FpQkFQAQ")8.获取并总结一篇完整的文章
fetch_content(url="https://techcrunch.com/article-url", summarize=true)______________________________________________________________________
代币效率和代币
此服务器支持 面向令牌的对象表示法(TOON),一种专为LLM设计的紧凑数据格式。
为什么要使用TOON?
由于重复的键和标点符号,LLM的标准JSON可能会很冗长。TOON通过以下方式减少令牌使用 30-60% 通过:
- 为对象数组定义一次键(表格格式)。
- 删除不必要的大括号、方括号和引号。
- 使用缩进和简单的分隔符。
配置
要为所有工具响应全局启用TOON,请在您的 .env:
RESPONSE_FORMAT=toon比较
| JSON(详细) | TOON(紧凑) |
|---|---|
{"entries": [{"id": 1, "title": "A"}, {"id": 2, "title": "B"}]} | entries[2,]{id,title}: |
1,A 2,B |
______________________________________________________________________
局限性
- 结果限制: 谷歌新闻RSS每次请求最多返回约100篇文章
- 排序: 默认值是相关性。使用
when:时间排序过滤器 - 日期精度: 过滤器工作 日常基础,不是按小时/分钟
- 速率限制: RSS不需要API密钥,但Jina Reader和Groq有自己的限制/配额
- 内容提取:
fetch_content取决于Jina Reader解析目标站点的能力 - 主题ID: 必须从谷歌新闻网址中发现;无查找API
______________________________________________________________________
许可证
麻省理工学院
