Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SERVER_MCP_SUDONoUse sudo for docker and root actions.
SERVER_MCP_HOSTSNoOptional. A plain list of hosts without names. Empty and no pairs means this machine.
SERVER_MCP_SSH_KEYNoSSH key for login for all hosts. Use a key or a password.
SERVER_MCP_SSH_PORTNoSSH port for all hosts.
SERVER_MCP_SSH_USERNoSSH login user for all hosts.
SERVER_MCP_READ_ONLYNoRefuse every change. Set to true to enable read-only mode.
SERVER_MCP_FILE_ROOTSNoLimit the file tools to some folders.
SERVER_MCP_HOSTS_NAMENoYour hosts, as name=address pairs (or address=name). Separate with commas, semicolons or new lines. Every pair is a host.
SERVER_MCP_SSH_STRICTNoCheck SSH host keys strictly. New SSH host keys are trusted on first use unless this is set.
SERVER_MCP_SSH_PASSWORDNoSSH password for login for all hosts. Use a key or a password.
SERVER_MCP_SUDO_PASSWORDNoSeparate sudo password. The SSH password is used for sudo too unless this is set.

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
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
server_hostsA

List the Docker hosts this tool knows and test the connection to each.

docker_psA

List containers: name, image, state, status, ports, networks.

all=true includes stopped containers. name_contains filters by name.

docker_logsB

Show the last lines of a container's log. since like 10m, 2h, or 2026-10-11.

Secrets that look like password or token values are hidden.

docker_inspectB

Show details of a container, volume, network or image (kind).

For a volume this shows its driver and options, such as the NFS address. Secret values in environment variables are hidden.

docker_statsB

Show CPU, memory and network use of running containers right now.

docker_imagesC

List images: name, tag, size, age.

docker_volumesC

List volumes: name and driver.

docker_networksC

List networks: name, driver, scope.

docker_disk_usageC

Show how much disk space images, containers, volumes and build cache use.

docker_stacksC

List Compose stacks (one folder each under the stacks folder) and whether they are running.

docker_stack_statusC

Show the containers of one stack and their state.

docker_stack_fileB

Show the compose file of a stack. Secret values are hidden. The .env file is never shown.

docker_stack_configA

Check a stack and show the final compose file with all variables filled in.

Good for finding a missing or wrong value in the .env file. Secret values are hidden.

docker_container_actionC

Start, stop, restart, pause or unpause one container. Needs confirm=true.

docker_stack_actionA

Run a Compose action on one stack.

