beebjit-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_machineA | Boot a BBC Micro session. Returns The returned
Disc-image format follows from the model: BBC B and the two Master
128 variants read DFS images ( |
| load_discA | Mount a disc image into the named drive at runtime. Drives are 0 or 1 (the BBC has two physical drives in its
matrix; beebjit exposes both). The mount does not trigger a reset or autoboot: the BBC keeps
its current state and the new disc is available for the next OS
read. Use |
| boot_discA | Mount a disc and SHIFT+BREAK autoboot it in one call. Equivalent to Blocks until the boot banner reappears in MODE 7 screen RAM, so
the call returns with the disc's |
| destroy_machineA | Tear down a session and release its beebjit subprocess. Returns |
| resetA | Hard-reset the BBC without destroying the session. Equivalent to a user pressing BREAK on the real keyboard.
With |
| run_for_cyclesA | Advance the emulator by Returns the number of cycles just consumed plus the total
cycle count so the client can track session progress without
a separate |
| run_until_promptA | Run in chunks until Convenience wrapper for the common "wait for BASIC to return
to the |
| run_until_textA | Run in chunks until Substring match across the entire decoded screen, joined with
newlines, so the match is not row-anchored. Use
|
| type_inputA | Type an ASCII string into the BBC keyboard. Uses the default keypress timings (HOLD=5M, GAP=5M BBC
cycles). Use |
| run_basicA | Type a BBC BASIC program, RUN it, and return the final screen. Convenience wrapper around
Returns the MODE 7 screen as |
| type_input_rawA | Type an ASCII string, preserving case. Requires CAPS LOCK to be OFF. Call |
| key_downA | Inject a raw BBC keydown event into the matrix.
|
| press_caps_lockA | Tap CAPS LOCK once to toggle the current state. A pure toggle: the tool does not know or care about the
pre-tap state. Use |
| set_caps_lockA | Set CAPS LOCK to a specific state, tapping only if needed. Reads |
| key_upA | Inject a raw BBC keyup event into the matrix. Inverse of |
| write_memoryA | Poke bytes into memory starting at
|
| read_memoryA | Peek Dot-substitution in the ASCII view (non-printable -> |
| disassembleA | Disassemble Returns a list of |
| read_registersB | Return 6502 register state. Returns a dict with keys |
| read_mode7_textA | Capture the MODE 7 screen as 25 rows of teletext text.
JSON callers send these as the literal strings; Pydantic
coerces them to Returns both the raw row list and a |
| screenshotA | Capture the current rendered BBC screen as a PNG. Returns an MCP |
| reload_moduleA | Reload a pure beebjit_mcp module without restarting the server. Intended for in-session development: edit |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools have clearly distinct purposes, but there is some overlap in the input/run categories: type_input vs type_input_raw vs key_down/key_up all deal with keyboard input, and run_for_cycles/run_until_prompt/run_until_text all advance the emulator. Descriptions clarify the differences well, so an agent can disambiguate with careful reading.
All tool names follow a consistent snake_case verb_noun pattern (e.g., create_machine, load_disc, read_memory, key_down). Even multi-word verbs like run_for_cycles and set_caps_lock maintain the pattern. There are no mixed conventions or vague generic names.
22 tools is on the heavier side for an MCP server, but each tool covers a distinct aspect of BBC Micro emulation: session lifecycle, input, run control, memory, screen, disc, and CPU state. The count is justified by the domain breadth, though a few could be consolidated (e.g., the run_* variants and the keyboard helpers).
The tool surface covers the core emulation workflows well: create/destroy sessions, type and run BASIC, mount discs, reset, read/write memory, disassemble, view screen output, and capture screenshots. Minor gaps include no explicit file-listing API or save/restore state, but these are not critical for typical BBC Micro interaction and can be worked around.