Files
Nikolay MiroshnichenkoandClaude Opus 5 9000fc0b7f 0.8.2
load_ga_export (32nd tool), multi-address entity naming, climate setpoint shift,
suggest_repairs crash fix, CI runs the whole test suite. Details in CHANGELOG.

Pre-release checks: corpus guard no drift on six real projects; twine check PASSED
for wheel and sdist; mcp-name marker present in METADATA; wheel carries ga_export
and no tools/tests/corpus files; sdist has no corpus map or project files; a clean
isolated venv from the wheel imports 0.8.2 and exposes load_ga_export. CHANGELOG
compare links added for 0.8.1 and 0.8.2.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 00:18:27 +02:00

61 lines
2.0 KiB
TOML

[project]
name = "nickol-knx-mcp"
version = "0.8.2"
description = "Design-time KNX/ETS6 project assistant as an MCP server (parse .knxproj, validate, generate HA YAML + ETS CSV/XML). No live bus access."
readme = "README.md"
requires-python = ">=3.10"
license = { text = "MIT" }
authors = [{ name = "Nikolay Miroshnichenko" }]
keywords = ["knx", "ets", "ets6", "home-assistant", "mcp", "model-context-protocol", "smart-home", "home-automation"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Home Automation",
"Topic :: Software Development :: Libraries",
]
dependencies = [
"mcp>=1.10,<2", # v2 renames mcp.server.fastmcp.FastMCP -> mcp.server.MCPServer (breaking)
"xknxproject>=3.8",
"PyYAML>=6.0",
"defusedxml>=0.7", # hardened XML parsing of untrusted .knxproj (XXE/billion-laughs)
]
[project.urls]
Homepage = "https://github.com/NickoScope/nickol-knx-mcp"
Repository = "https://github.com/NickoScope/nickol-knx-mcp"
Issues = "https://github.com/NickoScope/nickol-knx-mcp/issues"
Changelog = "https://github.com/NickoScope/nickol-knx-mcp/blob/main/CHANGELOG.md"
[project.scripts]
nickol-knx-mcp = "nickol_knx_mcp.server:main"
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
packages = ["nickol_knx_mcp"]
[tool.setuptools.package-data]
nickol_knx_mcp = ["room_templates/*.yaml", "room_templates/*.md"]
[tool.ruff]
target-version = "py310"
line-length = 110
[tool.ruff.lint]
# Deliberately narrow: real errors, not style. E9 = syntax/IO errors, F = pyflakes
# (undefined names, unused imports, broken f-strings). Style rules are left off so the
# gate stays meaningful instead of noisy.
select = ["E9", "F"]
[tool.mypy]
python_version = "3.10"
ignore_missing_imports = true
files = ["nickol_knx_mcp"]