GPT Windows Connector
Remote-first, model-independent Windows execution MCP for ChatGPT, Claude, Gemini, and other MCP-compatible AI clients.
README
GPT Windows Connector
Remote-first, multi-user Windows execution MCP for ChatGPT, Claude, Gemini, and other MCP-compatible AI clients.
The product exposes local project files, Shell, long-running processes, Git, browser automation, and Windows desktop/UI Automation through a VPS Gateway. Codex, Claude Code, and Gemini CLI are not used as an execution layer.
Final architecture
ChatGPT / Claude / Gemini / other Remote-MCP client
|
| HTTPS / MCP
v
VPS Gateway
account / projects / logs
|
| WSS
v
Windows Node
|
files / shell / git / browser / desktop
All AI-to-Windows traffic is relayed through the VPS. A Windows computer makes an outbound WSS connection and does not require a public inbound port.
User experience
- Open the VPS Gateway website.
- Register with email/password or sign in with Google.
- Pair a Windows computer from Windows Nodes.
- Create a project from Projects.
- Select an online Windows computer.
- Browse that computer's allowed folder tree and select a workspace.
- Connect the Remote MCP endpoint to the AI client using the same account.
- The AI uses the project ID; the VPS resolves the correct user, Windows Node, and workspace automatically.
There is intentionally no conversation binding.
(user_id, project_id)
|
+-- node_id
`-- workspace
Built-in VPS dashboard
Running gwc-gateway serves both the web dashboard and Remote MCP endpoint.
Dashboard sections:
- Dashboard — project/node/activity overview
- Projects — project → Windows computer → folder bindings
- Windows Nodes — online/offline nodes and one-time pairing codes
- Activity Logs — user-scoped audit history with filters
- Account & Security — account/provider and security information
The folder picker never reads the VPS filesystem. It requests directory information from the selected Windows Node through the VPS WebSocket and only exposes directories inside GWC_ALLOWED_ROOTS.
Authentication
Supported login methods:
- Email/password registration and login
- Google OAuth 2.0 / OpenID Connect
- JWT access tokens for MCP/API clients
- HttpOnly login cookie for the built-in web dashboard
Passwords are hashed with Argon2. User/project/node/audit data is stored in the VPS gateway.db SQLite database. If GWC_JWT_SECRET is omitted, a random secret is generated once and persisted under GWC_DATA_DIR.
Google login
Create a Google OAuth Web application and configure:
GWC_GOOGLE_CLIENT_ID=...
GWC_GOOGLE_CLIENT_SECRET=...
GWC_GOOGLE_REDIRECT_URI=https://gwc.example.com/auth/google/callback
If GWC_GOOGLE_REDIRECT_URI is omitted while client ID/secret are present, the gateway derives it from GWC_PUBLIC_BASE_URL. Google login returns to the built-in dashboard by default.
Project binding and folder picker
The Windows Node advertises only configured allowed roots:
$env:GWC_ALLOWED_ROOTS = "G:\;D:\Projects"
The VPS dashboard can browse:
Office-PC
├─ G:\
│ ├─ NiceC-WMS
│ ├─ OpenAkita
│ └─ PartyGame
└─ D:\Projects
└─ another-project
A selected project binding is persisted on the VPS:
user_id + "NiceC-WMS"
-> Office-PC
-> G:\NiceC-WMS
The Node validates the selected folder before the Gateway saves it. Paths outside allowed roots are rejected.
MCP tools
Projects and nodes
project_bindproject_getproject_listproject_unbindnode_pairnode_listcontrol_acquirecontrol_statuscontrol_release
Files
files_tool(project_id, action, params) supports:
- list
- read
- write
- patch
- search
- stat
- mkdir
- move
- copy
- delete
Direct file operations are sandboxed inside the project's bound workspace.
Shell and processes
shell_run— PowerShell/CMD, stdout/stderr/exit code, timeoutprocess_tool— start/poll/stop/list with incremental output cursors
Git
git_tool supports status, diff, log, branch, branch create/switch, add, commit, pull, push, and show.
Browser
browser_tool supports browser discovery, CDP attach, persistent profile launch, tabs/pages, navigation, DOM inspection, click/type/select, workspace-scoped upload/download, screenshots, and close.
Windows desktop
computer_tool supports system/process information, application launch, window listing/activation, screenshots, mouse/keyboard, clipboard, and Windows UI Automation inspection/click/text entry.
Activity Logs
The VPS writes user-scoped audit events to gateway.db. The dashboard exposes only the authenticated user's records. Sensitive fields such as passwords, access tokens, authorization headers, cookies, clipboard data, and full content values are redacted by the UI API.
Multi-node and control locking
One account can have multiple Windows computers:
Gateway
├─ Office-PC
├─ Warehouse-PC
└─ Home-PC
Interactive browser/desktop operations use a per-node project lease so two projects do not fight over the same mouse/window.
Permission levels
Set on each Windows Node:
GWC_PERMISSION_LEVEL=read | operate | admin
read: inspection/read methods onlyoperate: normal coding and automationadmin: also allows direct file deletion and Git push
GWC_ALLOWED_ROOTS is a hard boundary for direct connector file operations and workspace selection. Shell commands still run with the normal Windows account permissions, so use a dedicated low-privilege Windows user or VM when strong OS-level isolation is required.
Install Gateway on VPS
Python 3.11+:
git clone https://github.com/Neal86/gpt-windows-connector.git
cd gpt-windows-connector
python -m venv .venv
source .venv/bin/activate
pip install -e .
Configure:
export GWC_HOST=0.0.0.0
export GWC_PORT=8787
export GWC_DATA_DIR=./data
export GWC_PUBLIC_BASE_URL=https://gwc.example.com
gwc-gateway
Public endpoints:
Dashboard: https://gwc.example.com/
Remote MCP: https://gwc.example.com/mcp
Node WSS: wss://gwc.example.com/ws/node
Health: https://gwc.example.com/health
A Dockerfile and docker-compose.yml are included. Put HTTPS/WSS in front of the service in production.
Install Windows Node
Install the package on Windows, create a one-time pairing code from the VPS dashboard, then run:
$env:GWC_NODE_ID = "Office-PC"
$env:GWC_NODE_NAME = "Office PC"
$env:GWC_GATEWAY_WS = "wss://gwc.example.com/ws/node"
$env:GWC_PAIRING_CODE = "123456"
$env:GWC_ALLOWED_ROOTS = "G:\;D:\Projects"
$env:GWC_PERMISSION_LEVEL = "operate"
gwc-node
After successful pairing, the Gateway issues a persistent random node token. The Node stores it in the current user's local app-data directory and reconnects automatically with heartbeat + exponential backoff.
Security
- Use HTTPS/WSS in production.
- Restrict
GWC_ALLOWED_ROOTS. - Prefer
readoroperate; grantadminonly when necessary. - Treat JWTs and persistent node tokens as secrets.
- Run the Windows Node under a dedicated Windows account where practical.
- The MCP Python SDK is pinned to
>=1.27.2,<2and explicit Host/Origin transport security is enabled. - The Windows Node is outbound-only; do not expose local CDP, Shell, or Node ports publicly.
Intended coding loop
AI -> VPS -> Windows Node
read/search code
-> patch/write
-> build/test
-> inspect errors
-> patch again
-> git diff/status
-> commit/push when permitted
-> VPS -> AI
The repository remains independent from CursorTouch/Windows-MCP. Windows-MCP is not required at runtime.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.