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
    Not graded
    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.
    12
  • F
    license
    Not graded
    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.

View all related MCP servers

Related MCP Connectors

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • Remote MCP server for RunComfy Serverless API (ComfyUI): deployments and async inference.

  • MCP server for Producer/Riffusion AI music generation

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