INDI MCP Server
The INDI MCP Server lets you control astrophotography equipment and manage an INDI server via the Model Context Protocol (MCP).
INDI Server Management
Start the INDI server (
indiserver) on a specified port (default: 7624)Stop, restart, and check the running status and port of the INDI server
Driver Management
List all installed drivers from the INDI catalog (name, label, version, family, binary, install status)
Start a driver by its catalog label (e.g.
"CCD Simulator")Stop a running driver by its catalog label
List all currently running drivers
INDI Event Monitoring / Messaging
Start/stop streaming INDI property and message events from the server
Check whether the event stream is active and on which host/port
Retrieve recent INDI events (newest first), optionally filtered by device name
Equipment Control
Send property commands to connected INDI devices — set named elements on a device's property to control mounts, cameras, filter wheels, focusers, and other astrophotography gear
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@INDI MCP ServerConnect to the ASI1600MM camera and set exposure to 30 seconds."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
INDI MCP Server
An MCP server that controls astrophotography equipment via INDI on a Raspberry Pi (or equivalent device), and exposes it to other computers on the local network.
What it does
Equipment control — connect to an INDI server and control mounts, cameras, filter wheels, focusers and other astrophotography gear through MCP tools.
INDI server management — manage the INDI server itself: install/remove drivers, and start, stop or restart the server, all via MCP.
Frame storage — captured frames are stored on the Raspberry Pi and can be listed, inspected and transferred to another computer on the local network via MCP.
Related MCP server: mcp-server-ascom
Documentation
Deployment — running the server locally (
stdio) vs. as a systemd service on the Raspberry Pi (streamable-http)Rig YAML Schema — field reference for
rigs/*.yamlimaging rig definitionsObservatory Location YAML Schema — field reference for
observatories/*.yamllocation definitionsScript YAML Schema — field reference for the YAML scripting layer; built-in primitive/composed scripts ship under
scripts/Property/Message JSON Payload Schema — field reference for the
kind/type-tagged JSON carried inside MCP tool results and event streams
Debug CLI
indi-mcp-cli is a small standalone tool for manually testing/debugging the INDI server and
driver management tools, without needing an MCP client:
uv run indi-mcp-cli server status
uv run indi-mcp-cli server start --port 7624
uv run indi-mcp-cli driver list
uv run indi-mcp-cli driver start "CCD Simulator"
uv run indi-mcp-cli listen --device "CCD Simulator" # prints incoming events until Ctrl+CThe driver subcommands read the driver catalog from /usr/share/indi/ by default, which only
exists where INDI's drivers are actually installed (e.g. the Raspberry Pi). On a machine with a
local INDI install elsewhere (e.g. Homebrew on macOS, typically /usr/local/share/indi), point
indiweb at it via the INDI_DATA_DIR env var:
export INDI_DATA_DIR=/usr/local/share/indi
uv run indi-mcp-cli driver listStatus
Early setup stage — MCP server skeleton in place, with INDI server management tools (start/stop/restart/status) implemented.
Tech stack
Python 3.12+, managed with uv
Official Python MCP SDK (
mcp)indipyclient— pure-Python INDI client, used for equipment controlindiweb— used as a library only (itsIndiServer/DriverCollectionclasses), forindiserverprocess/FIFO control and driver-catalog parsing; its bundled web app is not usedastropy— celestial-geometry computation (Sun/Moon position, illumination) forcapture_frame's FITS header enrichment, see docs/FitsHeaders.mdRuff for linting and formatting
ty for static type checking
pytest, with
pytest-asyncioandpytest-covpre-commit to run the above on every commit
Development setup
uv sync --dev
uv run pre-commit installCommon tasks:
uv run ruff check . # lint
uv run ruff format . # format
uv run ty check . # type-check
uv run pytest --cov # testContributing / branching model
This project follows a git-flow-style workflow:
main— always releasable; only accepts merges fromrelease/*orhotfix/*branches.develop— integration branch for ongoing work.feature/*— branched from and merged back intodevelop.
A CI check (enforce-merge-policy) rejects pull requests that don't follow these rules.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceA protocol server enabling AI agents to control astrophotography equipment through the N.I.N.A. (Nighttime Imaging 'N' Astronomy) software, allowing for natural language command processing of cameras, mounts, focusers, and other astronomy equipment.Last updated11
- Alicense-qualityDmaintenanceControl telescopes, cameras, and focusers with AI through natural language, using any ASCOM Alpaca device.Last updatedMIT
- Alicense-qualityAmaintenanceESP32-based Streamable HTTP MCP server with embedded Lua scripting engine. Bridges Claude AI to physical devices — telescopes (INDI protocol), sensors, BLE peripherals, and TCP devices. Flash-and-run binary distribution, no build required.Last updated12MIT
- Flicense-qualityDmaintenanceEnables LLMs to interact with PixInsight's image processing capabilities through a local HTTP/SSE server, allowing listing processes, invoking them, viewing images, and more.Last updated
Related MCP Connectors
Local-first RAG engine with MCP server for AI agent integration.
Hosted NeuroDock — stateless communication and planning tools over OAuth-secured Streamable HTTP.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Oekalegon/indi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server