Skip to main content
Glama

DDA MCP Server

An MCP (Model Context Protocol) server for controlling astronomy equipment. Supports Dark Dragons Astronomy devices and any ASCOM Alpaca-compatible equipment.

Installation

npm install -g @darkdragonsastro/dda-mcp-server

Or run directly with npx:

npx @darkdragonsastro/dda-mcp-server

Related MCP server: SkyQuery

Configuration

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "dda": {
      "command": "npx",
      "args": ["@darkdragonsastro/dda-mcp-server"]
    }
  }
}

Claude Code

claude mcp add dda -- npx @darkdragonsastro/dda-mcp-server

Tools

Device Discovery

Tool

Description

discover_devices

Discover Dark Dragons Astronomy devices on the local network via UDP broadcast

discover_alpaca_devices

Discover ASCOM Alpaca devices on the local network

Dark Dragons Astronomy Devices

DragonLAIR (Roll-off Roof Controller)

Tool

Description

get_device_status

Get the current status of a device

get_device_settings

Get device settings including safety config, location, and motor settings

open_roof

Open the observatory roof

close_roof

Close the observatory roof

abort_roof

Abort the current roof operation

get_mount_sensors

Get status of mount sensors connected to a DragonLAIR

locate_device

Make a device beep/flash to help locate it physically

Mount Sensor

Tool

Description

get_mount_sensor_status

Get status of a standalone Mount Sensor (pitch, roll, safe position)

DragonLIGHT (Flat Panel Controller)

Tool

Description

get_flat_panel_status

Get flat panel status (on/off, brightness)

turn_on_flat_panel

Turn on the flat panel light

turn_off_flat_panel

Turn off the flat panel light

set_flat_panel_brightness

Set brightness level (0-255)

ASCOM Alpaca Devices

All Alpaca devices must first be connected using alpaca_device_connect.

Connection Management

Tool

Description

alpaca_device_connect

Connect or disconnect any Alpaca device

Telescope

Tool

Description

alpaca_telescope_status

Get telescope position, tracking state, and slewing status

alpaca_telescope_slew

Slew to coordinates (RA/Dec or Alt/Az)

alpaca_telescope_park

Park or unpark the telescope

alpaca_telescope_tracking

Enable or disable tracking

alpaca_telescope_abort

Abort any slew in progress

Camera

Tool

Description

alpaca_camera_status

Get camera temperature, cooler state, and exposure status

alpaca_camera_cooler

Control cooler on/off and set target temperature

alpaca_camera_expose

Start a light or dark exposure

alpaca_camera_abort

Abort the current exposure

Focuser

Tool

Description

alpaca_focuser_status

Get focuser position, temperature, and movement state

alpaca_focuser_move

Move focuser to a specific position

alpaca_focuser_halt

Halt focuser movement

Filter Wheel

Tool

Description

alpaca_filterwheel_status

Get current filter position and available filters

alpaca_filterwheel_set

Change to a specific filter position

Dome

Tool

Description

alpaca_dome_status

Get dome shutter state, position, and slewing status

alpaca_dome_shutter

Open or close the dome shutter

alpaca_dome_slew

Slew dome to a specific azimuth

Rotator

Tool

Description

alpaca_rotator_status

Get rotator position and movement state

alpaca_rotator_move

Move rotator to absolute or relative position

alpaca_rotator_halt

Halt rotator movement

Switch

Tool

Description

alpaca_switch_status

Get status of all switches on a device

alpaca_switch_set

Set a switch on or off

alpaca_switch_set_value

Set a switch to a specific value

Cover Calibrator

Tool

Description

alpaca_covercalibrator_status

Get cover and calibrator state

alpaca_covercalibrator_cover

Open, close, or halt the cover

alpaca_covercalibrator_calibrator

Turn calibrator on (with brightness) or off

Safety Monitor

Tool

Description

alpaca_safetymonitor_status

Get safety monitor status (safe/unsafe)

