木偶指挥服务器
通过HTTP和MCP为生成UI应用程序提供基本的浏览器自动化。
- 1.API密钥认证(默认为启用) - 2.JWT承载令牌身份验证(默认:禁用) - 基于浏览器的JWT验证 - MCP服务器测试
- 构建二进制文件
方法论
此项目在启动时公开了以下端点:
- RESTful API HTTP服务器
- Swagger文档服务器
- MCP服务器
例如:
- :RESTful API
- :MCP端点
- :Swagger-docs端点
- :Jose库浏览器模块(用于JWT验证)
- :基于浏览器的JWT验证页面
端口可配置为 PCS_PORT 环境变量(默认值: 3000).
在运行服务器时,它会尝试查找第一个可用的Chrome或Chrome 主机上的相邻安装。此设置可以通过HTTP进行更新 以及MCP以及可执行文件当前目录中的配置文件。
假设访问Chrome可执行文件的路径,服务器提供以下API:
tabs/list:列出所有打开的选项卡及其ID和URLtabs/open:打开一个带有初始URL的新选项卡(可选无头)tabs/goto/:tabId:将具有给定ID的选项卡导航到新的URLtabs/screenshot/:tabId:使用给定的ID截取选项卡的屏幕截图tabs/click/:tabId:单击选项卡中具有给定ID的指定选择器tabs/hover/:tabId:将鼠标悬停在具有给定ID的选项卡中的指定选择器上tabs/fill/:tabId:用给定的ID填充选项卡中指定选择器处的表单字段tabs/select/:tabId:使用给定的ID在选项卡中指定选择器的下拉列表中选择一个选项tabs/eval/:tabId:在具有给定ID的选项卡上下文中计算JavaScripttabs/close/:tabId:使用给定的ID关闭选项卡tabs/closeAll:关闭所有打开的选项卡tabs/cleanBrowserData:清除浏览器数据目录和用户数据tabs/bringToFront/:tabId:将具有给定ID的选项卡放在前面tabs/focus/:tabId:通过选项卡中具有给定ID的选择器关注特定元素tabs/goBack/:tabId:在浏览器历史记录中导航回具有给定ID的选项卡tabs/goForward/:tabId:在浏览器历史记录中向前导航具有给定ID的选项卡tabs/reload/:tabId:使用给定的ID重新加载选项卡tabs/waitForSelector/:tabId:等待具有给定ID的选择器出现在选项卡中tabs/waitForFunction/:tabId:等待函数在选项卡中返回具有给定ID的truthy值tabs/waitForNavigation/:tabId:等待具有给定ID的选项卡中的导航完成tabs/url/:tabId:获取具有给定ID的选项卡的当前URLtabs/html/:tabId:获取具有给定ID的选项卡的当前HTML内容resources/clean:按URI删除特定的屏幕截图资源resources/cleanAll:删除所有屏幕截图资源
浏览器自动化是通过Puppeteer实现的。会话管理是自动的。
服务器以Express和Typescript实现。所有路线都受到保护 具有可配置的身份验证策略。
认证
服务器支持两种可选的身份验证策略:
1.API密钥认证(默认为启用)
在第一次运行时,服务器生成一个随机的API密钥,并将其保存到 .secret 在 当前工作目录。使用此键 x-api-key 头球
curl -H "x-api-key: YOUR_API_KEY" http://localhost:3000/api/tabs/list2.JWT承载令牌身份验证(默认:禁用)
服务器可以验证外部JWT令牌(由另一个服务颁发)。配置 JWT验证 config.json (参见 config.json.example 对于模板):
{
"chromePath": "/path/to/chrome",
"port": 3000,
"auth": {
"apiKey": {
"enabled": true
},
"jwt": {
"enabled": true,
"jwksUrl": "https://your-auth-server.com/.well-known/jwks.json",
"issuer": "https://your-auth-server.com",
"audience": "https://your-api-domain.com"
}
}
}在中使用JWT令牌 Authorization 头球
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" http://localhost:3000/api/tabs/list基于浏览器的JWT验证
对于需要在浏览器上下文中进行的JWT验证(例如,用于测试浏览器端身份验证流),启用 proxy 选项:
{
"auth": {
"jwt": {
"enabled": true,
"proxy": true,
"jwksUrl": "https://your-auth-server.com/.well-known/jwks.json",
"issuer": "https://your-auth-server.com",
"audience": "https://your-api-domain.com"
}
}
}当 proxy: true 如果已设置,JWT验证将在浏览器选项卡中使用作为ES模块加载的Jose库进行。这使得验证可以在与浏览器自动化相同的环境中进行,这对于调试或绕过网络限制非常有用。
服务器自动提供以下服务:
/jose/*-Jose库浏览器模块来自node_modules/jwt-verify-实现基于浏览器的JWT验证的HTML页面
这两种策略可以同时启用。如果两者都启用,则任一有效 API密钥或有效的JWT令牌将授予访问权限。
MCP服务器测试
要交互和测试MCP服务器,您可以使用:
npx @modelcontextprotocol/inspector在UI中,确保“传输类型”设置为 Streamable HTTP 并添加 身份验证标头:
- 对于API密钥:添加
x-api-key带有密钥的标题.secret - 对于JWT:添加
Authorization带值的标题Bearer YOUR_JWT_TOKEN
平台
Windows、WSL、Linux和MacOS。
pcs.exe对于Windowspcs适用于WSL、Linux和MacOS
分布
该项目用Typescript编码,并使用PKG编译成本机二进制文件。
当使用PKG编译项目时, Linux和MacOS操作系统。Linux二进制文件也在WSL上运行。
之后,对可执行文件进行压缩和模糊处理,以减小大小和 为生产创建独特的签名。
生成的二进制文件完全自包含,不需要任何外部 目标平台标准库之外的依赖关系。
环境
Node.js18+版本npmGo版本1.16+(用于签名生成)lipo(仅限MacOS)或llvm-lipo(非MacOS)upx(用于可执行压缩)Docker(建造ldid如果你没有MacOS)
发展
构建二进制文件
将项目编译为本机二进制文件:
npm run compile旗帜:
--fast:快速构建模式(跳过Brotli压缩,使用UPX级别1)--linux:仅生成Linux二进制文件--mac:仅生成macOS二进制文件--win:仅生成Windows二进制文件
平台标志可以组合使用。没有任何平台标志,所有平台都会被构建。
示例:
# Fast build for Linux only
npm run compile -- --linux --fast
# Build for Windows and macOS
npm run compile -- --win --mac
# Full build (all platforms, maximum compression)
npm run compile实施
代码以面向对象的方式用类组织。逻辑保持在 代码可读且易于推理的级别。
参考文献
- -构建HTTP服务器
- -控制Chrome浏览器
- -Puppeter插件框架
- -JWT验证库
- -将Node.js项目编译为二进制文件
- -可执行压缩机
安装
Install in Cursor
首选 Settings -> Cursor Settings -> MCP -> Add new global MCP server
将以下配置粘贴到游标中 ~/.cursor/mcp.json 文件是推荐的方法。您还可以通过创建以下内容在特定项目中安装 .cursor/mcp.json 在您的项目文件夹中。看 光标MCP文档 了解更多信息。
从Cursor 1.0开始,您可以单击下面的安装按钮进行即时一键安装。

{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Claude Code
运行此命令。看 克劳德代码MCP文档 了解更多信息。
claude mcp add --transport http pcs http://localhost:3000/mcp --header "x-api-key: YOUR_API_KEY"Install in Amp
在终端中运行此命令。看 Amp MCP文档 了解更多信息。
amp mcp add pcs --header "x-api-key=YOUR_API_KEY" http://localhost:3000/mcpInstall in Windsurf
将此添加到您的Windsurf MCP配置文件中。看 Windsurf MCP文件 了解更多信息。
{
"mcpServers": {
"pcs": {
"serverUrl": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in VS Code
将此添加到您的VS Code MCP配置文件中。看 VS代码MCP文档 了解更多信息。
"mcp": {
"servers": {
"pcs": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Cline
您可以直接编辑MCP服务器配置:
- 打开 克莱恩.
- 点击汉堡菜单图标(☰)进入 MCP服务器 部分。
- 选择 远程服务器 选项卡。
- 点击 编辑配置 按钮。
- 添加个数
mcpServers:
{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"type": "streamableHttp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Zed
将此添加到您的Zed settings.json。参见 Zed上下文服务器文档 了解更多信息。
{
"context_servers": {
"pcs": {
"source": "url",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Augment Code
要在增强代码中配置PCS MCP,请使用手动配置:
- 按Cmd/Ctrl Shift P或转到增强面板中的汉堡包菜单
- 选择编辑设置
- 在“高级”下,单击settings.json中的“编辑”
- 将服务器配置添加到
mcpServers数组中augment.advanced对象
"augment.advanced": {
"mcpServers": [
{
"name": "pcs",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
]
}添加MCP服务器后,重新启动编辑器。如果您收到任何错误,请检查语法以确保不缺少右括号或逗号。
Install in Roo Code
将此添加到Roo Code MCP配置文件中。看 Roo代码MCP文档 了解更多信息。
{
"mcpServers": {
"pcs": {
"type": "streamable-http",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Gemini CLI
看 Gemini CLI配置 了解详情。
- 打开Gemini CLI设置文件。位置是
~/.gemini/settings.json(其中~是您的主目录)。 - 将以下内容添加到
mcpServers对象在你settings.json文件:
{
"mcpServers": {
"pcs": {
"httpUrl": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY",
"Accept": "application/json, text/event-stream"
}
}
}
}如果 mcpServers 对象不存在,请创建它。
Install in Qwen Coder
看 Qwen编码器MCP配置 了解详情。
- 打开Qwen编码器设置文件。位置是
~/.qwen/settings.json(其中~是您的主目录)。 - 将以下内容添加到
mcpServers对象在你settings.json文件:
{
"mcpServers": {
"pcs": {
"httpUrl": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY",
"Accept": "application/json, text/event-stream"
}
}
}
}如果 mcpServers 对象不存在,请创建它。
Install in Claude Desktop
打开Claude Desktop,导航到“设置”>“连接器”>“添加自定义连接器”。输入名称如下 PCS MCP服务器URL为 http://localhost:3000/mcp.添加 x-api-key 使用API密钥的标头。
或编辑您的 claude_desktop_config.json 文件以添加以下配置。看 克劳德桌面MCP文档 了解更多信息。
{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Opencode
将其添加到您的Opencode配置文件中。看 开放代码MCP文档 了解更多信息。
"mcp": {
"pcs": {
"type": "remote",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
},
"enabled": true
}
}Install in OpenAI Codex
看 OpenAI 代码克斯 了解更多信息。
将以下配置添加到OpenAI Codex MCP服务器设置中:
[mcp_servers.pcs]
url = "http://localhost:3000/mcp"
http_headers = { "x-api-key" = "YOUR_API_KEY" }Install in JetBrains AI Assistant
看 JetBrains AI助手文档 了解更多详情。
- 在JetBrains IDE中,请访问
Settings->Tools->AI Assistant->Model Context Protocol (MCP) - 点击
+ Add. - 点击
Command在对话框的左上角,从列表中选择As JSON选项 - 添加此配置并单击
OK
{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}- 点击
Apply以保存更改。 - 同样的方式可以为JetBrains Junie添加个人电脑
Settings->Tools->Junie->MCP Settings
Install in Kiro
看 Kiro模型上下文协议文档 了解详情。
- 导航
Kiro>MCP Servers - 通过单击添加新的MCP服务器
+ Add按钮。 - 粘贴下面给出的配置:
{
"mcpServers": {
"PCS": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
},
"env": {},
"disabled": false,
"autoApprove": []
}
}
}- 点击
Save以应用更改。
Install in Trae
使用手动添加功能并填写该MCP服务器的JSON配置信息。 有关更多详细信息,请访问 Trae文件.
{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Amazon Q Developer CLI
将此添加到您的Amazon Q Developer CLI配置文件中。看 Amazon Q Developer CLI文档 了解更多详情。
{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Warp
看 Warp模型上下文协议文档 了解详情。
- 导航
Settings>AI>Manage MCP servers. - 通过单击添加新的MCP服务器
+ Add按钮。 - 粘贴下面给出的配置:
{
"PCS": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
},
"env": {},
"working_directory": null,
"start_on_launch": true
}
}- 点击
Save以应用更改。
Install in Copilot Coding Agent
将以下配置添加到 mcp 复制品编码代理配置文件存储库的部分->设置->复制品->编码代理->MCP配置:
{
"mcpServers": {
"pcs": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}有关更多信息,请参阅 .
Install in Copilot CLI
- 打开Copilot CLI MCP配置文件。位置是
~/.copilot/mcp-config.json(其中~是您的主目录)。 - 将以下内容添加到
mcpServers对象在你mcp-config.json文件:
{
"mcpServers": {
"pcs": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}如果 mcp-config.json 文件不存在,请创建它。
Install in LM Studio
看 LM Studio MCP支持 了解更多信息。
- 导航至
Program(右侧)>Install>Edit mcp.json. - 粘贴下面给出的配置:
{
"mcpServers": {
"PCS": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}- 点击
Save以应用更改。 - 在下面的右侧打开/关闭MCP服务器
Program,或单击聊天框底部的插件图标。
Install in Visual Studio 2022
您可以按照以下步骤在Visual Studio 2022中配置Context7 MCP Visual Studio MCP服务器文档.
将此添加到Visual Studio MCP配置文件中(请参阅 Visual Studio文档 详细信息):
{
"inputs": [],
"servers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}或者,对于本地服务器:
{
"mcp": {
"servers": {
"pcs": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}
}有关更多信息和故障排除,请参阅 Visual Studio MCP服务器文档.
Install in Crush
将此添加到您的Crush配置文件中。看 粉碎MCP文档 了解更多信息。
{
"$schema": "https://charm.land/crush.json",
"mcp": {
"pcs": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in BoltAI
打开应用程序的“设置”页面,导航到“插件”,然后输入以下JSON:
{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}保存后,您可以使用PCS MCP服务器进行浏览器自动化。更多信息请访问 BoltAI的文档网站对于iOS上的BoltAI, 请参阅本指南.
Install in Rovo Dev CLI
通过运行以下命令编辑Rovo Dev CLI MCP配置-
acli rovodev mcp配置示例-
{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Zencoder
要在Zencoder中配置PCS MCP,请执行以下步骤:
- 转到Zencoder菜单(…)
- 从下拉菜单中,选择代理工具
- 点击添加自定义MCP
- 从下面添加名称和服务器配置,并确保点击安装按钮
{
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}添加MCP服务器后,您可以轻松地继续使用它。
Install in Qodo Gen
看 Qodo Gen文档 了解更多详情。
- 在VSCode或IntelliJ中打开Qodo Gen聊天面板。
- 单击“连接更多工具”。
- 单击+添加新MCP。
- 添加以下配置:
{
"mcpServers": {
"pcs": {
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Install in Perplexity Desktop
看 用于困惑的本地和远程MCP 了解更多信息。
- 导航
Perplexity>Settings - 选择
Connectors. - 点击
Add Connector. - 选择
Advanced. - 输入服务器名称:
PCS - 将以下JSON粘贴到文本区域:
{
"url": "http://localhost:3000/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
},
"env": {}
}- 点击
Save.
Install in Factory
Factory的droid通过其CLI支持MCP服务器。看 工厂MCP文件 了解更多信息。
在终端中运行以下命令:
droid mcp add pcs http://localhost:3000/mcp --type http --header "x-api-key: YOUR_API_KEY"配置后,PCS工具将在您的droid会话中可用。类型 /mcp 在droid中管理服务器、进行身份验证和查看可用工具。
许可证
MIT许可证
