浏览器自动化代理

一个基于Python的交互式MCP代理,利用LangChain、Groq和Playwright提供智能浏览器自动化和网页交互功能。

  • by uzzalpro
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 uzzalpro/mcp-agent

使用说明

MCP代理

使用Python构建的交互式MCP(模型上下文协议)代理,利用LangChain、Groq和Playwright提供智能浏览器自动化和web交互。

概述

该项目实现了一个MCP代理,可以与多个MCP服务器交互,包括:

  • 剧作家:浏览器自动化和网页抓取
  • Airbnb:搜索和检索Airbnb房源
  • DuckDuckGo搜索:Web搜索功能

该代理通过LangChain使用Groq的Qwen模型进行自然语言理解和决策,并内置对话记忆进行上下文感知交互。

特性

  • 🤖 智能体:通过LangChain由Groq的Qwen3-32B型号提供动力
  • 🌐 浏览器自动化:用于网络交互的完整Playwright集成
  • 💬 对话记忆:在多个交互中保持上下文
  • 🔌 MCP集成:无缝连接到多个MCP服务器
  • 📦 现代工具:内置 uv 用于快速依赖关系管理

先决条件

  • Python 3.12或更高版本
  • 紫外线 包管理器
  • Node.js和npm(适用于使用npx的MCP服务器)
  • Groq API密钥

安装

1.安装uv

如果你没有 uv 已安装,请使用以下方法之一进行安装:

# Using curl
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or using pip
pip install uv

2.克隆和设置

cd mcp-agent

# Create virtual environment and install dependencies with uv
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
uv pip install -r requirements.txt
# Or use uv sync if you have a pyproject.toml
uv sync

3.配置环境变量

创建一个 .env 项目根目录中的文件:

GROQ_API_KEY=your_groq_api_key_here

您可以从获取Groq API密钥 console.groq.com.

4.安装Playwright浏览器(如果需要)

Playwright MCP服务器可能需要安装浏览器:

npx playwright install

项目结构

mcp-agent/
├── main.py              # Main agent implementation
├── browser_mcp.json     # MCP server configuration
├── pyproject.toml       # Python project configuration
├── requirements.txt     # Python dependencies
├── uv.lock             # uv lock file
├── .env                # Environment variables (create this)
└── README.md           # This file

用法

运行代理

# Activate virtual environment
source .venv/bin/activate

# Run the agent
python main.py

交互式命令

代理运行后,您可以:

  • 正常聊天:键入您的问题或请求
  • 类型 clear:清除对话历史记录
  • 类型 exit 或 quit:结束对话

交互示例

You: Search for Airbnb listings in San Francisco for next weekend

You: Take a screenshot of the first search result

You: Navigate to google.com and search for "Python MCP"

You: What was the first thing I asked you?

配置

MCP服务器

这 browser_mcp.json 文件配置哪些MCP服务器可用:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    },
    "airbnb": {
      "command": "npx",
      "args": ["-y", "@openbnb/mcp-server-airbnb"]
    },
    "duckduckgo-search": {
      "command": "npx",
      "args": ["-y", "duckduckgo-mcp-server"]
    }
  }
}

您可以通过修改此配置文件来添加或删除MCP服务器。

代理设置

在 main.py,您可以自定义:

  • 模型:更改Groq模型(默认值: qwen/qwen3-32b)
  • 最大步幅:调整 max_steps 参数(默认值:15)
  • 记忆:切换 memory_enabled (默认值:True)
agent = MCPAgent(
    llm=llm,
    client=client,
    max_steps=15,        # Maximum reasoning steps
    memory_enabled=True, # Enable conversation memory
)

依赖项

核心库

  • mcp使用 (>=1.4.0):用于与MCP服务器交互的Python库
  • 朗肯码头 (>=1.0.1):Groq模型的LangChain集成
  • python dotenv (>=1.2.1):环境变量管理

MCP服务器(通过npx)

  • @剧作家/mcp:浏览器自动化服务器
  • @openbnb/mcp服务器airbnb:Airbnb搜索服务器
  • duckduckgo mcp服务器:DuckDuckGo搜索服务器

运作原理

  1. 初始化:代理加载MCP服务器配置并初始化Groq LLM
  2. 用户输入:接收用户的自然语言命令
  3. 推理:LLM根据请求决定使用哪些MCP工具
  4. 执行:调用适当的MCP服务器工具(例如,用于浏览器操作的Playwright)
  5. 响应:在保持对话上下文的情况下将结果返回给用户

故障排除

发展

添加新的MCP服务器

  1. 将服务器配置添加到 browser_mcp.json
  2. 重新启动代理
  3. 代理将自动发现并使用新服务器的工具

扩展功能

您可以通过以下方式扩展代理:

  • 向MCPAgent添加自定义工具
  • 实施额外的MCP服务器
  • 自定义LLM提示或行为
  • 添加新的对话命令

资源

许可证

[在此处添加您的许可证]

贡献

[在此处添加贡献指南]