MCP Web浏览器服务器
由Playwright提供支持的模型上下文协议(MCP)高级web浏览服务器,通过灵活、安全的API实现无头浏览器交互。
🌐 特性
- 无头网页浏览:导航到任何绕过SSL证书验证的网站
- 整页内容提取:检索完整的HTML内容,包括动态加载的JavaScript
- 多标签支持:创建、管理和在多个浏览器选项卡之间切换
- 高级Web交互工具:
- 提取文本内容 - 点击页面元素 - 在表单字段中输入文本 - 截图 - 提取具有过滤功能的页面链接 - 向任何方向滚动页面 - 在页面上执行JavaScript - 刷新页面 - 等待导航完成
- 资源管理:不活动后自动清理未使用的资源
- 增强的页面信息:获取当前页面的详细元数据
🚀 快速开始
先决条件
- Python 3.10+
- MCP-SDK
- 剧作家
安装
# Install MCP and Playwright
pip install mcp playwright
# Install browser dependencies
playwright installClaude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"web-browser": {
"command": "python",
"args": [
"/path/to/your/server.py"
]
}
}
}💡 使用示例
基本Web导航
# Browse to a website
page_content = browse_to("https://example.com")
# Extract page text
text_content = extract_text_content()
# Extract text from a specific element
title_text = extract_text_content("h1.title")Web交互
# Navigate to a page
browse_to("https://example.com/login")
# Input text into a form
input_text("#username", "your_username")
input_text("#password", "your_password")
# Click a login button
click_element("#login-button")电脑屏幕截图工具
# Capture full page screenshot
full_page_screenshot = get_page_screenshots(full_page=True)
# Capture specific element screenshot
element_screenshot = get_page_screenshots(selector="#main-content")链接提取
# Get all links on the page
page_links = get_page_links()
# Get links matching a pattern
filtered_links = get_page_links(filter_pattern="contact")多标签浏览
# Create a new tab
tab_id = create_new_tab("https://example.com")
# Create another tab
another_tab_id = create_new_tab("https://example.org")
# List all open tabs
tabs = list_tabs()
# Switch between tabs
switch_tab(tab_id)
# Close a tab
close_tab(another_tab_id)高级交互
# Scroll the page
scroll_page(direction="down", amount="page")
# Execute JavaScript on the page
result = execute_javascript("return document.title")
# Get detailed page information
page_info = get_page_info()
# Refresh the current page
refresh_page()
# Wait for navigation to complete
wait_for_navigation(timeout_ms=5000)🛡️ 安全功能
- SSL证书验证旁路
- 安全的浏览器上下文管理
- 自定义用户代理配置
- 错误处理和全面日志记录
- 可配置的超时设置
- CSP旁路控制
- 防止cookie被盗
🔧 故障排除
常见问题
- SSL证书错误:自动绕过
- 页面加载缓慢:调整超时时间
browse_to()方法 - 未找到元素:仔细验证选择器
- 浏览器资源使用情况:非活动期后自动清理
日志记录
所有重要事件都会记录详细信息,以便于调试。
📋 刀具参数
browse_to(url: str, context: Optional[Any] = None)
url:要导航到的网站context:可选上下文对象(当前未使用)
extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)
selector:用于提取特定内容的可选CSS选择器context:可选上下文对象(当前未使用)
click_element(selector: str, context: Optional[Any] = None)
selector:要单击的元素的CSS选择器context:可选上下文对象(当前未使用)
get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)
full_page:捕获整个页面的屏幕截图selector:截图的可选元素context:可选上下文对象(当前未使用)
get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
filter_pattern:筛选链接的可选文本模式context:可选上下文对象(当前未使用)
input_text(selector: str, text: str, context: Optional[Any] = None)
selector:输入元素的CSS选择器text:要输入的文本context:可选上下文对象(当前未使用)
create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)
url:在新选项卡中导航到的可选URLcontext:可选上下文对象(当前未使用)
switch_tab(tab_id: str, context: Optional[Any] = None)
tab_id:要切换到的选项卡的IDcontext:可选上下文对象(当前未使用)
list_tabs(context: Optional[Any] = None)
context:可选上下文对象(当前未使用)
close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)
tab_id:要关闭的选项卡的可选ID(默认为当前选项卡)context:可选上下文对象(当前未使用)
refresh_page(context: Optional[Any] = None)
context:可选上下文对象(当前未使用)
get_page_info(context: Optional[Any] = None)
context:可选上下文对象(当前未使用)
scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)
direction:滚动方向(“上”、“下”、“左”、“右”)amount:可滚动的金额(“页面”、“一半”或数字)context:可选上下文对象(当前未使用)
wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)
timeout_ms:等待的最长时间(毫秒)context:可选上下文对象(当前未使用)
execute_javascript(script: str, context: Optional[Any] = None)
script:要执行的JavaScript代码context:可选上下文对象(当前未使用)
🤝 贡献
欢迎投稿!请随时提交拉取请求。
开发设置
# Clone the repository
git clone https://github.com/random-robbie/mcp-web-browser.git
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
# Install dependencies
pip install -e .[dev]📄 许可证
MIT许可证
🔗 相关项目
💬 支持
如有疑问,请 打开一个问题 在GitHub上。

