nickol-knx-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NICKOL_KNX_WORKSPACE | No | The workspace directory for output files | ./knx-workspace |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| load_projectA | Parse a .knxproj file (read-only) and cache it for the session. |
| load_ga_exportA | Load an ETS group-address export (ga-export/01 XML) instead of a full .knxproj. |
| list_group_addressesA | List parsed group addresses with classification, in a stable order. |
| get_devicesA | List devices (individual address, name, order number, manufacturer), sorted by
individual address (area/line/device numerically). Same paging contract as
|
| get_topologyB | Return the area/line/device topology tree. |
| check_namingC | Validate naming conventions and 3-level structure. |
| check_missing_statusB | Detect controllable GAs lacking a status/feedback counterpart. |
| check_dptB | Detect missing, inconsistent or mismatched DPTs. |
| check_topologyA | Check topology capacity and individual-address validity (KNX Handbook). Flags lines over the TP1 segment (64) / line (256) limits, invalid or duplicate individual addresses, and multi-line projects missing a coupler. |
| suggest_repairsA | Propose concrete fixes for the project's findings — repair, don't just flag. |
| check_secureA | Summarise KNX Data Secure posture + the keyring handover checklist. Reports how many group addresses are secured vs plaintext, flags middle groups that mix secure and plaintext addresses (a function is only as secure as its weakest GA), and emits the ETS/HA keyring workflow as a checklist. Report-only — this server never touches key material. |
| analyze_allC | Run every check and return the report summary plus all findings. |
| generate_ha_packageA | Generate a Home Assistant KNX package YAML. |
| generate_ets_group_addressesA | Generate an ETS-importable Group Address export. |
| project_reportC | Produce the human-readable Markdown report (review before any import). |
| generate_handover_packA | Generate a project handover pack (as-built deliverable for commissioning). |
| decompose_deviceA | Expand a device into its group-address decomposition recipe. A KNX actuator channel is not one GA — it expands into command/status/dimming/ position/mode objects, each with its DPT. Given a device order number, type or alias (e.g. 'ZIO-MB24', 'dimmer', 'JRA/S', 'presence detector') and a channel count, returns the objects a professional wires per channel and the total GA count. Use when turning a spec/ТЗ device list into a group-address structure. |
| list_device_recipesA | List the device decomposition recipes in the built-in device library. |
| parse_devices_from_projectA | Extract exact device object models from a .knxproj / .knxprod application programs. |
| check_device_parametersA | Find the device whose ETS parameter settings differ from its N identical siblings — the odd thermostat/sensor out (e.g. one thermostat with a different setpoint/hysteresis, one presence detector with a different detection time). |
| check_policyA | Validate the loaded project against a Project Policy Profile — your
agreed rules (main-group taxonomy, naming regex, command/status exemptions),
not one universal "standard". Flags GAs whose domain doesn't match the main
group your policy assigns, and names that don't match your pattern. Pass
|
| explain_gaA | Provenance for one group address — why the tool classified it the way it did.
Replays the classification and shows, per decision (category / kind / status pairing),
the signals that fired with a confidence tier: authoritative (an ETS Function role) >
structural (the KNX DPT) > heuristic (a name keyword). Flags conflicts (e.g. a GA
the DPT calls |
| check_matterB | Matter-readiness lint: which controllable functions round-trip to a Matter cluster (have command + status + a decodable DPT) and which won't. |
| grade_completenessA | Grade the project: bare functional skeleton vs as-built grade — by the presence of the professional patterns (central macros, device tuning, astro/meteo, monitoring, deep metering, scenes, reserves, a debug main). |
| check_energyA | Check the metering/energy domain (energy DPTs 13.x / 14.056) and suggest a per-circuit / PV / battery / EVSE structure for the HA energy dashboard. |
| suggest_namesB | Naming hygiene suggestions (empty names, status GAs missing a status keyword). |
| generate_test_protocolA | Draft a functional acceptance protocol (per function: command → expected status, pass/fail/sign-off) as Markdown. Execution is manual/on-site; this only drafts it. |
| diff_projectsA | Semantic diff between two .knxproj files (path_a = base/old, path_b = new): added / removed GAs, DPT changes, renames, security-flag changes. Read-only. |
| generate_knx_iotB | Export a KNX IoT semantic view (Turtle/RDF) of the project's functional datapoints — a pragmatic skeleton for the IP-native model, for review. |
| validate_room_templateA | Validate a Room Library template against the R1 schema (report-only). |
| compose_roomsA | Compose a new KNX project from a list of room templates (constructor). |
| workspace_infoB | Show the confined output workspace and the safety guarantees. |
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 32 tools
Tools are largely distinct due to consistent prefixes (check_*, generate_*, list_*, get_*) and targeted domains. Minor overlap exists (e.g., check_naming vs. suggest_names, analyze_all vs. project_report), but descriptions clarify boundaries.
Most names follow a verb_noun pattern with strong category prefixes. A few irregular names (analyze_all, project_report, workspace_info) break the pattern, but the overall style is predictable and readable.
32 tools is a large surface, well above the typical 3-15 range. While each tool appears justified, the count feels heavy and could be consolidated (e.g., parameterized check/generate tools), increasing cognitive load for agents.
The toolset covers the full KNX workflow: project loading, multiple analysis/check dimensions, report generation, exports, room composition, and device decomposition. Minor gaps exist (no direct write/apply fixes, no update/delete operations), but these are intentional design constraints.