Token导航 LogoToken导航TokenDH.com
POC MCP PLAYWRIGHT SESSION logo
浏览器工具未说明官方级别未说明来源级核验

POC MCP PLAYWRIGHT SESSION

MCP Server

一个基于Playwright和VNC的多租户浏览器控制系统,支持实时聊天命令控制和会话管理。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
浏览器自动化TypeScript会话管理容器化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kuldeepgorasiya

提供方

kuldeepgorasiya

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🚀 MCP Playwright VNC 项目 一个完整的多会话、容器化MCP系统,包含React + TypeScript客户端、Node.js服务器、Redis会话持久化、WebSocket实时更新,以及由Playwright驱动的VNC自动化功能。

🧩 系统概述

这个项目实现了一个多租户浏览器控制系统,其中每个用户会话都在一个独立的Docker容器(VNC + Playwright)中运行。 React 客户端通过 SSE/WebSocket 连接到服务器,允许使用聊天命令实时控制浏览器。

架构图:

React + TypeScript 客户端 (http://localhost:3001) WebSocket + REST API Node.js 服务器(http://localhost:3000) ↳ Redis(会话存储) ↳ Docker 代理(创建 VNC + Playwright 容器) ↳ Playwright 容器(s)

⚙️ 功能

✅ 基于登录和会话的身份验证 ✅ 动态容器化浏览器会话(VNC + Playwright) ✅ 基于聊天的浏览器控制(打开、导航、点击、输入) ✅ 通过WebSocket实现实时会话更新 ✅ 离线消息缓冲 + 重新连接 ✅ 会话在5分钟无操作后过期 ✅ 管理员面板,用于查看和管理所有会话

🧠 实时用户体验流程 1️⃣ 登录

访问 http://localhost:3001

使用凭据登录:

用户名:爱丽丝 密码:password123

服务器生成会话密钥并将其存储在Redis中。

2️⃣ 聊天标签页

使用聊天输入发送命令:

打开浏览器 导航至 https://example.com 点击#登录

服务器将这些命令发送到运行在您会话容器内的 Playwright。

3️⃣ 会话标签页

查看、创建、恢复或终止会话。

当新会话创建或会话过期时,会自动更新。

4️⃣ 管理员选项卡

显示所有用户的全部会话。

“Kill All”按钮会终止所有正在运行的容器。

5️⃣ 实时更新

服务器发出:

会话创建

会话已过期

会话已销毁

客户端通过WebSocket即时接收它们。

6️⃣ 离线缓冲区

离线时发送的消息会被缓存到localStorage中。

重新连接后自动重试。

🛠️ 设置 先决条件

安装:

sudo apt install docker docker-compose 翻译为中文是:“使用sudo apt安装docker和docker-compose”

确保Docker守护进程和Redis正在运行。

🧱 构建并运行

  1. 提取项目

解压 mcp-final-project-v5.zip 文件 进入目录 mcp-final-project-v5

  1. 构建容器

docker compose build(翻译为中文):使用 Docker Compose 构建(镜像)

  1. 运行堆栈

docker compose up 的中文翻译是:“使用 Docker Compose 启动服务”

  1. 访问

客户端(React UI): http://localhost:3001

服务器API:http://localhost:3000

Redis:仅内部使用(服务器使用)

💬 MCP 客户端配置示例

你的 config.json.example 文件看起来像这样:

{ "mcpServers": { "playwright-mcp-remote": { "disabled": false,, "超时时间": 60,, "url": "http://localhost:3000/sse",翻译成中文为:“网址”: “http://localhost:3000/sse”, "类型": "sse", "headers": { "x-session-key": "\", "x-用户名": "“ } } } }

React 客户端会自动读取此配置。

🧪 本地开发

如果你想在本地运行React客户端以加快迭代速度:

切换到客户端目录 npm install(安装npm包) npm run dev 翻译成中文是:“运行 npm 的 dev 脚本”

访问 http://localhost:5173

🧹 大扫除

停止所有容器:

\docker compose down\ 翻译成中文是:“停止并移除 Docker Compose 服务”

移除未使用的资源:

\docker system prune -f\ 翻译成中文是:强制清理 Docker 系统中的未使用数据

🔮 路线图

JWT 认证

持久化的Redis卷

浏览器录制与回放

基于Web的管理仪表板(用于指标)

会话分析和日志

📁 项目结构 MCP最终项目-v5/ ├── server/(服务器目录) │ ├── src/ │ │ ├── index.ts │ │ ├── sessionManager.ts(会话管理器文件) │ │ ├── dockerProxy.ts │ │ ├── websocket.ts(文件) │ │ └── routes/(译文:│ │ └── 路由文件夹/) │ │ ├── session.ts │ │ └── mcpEvent.ts(翻译为中文为):│ │ └── mcp事件文件.ts │ ├── Dockerfile │ └── package.json(文件) │ ├── client/(客户端/) │ ├── src/ │ │ ├── App.tsx │ │ ├── components/(组件文件夹) │ │ │ ├── ChatTab.tsx(文件名:ChatTab.tsx) │ │ │ ├── SessionTab.tsx │ │ │ ├── UserTab.tsx(翻译为中文:│ │ │ ├── 用户标签页.tsx) │ │ │ └── AdminTab.tsx(翻译为中文:│ │ │ └── 管理员标签页.tsx) │ ├── public/config.json.example │ ├── Dockerfile │ └── package.json │ ├── docker-compose.yml(文件) ├── README.md(注:此文件通常用于存放项目的说明文档,中文可译为“├── 说明文档.md”,但直接保留原文件名在中文环境中也是常见的做法,因此这里直接给出原文件名) └── .env.example(示例环境变量文件)

🧭 备注

会话空闲超时 = 5 分钟

如果连接丢失,WebSocket 会每5秒自动重新连接

使用localStorage排队的离线消息

docker-compose 输出中显示所有日志

目录标签

目录标签

浏览器自动化TypeScript会话管理容器化本地部署多租户系统实时控制

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP