Skip to main content
Glama
henols

C64 Debug MCP

by henols

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{
  "enabled": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_monitor_stateA

Returns whether the C64 is running or stopped, along with the current stop reason and program counter when available.

get_session_stateA

Returns emulator session state including transport/process status, auto-resume state, and the most recent hit checkpoint.

get_registersA

Returns the current C64 register snapshot. Requires emulator to be stopped - call execute(action="pause") first if running.

set_registersA

Sets one or more C64 registers by field name. Requires emulator to be stopped - call execute(action="pause") first if running.

memory_readA

Reads a memory chunk. Specify start_address and either data_length or end_address. Address can be decimal (53248) or hex string with prefix ($D000, 0xD000). Returns byte values as decimal numbers.

memory_writeA

Writes raw byte values into C64 memory. Address and byte values support decimal, hex ($FF, 0xFF), and binary (%11111111, 0b11111111) formats. Requires emulator to be stopped.

executeA

Controls execution with pause, resume, step, step_over, step_out, or reset. Pause and resume are idempotent (safe to call multiple times).

wait_for_stateA

Waits for the emulator to reach a target execution state and optionally remain there for a stability window.

list_breakpointsB

Lists current breakpoints and watchpoints.

breakpoint_setB

Creates an execution breakpoint or read/write watchpoint. Specify start_address and either data_length or end_address. Address can be decimal (53248) or hex string with prefix ($D000, 0xD000).

breakpoint_clearB

Deletes a breakpoint by numeric id.

program_loadC

Loads a C64 program and optionally starts it.

capture_displayA

Captures the current screen to a PNG file and returns the saved image path.

get_display_stateA

Returns screen RAM, color RAM, the current graphics mode, screen memory addresses, and the current border and background colors.

get_display_textA

Returns the current text screen as readable text when the C64 is in a text mode.

write_textA

Types text into the C64. Automatically resumes if stopped and restores pause state after. Supports escaped characters and PETSCII brace tokens like {RETURN}, {CLR}, {HOME}, {PI}, and color names. Limit 64 bytes per request.

keyboard_inputA

Sends one to four keys or PETSCII tokens to the C64. Automatically resumes if stopped and restores pause state after. Use for key presses, releases, and taps.

joystick_inputA

Sends joystick input to C64 joystick port 1 or 2. Automatically resumes if stopped and restores pause state after.

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/henols/c64-debug-mcp'

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