Token导航 LogoToken导航TokenDH.com
Web Search logo
浏览器工具stdio官方级别未说明来源级核验

Web Search

MCP Server

一个基于Playwright的Python工具,绕过搜索引擎的反爬机制执行谷歌搜索并提取结果,可作为命令行工具或MCP服务器为AI助手提供实时搜索能力。

工具数

0

提示词数

0

GitHub Stars

6

资源数

0
搜索引擎开源工具PythonClaude浏览器自动化Claude DesktopClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

iwanghc

提供方

iwanghc

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

谷歌搜索工具

一个基于Playwright的Python工具,绕过搜索引擎的反抓取机制来执行谷歌搜索并提取结果。它可以直接用作命令行工具或模型上下文协议(MCP)服务器,为Claude等AI助手提供实时搜索功能。

中文文档

主要特点

  • 当地SERP API备选方案:无需依赖付费搜索引擎结果API服务,所有搜索都在本地执行
  • 高级反机器人检测绕过技术:

- 模拟真实用户行为的智能浏览器指纹管理 - 自动保存和恢复浏览器状态,以减少验证频率 - 智能无头/有头模式切换,需要验证时自动切换到有头模式 - 随机化设备和区域设置以降低检测风险

  • 原始HTML检索:当谷歌的页面结构发生变化时,能够获取搜索结果页面的原始HTML(删除CSS和JavaScript)进行分析和调试
  • 页面截图:保存HTML内容时自动捕获并保存整页屏幕截图
  • MCP服务器集成:为Claude等人工智能助手提供实时搜索功能,无需额外的API密钥
  • 完全开源和免费:所有代码都是开源的,没有使用限制,可自由定制和扩展
  • Python原生:使用Python构建,性能更好,部署更容易

技术特性

  • 使用Python 3.8开发+,提供卓越的性能和广泛的兼容性
  • 基于的浏览器自动化 剧作家,支持多种浏览器引擎
  • 搜索关键字的命令行参数支持
  • MCP服务器支持 用于AI助手集成
  • 返回带有标题、链接和代码段的搜索结果
  • 检索搜索结果页面的原始HTML进行分析的选项
  • JSON格式输出
  • 支持无头和有头模式(用于调试)
  • 详细的测井输出
  • 稳健的错误处理
  • 浏览器状态保存和恢复,有效避免反机器人检测
  • 反机器人保护机制 在多个层面

安装

# Install from source
git clone https://github.com/iwanghc/mcp_web_search.git
cd mcp_web_search

# Install Python dependencies
pip install -r requirements.txt

# Install Playwright browsers
playwright install chromium

用法

命令行工具

# Direct command line usage
python cli.py "search keywords"

# Using command line options
python cli.py --limit 5 --timeout 30000 "search keywords"

# Get raw HTML of search result page
python cli.py --get-html "search keywords"

# Get HTML and save to file
python cli.py --get-html --save-html "search keywords"

MCP服务器

# Configure model API KEY and other information in dotenv.env
# USE MCP server
python -m mcp_integration.client

命令行选项

  • -l, --limit :结果计数限制(默认值:10)
  • -t, --timeout :超时时间(毫秒)(默认值:30000)
  • --no-headless:显示浏览器界面(用于调试)
  • --remote-debugging-port :启用远程调试端口(默认值:9222)
  • `--state-file

`:浏览器状态文件路径(默认:./Browser state.json)

  • --no-save-state:不保存浏览器状态
  • --get-html:获取搜索结果页面的原始HTML,而不是解析结果
  • --save-html:将HTML保存到文件(与--get.HTML一起使用)
  • `--html-output

`:指定HTML输出文件路径(与--gethtml和--savehtml一起使用)

  • -V, --version:显示版本号
  • -h, --help:显示帮助信息

输出示例

{
  "query": "deepseek",
  "results": [
    {
      "title": "DeepSeek",
      "link": "https://www.deepseek.com/",
      "snippet": "DeepSeek-R1 is now live and open source, rivaling OpenAI's Model o1. Available on web, app, and API. Click for details. Into ..."
    },
    {
      "title": "DeepSeek",
      "link": "https://www.deepseek.com/",
      "snippet": "DeepSeek-R1 is now live and open source, rivaling OpenAI's Model o1. Available on web, app, and API. Click for details. Into ..."
    },
    {
      "title": "deepseek-ai/DeepSeek-V3",
      "link": "https://github.com/deepseek-ai/DeepSeek-V3",
      "snippet": "We present DeepSeek-V3, a strong Mixture-of-Experts (MoE) language model with 671B total parameters with 37B activated for each token."
    }
    // More results...
  ]
}

HTML输出示例

使用时 --get-html 选项,输出将包含HTML内容相关信息:

{
  "query": "playwright automation",
  "url": "https://www.google.com/",
  "originalHtmlLength": 1291733,
  "cleanedHtmlLength": 456789,
  "htmlPreview": "..."
}

如果你也使用 --save-html 选项,输出还将包括HTML保存的文件路径:

{
  "query": "playwright automation",
  "url": "https://www.google.com/",
  "originalHtmlLength": 1292241,
  "cleanedHtmlLength": 458976,
  "savedPath": "./google-search-html/playwright_automation-2025-04-06T03-30-06-852Z.html",
  "screenshotPath": "./google-search-html/playwright_automation-2025-04-06T03-30-06-852Z.png",
  "htmlPreview": "..."
}

MCP服务器

该项目提供模型上下文协议(MCP)服务器功能,允许像克劳德这样的人工智能助手直接使用谷歌搜索功能。MCP是一种开放协议,使AI助手能够安全地访问外部工具和数据。

