Skip to main content
Glama

MCP-未检测到-Chrome驱动程序

铁匠徽章

基于未检测到的 chromedriver 构建的 MCP 服务,提供全面的界面,用于自动化 Chrome 浏览器控制,同时绕过反机器人检测。

中文詳細

安装

要通过Smithery自动为 Claude Desktop 安装 MCP-Undetected-Chromedriver:

npx -y @smithery/cli install @dragons96/mcp-undetected-chromedriver --client claude

Related MCP server: MCP Selenium

配置使用未检测到的 Chromedriver 服务器

以下是使用 Undetected-chromedriver 服务器的 Claude Desktop 配置:

{ "mcpServers": { "mcp-undetected-chromedriver": { "command": "npx", "args": [ "-y", "@smithery/cli@latest", "run", "@dragons96/mcp-undetected-chromedriver", "--config", "{}" ] } } }

要求

  • Python >= 3.11

  • Chrome 浏览器

紫外线安装

# Create virtual environment uv venv # Activate virtual environment # Windows .venv\Scripts\activate # Linux/MacOS source .venv/bin/activate # Install dependencies uv pip install -e .

项目介绍

MCP-Undetected-Chromedriver 是一个 MCP(多通道协议)服务,它将 undetected-chromedriver 库的功能封装成一系列易于使用的 API。该项目特别适用于需要在自动化测试、数据抓取或 Web 自动化脚本中绕过现代网站反机器人检测机制的场景。

主要特点

  • 基于undetected-chromedriver,有效绕过网站反机器人检测

  • 提供丰富的浏览器操作API接口

  • 支持截图、PDF导出等功能

  • 支持点击、填表、拖拽等复杂的页面交互操作。

  • 与 MCP 生态系统中的其他工具无缝集成

待办事项列表

  • [ ] 优化浏览器驱动管理,处理驱动中断

  • [ ] 扩展API功能

  • [ ] 添加更全面的错误处理和日志记录

  • [ ] 改进文档,增加更多使用示例

  • [ ] 添加对浏览器配置文件和扩展的支持

用法

启动服务

mcp-server-undetected-chromedriver

可用的 API

该服务提供以下主要API接口:

  • browser_navigate :导航到指定的 URL

  • browser_screenshot :截取当前页面的屏幕截图

  • browser_click :点击页面元素

  • browser_iframe_click :点击 iframe 内的元素

  • browser_fill :在输入字段中填充内容

  • browser_select :在下拉选择框中选择选项

  • browser_hover :将鼠标悬停在元素上

  • browser_evalute :执行 JavaScript 代码

  • browser_close :关闭浏览器

  • browser_get_visible_text :获取页面上可见的文本

  • browser_get_visible_html :获取页面上可见的 HTML

  • browser_go_back :在浏览器历史记录中向后导航

  • browser_go_forward :在浏览器历史记录中向前导航

  • browser_drag :拖动元素

  • browser_press_key :模拟按键

  • browser_save_as_pdf :将页面保存为 PDF

代码示例

from mcp.client import Client # Create MCP client client = Client() client.start("undetected-chromedriver-mcp-server") # Navigate to website response = client.call("browser_navigate", {"url": "https://example.com"}) print(response) # Take a screenshot response = client.call("browser_screenshot", {"name": "example"}) print(response) # Get page text response = client.call("browser_get_visible_text") print(response.content[0].text) # Close the browser client.call("browser_close")

工作原理

此服务使用 undetected-chromedriver 库创建专用的 Chrome 浏览器实例,可有效规避常见的反机器人检测机制。该服务通过 MCP 协议封装了这些功能,提供了易于使用的 API 接口,使自动化测试和网页抓取更加便捷。

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

贡献指南

欢迎在 GitHub Issues 页面上提交 Bug 报告和功能请求。如果您想贡献代码,请先创建 Issue 来讨论您的想法。

常问问题

问:为什么选择 undetected-chromedriver 而不是标准的 selenium webdriver?

答:undetected-chromedriver 专门设计用于绕过现代网站的反机器人检测机制,例如 Cloudflare、Distil Networks 等,使其对于数据抓取和自动化测试场景更加可靠。

问:该服务如何处理浏览器实例?

答:该服务维护一个全局浏览器实例,该实例会在首次调用需要浏览器的 API 时自动创建。您可以使用browser_close API 显式关闭浏览器。

问:如何处理 iframe 内的元素?

A: browser_iframe_click API可以直接操作iframe内的元素,不需要手动切换框架上下文。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dragons96/mcp-undetected-chromedriver'

If you have feedback or need assistance with the MCP directory API, please join our Discord server