zesarux-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | debug | info | warn | error (all logs go to stderr) | info |
| ZESARUX_HOST | No | Host where ZEsarUX ZRCP is listening | localhost |
| ZESARUX_PORT | No | ZRCP port (matches --remoteprotocol-port) | 10000 |
| ZESARUX_TIMEOUT | No | ZRCP request timeout, ms | 30000 |
| ZESARUX_AUTO_RECONNECT | No | Reconnect automatically if the link drops | true |
| ZESARUX_RETRY_ATTEMPTS | No | Connection retry attempts | 3 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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