与Claude Desktop集成

  1. 编辑Claude Desktop配置文件

- 雨衣: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json - 通常位于 C:\Users\username\AppData\Roaming\Claude\claude_desktop_config.json - 您可以进入 %APPDATA%\Claude 在Windows资源管理器地址栏中直接访问

  1. 添加服务器配置并重新启动Claude
{
  "mcpServers": {
    "google-search": {
      "command": "python",
      "args": ["mcp_server_simple.py"]
    }
  }
}

集成后,您可以直接使用Claude中的搜索功能,例如“搜索最新的人工智能研究”。

项目结构

google-search/
├── Core Functions/
│   ├── google_search/
│   │   ├── engine.py              # Search engine implementation
│   │   ├── browser_manager.py     # Browser management and automation
│   │   ├── search_executor.py     # Search execution logic
│   │   ├── html_extractor.py      # HTML parsing and extraction
│   │   ├── fingerprint.py         # Browser fingerprint management
│   │   ├── utils.py               # Utility functions
│   │   └── __init__.py            # Package initialization
│   └── cli.py                     # Command line interface
├── MCP Integration/
│   ├── mcp_integration/
│   │   ├── server.py              # MCP server implementation
│   │   ├── client.py              # MCP client implementation
│   │   └── __init__.py            # Package initialization
├── Common Utilities/
│   ├── common/
│   │   ├── logger.py              # Logging system
│   │   ├── types.py               # Common data types
│   │   └── __init__.py            # Package initialization
├── Configuration & Runtime/
│   ├── requirements.txt            # Python dependencies
│   ├── dotenv.env                  # Environment variables
│   ├── browser-state.json          # Browser state persistence
│   ├── browser-state-fingerprint.json # Browser fingerprint data
│   └── .gitignore                  # Git ignore rules
├── Documentation/
│   ├── README.md                   # English documentation
│   ├── README.zh-CN.md             # Chinese documentation
│   └── google_search/REFACTOR_README.md # Refactoring notes
├── Development/
│   ├── .vscode/                    # VS Code configuration
│   └── logs/                       # Application logs
└── Other/
    └── __pycache__/                # Python cache files

技术栈

  • Python 3.8+:开发语言,提供卓越的性能和兼容性
  • 剧作家:用于浏览器自动化,支持多个浏览器
  • MCP-SDK:用于实施MCP服务器开发工具
  • 异步IO:Python异步I/O标准库
  • aiofiles:异步文件操作

开发指南

所有命令都可以在项目根目录中运行:

# Install dependencies
pip install -r requirements.txt

# Install Playwright browsers
playwright install chromium

# Run CLI tool
python cli.py "search keywords"

# Start MCP server
python mcp_server_simple.py

# Test MCP client
python mcp_client_enhanced.py

错误处理

该工具内置了强大的错误处理机制:

  • 浏览器启动失败时提供友好的错误信息
  • 发生网络连接问题时自动返回错误状态
  • 搜索结果解析失败时提供详细日志
  • 在超时情况下优雅地退出并返回有用信息

备注

一般注意事项

  • 此工具仅用于学习和研究目的
  • 请遵守谷歌的服务条款和政策
  • 不要过于频繁地发送请求,以免被谷歌屏蔽
  • 某些地区可能需要代理才能访问谷歌
  • Playwright需要安装浏览器,首次使用时会自动下载

状态文件

  • 状态文件包含浏览器Cookie和存储数据,请确保其安全
  • 使用状态文件可以有效避免谷歌的反机器人检测,提高搜索成功率

MCP服务器

  • 使用MCP服务器时,请确保Claude Desktop已更新到最新版本
  • 配置Claude Desktop时,请使用指向MCP服务器文件的绝对路径

Windows环境特别说明

  • 在Windows环境中,首次运行可能需要管理员权限才能安装Playwright浏览器
  • 如果遇到权限问题,请尝试以管理员身份运行命令提示符或PowerShell
  • Windows防火墙可能会阻止Playwright浏览器的网络连接,请在系统提示时允许访问
  • 默认情况下,浏览器状态文件保存在用户的主目录中 .google-search-browser-state.json
  • 日志文件保存在系统临时目录下 google-search-logs 文件夹

与商业SERP API的比较

与付费搜索引擎结果API服务(如SerpAPI)相比,该项目具有以下优势:

  • 完全免费:无需支付API电话费
  • 本地执行:所有搜索都在本地执行,不依赖于第三方服务
  • 隐私保护:第三方不会记录搜索查询
  • 可定制性:完全开源,可以根据需要进行修改和扩展
  • 无使用限制:不受API调用次数或频率限制
  • MCP集成:原生支持与Claude等AI助手集成

反机器人保护

该项目实施了多层反机器人保护:

客户端级保护

  • 具有随机延迟的请求间隔控制
  • 工具调用超时保护
  • 智能错误处理

服务器级保护

  • 请求频率限制
  • 请求之间的随机延迟
  • 全球请求计数和管理

搜索级别保护

  • 浏览器指纹随机化
  • 设备和区域随机化
  • 浏览器状态管理
  • 自动验证码检测和处理

演出

  • 响应时间:通常为5-15秒
  • 成功率:95%以上(含州文件)
  • 并发:支持异步操作
  • 内存使用:优化了每次通话后的清理
  • 稳定性:强大的错误恢复和超时处理

目录标签

目录标签

搜索引擎开源工具PythonClaude浏览器自动化本地部署爬虫工具AI集成

支持客户端

Claude DesktopClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP