# nickol-knx

Checks KNX/ETS projects and builds Home Assistant YAML. Useful when you need a read-only review of a .knxproj before deployment.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 28
- Author: NickoScope
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/NickoScope/nickol-knx-mcp
- Updated: 2026-09-16
- HTML: https://affpapa.org/en/nevibecode/mcp/nickol-knx

## What it does

\`nickol-knx` exposes KNX project work through an MCP server. It reads `.knxproj` files, checks naming, DPT and sub-DPT values, command/status links, KNX Secure, and Matter readiness. The server can suggest concrete fixes, assess project completeness, and compare two project versions.

It can also assemble Home Assistant entities for lights, climate, covers, and sensors from device state. A device library expands actuators into their communication objects, including vendor models parsed from ETS application programs. The server stays read-only and never connects to the live KNX bus. Running it uses `uvx`; the project lists Python 3.10+ as its Python requirement.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `NICKOL_KNX_WORKSPACE`, `NICKOL_KNX_CATALOG` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env NICKOL_KNX_WORKSPACE=<NICKOL_KNX_WORKSPACE> --env NICKOL_KNX_CATALOG=<NICKOL_KNX_CATALOG> --transport stdio nickol-knx -- uvx nickol-knx-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from nickol-knx-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add nickol-knx --env NICKOL_KNX_WORKSPACE=<NICKOL_KNX_WORKSPACE> --env NICKOL_KNX_CATALOG=<NICKOL_KNX_CATALOG> -- uvx nickol-knx-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from nickol-knx-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "nickol-knx": {
            "command": "uvx",
            "args": [
                "nickol-knx-mcp"
            ],
            "env": {
                "NICKOL_KNX_WORKSPACE": "<NICKOL_KNX_WORKSPACE>",
                "NICKOL_KNX_CATALOG": "<NICKOL_KNX_CATALOG>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from nickol-knx-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "nickol-knx": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "nickol-knx-mcp"
            ],
            "env": {
                "NICKOL_KNX_WORKSPACE": "<NICKOL_KNX_WORKSPACE>",
                "NICKOL_KNX_CATALOG": "<NICKOL_KNX_CATALOG>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from nickol-knx-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e NICKOL_KNX_WORKSPACE=<NICKOL_KNX_WORKSPACE> -e NICKOL_KNX_CATALOG=<NICKOL_KNX_CATALOG> nickol-knx uvx nickol-knx-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from nickol-knx-mcp <command>

## When to use it
- audit a `.knxproj` before ETS work
- spot mismatched DPT and command/status links
- build Home Assistant YAML from project data
- diff two KNX project versions
- compose a new project from room templates

## Example prompts
- Audit this `.knxproj` for naming, DPT, status links, and KNX Secure issues.
- Generate Home Assistant entities from the device state in this project.
- Compose a new KNX project from room templates using the `basic` and `comfort` presets, then show the allocation manifest.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13169
- [Inbox Zero](https://affpapa.org/en/nevibecode/mcp/inbox-zero.md) — MCP server · ★ 12791

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
