Core library published as winegard-birdcage (import stays `birdcage`). MCP server renamed birdcage-mcp → mcbirdcage, matching mcserial pattern. Both packages live on PyPI — `uvx mcbirdcage` works out of the box.
46 lines
1.2 KiB
TOML
46 lines
1.2 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "mcbirdcage"
|
|
version = "2026.02.17"
|
|
description = "MCP server for Winegard satellite dish control via serial"
|
|
license = "MIT"
|
|
requires-python = ">=3.11"
|
|
authors = [{name = "Ryan Malloy", email = "ryan@supported.systems"}]
|
|
keywords = ["mcp", "satellite", "antenna", "winegard", "amateur-radio"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: Science/Research",
|
|
"Topic :: Scientific/Engineering",
|
|
"Topic :: Communications :: Ham Radio",
|
|
]
|
|
dependencies = [
|
|
"winegard-birdcage",
|
|
"fastmcp>=2.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Repository = "https://git.supported.systems/warehack.ing/birdcage"
|
|
Documentation = "https://birdcage.warehack.ing"
|
|
|
|
[project.scripts]
|
|
mcbirdcage = "mcbirdcage.server:main"
|
|
|
|
[tool.uv.sources]
|
|
winegard-birdcage = { path = "..", editable = true }
|
|
|
|
[tool.ruff]
|
|
target-version = "py311"
|
|
src = ["src"]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "UP", "B", "SIM"]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/mcbirdcage"]
|
|
|
|
[dependency-groups]
|
|
dev = ["pytest>=9.0.2", "pytest-asyncio>=1.3.0"]
|