Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SEARXNG_URLNoThe URL of the searxng serverhttp://localhost:8080

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
board_listA

List all configured boards in the registry and their capabilities.

board_statusA

Get runtime connection, serial metrics, lease state, and buffer statistics for a board.

Args: board_id: The identifier of the board (e.g. 'board_a')

serial_connectC

Ensure the Serial Gateway is running and connected for the specified board.

Args: board_id: The identifier of the board (e.g. 'board_a')

serial_tailA

Fetch the most recent log lines from the board's ring buffer history.

Safe across UTF-8 boundaries and non-intrusive (no TX write lock needed).

Args: board_id: The identifier of the board (e.g. 'board_a') lines: Number of recent lines to retrieve (default: 200)

serial_acquireA

Acquire exclusive controller lease (write permission) for the board.

Args: board_id: The identifier of the board (e.g. 'board_a') timeout_sec: Lease duration in seconds before auto-release (default: 60.0)

serial_releaseA

Release controller lease, restoring observer role.

Args: board_id: The identifier of the board (e.g. 'board_a')

serial_writeA

Write a raw command string to the board's serial port.

Requires active controller lease.

Args: board_id: The identifier of the board (e.g. 'board_a') data: String or command to transmit (e.g. 'help\r\n')

serial_readA

Wait and read recent serial output from the board.

Args: board_id: The identifier of the board (e.g. 'board_a') timeout_ms: Duration in milliseconds to wait and collect (default: 500)

serial_exchangeA

Atomic composite command execution:

  1. Acquires lease temporarily if not already held.

  2. Transmits command with newline.

  3. Waits for expected prompt or output silence.

  4. Automatically strips echo.

  5. Cleanly restores previous lease state.

Args: board_id: The identifier of the board (e.g. 'board_a') request: Command to execute (e.g. 'help' or 'status') timeout_ms: Maximum duration in milliseconds to wait for reply (default: 1000) expected_prompt: Optional prompt to wait for (e.g. '> ' or 'shell#')

serial_resetA

Trigger hardware reset on target board via DTR line pulse.

Args: board_id: The identifier of the board (e.g. 'board_a')

ssh_connectB

Connect to remote board via SSH and start continuous log streaming (e.g. tail -f enor.log).

Args: board_id: The identifier of the board (e.g. 'e1_linux_host')

ssh_tailA

Fetch the most recent log lines from the remote log file (e.g. enor.log) via SSH ring buffer.

Instantly returns latest lines with UTF-8 boundary protection, non-blocking.

Args: board_id: The identifier of the board (e.g. 'e1_linux_host') lines: Number of recent lines to retrieve (default: 200)

ssh_execA

Execute a shell command on the remote host via SSH and return exit status, stdout, and stderr.

Args: board_id: The identifier of the board (e.g. 'e1_linux_host') command: Shell command string to execute (e.g. 'ps aux | grep enor' or 'dmesg | tail') timeout_sec: Maximum timeout in seconds (default: 30.0)

ssh_statusA

Get real-time SSH connection status, target host, monitored log file, and buffer metrics.

Args: board_id: The identifier of the board (e.g. 'e1_linux_host')

firmware_releaseA

Execute full MCU firmware release pipeline:

  1. Keil command-line compilation (uVision.com -b or -r).

  2. Automatic discovery of latest .bin firmware with timestamp freshness verification.

  3. Calculate MD5 checksum.

  4. Upload .bin binary to FTP server.

  5. Publish MQTT OTA upgrade command (mcu_up) to target device topics.

Args: board_id: Optional board identifier (e.g. 'board_a') containing release config. rebuild: Force full Keil rebuild (-r) instead of incremental (-b). skip_build: Skip Keil compilation and use latest or specified existing binary. firmware_path: Explicit path to .bin file (bypasses auto-discovery). version: Firmware version string (e.g. '2.1.11'). If None, extracted from APP/config/config.h. device_ids: Target device ID(s) or topic(s). If None, taken from config. config_path: Path to custom firmware_release_config.json file. save_config: Save executed release artifact info back to the config file.

firmware_buildA

Compile MCU firmware using Keil uVision command-line interface.

Verifies that a fresh .bin binary was produced by the compilation.

Args: board_id: Optional board identifier containing release config. rebuild: Force full rebuild (-r) instead of incremental (-b). config_path: Optional custom firmware release config file.

firmware_uploadB

Upload a firmware binary (.bin) to the configured FTP server.

Args: firmware_path: Path to the .bin file to upload. board_id: Optional board identifier containing release config. remote_filename: Optional remote filename on FTP server. config_path: Optional custom firmware release config file.

firmware_notifyA

Publish MQTT OTA upgrade command (mcu_up) to target device topics.

Args: version: Firmware version string (e.g. '2.1.11'). file_url: Downloadable public URL of the uploaded firmware. md5: MD5 checksum of the firmware. board_id: Optional board identifier. device_ids: Target device ID(s) or topic(s). config_path: Optional custom firmware release config file.

firmware_get_versionC

Read and parse firmware version from APP/config/config.h or active configuration.

Args: config_h_path: Optional explicit path to config.h header file. config_path: Optional firmware release configuration file path. board_id: Optional board identifier.

firmware_get_configB

Inspect the resolved firmware release configuration.

Args: board_id: Optional board identifier. config_path: Optional custom firmware release configuration file path.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_release_config_resourceResource returning the current active firmware release configuration as JSON.