mcp_worker
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp_worker
mcp_worker is a deterministic MCP coding execution harness. ChatGPT performs reasoning; mcp_worker exposes bounded MCP primitives and routes execution through an explicit execution profile.
Version 2 adds an outbound Worker transport so managed machines no longer need an inbound SSH port or an SSH password stored on the mcp_worker server. Existing SSH profiles remain as a compatibility transport while machines are migrated.
Worker transport (preferred in v2)
Owner -> ChatGPT -> mcp_worker -> authenticated WSS job/event -> Worker -> local machine
SSH compatibility transport
Owner -> ChatGPT -> mcp_worker -> SSH Profile -> SSH -> machineThe project keeps a small Admin UI for configuration and observability. V2 focuses on the coding execution gateway, not business workflows.
Version and release policy
The main branch is the mcp_worker V2 line, with the 19-tool MCP catalog and outbound Go Worker transport. Stable releases will use versioned Git tags. This repository contains the V2 source release candidate. Public source access does not imply a stable signed release. See the public release roadmap.
Related MCP server: ChatGPT Gateway MCP Nyan
Compatibility identifiers
The product is mcp_worker. The V2 OAuth scopes (bot_report.read and bot_report.terminal), BOT_REPORT_* configuration variables, Worker binary filenames, systemtd CLI, existing Worker state directories and database schema retain their historical identifiers for compatibility. Existing installer env files keep their project name; fresh standalone installs default to mcp_worker. Do not rename or copy live Worker identities.
License
The project source is licensed under MIT. Third-party components retain their own licenses and notices; see dependency review.
Documentation
Standalone Docker quickstart (local only)
On a Linux host with Docker Engine, Compose v2, Git, OpenSSL and flock:
./setup.sh --initThis builds the app and bundled MySQL 8.4.13 derivative locally and explicitly consents to initializing an empty dedicated database.
Open http://127.0.0.1:3333/admin. The initial admin username is admin; read
the generated password privately from .env.setup (mode 0600). Do not share
that file, logs containing credentials, or Docker inspect output. Back up the
env file and both named volumes together. The app binds loopback only, with
HTTP cookies suitable for local access. Remote MCP requires HTTPS and an
explicit public base URL; see advanced proxy deployment.
Do not expose the standalone HTTP port remotely.
Rerun the same command to start again without replacing secrets or migrating
an existing database. Use ./setup.sh to start without schema initialization;
existing/external databases use the Admin Test/Save/Initialize workflow.
If initialization fails or an existing database is not ready, inspect the
state and use the Admin recovery workflow; the script does not reset it.
./setup.sh --down stops the stack and retains volumes and credentials.
For isolated testing, set BOT_REPORT_SETUP_ENV=.env.setup-test,
BOT_REPORT_SETUP_PROJECT=mcp_worker-test and BOT_REPORT_SETUP_PORT=13333
on first run, and reuse the same env file thereafter.
Getting Started — first authenticated call
After signing in, open Getting Started in Admin (or
/admin/onboarding). The six-step checklist reads current MySQL readiness,
MCP configuration, live global Worker profiles, active OAuth clients and
successful runtime_info audit evidence. Refresh after each step. It does
not change database configuration or issue credentials automatically.
For a local-only first call, create an Admin OAuth client with the exact
redirect URI http://127.0.0.1:43871/callback and only the
bot_report.read scope. Save the one-time secret privately. On the same
machine as the browser and standalone service, with Node.js 26 installed,
run:
node scripts/first-mcp-call.js http://127.0.0.1:3333Enter the client ID and secret at the prompts (secret is hidden), open the printed authorization URL in your browser, sign in and approve Read access. The helper listens only on loopback for the PKCE callback, calls runtime_info and revokes its short-lived access token. It does not write credentials to disk. Refresh Getting Started or Audit Log to see evidence. If the callback port is in use, stop the conflicting local process or use a separate OAuth-capable MCP client; do not expose the callback port.
A remote ChatGPT connector cannot reach your loopback URL. Configure HTTPS, a trusted reverse proxy, secure cookies and the public MCP base URL before using a remote connector. Register its exact callback URI (not the local helper URI). Add terminal scope only after reviewing Worker permissions.
Core MCP tools
The MCP registry exposes exactly 19 tools:
Runtime:
runtime_infoTerminal fallback:
terminal_list,terminal_status,terminal_read,terminal_send,terminal_interruptGeneric execution/evidence:
workspace_exec,artifact_collectFiles:
file_read,file_write,file_patchGit/review:
repo_snapshot,git_diff,code_searchChecks:
check_runLong-running processes:
process_start,process_status,process_logs,process_stop
The tool contract stays stable across transports. terminal_list returns profile aliases; when an alias is a Worker Profile, the same terminal/workspace/file/git/process tool calls are dispatched over the worker connection instead of SSH.
Worker and security boundaries
The Go Worker connects outbound over authenticated WSS, with its private Ed25519 key stored locally. Install under a dedicated unprivileged account, enroll with a one-time token and select only intended workspace roots. The default Linux installer does not require sudo or install systemd.
Shell access is OS-user authority. Allowed roots are not a shell sandbox. Use an independently configured OS/container sandbox for stronger isolation. Start with read-only OAuth access, then grant terminal scope only to intended clients and profiles. See Worker lifecycle, security model and administration reference.
Release status
V2 remains a source release candidate. Linux standalone installation, all 19 tools, Worker upgrade/rollback, and image vulnerability scanning have been verified locally. Cross-built binaries do not establish native installer compatibility. The release checklist identifies the remaining gates; third-party distribution review, signing and external validation are required before publication.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP memory and agent control plane for durable conversations, jobs, and operations.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Public MCP for agent verification, work discovery and governed interoperability.
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to safely access user-local filesystems, apply validated patches, inspect git state, and run persistent jobs on outbound-connected local runners through a stateless Cloudflare control plane.18PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityBmaintenanceEnables agent clients to safely connect to tools and execution resources through MCP with authorization, approvals, audit, chat-context isolation, SSH/Docker access, and long-running command session tracking.MIT
- AlicenseNot gradedqualityBmaintenanceProvides a Codex-inspired execution harness for MCP clients, enabling remote worker management, native sandboxing, PTY sessions, file patching, image reads, and deferred tool discovery.MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP clients such as Claude Code, Claude Desktop, and Cursor to list hosts, read metrics, inspect containers, follow logs, and, when permitted, run commands, restart containers, manage authorized_keys, and edit host lists under per-host policy, Touch ID-backed credentials, deny-lists, rate limits, and an audit log.MIT