Observing Conditions (Weather)

Tool

Description

alpaca_observingconditions_status

Get weather data (temperature, humidity, wind, cloud cover, etc.)

Supported Devices

Dark Dragons Astronomy

  • DragonLAIR - Roll-off roof controller with mount sensor integration

  • DragonLIGHT - Flat panel controller for calibration frames

  • Mount Sensor - Detects telescope position for safe roof operation

ASCOM Alpaca Compatible

Any device implementing the ASCOM Alpaca API:

  • Telescopes / Mounts

  • Cameras (CCD/CMOS)

  • Focusers

  • Filter Wheels

  • Domes

  • Rotators

  • Switches / Power Controllers

  • Cover Calibrators / Flat Panels

  • Safety Monitors

  • Weather Stations

License

ISC

Available Tools

43 tools
abort_roofB

Abort the current roof operation on a DragonLAIR device

Inputs: ip (required).

alpaca_camera_abortA

Abort an exposure on an ASCOM Alpaca camera. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_camera_coolerA

Control the cooler on an ASCOM Alpaca camera. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), cooler_on (required), temperature, +1 more.

alpaca_camera_exposeA

Start an exposure on an ASCOM Alpaca camera. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), duration (required), light, +1 more.

alpaca_camera_statusA

Get the status of an ASCOM Alpaca camera including temperature, cooler state, and exposure status. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_covercalibrator_calibratorB

Control an ASCOM Alpaca cover calibrator light. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), action (required), brightness, +1 more.

alpaca_covercalibrator_coverB

Open or close an ASCOM Alpaca cover calibrator cover. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), action (required), device_number.

alpaca_covercalibrator_statusA

Get the status of an ASCOM Alpaca cover calibrator including cover and calibrator state. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_device_connectB

Connect or disconnect an ASCOM Alpaca device

Inputs: ip (required), port (required), connect (required), device_type (required), +1 more.

alpaca_dome_shutterA

Open or close an ASCOM Alpaca dome shutter. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), action (required), device_number.

alpaca_dome_slewA

Slew an ASCOM Alpaca dome to a specific azimuth. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), azimuth (required), device_number.

alpaca_dome_statusA

Get the status of an ASCOM Alpaca dome including shutter state, position, and slewing status. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_filterwheel_setA

Set the position of an ASCOM Alpaca filter wheel. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), position (required), device_number.

alpaca_filterwheel_statusA

Get the status of an ASCOM Alpaca filter wheel including current position and available filters. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_focuser_haltA

Halt an ASCOM Alpaca focuser. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_focuser_moveA

Move an ASCOM Alpaca focuser to a specific position. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), position (required), device_number.

alpaca_focuser_statusA

Get the status of an ASCOM Alpaca focuser including position, temperature, and movement state. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_observingconditions_statusA

Get the current observing conditions from an ASCOM Alpaca weather station. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_rotator_haltA

Halt an ASCOM Alpaca rotator. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_rotator_moveA

Move an ASCOM Alpaca rotator to a specific position. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), position (required), absolute, +1 more.

alpaca_rotator_statusA

Get the status of an ASCOM Alpaca rotator including position and movement state. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_safetymonitor_statusA

Get the status of an ASCOM Alpaca safety monitor. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_switch_setB

Set the state of a switch on an ASCOM Alpaca switch device. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), state (required), switch_id (required), +1 more.

alpaca_switch_set_valueA

Set the value of a switch on an ASCOM Alpaca switch device. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), value (required), switch_id (required), +1 more.

alpaca_switch_statusA

Get the status of all switches on an ASCOM Alpaca switch device. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_telescope_abortA

Abort any slew in progress on an ASCOM Alpaca telescope. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_telescope_parkA

Park or unpark an ASCOM Alpaca telescope. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), action (required), device_number.

alpaca_telescope_slewA

Slew an ASCOM Alpaca telescope to coordinates (RA/Dec or Alt/Az). Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), ra, dec, +3 more.

