Four new tools transforming the SkyWalker-1 from satellite TV receiver into a general-purpose RF observatory: - skywalker-mcp: FastMCP server exposing 20 tools, 4 resources, 2 prompts. Thread-safe DeviceBridge with motor safety (continuous drive opt-in), input validation on all frequency/symbol rate/step parameters, try/finally on TS capture, path traversal sanitization, and reduced lock scope so emergency motor halt isn't blocked during long surveys. - h21cm.py: Hydrogen 21 cm drift-scan radiometer at 1420.405 MHz with Doppler velocity calculation, control band comparison, and CSV output. - beacon_logger.py: Long-term Ku-band beacon SNR/AGC logger with auto-relock, dual CSV/JSONL output, signal handlers, and systemd unit generation. - arc_survey.py: Multi-satellite orbital arc census with USALS motor control, per-slot catalog persistence, resume support, and defensive motor halt on all error/interrupt paths. Documentation: experimenter's roadmap guide + 4 tool reference pages (48 pages total).
36 lines
755 B
TOML
36 lines
755 B
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "skywalker-mcp"
|
|
version = "2026.2.17"
|
|
description = "MCP server for the Genpix SkyWalker-1 DVB-S USB receiver"
|
|
requires-python = ">=3.11"
|
|
authors = [{name = "Ryan Malloy", email = "ryan@supported.systems"}]
|
|
dependencies = [
|
|
"fastmcp>=2.0",
|
|
"pyusb>=1.3",
|
|
]
|
|
|
|
[project.scripts]
|
|
skywalker-mcp = "skywalker_mcp.server:main"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/skywalker_mcp"]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"pytest-asyncio>=0.24",
|
|
"ruff>=0.9",
|
|
]
|
|
|
|
[tool.ruff]
|
|
target-version = "py311"
|
|
line-length = 100
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto"
|