desktop-coworker-for-chatgpt
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@desktop-coworker-for-chatgptcheck my git status and commit all changes with message 'wip'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Desktop Coworker for ChatGPT
Self-hosted MCP coding server and unified local Control Center for ChatGPT web.
Independent community project; not affiliated with or endorsed by OpenAI.
Desktop Coworker for ChatGPT can read and change files, run commands, use Git, restore edit checkpoints, and proxy optional upstream MCP tools. This is high-impact access: read SECURITY.md before connecting it to a remote service.
Windows quick start
Requirements: Windows 10/11 and Git. Everything else is bootstrapped when needed.
git clone https://github.com/colin-dmme/desktop-coworker-for-chatgpt.git
cd desktop-coworker-for-chatgpt
.\run.batrun.bat is the normal entrypoint. It installs or updates Node.js, installs the
locked npm dependencies, builds the TypeScript sources, downloads the official
OpenAI Secure MCP Tunnel client when missing, and opens the local Control Center.
The first launch requires network access; later launches reuse installed files.
Related MCP server: ChatGPT2LocalBridge
Connect an account
In ChatGPT, enable Developer mode under Settings → Security and login. Availability may depend on your account and workspace policy.
In OpenAI Platform tunnel settings, create a Secure MCP Tunnel, associate it with the ChatGPT workspace that will use it, and create a Runtime API key. Running and selecting the tunnel requires Tunnels Read + Use permission.
Run
run.bat; the Control Center opens athttp://127.0.0.1:2999/ui/.Choose Add account and enter a workspace, tunnel ID, Runtime API key, and ports.
Start the account and wait until MCP, Admin, Tunnel, and Ready are green.
Open ChatGPT Plugins, select the plus button, choose Tunnel under Connection, and select the tunnel or paste its
tunnel_id.Review the discovered tools, create the connection, and add it to a new conversation from the tools menu. Refresh the connection after server metadata changes.
See the official OpenAI documentation for Secure MCP Tunnel and connecting an MCP server from ChatGPT.
Profiles created by the former PySide dashboard are migrated automatically.
Profiles, telemetry, logs, runtime configuration, and upstream MCP settings live
outside the repository at %LOCALAPPDATA%\DesktopCoworkerForChatGPT.
The Control Center never returns a Runtime API key to browser JavaScript. The generated tunnel YAML also contains no key; it is passed only to the tunnel child process. The local profile file must still be treated as a credential file.
Conversation access control
Conversation access protection is off by default, preserving the original one-click
experience: ChatGPT can use tools as soon as the connector is ready. Owners of shared
accounts can opt in per account on the Chat access page. When enabled, a new
ChatGPT conversation cannot call computer tools until the local owner approves its
pending request or generates a short-lived one-time code.
Grants are scoped to one account and workspace, have a read, edit, or execute
tier, expire automatically, and can be revoked immediately.
The Chat access history keeps a local audit trail of pending requests, approvals, denials, revocations, protection changes, and one-time-code outcomes. It can be filtered by event, permission, date, fingerprint, label, or tool, and entries can be deleted individually or in filtered batches.
ChatGPT conversation, subject, and organization identifiers are stored only as keyed fingerprints. One-time codes are stored only as keyed hashes, are single-use, expire after two minutes by default, and trigger a temporary lockout after repeated failed attempts. Tool activity recursively redacts password, code, token, authorization, credential, and cookie fields before persistence or streaming.
One interface, three local services
Browser Control Center :2999
├─ manages accounts, ports, logs, activity, settings and upstream MCP
└─ starts one isolated pair per account
├─ MCP server :3000 (default)
│ ├─ filesystem / patches / checkpoints
│ ├─ shell / processes / Git
│ ├─ project context / memory
│ └─ optional upstream MCP servers
├─ Admin API :3001 (internal data source; /ui redirects to :2999)
└─ OpenAI Secure MCP Tunnel health :8080There is no separate desktop runtime. The web Control Center is localhost-only and is both the launcher UI and the complete administration UI.
Repository layout
public/control/ Unified Control Center frontend
public/control/locales/ Extensible English/Vietnamese UI catalogs
public/ui/ Legacy per-server fallback UI
src/control/ Account supervisor, telemetry and Control API
src/admin/ Per-server localhost Admin API
src/lib/ MCP services and infrastructure
src/tools/ MCP tool registration
scripts/windows/ Bootstrap and lifecycle scripts
scripts/development/ Maintainer utilities
config/examples/ Safe example configurations
docs/ User and architecture documentation
tests/control/ Control Center tests
tests/server/ MCP server tests
run.bat One-click Windows entrypointpublic/ui remains only as a standalone-server compatibility fallback. Normal
launches redirect its /ui route to the unified Control Center.
Development
Node.js 22.5 or newer is required because local telemetry uses the built-in SQLite module.
npm ci
npm run build
npm test
npm run test:all
npm run devUseful entrypoints:
npm start— unified Control Center and account supervisor.npm run start:server— one standalone MCP server without the supervisor.npm run dev— Control Center in TypeScript watch mode.npm run dev:server— standalone MCP server in watch mode..\run.bat -SkipLaunch— complete Windows bootstrap smoke test.
The Control Center defaults to English and remembers a language selected in the
UI. To add another language, copy a catalog under public/control/locales, keep
the same message keys as en.js, and register it in public/control/i18n.js.
The i18n test fails when catalogs or referenced keys fall out of sync.
Configuration
The Control Center writes per-account environment files under local app data.
For standalone server development, copy .env.example to .env.
Variable | Default | Purpose |
|
| Unified local UI and Control API |
|
| MCP bind address; keep loopback for tunnel use |
|
| MCP HTTP port |
|
| Per-server localhost Admin API |
| current directory | Default project directory |
|
|
|
|
| Foreground command timeout in seconds |
|
| Enable edit checkpoints and rewind |
| local app data | Shared upstream MCP configuration |
|
|
|
| local app data | Local SQLite access requests, grants, and hashed codes |
The workspace is a default working directory, not a sandbox. Absolute paths and commands run with the current Windows user's permissions.
Documentation
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceLocal MCP server bridging ChatGPT Web to local tools for file, shell, git, test, and process management with secure policy controls.MIT
- AlicenseBqualityBmaintenanceSelf-hosted MCP server that enables ChatGPT to access and operate on local project files after OAuth authorization, without uploading the workspace elsewhere.38123MIT
- Alicense-qualityBmaintenanceA self-hosted MCP server that gives ChatGPT a secure connection to your local machine, enabling it to read, edit, search, and run code in your projects.1,004MIT
- Alicense-qualityAmaintenanceAn MCP server that bridges ChatGPT Web Pro to local tools, enabling file read/write, shell command execution, git operations, and search within a specified project directory.2MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/colin-dmme/desktop-coworker-for-chatgpt'
If you have feedback or need assistance with the MCP directory API, please join our Discord server