使用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)-启动浏览器并导航到URLclick_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
稳健的错误处理
- 自动清理浏览器会话
- 从解析错误中优雅地恢复
- 用于调试的全面日志记录
