indigo-mcp
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) ←→ HardwareQuick Start
# 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 7624Configuration
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:
indigo-mcp --host 192.168.1.100 --port 7624 --wsMCP Tools
Tool | Description |
| List all connected devices and their interfaces |
| Get current value of a device property |
| Set a device property value |
| Connect to a device |
| Disconnect from a device |
| Take an exposure with a CCD |
| Abort an ongoing exposure |
| Slew telescope to RA/Dec coordinates |
| Park the telescope |
| Get current telescope coordinates |
| Enable/disable mount tracking |
| Move focuser by relative steps |
| Set filter wheel slot |
| Upload & persist a JavaScript script to the Scripting Agent |
| List scripts stored on the Scripting Agent |
| Execute a stored script by name (waits for Busy→Ok/Alert) |
| Run an inline JS snippet (e.g. launch a Sequencer.js sequence) |
| Delete a stored script |
| 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