Skip to main content
Glama
dtz-labs

zesarux-mcp

by dtz-labs

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNodebug | info | warn | error (all logs go to stderr)info
ZESARUX_HOSTNoHost where ZEsarUX ZRCP is listeninglocalhost
ZESARUX_PORTNoZRCP port (matches --remoteprotocol-port)10000
ZESARUX_TIMEOUTNoZRCP request timeout, ms30000
ZESARUX_AUTO_RECONNECTNoReconnect automatically if the link dropstrue
ZESARUX_RETRY_ATTEMPTSNoConnection retry attempts3

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
set_machineA

Set the emulated machine type in ZEsarUX (ZRCP "set-machine "). Use a real ZEsarUX machine identifier.

reset_machineA

Reset the emulated machine. Soft reset sends ZRCP "reset-cpu"; hard reset sends "hard-reset-cpu".

peekC

Read bytes from emulated memory (ZRCP read-memory)

pokeB

Write bytes to emulated memory (ZRCP write-memory, space-separated bytes)

hexdumpB

Display memory in hexadecimal + ascii (ZRCP hexdump)

get_registersA

Get current CPU register values (Z80 main + alternate set, IX/IY/PC/SP/I/R, flag strings, interrupt mode, MEMPTR). Maps to ZRCP get-registers.

set_registerA

Set a CPU register value. Maps to ZRCP "set-register REG=VALUEH" (e.g. set-register DE=3344H).

cpu_stepC

Execute a single CPU instruction. Enters cpu-step mode first, then runs ZRCP cpu-step (or cpu-step-over when step_over is set).

cpu_historyA

Query the CPU execution history ring buffer (ZRCP cpu-history). History must be enabled and started first (action=enable then action=start). action=get returns a recent PC trace.

disassembleA

Disassemble Z80 code (ZRCP disassemble [address] [lines]). Defaults to PC. Output is address + instruction (no byte column). Memory zone is selected separately via the active zone.

list_breakpointsB

List breakpoints (ZRCP get-breakpoints). Optionally page from a starting index.

set_breakpointA

Set a breakpoint in a numbered slot (ZRCP set-breakpoint). A breakpoint is an EXPRESSION condition that fires when non-zero. Provide a raw "condition" (e.g. "PC=8000", "MWA=16384", "A=0 and BC<33"), or provide "type"+"address" to have it compiled. Memory read/write use set-membreakpoint; execute uses PC=addr; port read/write use PRA/PWA. Empty condition disables the slot.

clear_breakpointA

Clear a breakpoint. ZEsarUX has no clear-single command: disabling the slot (disable-breakpoint) effectively clears it. Set mem_all=true to clear ALL memory breakpoints (clear-membreakpoints) instead.

read_portA

Read a byte from an I/O port. ZEsarUX has no read-port command, so this evaluates IN(port) and returns the integer value.

write_portB

Write a byte to an I/O port (ZRCP write-port).

load_fileA

Load a file into the emulator. By default uses ZEsarUX smartload, which auto-detects the file type and runs it. Use file_type to force a specific loader.

tape_controlA

Insert a real tape into the emulator. NOTE: ZEsarUX ZRCP only supports inserting a real tape (realtape-open); transport actions (play/stop/rewind/forward) are NOT available over ZRCP. For ordinary .tap/.tzx files, prefer load_file (smartload).

save_snapshotA

Save the emulator state to a snapshot file (ZRCP snapshot-save). The format is determined by the file extension (e.g. .zsf, .sna, .z80, .sp) — there is no separate format argument.

load_snapshotB

Load emulator state from a snapshot file (ZRCP snapshot-load).

snapshot_inramA

Access ZEsarUX in-RAM ("Time Machine") snapshots — an automatic ring buffer. Supports "load" (snapshot-inram-load) and "get_index" (snapshot-inram-get-index); position 0 is the oldest. Saving/listing/deleting are NOT supported over ZRCP.

save_screenA

Save the current emulator screen to a file on the ZEsarUX host (ZRCP save-screen). Format is inferred from the file extension; only scr, bmp and pbm are supported.

get_screenA

Capture the current screen. NOTE: ZRCP cannot return pixel data to the client, so this writes a file on the ZEsarUX host (via save-screen) and returns its path. Use get-ocr for on-screen text.

send_keyA

Send a single key to the emulator. Printable keys (and ENTER/SPACE/TAB) are delivered via send-keys-ascii. press/release require a numeric util_teclas key_code (send-keys-event).

send_keysB

Type a string into the emulator via send-keys-ascii (one ASCII code per character; useful for BASIC commands like LOAD "").

assembleA

Assemble a Z80 instruction at an address (ZRCP: assemble [address] [instruction])

code_coverageB

CPU code-coverage control (ZRCP cpu-code-coverage). Enable/disable tracking, get covered addresses, or clear the list.

cpu_transaction_logA

Configure the CPU transaction log (ZRCP cpu-transaction-log parameter value). Set logfile then enabled=yes to start. Output goes to the configured logfile; there is no read-back command.

extended_stackA

Read the extended stack — typed values currently on the stack (ZRCP extended-stack get [index]). The extended stack must be enabled in ZEsarUX first. index defaults to SP.

ay_playerB

Run a command on the ZEsarUX AY Player (ZRCP ayplayer command [parameter]).

mmc_reloadB

Reload the configured MMC file (ZRCP mmc-reload). Takes no arguments.

get_emulator_infoB

Get emulator information via ZRCP. version→get-version, machine→get-current-machine, os→get-os, cpu_core→get-cpu-core-name; all→combines version + machine + os + buildnumber.

get_tstatesA

Get the T-state counter via ZRCP get-tstates. If reset is true, resets the PARTIAL counter (reset-tstates-partial) and returns it. ZEsarUX has no way to reset the main counter.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/dtz-labs/zesarux-mcp'

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