airflow-mcp-server

by abhishekbhakat
Verified
[project] name = "airflow-mcp-server" version = "0.5.0" description = "MCP Server for Airflow" readme = "README.md" requires-python = ">=3.11" authors = [ {name = "Abhishek Bhakat", email = "abhishek.bhakat@hotmail.com"} ] dependencies = [ "aiofiles>=24.1.0", "aiohttp>=3.11.11", "aioresponses>=0.7.7", "importlib-resources>=6.5.0", "mcp>=1.2.0", "openapi-core>=0.19.4", "pydantic>=2.10.5", "pyyaml>=6.0.0", ] classifiers = [ "Development Status :: 3 - Alpha", "Operating System :: OS Independent", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.10", ] license = "MIT" license-files = ["LICEN[CS]E*"] [project.urls] GitHub = "https://github.com/abhishekbhakat/airflow-mcp-server" Issues = "https://github.com/abhishekbhakat/airflow-mcp-server/issues" [project.scripts] airflow-mcp-server = "airflow_mcp_server.__main__:main" [project.optional-dependencies] dev = [ "build>=1.2.2", "pre-commit>=4.0.1", "pytest>=8.3.4", "pytest-asyncio>=0.25.0", "pytest-mock>=3.14.0", "ruff>=0.9.2" ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.sdist] exclude = [ "*", "!src/**", "!pyproject.toml", "!assets/**" ] [tool.hatch.build.targets.wheel] packages = ["src/airflow_mcp_server"] package-data = {"airflow_mcp_server"= ["*.yaml"]} [tool.hatch.build.targets.wheel.sources] "src/airflow_mcp_server" = "airflow_mcp_server" [tool.pytest.ini_options] pythonpath = ["src"] asyncio_mode = "strict" testpaths = ["tests"] python_classes = "!TestRequestModel,!TestResponseModel" asyncio_default_fixture_loop_scope = "function" [tool.ruff] line-length = 200 indent-width = 4 fix = true preview = true lint.select = [ "E", # pycodestyle errors "F", # pyflakes "I", # isort "W", # pycodestyle warnings "C90", # Complexity "C", # flake8-comprehensions "ISC", # flake8-implicit-str-concat "T10", # flake8-debugger "A", # flake8-builtins "UP", # pyupgrade ] lint.ignore = [ "C416", # Unnecessary list comprehension - rewrite as a generator expression "C408", # Unnecessary `dict` call - rewrite as a literal "ISC001" # Single line implicit string concatenation ] lint.fixable = ["ALL"] lint.unfixable = [] [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false [tool.ruff.lint.isort] combine-as-imports = true [tool.ruff.lint.mccabe] max-complexity = 12