ChatGPT Machine MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HTTP_TOKEN | No | Optional token for local HTTP transport. When set, the UI endpoints require the same token in the Bearer authorization header. | |
| OPENAI_TUNNEL_ID | Yes | The OpenAI tunnel ID (e.g., tunnel_...). Used to identify the tunnel for the MCP connection. | |
| CONTROL_PLANE_API_KEY | No | The OpenAI tunnel runtime API key for one launch. This is an alternative to storing the key in a local key file (e.g., .tunnel/control-plane-api-key). | |
| OPENAI_ORGANIZATION_ID | Yes | The OpenAI organization ID (e.g., org_...). Required to associate the tunnel with the correct organization. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": true,
"listChanged": false
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| machine_statusA | Report the access mode, workspace root, platform, available external tools (git, ripgrep, shells), and the background processes this session manages. Call this first when unsure what the bridge can do. |
| system_infoA | Read operating-system, CPU, memory, uptime, Node.js, and host identity information without invoking a shell. |
| list_processesB | List operating-system processes with bounded structured results. |
| list_portsA | List local TCP/UDP endpoints and owning PIDs, optionally filtered by port, PID, or protocol. |
| environment_infoA | List environment variable names and optionally non-sensitive values. Secret-like variables are always redacted. |
| disk_infoA | Read filesystem capacity and free-space information for a path allowed by the current machine access policy. |
| network_infoA | Read local network-interface addresses and metadata without making an outbound network request. |
| audit_recentB | Read recent redacted machine-operation audit records. |
| audit_searchA | Search recent redacted audit records by text. |
| read_fileA | Read a UTF-8 text file with line and byte limits. Returns the file SHA-256; pass it back as "expected_sha256" when writing to detect concurrent changes. |
| list_directoryA | List files, directories, and symlinks with size and modification time, without running a shell command. |
| find_filesA | Find files recursively by glob. Build output and dependency directories such as node_modules, .git, dist, and target are skipped unless "include_ignored" is true. |
| file_infoA | Get file or directory metadata and an optional SHA-256 hash for regular files. |
| image_infoA | Inspect a local PNG, JPEG, or WebP image and return dimensions, size, and SHA-256. |
| save_image_from_urlA | Download an HTTPS PNG, JPEG, or WebP image to the machine. Blocks local and private hosts, limits redirects and size, and sends no cookies or credentials. |
| search_codeA | Search file contents and return structured path, line, column, and text matches. Uses ripgrep when installed and falls back to a built-in scanner otherwise. Supports surrounding context lines, a per-file match cap, and a files-only mode for cheap surveys. |
| write_fileA | Create a UTF-8 text file, or replace one when "overwrite" is true. Prefer edit_file or update_file for changes to an existing file. |
| edit_fileA | Replace exact text in an existing UTF-8 file. Supply either old_text/new_text or an edits array. Array edits are validated in memory then written atomically, so a failed edit never leaves a partial file. |
| update_fileA | Replace an inclusive 1-based line range in an existing UTF-8 text file. Line numbers shift after every edit, so read the file again between updates. |
| shell_commandA | Run a shell command inside the configured workspace root and wait for it to finish. Use start_process for anything long-running. |
| start_processA | Start a background process inside the configured workspace and return its PID. Poll it with read_process_output. |
| process_statusA | Get the status, runtime, and current output offsets for a managed background process. |
| read_process_outputA | Read captured stdout and stderr from a managed background process. Pass the previous "next_stdout_offset" and "next_stderr_offset" values as "since_stdout" and "since_stderr" to receive only new output, and "wait_ms" to block until output arrives or the process exits. |
| process_writeA | Write UTF-8 text to the standard input of a live process started by start_process. Recovered processes remain inspectable after restart but their stdin cannot be reattached. |
| stop_processA | Stop a managed background process and its child tree by PID. |
| apply_patchA | Add, update, move, or delete files inside the configured workspace using Codex patch format. Run with "dry_run" first when the context lines are uncertain. |
| git_statusA | Read the current Git branch, upstream tracking state, and working-tree status without running a shell command. |
| git_diffA | Read the Git working-tree or staged diff without running a shell command, optionally limited to specific paths. |
| git_logA | Read structured Git commit history without shell interpolation. |
| git_showA | Read one Git revision and its patch or statistics with bounded output. |
| git_branchA | List local Git branches and optionally remote branches with current/upstream metadata. |
| git_addA | Stage explicit repository paths using Git directly, without shell interpolation. |
| git_commitA | Create a local Git commit from staged changes, optionally staging tracked-file modifications with --all. |
| git_checkoutA | Switch to an existing Git branch, or create and switch to a new branch. Force/discard modes are intentionally not exposed. |
| git_pushA | Push a Git branch to a remote using Git directly. This is an external mutation and is approval-gated by the developer policy. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| safe-edit-loop | Read, hash, transactionally edit, then verify a workspace file. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Workspace status | Current bridge workspace and governance status |
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/JonusNattapong/ChatGPTMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server