indigo-mcp
by Richard-Ni
README.md
# indigo-mcp
MCP (Model Context Protocol) server for **INDIGO** astronomy automation protocol.
Lets AI agents (Claude, Hermes, etc.) control telescopes, cameras, focusers, filter wheels, domes, and other astronomical equipment through the INDIGO protocol.
## Architecture
```
AI Agent ←→ MCP Protocol ←→ indigo-mcp ←→ INDIGO Server (port 7624) ←→ Hardware
```
## Quick Start
```bash
# Install
pip install -e ".[dev]"
# Run (connects to INDIGO at localhost:7624)
indigo-mcp
# Or specify host/port
indigo-mcp --host 192.168.1.100 --port 7624
```
## Configuration
Environment variables:
- `INDIGO_HOST` — INDIGO server host (default: `localhost`)
- `INDIGO_PORT` — INDIGO server port (default: `7624`)
- `INDIGO_WS` — Use WebSocket transport instead of raw TCP (default: `false`)
Or pass as CLI arguments:
```bash
indigo-mcp --host 192.168.1.100 --port 7624 --ws
```
## MCP Tools
| Tool | Description |
|------|-------------|
| `indigo_list_devices` | List all connected devices and their interfaces |
| `indigo_get_property` | Get current value of a device property |
| `indigo_set_property` | Set a device property value |
| `indigo_connect_device` | Connect to a device |
| `indigo_disconnect_device` | Disconnect from a device |
| `indigo_capture_image` | Take an exposure with a CCD |
| `indigo_abort_exposure` | Abort an ongoing exposure |
| `indigo_slew` | Slew telescope to RA/Dec coordinates |
| `indigo_park` | Park the telescope |
| `indigo_get_coordinates` | Get current telescope coordinates |
| `indigo_set_tracking` | Enable/disable mount tracking |
| `indigo_move_focuser` | Move focuser by relative steps |
| `indigo_set_filter` | Set filter wheel slot |
| `indigo_script_upload` | Upload & persist a JavaScript script to the Scripting Agent |
| `indigo_script_list` | List scripts stored on the Scripting Agent |
| `indigo_script_execute` | Execute a stored script by name (waits for Busy→Ok/Alert) |
| `indigo_script_run` | Run an inline JS snippet (e.g. launch a Sequencer.js sequence) |
| `indigo_script_delete` | Delete a stored script |
| `indigo_script_monitor` | Monitor script execution: state changes, log messages, watched properties |
## Project Structure
```
indigo-mcp/
├── pyproject.toml
├── README.md
├── src/
│ └── indigo_mcp/
│ ├── __init__.py
│ ├── server.py # MCP server entry point
│ ├── client.py # INDIGO TCP/WS client
│ ├── protocol.py # JSON message serialization/deserialization
│ └── tools.py # MCP tool implementations
└── tests/
└── __init__.py
```
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues