Skip to content
Agentmart
Submit a tool

nickol-knx

Read-only KNX/ETS project auditor: validates a.knxproj and generates Home Assistant YAML

Connector by NickoScope · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 28
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/nickoscope-nickol-knx-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Read-only KNX/ETS project auditor: validates a .knxproj and generates Home Assistant YAML

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.

Tools
21 read · 2 write · 0 delete · 9 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 32

Read from the source code; the running server may list different tools.

Read 21 · Look things up without changing anything.

  • check_device_parameters
  • check_dpt
  • check_energy
  • check_matter
  • check_missing_status
  • check_naming
  • check_policy
  • check_secure
  • check_topology
  • diff_projects
  • explain_ga
  • get_devices
Show 9 more tools
  • get_topology
  • list_device_recipes
  • list_group_addresses
  • load_project
  • parse_devices_from_project
  • suggest_names
  • suggest_repairs
  • validate_room_template
  • workspace_info

Write 2 · Create, change, send or run things.

  • compose_rooms
  • generate_test_protocol

Not yet classified 9 · We could not tell from the name and description.

  • analyze_all
  • decompose_device
  • generate_ets_group_addresses
  • generate_ha_package
  • generate_handover_pack
  • generate_knx_iot
  • grade_completeness
  • load_ga_export
  • project_report

Secrets and settings it asks for

Other settings (environment variables or headers).

  • NICKOL_KNX_CATALOG
  • NICKOL_KNX_WORKSPACE

Network hosts it talks to 7

  • api.github.com · found in code
  • github.com · found in code
  • glama.ai · found in code
  • knx.org · found in code
  • nickoscope.github.io · found in code
  • ns.knx.org · found in code
  • uploads.github.com · found in code

Files it touches

  • /tmp/ha_git_sync.lock
  • Any path the agent passes to its tools

Tools (32)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyze_all

    Run every check and return the report summary plus all findings.

  • check_device_parameters

    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). Reads per-device parameter values straight from the `.knxproj` project part (data xknxproject does not expose), groups identical devices by application program, and returns `clear_outliers` (a strong majority with a small minority — likely a mistake) and `split_configs` (balanced 2+ variants — review, often two zones). Numeric config parameters are listed first; n…

  • check_dpt

    Detect missing, inconsistent or mismatched DPTs.

  • check_energy

    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.

  • check_matter

    Matter-readiness lint: which controllable functions round-trip to a Matter cluster (have command + status + a decodable DPT) and which won't.

  • check_missing_status

    Detect controllable GAs lacking a status/feedback counterpart.

  • check_naming

    Validate naming conventions and 3-level structure.

  • check_policy

    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 `profile_path` to a YAML profile (omit to validate against the taxonomy inferred from the project itself). Set `write_example_to` to drop a commented example profile into the workspace — **seeded from the loaded project's own main groups** (mains that do not exist in the project are not written). Re…

  • check_secure

    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.

  • check_topology

    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.

  • compose_rooms

    Compose a **new** KNX project from a list of room templates (constructor). ``rooms`` is a list of specs, each: ``{template, preset?, slot_presets?, params?, label?}`` — e.g. ``{"template": "bedroom", "preset": "comfort"}``. ``preset`` is basic|comfort (per-room); ``slot_presets`` overrides individual slots (mix comfort climate with basic lighting); ``params`` overrides template defaults (window/circuit counts); ``label`` sets a custom zone name. Pipeline: resolve templates+params to a functional model, allocate group addresses (main = domain, middle = role, sub sequential), write a real ``.k…

  • decompose_device

    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.

  • diff_projects

    Semantic diff between two .knxproj files (path_a = base/old, path_b = new): added / removed GAs, DPT changes, renames, security-flag changes. Read-only.

  • explain_ga

    **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 `lighting` while its name says "AC") — the hotspot for silent misclassification. Read-only; use before trusting a category or generating an entity.

  • generate_ets_group_addresses

    Generate an ETS-importable Group Address export. Args: fmt: 'xml' (ga-export/01, recommended) or 'csv' (native ETS layout). output_path: optional file inside the workspace.

