[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "termdat-mcp" version = "0.2.0" description = "MCP server for TERMDAT — the terminology database of the Swiss Federal Administration" readme = "README.md" requires-python = ">=3.10" license = { file = "LICENSE" } authors = [{ name = "malkreide" }] keywords = ["mcp", "model-context-protocol", "llm", "swiss-open-data", "terminology", "termdat"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Natural Language :: German", "Natural Language :: French", "Natural Language :: Italian", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] dependencies = [ # Upper bound added deliberately: `mcp` 2.0.0 removed `mcp.server.fastmcp` # outright (the API moved to `mcp.server.mcpserver`), so an unbounded # `>=1.28.1` breaks every fresh install — CI and `pip install` alike. # Migrating to the 2.x API is real work and a decision to take on purpose, # not one a resolver should make silently. "mcp>=2.0.0,<3", "httpx>=0.27", "pydantic>=2.7", "pydantic-settings>=2.0", "structlog>=24.1,<27", ] [project.optional-dependencies] dev = ["pytest>=8", "pytest-asyncio>=0.23", "respx>=0.21", "ruff==0.16.5"] [project.scripts] termdat-mcp = "termdat_mcp.__main__:main" [project.urls] Homepage = "https://github.com/malkreide/termdat-mcp" Repository = "https://github.com/malkreide/termdat-mcp" Issues = "https://github.com/malkreide/termdat-mcp/issues" Changelog = "https://github.com/malkreide/termdat-mcp/blob/main/CHANGELOG.md" Portfolio = "https://github.com/malkreide/swiss-public-data-mcp" [tool.hatch.build.targets.wheel] packages = ["src/termdat_mcp"] [tool.pytest.ini_options] asyncio_mode = "auto" markers = ["live: hits the real TERMDAT API (excluded from CI)"] [tool.ruff] line-length = 110 target-version = "py310"