idm-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IDM_LIVE | No | Set to 1 to run live tests against IDM_GATEWAY. | |
| IDM_GROUP | No | Group name; me means local devices. | me |
| IDM_HIDDEN | No | Enable hidden sections; same as --enable-hidden. | off |
| IDM_PYTHON | No | Interpreter used by ecosystem.config.cjs for pm2. | python3 |
| IDM_GATEWAY | No | Gateway base URL. | http://localhost:33000 |
| IDM_TIMEOUT | No | Request timeout in seconds. | 60 |
| IDM_ADVANCED | No | Enable advanced sections; same as --enable-advanced. | off |
| IDM_MCP_HOST | No | HTTP transport host default. | 127.0.0.1 |
| IDM_MCP_PATH | No | HTTP transport path default. | /mcp |
| IDM_MCP_PORT | No | HTTP transport port default. | 8003 |
| IDM_PASSWORD | No | Basic auth password, if the gateway needs it. | |
| IDM_USERNAME | No | Basic auth username, if the gateway needs it. | |
| IDM_WRITABLE | No | Allowlist of device:parameter entries for the write tools. Empty means nothing is writable. | |
| IDM_ALLOW_WRITE | No | Register the write tools. Accepts 1/true/yes/on. | off |
| IDM_DEVELOPMENT | No | Enable development sections; same as --enable-devel/--enable-development. | off |
| IDM_STREAM_HOST | No | Host the gateway dials for idm_open_stream. | localhost |
| IDM_MCP_TRANSPORT | No | Transport default: stdio or http. | stdio |
| IDM_OPEN_SERIAL_CMD | No | Command name used by idm_open_serial. | openSerialPort |
| IDM_CLOSE_SERIAL_CMD | No | Command 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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 ( Use this instead of |
| 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 Also works for inactive devices: the gateway keeps their records. |
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 14 tools
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.
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.
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.
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.