README
🚀 浏览器 JavaScript 执行器
此项目提供了一种在 Python 中借助 MCP(模型控制协议)从浏览器执行 JavaScript 代码的方法,为开发者提供了便捷的跨语言执行方案。
🚀 快速开始
将 MCP 服务器添加到您的 Claude 配置中
...
"browser-js-evaluator": {
"command": "uv",
"args": [
"--directory",
"/path/to/this/repo/mcp_py_sse_browser_control",
"run",
"browser_server.py"
]
}
...
启动 Claude Desktop 后,此配置将启动 MCP 服务器和 Web 服务器。然后打开浏览器并访问 http://127.0.0.1:8000 连接到 Web 服务器。
使用 MCP 工具
MCP 服务器提供以下两个工具:
execute_javascript:在浏览器中执行任意的 JavaScript 代码。add_numbers:使用浏览器中的 JavaScript 相加两个数字。
这些工具可以从任何 MCP 客户端调用。
✨ 主要特性
- 实现了在 Python 环境中利用 MCP 协议从浏览器执行 JavaScript 代码。
- 项目架构清晰,分为 Web Server 和 MCP 服务器两个主要组件,便于管理和维护。
- 提供了实用的 MCP 工具,可方便地在浏览器中执行 JavaScript 操作。
🔧 技术细节
架构
项目分为两个主要组件:
- Web Server (
web_server.py):- 处理浏览器通过 Server-Sent 事件 (SSE) 的连接,实现服务器与浏览器之间的实时通信。
- 提供一个 REST API 端点用于执行 JavaScript,方便外部调用。
- 同步返回结果,保证操作的实时性和准确性。
- MCP 服务器 (
mcp_server.py):- 管理 Web 服务器的生命周期,确保 Web 服务器的稳定运行。
- 提供 MCP 工具以在浏览器中执行 JavaScript,为开发者提供便捷的操作接口。
- 通过 REST API 调用与 Web 服务器通信,实现组件之间的高效协作。
工作原理
- MCP 服务器在初始化生命周期时启动 Web 服务器。
- 浏览器通过 SSE 连接到 Web 服务器,建立实时通信通道。
- 当调用 MCP 工具时,它会向 Web 服务器发出 REST API 调用。
- Web 服务器通过 SSE 将 JavaScript 代码发送到浏览器。
- 浏览器执行代码并将结果通过 SSE 返回给 Web 服务器。
- Web 服务器将结果返回给 MCP 服务器。
- MCP 服务器将结果返回给调用者。
💻 使用示例
基础用法
配置 MCP 服务器到 Claude
...
"browser-js-evaluator": {
"command": "uv",
"args": [
"--directory",
"/path/to/this/repo/mcp_py_sse_browser_control",
"run",
"browser_server.py"
]
}
...
启动 Web 服务器(用于测试)
python web_server.py
高级用法
使用 execute_javascript 工具执行 JavaScript 代码
通过 MCP 客户端调用 execute_javascript 工具,在浏览器中执行任意 JavaScript 代码。例如,在浏览器中弹出一个提示框:
# 假设存在一个 MCP 客户端对象 mcp_client
mcp_client.execute_javascript("alert('Hello, World!');")
使用 add_numbers 工具相加两个数字
# 假设存在一个 MCP 客户端对象 mcp_client
result = mcp_client.add_numbers(3, 5)
print(result) # 输出相加结果
⚠️ 重要提示
⚠️ 重要提示
此 MCP 服务器可以在您的浏览器中执行任意的 JavaScript。这可能会很危险。请在了解其潜在影响后再使用此插件。自行承担风险。
🔧 开发
要独立运行 Web 服务器(用于测试):
python web_server.py
这将启动仅包含 Web 服务器而不带 MCP 集成的服务,方便开发者进行测试和调试。
Scan to join WeChat group