[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "cronometer-api-mcp" version = "0.1.0" description = "MCP server for Cronometer nutrition data using the mobile REST API" readme = "README.md" license = "MIT" requires-python = ">=3.14" authors = [ { name = "Randy" }, ] keywords = ["cronometer", "mcp", "nutrition", "health", "model-context-protocol"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.14", ] dependencies = [ "mcp>=2.0.0,<3", "httpx[socks]>=0.27.0", "python-dotenv>=1.0.0", "tzdata>=2024.1", ] [project.scripts] cronometer-api-mcp = "cronometer_api_mcp.server:main" [dependency-groups] dev = [ "ruff>=0.8.0", "pytest>=8.0.0", ] [tool.hatch.build.targets.wheel] packages = ["src/cronometer_api_mcp"] [tool.ruff.lint.per-file-ignores] # Tools have to hand every failure back as a structured error string; an # exception escaping into the stdio stream kills the session. "src/cronometer_api_mcp/server.py" = ["BLE001"] # Diary enrichment is best-effort and degrades to an unenriched diary. "src/cronometer_api_mcp/client.py" = ["BLE001"]