Google Search MCP

Google Search MCP

🚀 增强版谷歌搜索MCP服务器

这是一个强大的模型上下文协议(MCP)服务器,借助先进的匿名化和反检测功能,提供增强的谷歌搜索能力。

🚀 快速开始

此项目为实验性项目,请自行承担使用风险。它是一个使用网页抓取技术的实验性谷歌搜索MCP服务器。请注意以下几点:

  • 速率限制:谷歌可能会阻止此服务器的请求或对其进行速率限制。
  • 可靠性:由于谷歌的反抓取措施,搜索结果可能不一致。

🔍 推荐替代方案

对于生产环境使用,我们强烈建议使用官方搜索API或成熟的MCP服务器:

  • DuckDuckGo MCP服务器:更可靠且符合服务条款的替代方案。
  • 必应搜索API:微软官方的支持MCP集成的搜索API。
  • 谷歌自定义搜索API:谷歌官方的搜索API(需要API密钥)。
  • SearXNG MCP:注重隐私的元搜索引擎集成方案。

只有在您了解相关风险和限制的情况下,才使用此实验性服务器。

✨ 主要特性

🔍 增强的搜索能力

  • 高级查询支持:支持处理带有引号、运算符和过滤器的复杂搜索查询。
  • 可配置的结果:可限制结果数量(1 - 10),设置语言、地区、安全搜索和时间范围。
  • 多种解析策略:具备强大的结果提取能力和后备机制。

🛡️ 高级匿名化

  • 逼真的浏览器指纹:使用旋转的用户代理来模拟真实浏览器(Chrome、Firefox、Safari、Edge)。
  • 动态请求头:随机化Accept - Language、Accept - Encoding和安全请求头。
  • 会话随机化:使用唯一的会话ID和请求指纹。
  • 请求定时:添加随机延迟以避免被检测到模式。

🚀 可靠性特性

  • 智能重试逻辑:对失败的请求采用带抖动的指数退避策略。
  • 速率限制处理:自动检测并优雅地处理速率限制。
  • 错误恢复:具备全面的错误处理机制,并提供用户友好的错误信息。
  • 超时管理:可配置超时时间并进行适当的错误报告。

🔧 技术改进

  • 多个结果选择器:能适应谷歌不断变化的HTML结构。
  • URL清理:正确处理谷歌的重定向URL。
  • 内容验证:确保所有结果都有有效的URL和内容。
  • 全面的日志记录:提供详细的日志用于调试和监控。

📦 安装指南

通过Smithery安装

要通过Smithery为Claude Desktop自动安装google - search - mcp,请执行以下命令:

npx -y @smithery/cli install @kongyo2/google-search-mcp --client claude

手动安装

npm install

💻 使用示例

开发模式

使用交互式CLI在开发模式下启动服务器:

npm run dev

生产模式

启动服务器用于生产环境:

npm run start

测试

运行全面的测试套件:

npm run test

在开发过程中进行持续测试:

npm run test:watch

MCP工具:search

服务器提供了一个强大的搜索工具,具有以下参数:

参数

  • query(必需):要执行的搜索查询。
  • limit(可选):最大结果数量(1 - 10,默认值:5)。
  • language(可选):语言代码(例如,'en'、'es'、'fr'、'de'、'ja')。
  • region(可选):地区代码(例如,'us'、'uk'、'ca'、'au')。
  • safeSearch(可选):过滤级别('off'、'moderate'、'strict')。
  • timeRange(可选):时间过滤器('hour'、'day'、'week'、'month'、'year')。

示例用法

{
"name": "search",
"arguments": {
"query": "Model Context Protocol MCP",
"limit": 5,
"language": "en",
"region": "us",
"safeSearch": "moderate",
"timeRange": "week"
}
}

与Claude Desktop配置

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

{
"mcpServers": {
"enhanced-google-search": {
"command": "npx",
"args": ["tsx", "/path/to/your/project/src/server.ts"]
}
}
}

📚 详细文档

架构

核心组件

  1. UserAgentGenerator:创建逼真的浏览器指纹。
  2. RequestAnonymizer:处理请求的匿名化和定时。
  3. SearchParameterBuilder:构建优化的搜索参数。
  4. ResultParser:采用多种策略进行强大的HTML解析。

反检测特性

  • 浏览器指纹轮换:循环使用逼真的用户代理。
  • 请求头随机化:改变请求头以避免出现模式。
  • 定时随机化:在请求之间添加随机延迟。
  • 会话管理:生成唯一的会话标识符。
  • 参数变化:添加随机搜索参数。

错误处理

服务器为以下情况提供了全面的错误处理:

  • 谷歌的速率限制。
  • 网络超时和连接问题。
  • 访问被拒绝/请求被阻止。
  • 无效或空响应。
  • 解析失败时的后备策略。

开发

项目结构

src/
├── server.ts          # 主MCP服务器实现
├── search.ts          # 增强的搜索功能
├── search.test.ts     # 全面的测试套件
└── types.ts           # TypeScript类型定义

代码质量

项目包含以下内容:

  • TypeScript:提供完整的类型安全和智能感知支持。
  • ESLint:使用TypeScript规则进行代码检查。
  • Prettier:确保代码格式一致。
  • Vitest:快速可靠的测试框架。

脚本

  • npm run build:将TypeScript编译为JavaScript。
  • npm run start:在生产模式下启动服务器。
  • npm run dev:使用CLI在开发模式下启动。
  • npm run test:运行测试套件。
  • npm run test:watch:在监视模式下运行测试。
  • npm run lint:检查代码质量和类型。
  • npm run format:使用Prettier格式化代码。

测试

测试套件涵盖以下方面:

  • 基本搜索功能。
  • 参数验证和处理。
  • 语言和地区过滤。
  • 安全搜索和时间范围过滤。
  • 复杂查询处理。
  • 错误场景和边缘情况。
  • URL验证和结果格式化。

所有测试都使用真实的谷歌搜索请求,以确保功能在实际中正常工作。

贡献

  1. 分叉仓库。
  2. 创建功能分支。
  3. 进行更改并添加测试。
  4. 运行npm run lintnpm run test
  5. 提交拉取请求。

📄 许可证

本项目采用MIT许可证,详情请参阅LICENSE文件。

  • 0 关注
  • 0 收藏,20 浏览
  • system 提出于 2025-09-22 12:42

相似服务问题

相关AI产品