[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "bakom-mcp" version = "3.0.0" description = "MCP Server for BAKOM Open Data – broadband, mobile, media and telecom statistics" readme = "README.md" license = { file = "LICENSE" } authors = [ { name = "malkreide", email = "hayal.oezkan@zuerich.ch" } ] keywords = [ "mcp", "model-context-protocol", "bakom", "swiss-open-data", "broadband", "5g", "llm", ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Internet :: WWW/HTTP", "Topic :: Scientific/Engineering :: GIS", ] requires-python = ">=3.11" dependencies = [ # MCP-SDK: Upper-Bound verhindert Major-Bumps mit Breaking-Changes # (z.B. wurde mcp.run(host=, port=) zwischen 1.3 und 1.10 entfernt). "mcp[cli]>=2.0.0,<3", "httpx>=0.27.0,<1.0", "pydantic>=2.7.0,<3.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0.0,<10.0", "pytest-asyncio>=0.23.0,<2.0", # Exakt gepinnt, identisch zu .github/workflows/ci.yml und # .pre-commit-config.yaml. Eine andere Version meldet Abweichungen, die # niemand verursacht hat. Alle drei Stellen zusammen bumpen. "ruff==0.16.3", ] [project.scripts] bakom-mcp = "bakom_mcp.server:mcp.run" [project.urls] Homepage = "https://github.com/malkreide/bakom-mcp" Repository = "https://github.com/malkreide/bakom-mcp" Issues = "https://github.com/malkreide/bakom-mcp/issues" [tool.hatch.build.targets.wheel] packages = ["src/bakom_mcp"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] markers = [ "live: tests that hit real BAKOM/geo.admin.ch/opendata.swiss APIs (excluded from CI default)", ] [tool.ruff] line-length = 100 target-version = "py311" src = ["src"] [tool.ruff.lint] select = ["E", "F", "I", "UP", "B"] ignore = ["E501"]