Show 17 more tools
  • generate_ha_package

    Generate a Home Assistant KNX package YAML. If output_path is given, the YAML is written into the workspace and the path returned; otherwise the YAML text is returned inline.

  • generate_handover_pack

    Generate a project handover pack (as-built deliverable for commissioning). Assembles an equipment inventory, group-address map by domain, command/status coverage, KNX Secure scope and QA state into ``handover.md``, plus a ``topology.svg`` diagram, the full ``group-addresses.csv`` and the ``ha-package.yaml``. When ``output_dir`` is given (a folder inside the workspace) all files are written there and the paths returned; otherwise the handover markdown + SVG are returned inline.

  • generate_knx_iot

    Export a KNX IoT semantic view (Turtle/RDF) of the project's functional datapoints — a pragmatic skeleton for the IP-native model, for review.

  • generate_test_protocol

    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.

  • get_devices

    List devices (individual address, name, order number, manufacturer), sorted by individual address (area/line/device numerically). Same paging contract as `list_group_addresses`: `next_cursor` / `total_matched` / `returned`.

  • get_topology

    Return the area/line/device topology tree.

  • grade_completeness

    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).

  • list_device_recipes

    List the device decomposition recipes in the built-in device library.

  • list_group_addresses

    List parsed group addresses with classification, in a **stable order**. Filters: category (lighting/shutter/hvac/sensor/scene/energy/diagnostics), kind (command/status/sensor), missing_dpt_only. Paging: results are always sorted by the group address itself (main/middle/sub numerically, free-style addresses numerically, anything else lexically), so the order does not depend on how the project happened to parse and a retry returns the same page. Pass the returned `next_cursor` back as `cursor` for the next page; `next_cursor` is null on the last page. `total_matched` reports how many addresses…

  • load_ga_export

    Load an ETS group-address export (ga-export/01 XML) instead of a full .knxproj. For when you only have the GA list: an ETS "Export Group Addresses" file, or the ETS import file a planning tool produces (TapPlan and similar). Names, addresses, DPTs, descriptions, the security flag and the range tree are read; the result replaces the loaded project for every other tool. Works: check_naming, check_missing_status, check_dpt, check_policy, check_secure, analyze_all, suggest_repairs, project_report, generate_ha_package, generate_ets_group_addresses. Nothing to read (the export has no devices, ETS …

  • load_project

    Parse a .knxproj file (read-only) and cache it for the session. Args: path: Path to the .knxproj file. password: Project password, if the .knxproj is protected. language: Optional language code (e.g. 'de-DE', 'ru-RU').

  • parse_devices_from_project

    Extract exact device object models from a .knxproj / .knxprod application programs. Reads the manufacturer application programs (M-*) embedded in an ETS `.knxproj` (devices actually used) or a `.knxprod` product database, and returns each device's order number, app-program version, object counts and detected per-channel blocks — the EXACT vendor comm-object model, not a generic recipe. Read-only and PII-safe: it reads only vendor catalog data, never the client project (P-*/0.xml). Use this to build/grow the local device catalog that `decompose_device` consumes (set NICKOL_KNX_CATALOG to the …

  • project_report

    Produce the human-readable Markdown report (review before any import).

  • suggest_names

    Naming hygiene suggestions (empty names, status GAs missing a status keyword).

  • suggest_repairs

    Propose concrete fixes for the project's findings — repair, don't just flag. For each issue it suggests a reviewable fix: infer a DPT for a GA that has none, correct a suspect sub-DPT, synthesise a status/feedback GA in a free address slot, or add an absolute-brightness GA for a relative-only dimmer. Suggestions only — a human reviews them; accepted new GAs feed generate_ets_group_addresses. The server never writes to ETS or the bus.

  • validate_room_template

    Validate a Room Library template against the R1 schema (report-only). Pass ``template`` (a built-in template's semantic slot_id, e.g. 'bedroom', 'kitchen') or ``path`` to a custom template YAML. Checks the public contract: a locale-neutral slot_id, ru/en labels, per-slot basic/comfort presets, known function types, valid multiplicities, and that ``area_m2`` is a hint with provenance (never a normative fact). Returns ok + findings; nothing is written.

  • workspace_info

    Show the confined output workspace and the safety guarantees.

Signals

Stars
28
Forks
5
Open issues
3
Contributors
3
Weekly downloads
62
Last commit
Sep 16, 2026 (1 month ago)
Last release
Sep 14, 2026 (1 month ago)
Last package publish
Sep 14, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.NickoScope/nickol-knx-mcp
Version
0.8.2
Auth
No auth
Packages
pypi nickol-knx-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

nickol-knx MCP server. Agent Mart. https://agentmart.dev/connectors/nickoscope-nickol-knx-mcp (last updated 2026-10-24)