Skip to main content
Glama
yoy123

ChatGPT Workspace Exposure MCP

by yoy123
README.md
# ChatGPT Workspace Exposure MCP

ChatGPT Workspace Exposure MCP is a VS Code extension that automatically starts a bundled, repo-aware MCP server for the current workspace, finds the first free port in a configured range, and optionally exposes that server through a Cloudflare quick tunnel.

## What it does

- Starts a Python MCP server automatically when VS Code opens a workspace.
- Uses all open workspace folders as allowed roots for repo access.
- Checks whether the preferred port is already in use and increments until it finds a free port.
- Starts a Cloudflare quick tunnel and writes the public URL to the `ChatGPT Workspace Exposure MCP` output channel.
- Generates a ChatGPT/OpenAI remote MCP configuration snippet from the active Cloudflare URL and writes it into the workspace.
- Provides commands to start, stop, restart, inspect status, and copy the Cloudflare URL.

## Requirements

- `uv` must be available on your PATH, or you must point `chatgptWorkspaceExposureMcp.uvCommand` at the correct executable.
- `cloudflared` must be available on your PATH if `chatgptWorkspaceExposureMcp.enableCloudflare` is enabled.
- A workspace folder must be open. Without one, the extension will not start the repo server.

## Commands

- `ChatGPT Workspace Exposure MCP: Start Server`
- `ChatGPT Workspace Exposure MCP: Stop Server`
- `ChatGPT Workspace Exposure MCP: Restart Server`
- `ChatGPT Workspace Exposure MCP: Show Status`
- `ChatGPT Workspace Exposure MCP: Copy Cloudflare URL`
- `ChatGPT Workspace Exposure MCP: Generate ChatGPT MCP Config`
- `ChatGPT Workspace Exposure MCP: Open Cloudflare URL`

## Settings

- `chatgptWorkspaceExposureMcp.autoStart`: start automatically after VS Code startup.
- `chatgptWorkspaceExposureMcp.enableCloudflare`: create a Cloudflare quick tunnel.
- `chatgptWorkspaceExposureMcp.host`: local bind host for the MCP server.
- `chatgptWorkspaceExposureMcp.startingPort`: first port to try.
- `chatgptWorkspaceExposureMcp.maxPort`: last port to try before failing.
- `chatgptWorkspaceExposureMcp.mountPath`: HTTP path for the MCP endpoint.
- `chatgptWorkspaceExposureMcp.uvCommand`: command used to launch the bundled Python server.
- `chatgptWorkspaceExposureMcp.cloudflaredCommand`: command used to create the quick tunnel.
- `chatgptWorkspaceExposureMcp.startTimeoutSeconds`: startup wait timeout for the local server.
- `chatgptWorkspaceExposureMcp.serverLabel`: `server_label` used in the generated remote MCP config snippet.
- `chatgptWorkspaceExposureMcp.serverDescription`: `server_description` used in the generated remote MCP config snippet.
- `chatgptWorkspaceExposureMcp.requireApproval`: approval mode in the generated remote MCP config snippet.
- `chatgptWorkspaceExposureMcp.generatedConfigPath`: workspace-relative path where the generated helper JSON file is written.

## Output

The extension writes lifecycle logs, the selected local port, and the Cloudflare URL to the `ChatGPT Workspace Exposure MCP` output channel. When a tunnel is created successfully, the URL is also copied to the clipboard. The generated ChatGPT/OpenAI helper JSON includes a `responses_api_tool` object with `type`, `server_label`, `server_description`, `server_url`, and `require_approval`, plus basic ChatGPT connection steps.

Maintenance

ActivityStale
ResponsivenessNo issues