Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HWCONTRACT_ROOTNoAbsolute path to the contracts folder. Relative contract paths resolve against it. Defaults to the process's working directory.
HWCONTRACT_SAFENoSet to '1' to instantly disable hardware-touching tools (captures) while leaving pure judge tools working.
HWCONTRACT_TOKENNoBearer token required when the server is exposed over HTTP (e.g., via --http).

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_contractsA

List bundled contract templates, names, kinds, installed paths, and capture adapter requirements. No hardware.

judge_contractB

Judge observations against a timing contract -> PASS/MARGINAL/FAIL/MISSING. No hardware; use for replay or when an adapter already captured.

capture_ws2812A

Capture the WS2812 data line via sigrok and return measured pulse-width observations (T0H/T1H/...).

check_ws2812A

Capture a live WS2812 signal AND judge it against a contract in one call. The one-shot an agent reaches for.

check_dshotB

Capture a live DShot600 ESC signal AND judge it against a contract in one call.

judge_serialA

Judge a captured serial log against expect/forbid patterns. No hardware; use for replay or logs another tool already captured.

judge_eventsB

Judge decoded hardware events against an events contract's temporal assertions (when/require/within, forbid/while/before). Events: [{source, type, start_ns, end_ns, fields}].

check_serialB

Read a serial port for N seconds AND judge its log against a contract's expect/forbid patterns.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 8 tools

Disambiguation4/5

The set splits cleanly into judge_* (no-hardware judging of already-captured data), check_* (capture + judge in one call), and capture_ws2812 (capture only), and descriptions explicitly guide selection (e.g. check_ws2812 is 'the one-shot an agent reaches for'). Minor overlap remains between judge_contract (timing contract) and judge_events (events contract) and judge_serial, but each is scoped to a distinct contract kind or data source so boundaries are mostly clear.

Naming Consistency4/5

All names use a consistent snake_case verb_noun pattern (list_, judge_, capture_, check_). The only wrinkle is semantic: capture_ws2812 and check_ws2812 both 'capture' the WS2812 line but use different verbs, and there is no capture_dshot/capture_serial to mirror capture_ws2812, creating mild asymmetry despite uniform formatting.

Tool Count4/5

Eight tools is well within the ideal 3-15 range and each family (list, judge, capture, check) covers a genuine need. Slight redundancy exists since capture_ws2812 is partially subsumed by check_ws2812, but the raw-observation use case justifies keeping both.

Completeness3/5

Coverage spans listing, capturing, and judging for timing/events/serial/WS2812/DShot, but the contract lifecycle is thin: list_contracts exists with no create/update/delete or contract-authoring operation, and raw-only capture exists for WS2812 but not for DShot or serial. These are workable but notable gaps for a contract-driven validation toolset.

Maintenance

ActivityMaintained
ResponsivenessNo issues