[project] name = "awslabs.healthlake-mcp-server" # NOTE: "Patch"=9223372036854775807 bumps next release to zero. version = "0.0.20" description = "An AWS Labs Model Context Protocol (MCP) server for healthlake" readme = "README.md" requires-python = ">=3.10" dependencies = [ "loguru>=0.7.0", "mcp>=1.23.0", "pydantic>=2.10.6", "boto3>=1.34.0", "botocore>=1.34.0", "httpx>=0.25.0", "python-dateutil>=2.8.0", ] license = {text = "Apache-2.0"} license-files = ["LICENSE", "NOTICE" ] authors = [ {name = "Amazon Web Services"}, {name = "AWSLabs MCP", email="203918161+awslabs-mcp@users.noreply.github.com"}, {name = "Steven Johnston", email="stevehj@amazon.com"}, ] classifiers = [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] [project.optional-dependencies] dev = [ "ruff>=0.9.7", "pyright>=1.1.398", "pytest>=8.0.0", "pytest-asyncio>=0.26.0", "pytest-cov>=4.1.0", "pytest-mock>=3.12.0", "pre-commit>=4.1.0", ] [project.urls] homepage = "https://awslabs.github.io/mcp/" docs = "https://awslabs.github.io/mcp/servers/healthlake-mcp-server/" documentation = "https://awslabs.github.io/mcp/servers/healthlake-mcp-server/" repository = "https://github.com/awslabs/mcp.git" changelog = "https://github.com/awslabs/mcp/blob/main/src/healthlake-mcp-server/CHANGELOG.md" [project.scripts] "awslabs.healthlake-mcp-server" = "awslabs.healthlake_mcp_server.main:sync_main" [dependency-groups] dev = [ "ruff>=0.9.7", "pyright>=1.1.398", "pytest>=8.0.0", "pytest-asyncio>=0.26.0", "pytest-cov>=4.1.0", "pytest-mock>=3.12.0", "pre-commit>=4.1.0", "bandit>=1.8.6", "poethepoet>=0.37.0", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.metadata] allow-direct-references = true [tool.ruff] line-length = 99 extend-include = ["*.ipynb"] exclude = [ ".venv", "**/__pycache__", "**/node_modules", "**/dist", "**/build", "**/env", "**/.ruff_cache", "**/.venv", "**/.ipynb_checkpoints" ] force-exclude = true [tool.ruff.lint] exclude = ["__init__.py"] select = ["C", "D", "E", "F", "I", "W"] ignore = ["C901", "E501", "E741", "F402", "F823", "D100", "D106"] [tool.ruff.lint.isort] lines-after-imports = 2 no-sections = true [tool.ruff.lint.per-file-ignores] "**/*.ipynb" = ["F704"] [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.format] quote-style = "single" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" docstring-code-format = true [tool.pyright] include = ["awslabs", "tests"] exclude = ["**/__pycache__", "**/.venv", "**/node_modules", "**/dist", "**/build"] [tool.hatch.build.targets.wheel] packages = ["awslabs"] [tool.pytest.ini_options] python_files = "test_*.py" python_classes = "Test*" python_functions = "test_*" testpaths = [ "tests"] asyncio_mode = "auto" [tool.coverage.report] exclude_also = [ 'pragma: no cover', 'if __name__ == .__main__.:\n main()', ] [tool.coverage.run] source = ["awslabs"] [tool.poe.tasks] test = "pytest tests/ -v" test-cov = "pytest tests/ -v --cov=awslabs/healthlake_mcp_server --cov-report=term" build = "uv build" run = "uv run awslabs.healthlake-mcp-server" ruff = "ruff check awslabs/ tests/" pyright = "pyright awslabs/" lint = ["ruff", "pyright"] ruff-format = "ruff format awslabs/ tests/" ruff-check = "ruff check --fix awslabs/ tests/" format = ["ruff-format", "ruff-check"] security = "bandit -r awslabs/" check = ["lint", "security"] clean1 = "rm -rf build/ dist/ *.egg-info/ htmlcov/ .pytest_cache/" clean2 = "find . -name __pycache__ -exec rm -rf {} +;" clean = ["clean1", "clean2"]