Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
connectA

Open a debug session to a connected probe.

Args:
    unique_id: Whole or partial probe serial/unique ID to select a specific
        probe. Omit when exactly one probe is attached. Defaults to the
        ``PYOCD_PROBE_UID`` environment variable if unset.
    target: Target type override, e.g. "stm32f407vg" or "nrf52833". Takes
        precedence over a board config. Omit to use the selected board's
        target (when ``board_id`` is given), else the ``PYOCD_TARGET``
        environment variable, else pyOCD auto-detection.
    board_id: Load facts from ``boards/<board_id>.yaml`` through the shared
        board-config loader — pyOCD target, recover policy, silicon id, baud.
        Lets a custom ST/nRF board connect by id with no hand-passed target;
        call ``get_board_info`` to see the loaded facts. Defaults to the
        ``PYOCD_BOARD_ID`` environment variable.
    board_config: Path to an extra board-config file outside the tracked
        ``boards/`` directory, for a custom board. Defaults to the
        ``PYOCD_BOARD_CONFIG`` environment variable.
disconnectA

Close the active debug session and release the probe.

get_board_infoA

Return the facts from the board config the session was opened with.

Reports the ``boards/<board>.yaml`` definition active for this session —
pyOCD target, MCU and probe family, recover policy, silicon-id expectation,
default UART baud, and the smoke-test read address. Returns a notice when
``connect`` was called without a ``board_id`` (raw-target mode), where these
facts were not loaded.
get_stateA

Return the current core run state (e.g. HALTED, RUNNING, RESET).

haltB

Halt the core.

resumeC

Resume execution of the core.

stepB

Single-step one instruction and return the new program counter.

resetA

Reset the target.

Args:
    halt_after: If True, halt at the reset vector (reset-and-halt).
        If False, reset and let the target run.
read_core_registerA

Read a core register by name (e.g. "pc", "sp", "r0", "xpsr").

Returns the value as a hex string.

write_core_registerB

Write a core register by name. value may be hex (0x...) or decimal.

read_memoryA

Read a single value from memory.

Args:
    address: Memory address, hex (0x...) or decimal.
    word_size: Transfer size in bits: 8, 16, or 32.
read_memory_blockB

Read length bytes from memory starting at address.

Returns the bytes as a space-separated hex string.
read_symbol_u32B

Resolve symbol_name in elf_path and read its 32-bit value from target memory.

write_memoryA

Write a single value to memory.

Args:
    address: Memory address, hex (0x...) or decimal.
    value: Value to write, hex (0x...) or decimal.
    word_size: Transfer size in bits: 8, 16, or 32.
set_breakpointC

Set a hardware/software breakpoint at address.

remove_breakpointB

Remove the breakpoint at address.

flash_firmwareA

Flash firmware through the shared target-control service layer.

Args:
    path: Optional explicit artifact path. When omitted, resolve the default
        flash artifact for the connected session's loaded board config.
        Returns the resolved path in the success text.
    halt_after_reset: If True, leave the target halted after flashing.
        If False, reset and let it run.
read_serialA

Capture bounded UART output through the shared serial-resolution and UART services.

Defaults come from the connected board config only for baudrate and
serial-port selection heuristics. ``expected_text=None`` means no explicit
text expectation: any observed UART output counts as a match.
Set ``port`` to override serial resolution explicitly. Set ``reset_on_open``
to trigger a target reset immediately after the UART port opens so early
boot text is captured deterministically.
write_serialA

Write bounded UTF-8 text to the connected board UART.

The tool uses the same board-aware serial-port resolution as ``read_serial``.
It never executes host commands and only writes bytes to the resolved UART
transport for the active connected session. Set ``port`` to override serial
resolution explicitly. Set ``append_newline`` when the target firmware
expects line-oriented UART input.
unlock_recoverA

Run the shared recover/unlock path for the connected board.

This is a destructive action. When ``confirm`` is false the tool refuses
without touching hardware. Boards whose tracked config has no supported
``recover_mode`` fail deterministically instead of pretending success.

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/JasonPeng2019/BYO-Firmware-MCP'

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