action: up (create/start, same as docker compose up -d), pull (get new images), update (pull then up), start, stop, restart, build (build the images the compose file builds itself), build_no_cache, up_build (build then up), recreate (up with --force-recreate). These need confirm=true. down (removes the containers and network, keeps volumes) and down_volumes (also removes the stack's volumes) are destructive and also

docker_pull_imageB

Download an image, for example ghcr.io/example/app:latest. Needs confirm=true.

docker_removeA

Delete one container, image, volume or network (kind).

Destructive. Shows a preview first. Run again with confirm=true after the user says yes. A running container is not removed. Stop it first. Removing a volume deletes the data inside it. A volume with an NFS setting only holds the setting, not the files on the NAS.

docker_pruneA

Clean up unused things. what: containers (stopped), images (unused, untagged only), networks (unused), volumes (not used by any container), builder (build cache).

Destructive. Shows a preview first. Run again with confirm=true after the user says yes.

docker_execA

Run one command inside a running container (no terminal, no input).

Destructive, because the command can do anything inside the container. Shows a preview first. Run again with confirm=true after the user says yes. By default the command is split like a shell would, but no shell is used (no pipes). Set shell=true to run it with sh -c (pipes, &&, redirects). workdir sets the folder inside the container. user sets the user.

server_file_listA

List files and folders on the Docker host (type, mode, owner, size, date, path).

Any path works. SERVER_MCP_FILE_ROOTS can limit it to some folders. as_root=true uses sudo. An empty path means the stacks folder. A path without a leading / starts there too. depth is how many folder levels to show (1 to 4).

server_file_readA

Read a text file on the Docker host. Secret values are hidden.

Files that hold secrets (.env, *.env, keys, credentials) are never shown. Big files are cut (SERVER_MCP_MAX_FILE_KB, default 1024 KB).

server_file_writeA

Create a file, or replace a whole file, on the Docker host. Needs confirm=true.

make_dirs creates missing folders. backup keeps the old file as .bak. mode is an optional octal mode such as 644 or 755 (for scripts). An existing file keeps its mode and owner. encoding is text, or base64 for binary files. For a small change to an existing file use server_file_edit instead: it never touches hidden secret lines.

server_file_editA

Change part of a text file: replace old_string with new_string. Needs confirm=true.

old_string must match the file exactly and must be unique, unless replace_all=true. Works on files Claude can read. Lines with hidden secrets cannot be matched.

server_file_mkdirA

Make a folder (and missing parent folders) on the Docker host. Needs confirm=true.

server_file_moveA

Move or rename a file or folder on the Docker host. Needs confirm=true.

Without overwrite=true an existing destination is left alone.

server_file_deleteA

Delete a file or an empty folder on the Docker host. Destructive.

Destructive. Shows a preview first. Run again with confirm=true after the user says yes. recursive=true also deletes a folder with everything in it. Never forced.

docker_copyA

Copy files between a container and the Docker host (docker cp). Needs confirm=true.

direction: to_container (host_path -> container_path) or from_container (container_path -> host_path). host_path must be in an allowed folder. Existing files at the destination are overwritten. keep_owner uses docker cp -a.

docker_stack_writeA

Create a new stack, or replace the compose file of one, then check it. Needs confirm=true.

The file goes to //compose.yaml (an existing compose file keeps its name). The result is checked with docker compose config. If the check fails, the old file is put back (or the new file removed) and the error is shown. Nothing is started: use docker_stack_action up. Secret values should be ${VARIABLES} that live in the .env file (write that with server_file_write).

docker_stack_logsB

Show the last log lines of a whole stack, or one service of it. since like 10m, 2h, 2026-10-22.

docker_buildA

Build an image with docker build. Needs confirm=true.

context is a folder on the host (in an allowed folder) or an https git URL such as https://github.com/example/repo.git#main. tag is the image name, for example myapp:latest. dockerfile is a path inside the context. Build args are visible in the image history: do not put real secrets in them.

docker_tag_imageB

Give an image a second name (docker tag). Needs confirm=true.

docker_runA

Start a new container in the background (docker run -d). Needs confirm=true.

For anything that should stay, a compose stack (docker_stack_write) is better. ports like "8080:80" or "127.0.0.1:8080:80/tcp". volumes like "myvol:/data" or "/opt/stacks/app/data:/data:ro" (a host folder must be in an allowed folder). Not possible here: privileged mode, devices, the docker socket.

docker_createA

Create a network or a volume. Needs confirm=true.

kind: network or volume. Network: driver (bridge, macvlan ...), subnet, gateway, ip_range, parent (the host interface for macvlan, for example eth0.20), internal. Volume: driver (default local) and options, for example an NFS volume: options {"type": "nfs", "o": "addr=192.0.2.10,nfsvers=3,hard", "device": ":/export/share"}.

server_runA

Run one shell command on the Docker host itself (not inside a container).

It starts in the stacks folder. Safe read-only commands (ls, cat, head, tail, grep, find, df, free, uptime, git status/log/diff, ps, ss, ip, and pipes between them) run right away. Anything else needs confirm=true after the user says yes. Risky ones (rm, mv, dd, chmod, chown, kill, systemctl, apt, reboot, sudo ...) are marked destructive in the preview. as_root=true runs it with sudo. Root commands always show a preview first. background=true starts it as a background job and returns a job id at once (use it for anything that can take more than about 40 seconds). Check it with server_job. Files with passwords or keys (.env, keys, credentials) are blocked. For files, prefer server_file_read, server_file_write and server_file_edit.

server_jobA

Look at background jobs started with background=true.

action: list, status, output (last lines of the log), cancel, clean (remove finished jobs). Jobs started as root must be read with as_root=true. list, status and output run right away. cancel and clean show a preview first.

server_infoB

Show the system: OS, kernel, uptime, CPU, memory, disks and network. Read only.

server_serviceB

Manage a systemd service. action: status, start, stop, restart, reload, enable, disable.

status is read only and runs right away. The others show a preview first.

server_journalA

Read the system log (journalctl). Optional unit, line count, since ("1 hour ago") and grep. Read only.

server_packagesA

Manage system packages (apt, dnf or apk, found automatically).

action: list_updates and search are read only. update (refresh lists), install, remove and upgrade show a preview first. packages is a space separated list. background=true starts it as a background job and returns a job id at once. Use it for upgrade and install, which can take minutes. Check it with server_job.

server_processesB

Show the busiest processes. sort: cpu or mem. Read only.

server_powerB

Reboot or power off the host. action: reboot or poweroff. Always shows a preview first.

The SSH link drops when it runs. That is normal.

docker_cliA

Run any docker command, for things the other docker tools do not cover.

Give the arguments after "docker", for example: "system df" or "compose -p demo ps". Read commands (ps, images, inspect, logs, info, version, stats --no-stream, network ls ...) run right away. Anything else shows a preview first. background=true starts it as a background job (builds, pulls, big compose runs). Check it with server_job.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 42 tools

Disambiguation4/5

Most tools have a clearly distinct resource+action target: listing (docker_images, docker_networks, docker_volumes, docker_ps), lifecycle (docker_run, docker_create, docker_remove, docker_prune), and stack operations (docker_stacks vs docker_stack_status/file/config/action/write/logs) are well separated. The main friction is the deliberate catch-alls docker_cli and server_run, which overlap every other tool and could pull an agent away from the specific, safer tools; docker_stack_logs vs docker_logs and docker_tag_image vs docker_build are also easy to confuse at a glance.

Naming Consistency4/5

Names are uniformly snake_case and follow a clear two-level prefix scheme (docker_* for Docker object operations, server_* for host operations), with list tools consistently using bare nouns and state-changing tools using a verb or an explicit action parameter. Minor deviations exist: docker_ps instead of docker_containers, and docker_create/docker_remove take a 'kind' argument while other tools are single-purpose, but nothing is ambiguous to read.

Tool Count2/5

42 tools is a very large surface for one server, well above the range where each tool clearly earns its place. The breadth (containers, images, networks, volumes, compose stacks, files, host shell, systemd, packages, jobs) explains the size, but the escape hatches docker_cli and server_run could absorb several narrow tools (docker_tag_image, docker_copy, docker_pull_image) and reduce the count substantially.

Completeness4/5

Coverage is unusually thorough: full container/image/network/volume lifecycle, compose stack create/update/up/down/logs, file CRUD plus edit, host inspection, systemd, packages, background jobs and power control. Only peripheral gaps remain (image push, registry auth, docker events, network connect/disconnect for existing containers), and those are explicitly reachable via docker_cli and server_run, so no real dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues