MCP未检测到Chromedriver
](https://smithery.ai/server/@dragons96/mcp-undetected-chromedriver)
基于未检测到的chromedriver构建的MCP服务,提供了一个全面的界面,用于自动化Chrome浏览器控制,同时绕过反机器人检测。
安装
通过以下方式自动安装适用于Claude Desktop的MCP Undetected Chromedriver 史密瑟里:
npx -y @smithery/cli install @dragons96/mcp-undetected-chromedriver --client claude使用未检测到的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(多通道协议)服务,它将未检测到的Chromedriver库的功能打包成一系列易于使用的API。该项目特别适合在自动化测试、数据抓取或web自动化脚本中需要绕过现代网站反机器人检测机制的场景。
主要特点
- 基于未检测到的chromedriver,有效绕过网站反bot检测
- 提供丰富的浏览器操作API接口
- 支持屏幕截图、PDF导出和其他功能
- 支持复杂的页面交互操作,如点击、填写表单、拖动等。
- 与MCP生态系统中的其他工具无缝集成
事项清单
- \[\]优化浏览器驱动程序管理并处理驱动程序中断
- \[\]扩展API功能
- \[\]添加更全面的错误处理和日志记录
- \[\]通过更多使用示例改进文档
- \[\]添加对浏览器配置文件和扩展的支持
用法
启动服务
mcp-server-undetected-chromedriver可用API
该服务提供以下主要API接口:
browser_navigate:导航到指定的URLbrowser_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:在页面上显示HTMLbrowser_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")运作原理
该服务使用未被检测到的chromedriver库创建一个专门的Chrome浏览器实例,有效地规避了常见的反机器人检测机制。该服务通过MCP协议封装了这些功能,提供了一个易于使用的API接口,使自动测试和web抓取更加方便。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献指南
欢迎在GitHub Issues页面上提交错误报告和功能请求。如果你想贡献代码,请先创建一个问题来讨论你的想法。
常见问题解答
Q: 为什么选择未检测到的chromedriver而不是标准的selenium Web驱动程序?
A: 未检测到的chromedriver是专门为绕过Cloudflare、Distil Networks等现代网站的反机器人检测机制而设计的,使其在数据抓取和自动化测试场景中更加可靠。
Q: 该服务如何处理浏览器实例?
A: 该服务维护一个全局浏览器实例,该实例是在首次调用需要浏览器的API时自动创建的。可以使用以下命令显式关闭浏览器 browser_close API
Q: 如何处理iframe中的元素?
A: The browser_iframe_click API可以直接对iframe中的元素进行操作,而无需手动切换帧上下文。
