mcnanovna/pyproject.toml
Ryan Malloy c07284a7d6 ESP32 antenna positioner: dual-axis stepper control + automated 3D pattern measurement
PlatformIO firmware for ESP32 + 2x TMC2209 (UART, StallGuard sensorless homing)
driving NEMA 17 steppers. HTTP API with mDNS discovery (positioner.local).

Python side: async httpx client, PositionerMixin with 6 MCP tools including
measure_pattern_3d which orchestrates the full theta/phi sweep — serpentine
scan path, per-point S21 capture, progress reporting, WebSocket broadcast.

Web UI gains positioner REST endpoints (status, move, home).
New measure_antenna_range prompt for guided workflow.
2026-02-01 22:34:10 -07:00

33 lines
681 B
TOML

[project]
name = "mcnanovna"
version = "2026.02.01"
description = "MCP server for NanoVNA-H vector network analyzers"
authors = [{name = "Ryan Malloy", email = "ryan@supported.systems"}]
requires-python = ">=3.11"
dependencies = [
"fastmcp>=2.14.0",
"pyserial>=3.5",
"Pillow>=11.0.0",
]
[project.optional-dependencies]
positioner = ["httpx>=0.28.0"]
webui = [
"fastapi>=0.115.0",
"uvicorn[standard]>=0.34.0",
]
[project.scripts]
mcnanovna = "mcnanovna.server:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/mcnanovna"]
[tool.ruff]
target-version = "py311"
line-length = 120