一个 ChatGPT 插件连接多个本机项目:用简洁网页选择文件夹、独立启动 CodexPro、按项目授权,然后通过统一 MCP 入口并行查看项目。
这是 CodexPro 的独立控制界面和多项目只读网关,不是 OpenAI 官方产品,也不是 CodexPro 上游仓库。
- Finder 选择项目文件夹,无需手填路径;项目清单保存在本机。
- 多个 CodexPro 实例并行运行,各自使用独立根目录、端口和认证令牌。
- 一个固定工具列表的 MCP 连接,增加、启用或撤销项目不需要重新创建插件。
- 每次调用显式指定
project_id,不共享“当前项目”,避免并发串项目。 - 新项目默认不开放。网页单独勾选后才允许 ChatGPT 访问,取消勾选会阻止后续调用及尚未返回的结果。
- 只读模式:目录、文本文件、Git 变更、最多八个项目的并行概览。不执行命令,不修改代码,不自动运行编程任务。
- macOS(Finder 文件夹选择使用 AppleScript)。Windows/Linux 桌面选择器尚未实现。
- Node.js 20 或更新版本、npm。
- 建立公网连接需要
cloudflared和curl,以及可访问 Cloudflare 的网络。 - ChatGPT 账户须能创建自定义 MCP 插件;账户侧权限和功能可用性由 ChatGPT 决定。
git clone https://github.com/marongwork/codexpro-multi-project.git
cd codexpro-multi-project
npm ci
brew install cloudflared
npm start打开 http://127.0.0.1:8890。首次启动为空项目列表,不需要配置文件。
- 点击「选择文件夹…」,选择具体项目文件夹。
- 对需要使用的项目点击「启动」,等状态显示本机就绪。
- 勾选「允许 ChatGPT 访问此项目」并确认权限范围。
- 点击「建立统一连接」,复制私密 MCP 地址。
- 在 ChatGPT 自定义插件中创建
CodexPro · 多项目,填入地址;认证选 None/无身份验证。这里并非匿名服务:认证令牌已包含在私密 URL 中。 - 在聊天中选择插件,然后说「列出可用项目」「并行查看 A 和 B 的目录结构」或「读取 A 项目的 README」。
以后只需在网页中启动、启用新的项目,无需为每个项目重复添加插件。
| 工具 | 用途 |
|---|---|
list_projects |
列出已启用项目及状态 |
project_overview |
指定项目的概览和目录树 |
read_project_file |
指定项目内的文本文件 |
project_changes |
指定项目的 Git 变更 |
inspect_projects |
最多八个项目并行概览;单项目失败独立返回 |
无需复制 projects.example.json;通过网页添加项目时自动生成 projects.json。该文件含本机路径,已被 Git 忽略,请勿提交。
可选环境变量:
| 变量 | 默认值 | 用途 |
|---|---|---|
CODEXPRO_WEB_PORT |
8890 |
本机控制网页端口 |
CODEXPRO_BIN |
本仓库安装的 node_modules/.bin/codexpro |
覆盖 CodexPro 可执行文件 |
CLOUDFLARED_BIN |
PATH 中的 cloudflared |
覆盖隧道客户端路径 |
PLAYWRIGHT_EXECUTABLE_PATH |
Playwright 默认浏览器 | 仅浏览器测试使用 |
例如:CODEXPRO_WEB_PORT=9000 npm start。控制网页始终监听回环地址,不对局域网公开。
- Cloudflare 临时隧道只转发
/mcp和/healthz,不公开控制 API 或 CodexPro 设置页。 - 默认只读、禁用 bash。网关不提供通用工具转发、切换根目录或远程添加项目功能。
- 每个项目的真实目录与只读策略通过认证健康检查及 MCP 调用验证后才标记就绪。
- 私密连接相当于访问凭证:不要放进 GitHub、截图、公开聊天或日志。持有统一连接的人可以读取所有当前已启用项目。
- 启用项目后,其允许读取的内容可能经 Cloudflare 传给 ChatGPT。只选择你有权共享的具体目录,不要选择整个主目录。
- 路径和受保护文件检查依赖 CodexPro,另有网关相对路径限制。不要把这些检查理解为对所有业务秘密的自动识别。
- 服务重启会重置启用清单和运行令牌;临时隧道重建可能更换域名。届时仍需更新一次统一插件连接。本项目不提供永久公网域名。
- 这不是常驻生产托管服务。关闭控制器会停止它启动的项目进程与隧道。
- 依赖包含上游 CodexPro 及其传递依赖;安装前请自行评估供应链风险。
npm ci
npx playwright install chromium
npm test也可以分别运行 npm run test:unit、npm run test:integration、npm run test:ui。
集成测试只启动两个临时本机项目,校验独立读取、并行概览和越界/软链接拦截后清理。测试不会创建实际公网隧道,也不会读取个人项目。运行环境需要允许回环端口监听和子进程启动。
ChatGPT 插件 → 认证 HTTPS 隧道 → 统一 MCP 网关
├─ 已启用项目 A → 独立 CodexPro
└─ 已启用项目 B → 独立 CodexPro
本机网页 → 带认证的本地控制 API → 添加 / 启动 / 启用 / 撤销
依赖版本由 package-lock.json 锁定。本仓库暂未授予开源许可证(UNLICENSED);公开可见不等于授予再分发许可。上游依赖保留各自的许可证。