Skip to main content
Glama

List Machines

list_machines
Read-onlyIdempotent

Retrieve all saved machines with access state and live status to answer fleet-wide questions and choose a target machine.

Instructions

List ALL of the user's saved machines with each one's access state and, when available, live status. USE THIS for fleet-wide questions or when the user has not named a machine yet. Requires account auth (set AICOMMANDER_TOKEN); without an account there is no list, so fall back to session_status with a specific AIC- code. Each entry includes blocked (operator approval/block state) and planRestricted (account-plan state); these are independent and can both be true. Free keeps every saved record but only the 10 oldest by creation time, then id, are usable. Newer records have planRestricted:true; deleting an older record promotes the next oldest, or upgrading to Pro restores all saved records up to the technical 100-record ceiling. NEVER attempt another tool against a plan-restricted entry: it will fail with reason:"plan_device_limit". Restricted entries intentionally expose no liveness or telemetry: online:false, lastSeenAt:null, with platform, agent version, and GPU details omitted. This is not evidence that the machine itself is offline. For an unrestricted entry, platform selects the shell dialect ('win32' means cmd.exe), offline platform/GPU data is last-known, and GPU details help pick a compute box. Takes no arguments.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

Annotations already declare readOnly/idempotent and the description agrees with no contradiction. Beyond annotations it adds extensive behavioral context: the AICOMMANDER_TOKEN auth requirement, the Free-tier 10-oldest usability limit with promotion-on-delete behavior, the 100-record ceiling, the deliberate masking of restricted entries (online:false, lastSeenAt:null, omitted platform/agent/GPU) with the explicit caveat that this is not evidence the machine is offline, and the 'win32' means cmd.exe shell-dialect mapping.

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 long, but every sentence carries distinct information — auth, tier limits, field semantics, caveats — with no filler or repetition. The core purpose and usage guidance are front-loaded in the first two sentences; the density is justified by the semantic complexity of the access-state and plan-restriction rules.

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?

For a no-argument, no-output-schema tool whose complexity lives entirely in the meaning of returned data, the description covers the entry fields (blocked, planRestricted, online, lastSeenAt, platform, agent version, GPU), their semantics, tier-specific behavior, and the failure mode (reason:'plan_device_limit'). Nothing an agent needs to interpret the result safely is missing.

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

Parameters4/5

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

The tool has zero parameters, which earns the baseline of 4. The description confirms this with 'Takes no arguments,' so there is nothing ambiguous for the agent to resolve.

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?

Opens with a specific verb + resource + scope: 'List ALL of the user's saved machines with each one's access state and, when available, live status.' This clearly separates it from per-machine siblings like remote_exec and remote_screenshot, and the description explicitly contrasts it with session_status.

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?

Gives explicit when-to-use guidance ('USE THIS for fleet-wide questions or when the user has not named a machine yet') and a named fallback ('fall back to session_status with a specific AIC- code' when there is no account). Also provides a hard exclusion: 'NEVER attempt another tool against a plan-restricted entry.'

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

Install Server

Other Tools

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/AICommander-dev/aicommander'

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