From 3d134b3bc78249df633fc587d562ccbc5d8f4c0b Mon Sep 17 00:00:00 2001 From: Nikolay Miroshnichenko Date: Sat, 12 Sep 2026 08:40:55 +0200 Subject: [PATCH] registry: server.json + mcp-name ownership marker in README (official MCP Registry prerequisites) - server.json: schema 2025-12-11, registryType pypi, name io.github.nickoscope/nickol-knx-mcp, stdio transport, NICKOL_KNX_WORKSPACE / NICKOL_KNX_CATALOG documented as optional env vars - README: (becomes the PyPI description, which is what the registry checks for ownership) - verified: uv build produces sdist+wheel, twine check PASSED, marker present in wheel METADATA --- CHANGELOG.md | 8 ++++++++ README.md | 2 ++ server.json | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 server.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bd434e..f828d41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- **Official MCP Registry preparation**: `server.json` (schema 2025-12-11, `registryType: pypi`, + server name `io.github.nickoscope/nickol-knx-mcp`, stdio transport, the two optional env vars) and the + ownership marker `` in the README, which the registry checks inside the published + PyPI description. Package builds clean (`uv build`, `twine check` PASSED). Publishing itself still needs + a PyPI token (owner action), then `mcp-publisher login github && mcp-publisher publish`. + +### Added + - **`suggest.py` — structure-first entity suggestions (experimental, library-only, no MCP tool yet).** Prototype of a second Home Assistant KNX `SuggestionProvider` (core PR #180891 contract): device channel → communication-object flags (write = command sink, transmit = status source) → DPT pattern diff --git a/README.md b/README.md index 7cbe1d9..567dee7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # nickol-knx-mcp + + **A design-time KNX / ETS6 assistant exposed as an [MCP](https://modelcontextprotocol.io) server.** Four things you can do with it — all **without ever touching the live KNX bus**: diff --git a/server.json b/server.json new file mode 100644 index 0000000..2c057c0 --- /dev/null +++ b/server.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", + "name": "io.github.nickoscope/nickol-knx-mcp", + "title": "nickol-knx", + "description": "Design-time KNX/ETS assistant: read-only .knxproj analysis (naming, DPT, command/status pairing, KNX Secure, topology), device decomposition, and generation of Home Assistant YAML, ETS exports and an as-built handover pack. No live-bus access.", + "version": "0.8.0", + "repository": { + "url": "https://github.com/NickoScope/nickol-knx-mcp", + "source": "github" + }, + "websiteUrl": "https://nickoscope.github.io/nickol-knx-mcp", + "packages": [ + { + "registryType": "pypi", + "identifier": "nickol-knx-mcp", + "version": "0.8.0", + "transport": { + "type": "stdio" + }, + "environmentVariables": [ + { + "name": "NICKOL_KNX_WORKSPACE", + "description": "Directory the server may write generated files into (reports, HA YAML, ETS exports). Defaults to ./knx-workspace", + "isRequired": false + }, + { + "name": "NICKOL_KNX_CATALOG", + "description": "Optional path to a local device catalog for exact vendor decomposition", + "isRequired": false + } + ] + } + ] +}