[build-system]
requires = ["setuptools>=61.0.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "proxmox-mcp"
version = "0.1.0"
description = "A Model Context Protocol server for interacting with Proxmox hypervisors"
requires-python = ">=3.9"
authors = [
    {name = "Kevin", email = "kevin@example.com"}
]
readme = "README.md"
license = {text = "MIT"}
keywords = ["proxmox", "mcp", "virtualization", "cline", "qemu", "lxc"]
classifiers = [
    "Development Status :: 3 - Alpha",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Software Development :: Libraries :: Python Modules",
    "Topic :: System :: Systems Administration",
]

dependencies = [
    "mcp @ git+https://github.com/modelcontextprotocol/python-sdk.git",
    "proxmoxer>=2.0.1,<3.0.0",
    "requests>=2.31.0,<3.0.0",
    "pydantic>=2.0.0,<3.0.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=7.0.0,<8.0.0",
    "black>=23.0.0,<24.0.0",
    "mypy>=1.0.0,<2.0.0",
    "pytest-asyncio>=0.21.0,<0.22.0",
    "ruff>=0.1.0,<0.2.0",
    "types-requests>=2.31.0,<3.0.0",
]

[project.urls]
Homepage = "https://github.com/yourusername/proxmox-mcp"
Documentation = "https://github.com/yourusername/proxmox-mcp#readme"
Repository = "https://github.com/yourusername/proxmox-mcp.git"
Issues = "https://github.com/yourusername/proxmox-mcp/issues"

[project.scripts]
proxmox-mcp = "proxmox_mcp.server:main"

[tool.pytest.ini_options]
asyncio_mode = "strict"
testpaths = ["tests"]
python_files = ["test_*.py"]
addopts = "-v"

[tool.mypy]
python_version = "3.9"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
warn_unreachable = true

[tool.ruff]
select = ["E", "F", "B", "I"]
ignore = []
line-length = 100
target-version = "py39"
