[project] name = "mcbebop" version = "2026.10.02" description = "MCP server for the Parrot Bebop 2 drone: telemetry, camera, files, and every ARSDK command" readme = "README.md" requires-python = ">=3.12" license = "MIT" authors = [{name = "Ryan Malloy", email = "ryan@supported.systems"}] keywords = ["mcp", "drone", "parrot", "bebop", "arsdk", "fastmcp"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering", ] dependencies = [ # 4.x is the current family; <5 because FastMCP has moved import paths # across majors before (mcvnc was broken by the 3 -> 4 move). "fastmcp>=4.0.10,<5", "pydantic-settings>=2.7", "zeroconf>=0.147", # mDNS discovery of _arsdk-090c._udp "pillow>=11.0", # downscale camera frames before they reach the model ] [project.urls] Homepage = "https://warehack.ing" Repository = "https://git.supported.systems/rsp2k/mcbebop" [project.scripts] mcbebop = "mcbebop.server:main" [build-system] requires = ["uv_build>=0.11.3,<0.12.0"] build-backend = "uv_build" [tool.uv.build-backend] source-exclude = ["CLAUDE.md", ".env", ".env.*", ".mcp.json", "tests", "captures"] [dependency-groups] dev = ["ruff>=0.16", "pytest>=8.0", "pytest-asyncio>=0.25"] [tool.pytest.ini_options] asyncio_mode = "auto" markers = ["drone: needs a real Bebop 2 on the network (run with '-m drone')"] addopts = "-m 'not drone'" [tool.ruff] line-length = 110 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "W", "UP", "B", "SIM", "RUF"]