Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
IDM_LIVENoSet to 1 to run live tests against IDM_GATEWAY.
IDM_GROUPNoGroup name; me means local devices.me
IDM_HIDDENNoEnable hidden sections; same as --enable-hidden.off
IDM_PYTHONNoInterpreter used by ecosystem.config.cjs for pm2.python3
IDM_GATEWAYNoGateway base URL.http://localhost:33000
IDM_TIMEOUTNoRequest timeout in seconds.60
IDM_ADVANCEDNoEnable advanced sections; same as --enable-advanced.off
IDM_MCP_HOSTNoHTTP transport host default.127.0.0.1
IDM_MCP_PATHNoHTTP transport path default./mcp
IDM_MCP_PORTNoHTTP transport port default.8003
IDM_PASSWORDNoBasic auth password, if the gateway needs it.
IDM_USERNAMENoBasic auth username, if the gateway needs it.
IDM_WRITABLENoAllowlist of device:parameter entries for the write tools. Empty means nothing is writable.
IDM_ALLOW_WRITENoRegister the write tools. Accepts 1/true/yes/on.off
IDM_DEVELOPMENTNoEnable development sections; same as --enable-devel/--enable-development.off
IDM_STREAM_HOSTNoHost the gateway dials for idm_open_stream.localhost
IDM_MCP_TRANSPORTNoTransport default: stdio or http.stdio
IDM_OPEN_SERIAL_CMDNoCommand name used by idm_open_serial.openSerialPort
IDM_CLOSE_SERIAL_CMDNoCommand name used by idm_close_serial.closeConnection

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

Tools

Functions exposed to the LLM to take actions

NameDescription
idm_gateway_infoA

Describe the gateway: host, API version, mode, group and device count.

idm_list_devicesC

List the devices of this group.

idm_device_statusC

Connection state of one device: state, port, endpoints, last update time.

idm_get_protocolsA

Show the protocol and stream stack of the port a device is attached to.

The ISN stack is a compound object tree: MESSAGE / TRANSPORT / FRAME / USER / CUSTOM layers can nest to any depth, and new protocol types appear without notice. Layers are returned flattened, each with its path. A layer carrying a tcp_port is a stream: connect to <gateway_host>:<tcp_port> for the raw byte stream.

idm_get_streamsB

List the TCP streams the gateway exposes, with their names.

De-duplicated across devices that share one connection port.

idm_list_connectionsA

List the gateway's physical connections with link counters.

Shows every connection the gateway holds - USB, serial or a TCP client it dialled for a stream - including one with no device behind it, which the device and stream views cannot represent.

idm_get_device_htmlA

Start here: fetch the gateway's own HTML page for a device.

This is the description layer. It groups parameters into sections (System, Acquire, Trigger, Channels, ...), shows units, live values and free-text diagnostics (status, message, error number), and every value carries its parameter name - so it is how you learn what a device is and what its parameters mean before reading or writing them.

It honours the server's access level: with development/hidden enabled the page grows (140 -> 195 parameters on this gateway). Fetching it marks the device as described, which the write tools report back.

idm_get_activityA

Read the gateway's recent activity log.

This is the real receipt for a write: the gateway reports rejected commands here as "Command not found: ...".

idm_read_streamA

Read raw bytes from a stream.

Attaches to the stream for the read and detaches again unless it was already opened with idm_open_stream. Returns the bytes as hex and text.

idm_list_parametersA

List a device's parameter paths without their values.

idm_get_structureA

Fetch a whole sub-structure in one request (get("") on that path).

Use this instead of idm_get_parameters when you want the gateway's own nested JSON for one section, e.g. "cfg" or "ch/PGA_in", including hidden/development sections.

idm_get_parametersB

Read current values of a device's parameters, flattened to path -> {value, unit}.

idm_get_valueC

Read a single parameter, e.g. device="device0", parameter="ec/E".

idm_get_historyA

Read recorded samples of one parameter, aggregated by the gateway.

Four modes, chosen by which arguments are set: regular (default) - max_points samples from the span. scale - exactly scale points spanning the span, each with m records. average - scale plus average: interval duration in SECONDS; adds n, sd. calc - one aggregate over the whole record set, e.g. "avg".

Also works for inactive devices: the gateway keeps their records.

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 14 tools

Disambiguation4/5

Most tools target distinct resources (devices, connections, streams, activity, history), and the parameter-reading family (list_parameters, get_parameters, get_value, get_structure) is differentiated by descriptions. However, the four parameter tools plus the topology trio (get_protocols, get_streams, list_connections) require careful reading to avoid misselection.

Naming Consistency4/5

All tools share the idm_ prefix and follow a mostly consistent verb_noun pattern (list_devices, get_parameters, read_stream, get_history). Minor deviations: idm_gateway_info and idm_device_status are noun-only, and get vs read both appear but are used sensibly.

Tool Count5/5

14 tools is well-scoped for a gateway/device management server, covering topology, parameters, streams, and history without obvious redundancy. Each tool earns its place.

Completeness3/5

The read surface is thorough (info, devices, connections, streams, parameters, history), but the descriptions reference write tools and idm_open_stream that are not present in the tool list, implying missing write capability. The surface is read-only despite describing a read/write parameter workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues