[project] name = "pyro-mcp" version = "0.1.0" description = "MCP tools for ephemeral VM lifecycle management." readme = "README.md" authors = [ { name = "Thales Maciel", email = "thales@thalesmaciel.com" } ] requires-python = ">=3.12" dependencies = [ "mcp>=1.26.0", ] [project.scripts] pyro = "pyro_mcp.cli:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/pyro_mcp"] [tool.hatch.build.targets.wheel.force-include] "src/pyro_mcp/runtime_bundle" = "pyro_mcp/runtime_bundle" [tool.hatch.build.targets.sdist] include = [ "src/pyro_mcp/runtime_bundle/**", "runtime_sources/**", "src/pyro_mcp/**/*.py", "README.md", "AGENTS.md", "pyproject.toml", ] [dependency-groups] dev = [ "mypy>=1.19.1", "pre-commit>=4.5.1", "pytest>=9.0.2", "pytest-cov>=7.0.0", "ruff>=0.15.4", ] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "--cov=pyro_mcp --cov-report=term-missing --cov-fail-under=90" [tool.ruff] target-version = "py312" line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "B"] [tool.mypy] python_version = "3.12" strict = true warn_unused_configs = true files = ["src", "tests", "examples"]