Skip to main content
Glama

compose_ps

Read-only

List containers in a Docker Compose project with status, health, and ports. Filter by service or include stopped containers to inspect project state.

Instructions

List containers in a compose project, parsed from --format json.

Container-level view of one project (state, health, publishers); compose_list enumerates projects, and container_list covers non-compose containers. Does not raise on a non-zero CLI exit (a missing compose plugin or a timeout still raises): services comes back empty - inspect raw.stderr.

Args: project_dir: Dir with the compose file (default: server cwd; copied to the target host if no local plugin) files: Explicit compose file paths (repeatable, -f) project_name: Compose project name override services: Restrict output to these services all: Include stopped containers as well

Returns: dict: {"services": list[dict], "raw": }; on non-zero exit services is an empty list and the caller should inspect raw.stderr.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
allNo
filesNo
servicesNo
project_dirNo
project_nameNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.9.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already supply readOnlyHint and destructiveHint, but the description adds valuable context: it does not raise on non-zero CLI exits (with exceptions for missing plugin/timeout), and it explains the fallback of inspecting `raw.stderr`. It also notes that `project_dir` is copied to the target host if no local plugin. These behaviors go beyond the annotations and are crucial for correct invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized and front-loaded with purpose, followed by alternatives, behavior, and parameters. It is somewhat lengthy but every sentence earns its place. The parameter list and return format are explicitly labeled, making it easy to parse. Slight verbosity in the return section could be trimmed, but overall it is compact for the amount of information conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, no output schema, and no param descriptions in the schema, the description fully compensates: it defines each parameter, states the return dict shape, and covers error handling. It also positions the tool among siblings. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does, by explaining each parameter: `project_dir` (default and copy behavior), `files` (repeatable), `project_name` (override), `services` (filter), and `all` (include stopped). This gives agents enough meaning to set each argument correctly without needing a schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'List containers in a compose project, parsed from `--format json`.' It immediately distinguishes itself from siblings by stating that `compose_list` enumerates projects and `container_list` covers non-compose containers, so an agent can pick the right tool without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool (container-level view of one project) and names the alternatives (`compose_list` for projects, `container_list` for non-compose). It also gives a behavioral note about non-zero exits guiding the agent to inspect `raw.stderr`. This is explicit usage guidance with no ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools