MCP 浏览器自动化服务器是一款简单却功能强大的工具,它支持通过 REST API 对浏览器进行灵活控制,能够截取屏幕截图,还能实时监控控制台日志,为浏览器自动化操作提供了便利。
MCP 浏览器自动化服务器可通过 REST API 控制浏览器,实现创建会话、导航页面、截图等功能。以下是启动服务器的步骤:
python server.py
服务器将在 http://localhost:8000 上运行。
git clone https://github.com/weir1/mcp-browser-automation.git
cd mcp-browser-automation
python -m venv venv
.\venv\Scripts\Activate
pip install -r requirements.txt
playwright install
POST /session/create
响应:{ "session_id": "..." }
POST /session/{session_id}/navigate?url=https://example.com
POST /session/{session_id}/screenshot?name=screenshot1&selector=.my-element
如果未提供选择器,则截取全页屏幕截图。
POST /session/{session_id}/click?selector=.my-button
POST /session/{session_id}/fill?selector=input[name="username"]&value=myuser
WebSocket /session/{session_id}/console
POST /session/{session_id}/close
import requests
import websockets
import asyncio
import json
# 创建一个会话
response = requests.post("http://localhost:8000/session/create")
session_id = response.json()["session_id"]
# 导航到 URL
requests.post(f"http://localhost:8000/session/{session_id}/navigate?url=https://example.com")
# 截取屏幕截图
response = requests.post(f"http://localhost:8000/session/{session_id}/screenshot?name=example")
with open("screenshot.png", "wb") as f:
f.write(response.content)
# 监控控制台日志
async def monitor_console():
async with websockets.connect(f"ws://localhost:8000/session/{session_id}/console") as ws:
while True:
message = await ws.recv()
print(json.loads(message))
asyncio.get_event_loop().run_until_complete(monitor_console())
MIT