浏览器自动化服务

专为Claude Code Web环境设计的Playwright MCP服务器,通过JWT认证代理实现浏览器自动化。

  • by takeru
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 takeru/Kagami

使用说明

加贺美

克劳德代码网络独家 剧作家MCP服务器。通过JWT身份验证代理启用浏览器自动化。

概述

这个项目是 专为Claude Code Web环境设计 并为Playwright提供了一个MCP(模型上下文协议)服务器。

重要提示: 此项目仅设计为在Claude Code Web环境中工作。它不适用于本地环境或其他环境。

主要特点:

  • 自动设置功能(首次启动时自动安装所需组件)
  • 通过JWT身份验证代理进行外部访问
  • 使用Firefox浏览器实现自动化
  • 自动导入CA证书
  • 符合MCP协议

建筑

Claude Code → mcp.py → playwright-mcp (Firefox) → proxy.py → JWT Auth Proxy → Internet
  1. mcp.py:MCP服务器入口点。负责初始设置和启动proxy.py
  2. @剧作家/mcp:Playwright MCP服务器实现(Node.js)
  3. 火狐:浏览器引擎
  4. proxy.py:本地代理服务器
  5. JWT身份验证代理:用于外部访问的身份验证代理

设置

自动设置(推荐)

首次启动时将自动设置以下内容:

  1. certutil安装
  2. @剧作家/mcp装置
  3. Firefox安装
  4. Firefox配置文件创建
  5. CA证书导入
  6. 配置文件生成

注:

  • 首次启动可能需要30秒或更长时间

用法

作为MCP服务器启动

在中配置 .mcp.json Claude Code将自动启动它:

{
  "mcpServers": {
    "playwright": {
      "command": "python3",
      "args": [
        "playwright_mcp_claude_code_web/mcp.py"
      ]
    }
  }
}

文件结构

.
├── playwright_mcp_claude_code_web/
│   ├── mcp.py                          # MCP server (uses only standard library)
│   ├── setup_minimal.py                # Minimal synchronous setup
│   ├── setup_mcp.py                    # Full asynchronous setup
│   └── README.md                       # Detailed documentation
├── .mcp.json                           # MCP server configuration
└── README.md                           # This file

技术细节

启动流程

mcp.py 使用两阶段设置方法来避免超时问题:

阶段1:同步设置(在响应之前运行)

  1. 最小设置 (setup_minimal.py)

    • 安装 @playwright/mcp 通过npm
    • 创建最小的Firefox配置文件
  2. 提取工具列表

    • 开始临时 @playwright/mcp 过程
    • 获取可用的工具定义
    • 存储工具列表,以便立即响应 tools/list 请求:
    • 终止临时进程
  3. 启动MCP服务器

    • 以MCP服务器身份开始响应
    • 返回存储的工具列表 tools/list 请求:
    • 返回“安装正在进行”错误 tools/call 请求:

阶段2:异步设置(在后台运行)

  1. 完整安装 (setup_mcp.py -在后台线程中运行)

    • 安装 certutil (用于证书管理)
    • 安装 proxy.py 通过紫外线
    • 安装Firefox浏览器
    • 创建Firefox配置文件(/home/user/firefox-profile)
    • 导入CA证书以进行TLS检查
    • 生成最终配置文件
  2. 启动服务

    • 开始 proxy.py (本地主机:18915)
    • 开始 @playwright/mcp 具有完整配置
    • 开始代理所有请求 @playwright/mcp

通信流程(设置后)

  1. Claude Code向发送请求 mcp.py 通过MCP协议(stdin/stdout)
  2. mcp.py 代理请求 @playwright/mcp
  3. @playwright/mcp 启动Firefox(代理设置:localhost:18915)
  4. proxy.py 将请求转发到JWT身份验证代理
  5. 通过经过身份验证的代理访问外部站点

安全

  • 将用于TLS检查的CA证书导入Firefox配置文件
  • 所有HTTPS流量都通过JWT身份验证代理
  • Firefox使用专用配置文件(/home/user/Firefox配置文件)运行

注: Claude Code Web环境出于安全审计目的对所有HTTPS通信执行TLS检查。此项目导入必要的CA证书,以便在此受监视的环境中实现安全浏览。

参考文献

许可证

麻省理工学院