项目简介
本项目实现了一个基于 Model Context Protocol (MCP) 的服务器,它允许大型语言模型 (LLM) 客户端通过调用预设的工具,在用户的浏览器环境中执行 JavaScript 代码。该 MCP 服务器包含两个主要组件:一个是 Web 服务器,负责处理浏览器连接和 JavaScript 执行;另一个是 MCP 服务器,负责管理 Web 服务器的生命周期,并向 MCP 客户端提供工具接口。
主要功能点
- 远程JavaScript执行: 通过 MCP 工具 'execute_javascript',LLM 客户端可以发送任意 JavaScript 代码到用户的浏览器中执行,并获取执行结果。这使得 LLM 具备了操作网页的能力,例如获取网页内容、填写表单、模拟用户交互等。
- 预置工具示例: 提供 'add_numbers' 工具作为示例,演示了如何通过浏览器执行简单的计算任务。
- SSE实时通信: Web 服务器使用 Server-Sent Events (SSE) 协议与浏览器建立持久连接,实现 JavaScript 代码的实时发送和执行结果的即时返回。
- 易于集成: 作为一个 MCP 服务器,它可以方便地集成到任何支持 MCP 协议的 LLM 客户端中,例如 Claude。
安装步骤
- 克隆仓库: 首先,将 GitHub 仓库 'mcp_py_sse_browser_control' 克隆到您的本地计算机。
git clone https://github.com/matdmiller/mcp_py_sse_browser_control.git cd mcp_py_sse_browser_control - 安装依赖 (可选): 虽然项目没有明确的依赖文件,但根据代码内容,您可能需要安装 'fastapi', 'uvicorn', 'sse_starlette', 'httpx' 等 Python 库。如果您使用 'uv' 运行,通常不需要手动安装。
服务器配置
要将此 MCP 服务器添加到 MCP 客户端(例如 Claude),您需要在客户端的配置文件中添加如下服务器配置信息。请将 '/path/to/this/repo/mcp_py_sse_browser_control' 替换为您克隆仓库的实际本地路径。
{ "browser-js-evaluator": { "command": "uv", "args": [ "--directory", "/path/to/this/repo/mcp_py_sse_browser_control", // 请替换为仓库的实际路径 "run", "browser_server.py" ] } }
配置参数说明:
- 'server name': 'browser-js-evaluator' (服务器的名称,在 MCP 客户端配置中用于标识该服务器)
- 'command': 'uv' (启动服务器的命令,这里使用 'uv' 包管理器来运行 Python 脚本。您需要确保已安装 'uv'。)
- 'args': 启动命令的参数列表
- '--directory': '/path/to/this/repo/mcp_py_sse_browser_control' (指定 MCP 服务器代码所在的目录,请务必替换为仓库的实际路径)
- 'run': 'uv run' 子命令,用于运行 Python 脚本
- 'browser_server.py': MCP 服务器的启动脚本文件名
基本使用方法
- 启动 MCP 服务器: 在配置好 MCP 客户端后,启动您的 MCP 客户端(例如 Claude Desktop)。客户端会根据配置自动启动 'browser-js-evaluator' MCP 服务器。
- 连接浏览器: 打开您的浏览器,访问地址 'http://127.0.0.1:8000'。浏览器页面加载后,会自动通过 SSE 连接到 Web 服务器。请保持此页面打开,以便 MCP 服务器可以控制该浏览器执行 JavaScript 代码。
- 调用 MCP 工具: 在 MCP 客户端中,您可以使用 'execute_javascript' 工具来执行 JavaScript 代码。例如,如果您想获取当前浏览器的网页标题,可以调用该工具并传入 JavaScript 代码 'document.title'。MCP 服务器会将 JavaScript 代码发送到已连接的浏览器执行,并将执行结果返回给 MCP 客户端。
注意: 请务必注意 README 中的警告信息,此 MCP 服务器允许执行任意 JavaScript 代码,存在潜在的安全风险。请仅在您信任的环境中使用,并谨慎使用 'execute_javascript' 工具。
信息
分类
网页与API