# mcbirdcage

[MCP](https://modelcontextprotocol.io/) server for controlling Winegard satellite dishes through conversational tools. Built on [FastMCP](https://gofastmcp.com/), exposes 36 tools for dish positioning, signal analysis, firmware inspection, and satellite pass planning.

## Install

```bash
# Add to Claude Code
claude mcp add mcbirdcage -- uvx mcbirdcage

# Or run standalone
uvx mcbirdcage
```

## Demo Mode

No dish required. Set `BIRDCAGE_DEMO=1` to get simulated responses for all tools:

```bash
BIRDCAGE_DEMO=1 uvx mcbirdcage
```

## Tools

36 tools across six groups:

| Group | Count | Examples |
|-------|-------|---------|
| Connection | 3 | `connect`, `disconnect`, `status` |
| Movement | 9 | `get_position`, `move_to`, `home_motor`, `stow` |
| Signal | 8 | `get_rssi`, `enable_lna`, `az_sweep`, `get_lock_status` |
| System | 11 | `nvs_dump`, `get_firmware_id`, `set_pid_gains`, `get_a3981_diag` |
| Satellite | 4 | `search_satellites`, `get_passes`, `get_visible_targets` |
| Console | 1 | `send_raw_command` (direct firmware access) |

Plus 5 resources (hardware specs, NVS reference, firmware docs) and 3 prompts.

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `BIRDCAGE_DEMO` | `0` | Enable demo mode (no hardware) |
| `BIRDCAGE_PORT` | `/dev/ttyUSB0` | Serial port path |
| `BIRDCAGE_FIRMWARE` | `hal205` | Firmware variant (`hal000`, `hal205`, `g2`) |
| `BIRDCAGE_CRAFT_URL` | -- | Craft API URL for live satellite TLEs |

## Documentation

Full tool reference and hardware setup: **[birdcage.warehack.ing](https://birdcage.warehack.ing)**

## Credits

- **Gabe Emerson (KL1FI / [saveitforparts](https://github.com/saveitforparts))** -- original Winegard rotor scripts
- **Chris Davidson ([cdavidson0522](https://github.com/cdavidson0522))** -- Carryout G2 sky scan and rotator control

## License

MIT
