Skip to main content
Glama
Oekalegon

INDI MCP Server

by Oekalegon

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

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+C

The 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 list

Status

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 control

  • indiweb — used as a library only (its IndiServer/DriverCollection classes), for indiserver process/FIFO control and driver-catalog parsing; its bundled web app is not used

  • astropy — celestial-geometry computation (Sun/Moon position, illumination) for capture_frame's FITS header enrichment, see docs/FitsHeaders.md

  • Ruff for linting and formatting

  • ty for static type checking

  • pytest, with pytest-asyncio and pytest-cov

  • pre-commit to run the above on every commit

Development setup

uv sync --dev
uv run pre-commit install

Common tasks:

uv run ruff check .          # lint
uv run ruff format .         # format
uv run ty check .            # type-check
uv run pytest --cov          # test

Contributing / branching model

This project follows a git-flow-style workflow:

  • main — always releasable; only accepts merges from release/* or hotfix/* branches.

  • develop — integration branch for ongoing work.

  • feature/* — branched from and merged back into develop.

A CI check (enforce-merge-policy) rejects pull requests that don't follow these rules.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    -
    quality
    D
    maintenance
    A 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 updated
    11
  • A
    license
    -
    quality
    A
    maintenance
    ESP32-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 updated
    12
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    Enables 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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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