Skip to main content
Glama

x80_cpm_run

Run a CP/M package in a fresh sandbox and get its console output, file manifest, termination reason, and assertion results. Use these artifacts to verify success since CP/M has no exit status.

Instructions

Run one CP/M package to completion in a fresh sandbox and return its console output, a manifest of the files it created, a termination reason, and your assertions. This tool deliberately has no exit_code field, because no CP/M backend has one: CP/M has no exit-status concept, cpmemu exit(0)s on every path including its runaway watchdog, romwbw_emu always returns 0, and a run that extracted 1 of 23 files and printed "Error" still exited 0 (measured). Success must be asserted from stdout plus the file manifest.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cpuNoz80
argsNoThe CP/M command tail.
stdinNoBytes fed to the guest console.
assertNo
collectNo
profileYescpm-hosted (cpmemu) is instant and file-oriented. The others boot a real OS on emulated hardware and need the files staged into a disk image.
programYesHost path to the .COM for hosted profiles; a host path (staged onto the session image) or a bare guest-resident name for hardware profiles.
files_inNo
timeout_msNoWall-clock deadline for the guest run. Enforced by the server and killed by process group; no backend in this family has an internal wall clock.
eol_convertNo
default_modeNoMUST default to binary. cpmemu's auto mode never resolves on WRITE: the same 23-member ARC extracted 1 of 23, printed 'Error', truncated the one file it wrote, and exited 0 (measured). Only a config file can set this; the server synthesizes one.binary
keep_sandboxNo
boot_timeout_msNoHardware profiles only: give up waiting for the OS prompt after this long and return stopped:'boot_timeout' with whatever boot output arrived.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior5/5

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

All annotations are false booleans, so the description carries the full disclosure burden — and it delivers richly. It reveals that no exit_code field exists by design, explains why across three backends including a measured 1-of-23 file extraction failure that still exited 0, and instructs that success must be asserted from stdout plus the file manifest. This prevents a real, otherwise-invisible failure mode.

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

Conciseness5/5

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

Two sentences, purpose front-loaded with the critical behavioral warning bolded immediately after. The long second sentence is dense with concrete evidence that justifies the warning, so every clause earns its place; nothing is filler.

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

Completeness4/5

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

For a 13-parameter tool with nested objects and no output schema, the description compensates for the missing output schema by defining the return envelope and covers the single most dangerous interpretation trap. Remaining gaps (eol_convert, keep_sandbox, cpu have no schema or description text) are largely self-explanatory from their names and enum values, so the definition is complete enough for confident invocation.

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

Parameters3/5

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

Schema description coverage is 54%, and the covered parameters (profile, program, timeout_ms, default_mode, args, stdin) already have high-quality descriptions, notably default_mode's warning about cpmemu auto mode. The description adds little parameter-level detail but does frame what assert and collect produce ("your assertions", "manifest of the files it created"). Net neutral: no harm, no major added meaning.

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 and resource: "Run one CP/M package to completion in a fresh sandbox" and names the full return envelope (console output, file manifest, termination reason, assertions). The CP/M scope and intentional absence of exit_code clearly distinguish it from the DOS sibling x80_dos_run without needing to open the schema.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: the CP/M scoping and the sibling list (x80_dos_run, x80_diff_run) make the intended domain reasonably clear, but the description never says when to pick this over an alternative or gives exclusions. The exit_code warning is interpretation guidance for after the call, not selection guidance for before it.

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

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/avwohl/80mcp'

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