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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| launch_emulatorA | Start the ZEsarUX emulator process and connect to it. If ZEsarUX is already running/reachable, just connects. Locates the binary automatically (or ZESARUX_PATH) and starts it with the ZRCP remote protocol enabled. |
| kill_emulatorA | Stop the ZEsarUX emulator — but ONLY if this server started it. An externally-launched ZEsarUX is left untouched (you must stop it yourself). |
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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