Skip to main content
Glama

x80_files

Destructive

Transfer files between host and guest, list visible guest files, show open handles, and resolve file paths without running code. Direction is explicit in each operation to avoid editing the wrong copy.

Instructions

Move files between the host and a guest, list what the guest can see, show what it has open right now, and answer "where would A:FOO.TXT come from?" without running anything. The direction is in the op name, not in a flag, because the single most common agent failure in this domain is editing a host copy of a file instead of the one the guest can see.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
opYesto_guest = host -> guest. from_guest = guest -> host. handles = what the guest has open right now. resolve = dry-run name resolution, runs nothing.
viaNosandbox: cpmemu/dosiz host-directory passthrough, instant. hostfile: HBIOS 0xE1-0xEA via R8/W8 (romwbw) or INT E0h via R.COM/W.COM (emu88) - byte-granular, no image surgery. image: cpm_disk.py with the pinned diskdef, requires the machine stopped or the disk flushed.auto
hashNo
driveNoCP/M profiles accept A-P; DOS profiles accept C-Z. The legal set per profile is in x80_profiles; an out-of-range letter returns isError naming the profile's actual drive set.
filesNoop:'to_guest' only.
namesNoop:'from_guest'/'list': guest names or globs. Omit to take everything created since the machine started.
sinceNoop:'list': filter to files created or modified since that point. Answers the question no emulator in the family reports today.never
handleNoA live machine from x80_open. Mutually exclusive with `sandbox`.
max_kbNo
consoleNoop:'handles' on mpm2: only handles owned by the process attached to this console.
sandboxNoA sandbox path returned by a batch verb with keep_sandbox:true, or by a dead machine's handle_expired error. Mutually exclusive with `handle`.
export_toNoop:'from_guest': host directory to write into.
overwriteNoop:'to_guest': required true to replace an existing guest file. There is no elicitation; this returns isError instead of asking.
resolve_nameNoop:'resolve': the guest name to resolve, e.g. A:FOO.TXT.
return_contentNoinline_if_under_kb
idempotency_keyNoA client-supplied nonce, not a hash of these arguments. Supply it only to make a retry safe; two deliberate identical calls without a key are two calls.
resolve_for_writeNoop:'resolve': resolution differs by direction. On cpm-hosted a *.EXT config mapping routes a READ but does NOT route a BDOS 22 Make, which lands in the drive directory or the cwd under a lowercased 8.3 name.

Schema Changelog

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

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

The annotations already signal destructive behavior, and the schema documents overwrite semantics, so the description does not need to restate those. It adds two useful behavioral clarifiers—resolve runs nothing, and direction is intentionally in the op name to prevent editing the host copy—but it leaves backend side effects, via-mechanism tradeoffs, and error behavior to the schema.

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, action-first, with no filler. The first sentence enumerates the full operation set, and the second explains the core design convention in a way that directly prevents a known agent failure mode.

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 17-parameter, 5-op tool, the description provides a strong high-level map, and the detailed schema fills in op-scoped parameters, via options, overwrite behavior, and machine/sandbox requirements. The main residual gap is that there is no output schema and the description doesn't describe return shapes, but this is a minor omission given the richness of the schema.

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?

With schema description coverage at 82%, the input schema already carries most parameter meaning, including op-specific applicability and mutually exclusive fields. The description itself does not add parameter-level detail beyond its high-level operation mapping, so the baseline of 3 is appropriate.

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 names concrete operations with specific verbs and resources: moving files between host and guest, listing guest-visible files, showing open handles, and performing dry-run name resolution. It also highlights a critical design convention—direction lives in the op name, not a flag—which makes the tool's purpose and correct use unambiguous.

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

Usage Guidelines4/5

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

The description gives clear op-level guidance: to_guest/from_guest encode direction, resolve is the no-side-effect 'where would this come from?' path, and list/handles map to guest visibility and open files. It does not explicitly name sibling tools like x80_cpm_run or x80_dos_run as alternatives, so it stops short of a full when-not-to-use statement.

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