alpaca_telescope_statusA

Get the status of an ASCOM Alpaca telescope including position, tracking state, and slewing status. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), device_number.

alpaca_telescope_trackingA

Enable or disable tracking on an ASCOM Alpaca telescope. Note: Device must be connected first using alpaca_device_connect.

Inputs: ip (required), port (required), tracking (required), device_number.

close_roofB

Close the observatory roof on a DragonLAIR device

Inputs: ip (required).

discover_alpaca_devicesA

Discover ASCOM Alpaca devices on the local network via UDP broadcast. Returns all Alpaca-compatible astronomy equipment including telescopes, cameras, focusers, filter wheels, and more.

Inputs: timeout.

discover_devicesA

Discover Dark Dragons Astronomy devices on the local network via UDP broadcast

Inputs: timeout.

get_device_settingsA

Get the current settings of a DragonLAIR device including safety configuration, location, and motor settings.

Inputs: ip (required).

get_device_statusC

Get the current status of a Dark Dragons Astronomy device. Response varies by device type.

Inputs: ip (required).

get_flat_panel_statusA

Get the status of a DragonLIGHT flat panel controller. Returns whether the light is on, brightness level, and device info.

Inputs: ip (required).

get_mount_sensorsB

Get the status of mount sensors connected to a DragonLAIR device. Mount sensors detect if the telescope mount is in a safe position for roof movement.

Inputs: ip (required).

get_mount_sensor_statusA

Get the status of a standalone Mount Sensor device. Returns pitch, roll, and whether the mount is in a safe position for roof movement.

Inputs: ip (required).

locate_deviceA

Make a Dark Dragons Astronomy device beep/flash to help locate it physically. Works with DragonLAIR and Mount Sensor devices.

Inputs: ip (required).

open_roofB

Open the observatory roof on a DragonLAIR device

Inputs: ip (required).

set_flat_panel_brightnessA

Set the brightness of a DragonLIGHT flat panel light

Inputs: ip (required), brightness (required).

turn_off_flat_panelA

Turn off a DragonLIGHT flat panel light

Inputs: ip (required).

turn_on_flat_panelA

Turn on a DragonLIGHT flat panel light

Inputs: ip (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 43 tools

    Disambiguation4/5

    Most tools clearly specify the device type and action (e.g., alpaca_telescope_slew, open_roof). However, a few pairs like get_mount_sensors vs. get_mount_sensor_status and alpaca_switch_set vs. alpaca_switch_set_value could cause misselection.

    Naming Consistency4/5

    Native device tools use verb_noun (open_roof, get_device_status), while Alpaca tools follow alpaca_<device>_<action> consistently. The dual scheme is predictable, though alpaca_device_connect slightly deviates from the standard pattern.

    Tool Count2/5

    At 43 tools, the server far exceeds the 25-tool threshold for 'too many'. Many tools are simple status or control operations per device that could be consolidated into generic get_status or set_command functions.

    Completeness4/5

    The set covers discovery, connection, status, and control for all major device types (telescope, focuser, dome, camera, etc.). Minor gaps exist, such as no set_device_settings for native devices and no image retrieval for camera, but core workflows are represented.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      An MCP server that integrates with Siril astronomical image processing software to process Seestar telescope images, offering tools for binary detection, version checking, mosaic processing, and project analysis.
      7
      4
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      A local, open-source MCP server that wraps astronomy data services (SIMBAD, JPL Horizons, VizieR, etc.) behind a conversational interface, enabling AI assistants to answer astronomy questions with real, typed, and provenance-tracked data.
      13
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for the INDIGO astronomy automation protocol, enabling AI agents to control telescopes, cameras, focusers, filter wheels, domes, and other observatory equipment through natural language.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP hosts to control ZWO Seestar telescopes over ASCOM Alpaca, including pointing, imaging, and downloading frames. It also provides a companion astro-mcp server for stacking and processing captured frames.
      11 npm
      MIT