内容
# mcp-trendpulse
[](https://modelcontextprotocol.io)
[](https://www.python.org/)
[](LICENSE)
一个强大、稳健的模型上下文协议(MCP)服务器,连接 AI 模型与谷歌新闻 RSS 源和谷歌趋势。轻松拉取历史每周兴趣曲线,计算关键词增长率,获取趋势查询,并使用大型语言模型和自然语言处理分析/总结相关文章。
## 功能
- **谷歌新闻整合**:通过关键词、位置或主题抓取新闻源,并获取顶级新闻故事。
- **高级趋势分析**:拉取 5 年的每周兴趣历史,计算自定义窗口的增长率,并获取实时趋势关键词。
- **自然语言处理和大型语言模型总结**:使用客户端大型语言模型采样或本地自然语言处理总结文章内容,并提取关键概念。
- **适用于 Windows 的稳健性**:完全处理本地会话状态、速率限制,并包含一个针对难以抓取的网站的备用机制。
## 安装
### 使用 uv/uvx(推荐)
在使用 [`uv`](https://docs.astral.sh/uv/) 时,不需要特定的安装。我们将使用 [`uvx`](https://docs.astral.sh/uv/guides/tools/) 直接运行 *mcp-trendpulse*。
### 使用 PIP
```bash
pip install mcp-trendpulse
```
安装后,您可以通过以下方式作为脚本运行:
```bash
python -m mcp_trendpulse
```
## 配置
### 为 Claude.app 配置
将以下内容添加到您的 Claude 设置中:
<details>
<summary>使用 uvx</summary>
```json
{
"mcpServers": {
"mcp-trendpulse": {
"command": "uvx",
"args": ["mcp-trendpulse@latest"]
}
}
}
```
</details>
<details>
<summary>使用 pip 安装</summary>
```json
{
"mcpServers": {
"mcp-trendpulse": {
"command": "python",
"args": ["-m", "mcp_trendpulse"]
}
}
}
```
</details>
### 为 VS Code 配置
<details>
<summary>使用 uvx</summary>
```json
{
"mcp": {
"servers": {
"mcp-trendpulse": {
"command": "uvx",
"args": ["mcp-trendpulse@latest"]
}
}
}
}
```
</details>
<details>
<summary>使用 pip 安装</summary>
```json
{
"mcp": {
"servers": {
"mcp-trendpulse": {
"command": "python",
"args": ["-m", "mcp_trendpulse"]
}
}
}
}
```
</details>
### 为 Cursor 编辑器配置
Cursor 支持全局或按项目配置 MCP:
- **全局配置**:编辑 `%USERPROFILE%\.cursor\mcp.json`(Windows)或 `~/.cursor/mcp.json`(macOS/Linux)。
- **项目配置**:在项目根目录中创建 `.cursor/mcp.json` 文件。
将以下内容添加到 `mcpServers` 对象中:
```json
{
"mcpServers": {
"mcp-trendpulse": {
"command": "python",
"args": ["-m", "mcp_trendpulse"]
}
}
}
```
*(或者,您可以打开 Cursor 设置 -> 功能 -> MCP,然后点击“添加新的全局 MCP 服务器”以通过 UI 进行设置)。*
### 为 Gemini / Antigravity IDE 配置
如果您正在使用 Antigravity IDE 与 Gemini 进行结对编程,请将服务器添加到位于 `%APPDATA%\.gemini\antigravity-ide\mcp_config.json` 的设置文件中:
```json
{
"mcpServers": {
"mcp-trendpulse": {
"command": "python",
"args": ["-m", "mcp_trendpulse"]
}
}
}
```
### 为 ChatGPT(OpenAI)配置
由于 ChatGPT 位于云中,因此需要通过安全 HTTPS 隧道(例如使用 `ngrok` 或类似工具)公开您的本地 MCP 服务器:
1. **通过隧道公开服务器**:
使用 HTTP/SSE 桥接器启动本地 MCP 服务器,或使用安全隧道工具公开其 stdio 端点。
2. **在 ChatGPT 中启用开发者模式**:
打开 ChatGPT 桌面应用程序,转到 **设置 → 应用程序和连接器**,并切换到 **开发者模式**。
3. **注册连接器**:
点击 **+ 新服务器**(或“创建连接器”),并粘贴托管隧道的安全 HTTPS URL。
### 环境变量和代理
如果您遇到 Google Trends 的速率限制(`429 客户端错误`),或者您的服务器在没有直接互联网访问的环境中运行,您可以通过以下两种方式之一配置环境变量和代理:
#### 选项 A:使用 `.env` 文件(推荐)
您可以在工作区目录(服务器执行的位置)中创建一个 `.env` 文件,并定义变量。服务器将在启动时自动加载它们:
```env
HTTP_PROXY=http://your-proxy-address:port
HTTPS_PROXY=http://your-proxy-address:port
GOOGLE_TRENDS_DELAY=2.0
```
#### 选项 B:通过客户端配置注入
您可以直接将环境变量添加到 Claude Desktop 或 VS Code JSON 配置中的 `"env"` 对象中:
```json
"env": {
"HTTP_PROXY": "http://your-proxy-address:port",
"HTTPS_PROXY": "http://your-proxy-address:port",
"GOOGLE_TRENDS_DELAY": "2.0"
}
```
在 Windows 上,还建议在 `"env"` 块下传递系统环境变量,如 `PATH`、`USERPROFILE`、`LOCALAPPDATA` 和 `APPDATA`,以确保内部 Chromium 浏览器(由 Playwright 使用)正确解析和执行:
```json
"env": {
"PATH": "C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Users\\<Username>\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\<Username>\\AppData\\Local\\Programs\\uv",
"USERPROFILE": "C:\\Users\\<Username>",
"LOCALAPPDATA": "C:\\Users\\<Username>\\AppData\\Local",
"APPDATA": "C:\\Users\\<Username>\\AppData\\Roaming"
}
```
## 工具
提供以下 MCP 工具:
| 工具名称 | 描述 |
|----------------------|------------------------------------------------------------------------------------------------------|
| **get_news_by_keyword**| 使用特定关键词搜索新闻。 |
| **get_news_by_location**| 获取与特定位置相关的新闻。 |
| **get_news_by_topic**| 根据选择的主题获取新闻。 |
| **get_top_news** | 从谷歌新闻中获取顶级新闻故事。 |
| **get_trending_terms**| 返回指定位置的谷歌趋势中的趋势关键词。 |
| **get_trends** | 拉取 5 年的每周谷歌搜索兴趣曲线,以检查关键词的增长/季节性曲线。 |
| **get_growth** | 衡量关键词在自定义时间段(例如 3 个月,1 年)内的搜索兴趣变化,并比较增长情况。|
| **get_ranked_trends**| 获取当前谷歌搜索中搜索量最高或增长最快的关键词的排名列表。 |
| **get_top_trends** | 在无需关键词查询的情况下,发现谷歌趋势中的顶级趋势话题。 |
所有与新闻相关的工具都有一个选项,可以使用大型语言模型采样(如果支持)或自然语言处理来总结文章内容
## 命令行界面
所有工具都可以通过 `uv` 从命令行访问
```bash
uv run mcp-trendpulse
用法:mcp-trendpulse [选项] 命令 [参数]...
使用谷歌新闻查找和下载新闻文章。
选项:
--help 显示此消息并退出。
命令:
keyword 使用谷歌新闻按关键词查找文章。
location 使用谷歌新闻按位置查找文章。
top 从谷歌新闻获取顶级新闻故事。
topic 使用谷歌新闻按主题查找文章。
trending 返回特定地理位置的谷歌趋势。
```
## 调试
```bash
npx @modelcontextprotocol/inspector uvx mcp-trendpulse
```
在本地安装的项目中运行:
```bash
cd path/to/mcp-trendpulse
npx @modelcontextprotocol/inspector uv run mcp-trendpulse
```
## 测试
```bash
cd path/to/mcp-trendpulse
python -m pytest
```