google-search-mcp-v2
by ye4wzp
README.md
# Google Search MCP Server v2.0.0
一个强大的 MCP (Model Context Protocol) 服务器,为 Claude Code 提供 Google 搜索和图片搜索能力。
## ✨ 特性
### 🔍 搜索功能
- **Google 文本搜索** - 自定义结果数量,支持多语言
- **网页内容提取** - 智能过滤广告和导航
- **批量提取** - 并行处理,速度提升 3x
- **搜索+提取组合** - 一键深度内容检索
### 🖼️ 图片搜索 (核心功能)
- **双平台搜索** - Google Images + Pinterest 并行搜索
- **多模型 AI 视觉分析** - 支持 GLM-4.6V、GPT-4O、Claude 3.5 等
- **S/A/B/C 质量评分** - 基于来源和相似度的智能评分
- **产品参考图搜索** - 非常适合电商、设计场景
### 🚀 性能优化
- **浏览器池** - 单例复用,避免重复启动
- **并行处理** - 批量操作并发执行
- **模块化架构** - 代码清晰,易于维护
## 📦 安装
### 前置条件
- Node.js >= 18.0.0
- Claude Code
### 安装步骤
```bash
# 1. 克隆项目
git clone <repo-url>
cd google-search-mcp-v2
# 2. 安装依赖
npm install
```
## ⚙️ 配置
### 配置 Claude Code
编辑 `~/.claude.json`,添加以下配置:
```json
{
"mcpServers": {
"google-search": {
"type": "stdio",
"command": "node",
"args": ["/你的路径/google-search-mcp-v2/src/index.js"]
}
}
}
```
重启 Claude Code 生效。
### 配置 AI 视觉分析 (可选)
设置环境变量以启用 AI 图片分析:
```bash
# 智谱 GLM (推荐,国内使用)
export GLM_API_KEY=your_api_key
# 或 OpenAI
export OPENAI_API_KEY=your_api_key
# 或 Anthropic Claude
export ANTHROPIC_API_KEY=your_api_key
# 指定使用的模型 (可选)
export VISION_MODEL=glm-4.6v # 或 gpt-4o, claude-3.5-sonnet
```
> 💡 如果不配置 API Key,图片搜索会使用文件名作为关键词进行搜索(仍然可用)。
## 🛠️ MCP 工具
| 工具名 | 描述 |
|--------|------|
| `google_search` | Google 文本搜索 |
| `fetch_url` | 提取单个网页内容 |
| `batch_fetch_urls` | 批量提取多个网页 (并行) |
| `search_and_extract` | 搜索并自动提取内容 |
| `search_by_image` | 图片搜索 (双平台 + AI 分析 + 评分) |
## 💻 命令行使用
除了 MCP 模式,还支持命令行直接使用:
```bash
# 显示帮助
node src/index.js --help
# Google 搜索
node src/index.js "Node.js 教程"
node src/index.js "React hooks" 5
# 提取网页内容
node src/index.js --fetch https://example.com
# 批量提取
node src/index.js --batch "https://a.com,https://b.com"
# 搜索并提取
node src/index.js --extract "Python 入门" 3
# 图片搜索
node src/index.js --image ./product.jpg 10
```
## 📊 图片搜索评分系统
| 等级 | 分数范围 | 说明 |
|------|----------|------|
| 🏆 S | 85-100 | 顶级来源 (天猫国际、品牌官网) |
| ⭐ A | 75-84 | 优质来源 (天猫、京东、亚马逊) |
| ✓ B | 60-74 | 普通来源 (淘宝、Pinterest) |
| ○ C | 0-59 | 其他来源 |
## 📁 项目结构
```
google-search-mcp-v2/
├── src/
│ ├── index.js # 入口
│ ├── mcp-server.js # MCP 协议处理
│ ├── cli.js # 命令行模式
│ ├── config.js # 配置管理
│ │
│ ├── browser/
│ │ └── pool.js # 浏览器池 (单例复用)
│ │
│ ├── tools/
│ │ ├── google-search.js
│ │ ├── fetch-url.js
│ │ ├── search-extract.js
│ │ └── image-search.js
│ │
│ ├── image/
│ │ ├── google-images.js
│ │ ├── pinterest.js
│ │ └── scorer.js # S/A/B/C 评分
│ │
│ ├── ai/
│ │ ├── models.js # 视觉模型配置
│ │ └── vision.js # AI 分析
│ │
│ └── utils/
│ └── logger.js
│
├── package.json
└── README.md
```
## 🔧 支持的 AI 模型
| 模型 | 环境变量 | 说明 |
|------|----------|------|
| GLM-4.6V | `GLM_API_KEY` | 智谱 AI,国内推荐 |
| GLM-4V | `GLM_API_KEY` | 智谱 AI |
| GPT-4O | `OPENAI_API_KEY` | OpenAI 最新视觉模型 |
| GPT-4 Turbo | `OPENAI_API_KEY` | OpenAI |
| Claude 3.5 Sonnet | `ANTHROPIC_API_KEY` | Anthropic |
## 📄 License
MIT
TDQS
B3.3/5.0
Scored across 5 tools
Disambiguation4/5
Each tool has a distinct purpose, but search_and_extract combines functionality of google_search and batch_fetch_urls, which could cause some ambiguity for agents that only need raw search results.
Naming Consistency3/5
Naming conventions are mixed: google_search is branded, fetch_url/batch_fetch_urls follow verb_noun, while search_and_extract and search_by_image use different patterns (verb_and_verb, verb_prep_noun).
Tool Count5/5
With 5 tools covering basic search, content extraction, and image search, the count is well-scoped for a search-focused server without unnecessary bloat.
Completeness4/5
Core operations (search, fetch, combined, image search) are covered, but missing pagination and advanced search filters represent minor gaps for more complex workflows.
Maintenance
ActivitySlowing
ResponsivenessNo issues