浏览器自动化服务

一个简单但功能强大的浏览器自动化服务器,允许通过REST API控制浏览器、截图和监控控制台日志。

  • by weir1
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 weir1/mcp-browser-automation

使用说明

MCP浏览器自动化服务器

一个简单但功能强大的浏览器自动化服务器,允许您通过REST API控制浏览器、截图和监视控制台日志。

特性

  • 创建浏览器会话
  • 导航到URL
  • 截图(整页或特定元素)
  • 点击元素
  • 填写表单输入
  • 通过WebSocket实时监控控制台日志
  • 结束会议

安装

  1. 克隆此存储库:
git clone https://github.com/weir1/mcp-browser-automation.git
cd mcp-browser-automation
  1. 创建虚拟环境并激活它:
python -m venv venv
.\venv\Scripts\Activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 安装Playwright浏览器:
playwright install

用法

  1. 启动服务器:
python server.py

服务器将于启动 http://localhost:8000

API终点

创建新会话

POST /session/create
Response: { "session_id": "..." }

导航到URL

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

Python使用示例

import requests
import websockets
import asyncio
import json

# Create a session
response = requests.post("http://localhost:8000/session/create")
session_id = response.json()["session_id"]

# Navigate to a URL
requests.post(f"http://localhost:8000/session/{session_id}/navigate?url=https://example.com")

# Take a screenshot
response = requests.post(f"http://localhost:8000/session/{session_id}/screenshot?name=example")
with open("screenshot.png", "wb") as f:
    f.write(response.content)

# Monitor console logs
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())

许可证

麻省理工学院