gbdocs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GBDOCS_CACHE | No | Where embedding vectors are cached. Defaults to ~/.cache/gbdocs-mcp. | ~/.cache/gbdocs-mcp |
| PANDOCS_ROOT | No | Use a specific pandocs checkout instead of the bundled copy. | |
| GBDOCS_EMBED_MODEL | No | Sentence-transformers model. Defaults to all-MiniLM-L6-v2. | all-MiniLM-L6-v2 |
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 |
|---|---|
| pandocs_tocA | List every Pan Docs chapter, grouped by part. Use this to orient yourself in the book or to find the page name to pass to
|
| pandocs_searchA | Search all ~580 Pan Docs sections and return ranked snippets. Good for open questions ("why does my sprite flicker", "OAM DMA timing").
For a specific register or address, |
| pandocs_get_pageA | Read a whole Pan Docs chapter. Custom syntax is expanded: |
| pandocs_get_sectionA | Read one section, with its bitfields, hardware caveats and cross-references. Accepts anything you were handed elsewhere: a |
| pandocs_resolve_linkA | Resolve a Pan Docs anchors are book-wide section-name lookups, not same-page anchors, so following one needs this. Flags titles that occur on more than one page. |
| gb_lookup_registerA | Look up a hardware register by address, name, RGBDS alias, or description. Returns the address, every alias, access (R/W/Mixed), which models have it, the full bitfield layout with per-bit meanings, and the documentation text. |
| gb_list_registersA | List hardware registers, optionally filtered by model, group or address range. Use this to survey a subsystem ("all audio registers") before drilling into
one with |
| gb_decode_register_valueA | Explain what writing a specific byte to a register actually configures. This is the tool for disassembly constants: given |
| gb_encode_register_valueA | Build the byte that produces a desired register configuration. The inverse of |
| gb_memory_mapA | Identify what lives at an address, across every relevant source. With no address, returns the full region table, the I/O ranges and the jump
vectors. With one, reports the memory region plus -- where they apply -- the
hardware register, RST/interrupt vector, cartridge-header field, and (given
|
| gb_cartridge_headerA | Show the cartridge header layout, or one field's full documentation. |
| gb_lookup_cart_codeA | Decode a cartridge-header code, list a whole table, or search it by name. Covers cartridge type ($13 -> MBC3+RAM+BATTERY), ROM and RAM sizes, destination, both licensee tables, and the CGB flag. |
| gb_decode_cart_headerA | Decode a real cartridge header and verify its checksum. Resolves every code, checks the Nintendo logo against the reference dump, and recomputes the header checksum the boot ROM validates (a mismatch means the ROM will not run). |
| gb_mbc_infoA | Summarise a mapper: its mapped memory ranges, control registers and quirks. The quirks are the chapter's warning/tip callouts -- MBC1's bank-0 aliasing, MBC3's RTC latching, MBC2's built-in nibble RAM. |
| gb_mbc_decode_writeA | Identify which banking register a ROM-area write hits. Turns an opaque |
| gb_decode_opcodeA | Disassemble SM83 bytes into instructions. Mnemonics, operands and encoding come from Pan Docs; cycle counts and flag effects come from gbdev.io/gb-opcodes (Pan Docs documents neither), and each field says which. Invalid opcodes that hard-lock the CPU are flagged. |
| gb_lookup_instructionA | Look up how an instruction is encoded, and what it costs. Returns the bit pattern, every opcode byte in the group, an example decoding, and its cycles and flag effects. |
| gb_opcode_tableA | Show the structural opcode map: the four blocks, the $CB block, and the placeholder definitions (r8, r16, r16mem, cond, b3, tgt3) they are built from. Use this to reason about encoding patterns; use |
| gb_interruptsA | Explain the interrupt system, or one interrupt in detail. Returns each vector with its IE/IF bit and priority; with an argument, adds the source's full documentation and the dispatch rules. |
| gb_gotchasA | List Pan Docs' hardware caveats -- its tip/warning/danger callouts. This is where "why does the original code do this strange thing" is usually answered: LCD-disable timing, OAM corruption, MBC1 aliasing, STAT blocking. |
| gb_boot_stateA | Report the register values a ROM inherits from the boot ROM at PC=$0100. Tells you what state the entry point can rely on, and which values are non-deterministic on a given model. |
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 21 tools
Each tool targets a distinct purpose: documentation navigation (pandocs_*), register lookup/decoding/encoding, memory map, cartridge header, MBC analysis, opcode decoding, and general gotchas. Even similar-sounding tools like pandocs_get_page and pandocs_get_section are clearly differentiated by scope and usage.
All tools follow a consistent snake_case verb_noun pattern with clear prefixes (pandocs_ for documentation, gb_ for hardware features). Subgroups like gb_lookup_, gb_decode_, gb_encode_, and gb_mbc_ are consistently named.
At 21 tools, this is slightly above the ideal 3-15 range, but the scope is broad and each tool addresses a specific aspect of Game Boy development documentation. The count is justifiable and not excessive.
The tool set covers the full lifecycle of documentation needs: searching, navigating, reading pages/sections, resolving cross-references, looking up registers, encoding/decoding values, understanding boot state, interrupts, memory map, cartridge headers, MBC behavior, opcode decoding, and common gotchas. No obvious gaps for a documentation server.