浏览器自动化工具

一个强大的浏览器自动化系统,通过模型上下文协议(MCP)使AI代理能够控制网页浏览器,特别设计用于与Ollama本地模型配合使用,提供安全高效的浏览器交互自动化。

  • by Cam10001110101
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 Cam10001110101/mcp-server-browser-use-ollama

使用说明

使用Ollama实现MCP浏览器自动化

一个强大的浏览器自动化系统,使AI代理能够通过模型上下文协议(MCP)控制web浏览器。此实现专为与Ollama本地模型配合使用而设计,提供了一种使用本地托管的AI模型自动进行浏览器交互的安全高效的方法。

特性

  • MCP集成:完全支持用于结构化AI浏览器通信的模型上下文协议
  • Olama模型支持:针对Ollama运行的本地AI模型进行了优化
  • 浏览器控件:使用Playwright完成浏览器自动化(Chrome、Firefox、Safari)
  • 人工智能驱动的自动化:通过本地LLM进行自然语言浏览器控制
  • 屏幕截图功能:视觉反馈和调试支持
  • 会话管理:具有自动清理功能的多个浏览器会话
  • 交互模式:AI和浏览器状态之间的持续反馈循环
  • 优化显示:浏览器启动最大化(1920x1080)以最小化滚动

快速开始

先决条件

安装

# Clone the repository
git clone https://github.com/Cam10001110101/mcp-server-browser-use-ollama
cd mcp-server-browser-use-ollama

# Install with uv (recommended)
uv pip install -e .
playwright install

# Start Ollama and pull a model
ollama serve  # In one terminal
ollama pull qwen3  # In another terminal

用法

该系统可用于两种模式:

选项1:直接MCP集成(与Claude Desktop)

在中配置 claude_desktop_config.json:

{
  "mcpServers": {
    "browser-use-ollama": {
      "command": "/path/to/.venv/bin/python",
      "args": ["/path/to/src/server.py"]
    }
  }
}

选项2:Ollama驱动的自动化

# Interactive automation with conversation history
python src/client.py src/server.py

# Custom task via command line
python src/client.py src/server.py "Navigate to Google and search for 'Ollama models'"

# Complex task from file
python src/client.py src/server.py task_description.txt --file

# With custom model
python src/client.py src/server.py "Your task" --model llama3.2:latest

可用工具

MCP服务器提供10个浏览器自动化工具:

  • launch_browser(url) -启动浏览器并导航到URL
  • click_element(session_id, x, y) -点击坐标
  • click_selector(session_id, selector) -通过CSS选择器单击元素
  • type_text(session_id, text) -在当前位置键入文本
  • scroll_page(session_id, direction) -向上/向下滚动页面
  • get_page_content(session_id) -提取页面文本内容
  • get_dom_structure(session_id, max_depth) -获取DOM树
  • extract_data(session_id, pattern) -提取结构化数据
  • take_screenshot(session_id) -截图
  • close_browser(session_id) -关闭浏览器会话

例子

基本网络搜索

python src/client.py src/server.py "Search for 'Ollama models' on Google and summarize the top 3 results"

电子商务分析

python src/client.py src/server.py "Compare wireless headphones on Amazon - create a table with prices, ratings, and features"

研究工作流程

python src/client.py src/server.py "Research transformer architecture improvements in 2024, visit 5 sources, and compile a summary"

基于文件的复杂任务

# Create a task file
echo "Navigate to GitHub, search for MCP repositories, and analyze the top 5 results" > my_task.txt

# Run the task
python src/client.py src/server.py my_task.txt --file

环境变量

  • OLLAMA_MODEL:指定Ollama模型(默认值: qwen3)
  • OLLAMA_HOST:Ollama API端点(默认值: http://localhost:11434)

测试

# Run pure MCP tests (recommended)
pytest tests/test_server_mcp.py -v

# Run all tests
pytest

# Run specific test categories
pytest tests/test_server_mcp.py    # Pure MCP implementation tests
pytest tests/test_integration.py   # Integration tests

项目结构

mcp-server-browser-use-ollama/
├── src/                    # Core source code
│   ├── server.py          # MCP server implementation
│   └── client.py          # Interactive client with full automation capabilities
├── tests/                  # Test suite
├── docs/                   # Additional documentation
├── pyproject.toml         # Project configuration
└── README.md              # This file

建筑

该系统使用具有MCP协议的客户端-服务器架构:

User → Client → MCP Protocol → Server → Playwright Browser
  • 服务器:提供浏览器自动化工具的纯MCP SDK服务器
  • 客户端:Langchain Ollama集成用于自然语言处理
  • 运输:基于stdio的MCP通信
  • 浏览器:用于跨浏览器支持的Playwright自动化

主要特点

交互式反馈循环

客户与Ollama保持持续对话,以实现动态自动化:

  • Ollama每次行动后都会收到结果
  • 可以根据浏览器状态调整策略
  • 根据上下文维护完整的对话历史记录
  • 支持命令行和基于文件的任务输入

高性能

  • 对话历史:用于复杂多步任务的32k令牌上下文窗口
  • 动作解析:JSON和LLM响应的启发式解析
  • 文件输入:支持文件中的复杂任务描述
  • 模型选择:在Olama车型之间轻松切换
  • 调试模式:用于故障排除的全面日志记录

灵活的模型支持

  • 适用于任何兼容Olama的型号
  • 针对编码模型进行了优化(qwen3、qwen2.5编码器:7b)
  • 可配置的上下文窗口和参数
  • 确定性输出的温度=0

稳健的错误处理

  • 自动清理浏览器会话
  • 从解析错误中优雅地恢复
  • 用于调试的全面日志记录