GPT Harness
Provides authentication for the MCP gateway, requiring an Auth0 tenant to validate tokens and identify the owner.
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., "@GPT Harnessrun 'ls' in my current workspace"
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.
GPT Harness
A self-hosted MCP gateway that lets ChatGPT Web run shell commands on a server you control.
This is a personal experiment, not a product. It hands whole shell commands to a language model and runs them on your server. ReadAbout the security model before you run it.
Why this exists
ChatGPT Web reasons about code well. With the GitHub connector it reads and edits a repository. What it cannot do is run anything, because its own environment has no network access. It cannot install a dependency or execute a test suite.
Codex can do both, but agentic usage is billed and capped separately from chat. Chat runs out much later, or not at all.
The gateway closes that gap. ChatGPT decides what to do, and your server does it. Your message quota becomes the limit instead of an agent allowance.
@gpt-harness work this ticket
git clone, write code, npm ci, npm test, repeat until green
@gpt-harness review this PR <link>
gh pr checkout, run its tests, report backRelated MCP server: Personal AIVA MCP Bootstrap
What it exposes
Four tools: bash, bash_output, bash_kill, and write_file.
Tool reference documents the arguments, results, and limits.
There is no workspace tool and no workspace concept. Projects are directories
under HARNESS_ROOT, and ChatGPT uses ls and mkdir like anyone else.
Three of the four tools exist because of one constraint. A single tool call
cannot stay open for the several minutes npm ci takes, so bash returns a
handle once a command outlives its 20 second wait, bash_output reads from a
cursor, and bash_kill stops a command that will not finish.
Commands are not interactive. stdin reads end of file immediately, so ChatGPT
has to pass flags such as npm ci and gh --yes. Each command runs in its own
process group, so stopping one stops everything it started.
Requirements
A Linux server with systemd, a domain, and TLS
Node.js 24
An Auth0 tenant
A ChatGPT account with developer mode available
Run it locally
git clone https://github.com/salman-frs/gpt-harness.git
cd gpt-harness
npm ci
cp .env.example .envPoint HARNESS_ROOT at a directory you can throw away, fill in the Auth0
values from Connect ChatGPT to the gateway, then start
it:
npm run dev
curl -fsS localhost:8787/healthz/healthz needs no token. Every request to /mcp needs a valid token for the
configured owner, including initialize.
Running the gateway locally gives you no confinement. ProtectSystem=strict
and the rest come from the systemd unit, which only applies on the server.
Prove it works
npm run build && npm run provescripts/prove.mjs starts dist/main.js as its own process from environment
variables alone. It serves a real HTTPS JWKS endpoint that the gateway fetches
over the network, mints a real RS256 token, and drives the result with the
ordinary MCP client. It writes a project, installs a dependency from the
registry, runs the tests, and checks that killing a command also kills the
processes that command started.
Nothing in the script imports src/.
Documentation
Connect ChatGPT to the gateway covers Auth0, the metadata endpoints, and the connector.
Deploy the gateway on a server covers the systemd unit, the reverse proxy, Git credentials, and updates.
Tool reference covers arguments, results, limits, and error codes.
About the security model covers the boundaries and what you accept by running this.
License
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
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 Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that gives your AI access to the source code and docs of all public github repos
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA 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.2,058MIT
- FlicenseNot gradedqualityBmaintenanceA self-hosted MCP server that gives ChatGPT controlled access to a user's Oracle Cloud Ubuntu VM through tools for shell commands, file operations, and personal skills.-
- FlicenseNot gradedqualityCmaintenanceAn unofficial self-hosted MCP server that enables ChatGPT to run commands on your computer through a secure tunnel, manage processes, and work within a specified project directory.1-
- AlicenseNot gradedqualityAmaintenanceAn 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.21MIT
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/salman-frs/gpt-harness'
If you have feedback or need assistance with the MCP directory API, please join our Discord server