Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HTTP_TOKENNoOptional token for local HTTP transport. When set, the UI endpoints require the same token in the Bearer authorization header.
OPENAI_TUNNEL_IDYesThe OpenAI tunnel ID (e.g., tunnel_...). Used to identify the tunnel for the MCP connection.
CONTROL_PLANE_API_KEYNoThe 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_IDYesThe 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

CapabilityDetails
tools
{}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": true,
  "listChanged": false
}
completions
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
machine_statusA

Return a compact machine/runtime health summary. Request optional sections or detailed=true only when deeper diagnostics are needed.

runtime_infoA

Read-only control-plane handshake: build commit/HEAD/staleBuild, worker PID/uptime, tunnel ownership, contract fingerprint, capability count, and the last control restart receipt.

capability_diffA

Read-only. Compare the live worker tool surface against a fresh probe of the current build. Returns added/removed/changed tool names and fingerprintMatch. A mismatch means the worker serves a stale build.

restart_if_staleA

Bounded mutation. Restarts the worker only when it demonstrably serves a stale build (worker-behind-dist or surface mismatch); no-op with a reason when fresh. Returns immediately; the restart lands seconds later, so poll runtime_info for the new worker. Refuses when unsupervised.

self_updateA

Privileged autonomous update: requires MCP_ALLOW_SELF_UPDATE=1. Refuses on dirty tree, non-main branch, unpushed commits, divergence, or fetch failure. Otherwise fast-forward-only pull of origin/main, build, full verification, supervised restart, and a post-restart handshake receipt. Returns before the restart lands; poll runtime_info.

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.

read_filesA

Read multiple UTF-8 text files in one bounded call. Each file keeps its own line/byte limits and SHA-256; failures are reported per file so one missing file does not discard the other reads.

context_infoA

Load the effective ChatGPT Pilot context chain for a project: user-global ~/.pilot/GPT.md, repository AGENTS.md, and repository GPT.md, with explicit precedence and provenance. Runtime/system security remains non-overridable.

context_explainA

Explain where Pilot context came from and, for an optional literal query, show matching lines plus the highest-priority matching context source.

project_snapshotA

Read a bounded coding-oriented project snapshot in one call: Git status, top-level tree, package/scripts, project type hints, common agent instruction files, and Pilot GPT.md context provenance.

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.

exec_processA

Execute one binary with an explicit argv vector, without shell parsing or quoting. Prefer this over shell_command for scripts, Git helpers, and structured command invocation.

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.

process_waitA

Wait until a managed background process exits or the timeout expires. Returns the exit code and output offsets without requiring repeated process_status calls; a timeout does not stop the process.

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.

verify_changesB

Run the detected project verification pipeline with a fast, normal, or strict profile. This executes repository-defined build/test scripts but does not stage or commit files.

git_statusA

Read the current Git branch, upstream tracking state, and working-tree status without running a shell command.

git_remote_statusA

Read local-vs-remote branch state using structured Git commands. Set refresh=true to fetch the selected branch first so ahead/behind is based on current remote state.

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_commit_verifiedA

Verify the project, stage only explicit paths, and create a local commit. Refuses pre-existing staged changes so unrelated work cannot be committed accidentally.

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.

git_publish_pathsA

Safely publish only selected files. Fetches the remote branch, refuses selected-path drift, copies only those files into an isolated temporary worktree rooted at the remote tip, optionally verifies there, commits, then pushes without changing the caller worktree/index/branch.

todo_addA

Create a persistent workspace todo in .pilot/todos.json. Todos survive Pilot restarts and can be linked to learning observations.

todo_listA

List persistent workspace todos with bounded status, tag, and text filters.

todo_updateA

Update a persistent todo, including status transitions to in_progress, done, or cancelled. Completed todos are retained as history rather than silently deleted.

learning_observeA

Record an evidence-backed task outcome and reusable learning candidates. This never changes Skills, Capabilities, GPT.md, or memory by itself.

learning_historyB

Inspect bounded learning observations and candidates, including their evidence, target, confidence, and promotion status.

learning_promoteA

Promote one evidence-backed learning candidate. Memory lessons are written to the existing lessons drawer; Skill/Capability/GPT targets become proposals only and never silently self-modify Pilot.

learning_rollbackA

Roll back a learning proposal or remove a previously promoted memory lesson. Code, Skills, Capabilities, and GPT.md are never modified by this tool.

machines_listA

List registered remote machines. Selectors may be id, name, hostname, alias, IP address, or host:port. This call does not contact remote machines.

machine_probeA

Check health and latency of one registered remote machine selected by id, name, hostname, alias, IP address, or host:port.

machine_toolsB

List and cache tool capabilities exposed by one registered remote machine. Cache entries live for 60 seconds and are replaced when a refreshed capability fingerprint changes.

machine_readA

Run a remote MCP tool only after the gateway verifies that the registered remote tool declares readOnlyHint=true. Mutating or unannotated tools fail closed and must use machine_call instead.

machine_callA

Run one MCP tool on a registered remote machine. This is the high-authority routing path; the remote machine still enforces its own policy, workspace boundary, approvals, and audit log.

runtime_execA

Execute model-generated Python in a persistent IPython/Jupyter kernel. Variables, imports, and helper functions survive across calls sharing session_id. Use await tools.(...) or await call(name, args) for MCP capabilities, await describe() for the declared catalog, and result(value) to return structured data. The kernel is an unrestricted control environment, not a sandbox, so this tool is available only with --dangerously-open-machine.

Prompts

Interactive templates invoked by user choice

NameDescription
safe-edit-loopRead, hash, transactionally edit, then verify a workspace file.

Resources

Contextual data attached and managed by the client

NameDescription
Workspace statusCurrent bridge workspace and governance status

Latest Blog Posts

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/chatgpt-pilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server