[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "mcpm"
dynamic = ["version"]
description = "MCPM - Model Context Protocol Manager"
readme = "README.md"
requires-python = ">=3.11"
license = "MIT"
authors = [{ name = "MCPM Contributors" }]
maintainers = [{ name = "Path Integral Institute" }]
keywords = [
    "MCPM",
    "MCP",
    "Model Context Protocol",
    "Claude Desktop",
    "Cursor",
    "Windsurf",
]
dependencies = [
    "click>=8.1.3",
    "rich>=12.0.0",
    "requests>=2.28.0",
    "pydantic>=2.5.1",
    "mcp>=1.8.0",
    "ruamel-yaml>=0.18.10",
    "watchfiles>=1.0.4",
    "duckdb>=1.2.2",
    "psutil>=7.0.0",
    "prompt-toolkit>=3.0.0",
    "deprecated>=1.2.18",
]

[project.urls]
Homepage = "https://mcpm.sh"
Repository = "https://github.com/pathintegral-institute/mcpm.sh"
Issues = "https://github.com/pathintegral-institute/mcpm.sh/issues"

[project.scripts]
mcpm = "mcpm.cli:main"

[tool.hatch.version]
path = "src/mcpm/version.py"

[tool.pytest.ini_options]
testpaths = ["tests"]

[tool.ruff]
line-length = 120
fix = true

[tool.ruff.lint]
select = ["E", "F", "W", "Q", "I"]
fixable = ["ALL"]
ignore = ["E501"]

[dependency-groups]
dev = [
    "ipython>=8.34.0",
    "pytest>=8.3.5",
    "pytest-asyncio>=0.26.0",
    "ruff>=0.11.4",
    "jsonschema>=4.23.0",
    "openai>=1.72.0",
]
