返回市场
mpp服务器浏览器使用奥拉马

mpp服务器浏览器使用奥拉马

作者:Cam100011101012 星标更新:2025-07-07

项目介绍

使用Ollama的MCP浏览器自动化

这是一个强大的浏览器自动化系统,使AI代理能够通过模型上下文协议(MCP)控制网络浏览器。此实现特别设计用于与Ollama本地模型配合使用,提供了一种安全且高效的方法,利用本地托管的AI模型来自动化浏览器交互。

特性

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

快速开始

先决条件

  • Python 3.8+
  • 安装并运行Ollama
  • uv包管理器(推荐)

安装

# 克隆仓库
git clone https://github.com/Cam10001110101/mcp-server-browser-use-ollama
cd mcp-server-browser-use-ollama

# 使用uv安装(推荐)
uv pip install -e .
playwright install

# 启动Ollama并拉取模型
ollama serve  # 在一个终端中
ollama pull qwen3  # 在另一个终端中

使用

该系统可以以两种模式使用:

选项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驱动的自动化

# 带有对话历史的交互式自动化
python src/client.py src/server.py

# 通过命令行执行自定义任务
python src/client.py src/server.py "导航到Google并搜索'Ollama模型'"

# 从文件执行复杂任务
python src/client.py src/server.py task_description.txt --file

# 使用自定义模型
python src/client.py src/server.py "您的任务" --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 "在Google上搜索'Ollama模型'并总结前三个结果"

电子商务分析

python src/client.py src/server.py "比较Amazon上的无线耳机 - 创建包含价格、评分和特性的表格"

研究工作流程

python src/client.py src/server.py "研究2024年变压器架构改进,访问5个来源,并编译摘要"

文件为基础的复杂任务

# 创建任务文件
echo "导航到GitHub,搜索MCP存储库,并分析前五个结果" > my_task.txt

# 运行任务
python src/client.py src/server.py my_task.txt --file

环境变量

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

测试

# 运行纯MCP测试(推荐)
pytest tests/test_server_mcp.py -v

# 运行所有测试
pytest

# 运行特定测试类别
pytest tests/test_server_mcp.py    # 纯MCP实现测试
pytest tests/test_integration.py   # 集成测试

项目结构

mcp-server-browser-use-ollama/
├── src/                    # 核心源代码
│   ├── server.py          # MCP服务器实现
│   └── client.py          # 具有完整自动化能力的交互客户端
├── tests/                  # 测试套件
├── docs/                   # 额外文档
├── pyproject.toml         # 项目配置
└── README.md              # 此文件

架构

该系统采用客户端-服务器架构,使用MCP协议:

用户 → 客户端 → MCP协议 → 服务器 → Playwright浏览器
  • 服务器:纯MCP SDK服务器,提供浏览器自动化工具
  • 客户端:Langchain-Ollama集成,用于自然语言处理
  • 传输:基于stdio的MCP通信
  • 浏览器:Playwright自动化,支持跨浏览器

主要特性

交互式反馈循环

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

  • Ollama在每次操作后接收结果
  • 可根据浏览器状态调整策略
  • 维持完整的对话历史以供上下文使用
  • 支持命令行和文件为基础的任务输入

高级功能

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

灵活的模型支持

  • 与任何兼容Ollama的模型配合使用
  • 优化用于编码模型(qwen3,qwen2.5-coder:7b)
  • 可配置的上下文窗口和参数
  • 温度=0,确保确定性输出

强大的错误处理

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