dda-mcp-server
Click on "Deploy 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., "@dda-mcp-server check the weather at my observatory"
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.
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-serverOr run directly with npx:
npx @darkdragonsastro/dda-mcp-serverRelated 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-serverTools
Device Discovery
Tool | Description |
| Discover Dark Dragons Astronomy devices on the local network via UDP broadcast |
| Discover ASCOM Alpaca devices on the local network |
Dark Dragons Astronomy Devices
DragonLAIR (Roll-off Roof Controller)
Tool | Description |
| Get the current status of a device |
| Get device settings including safety config, location, and motor settings |
| Open the observatory roof |
| Close the observatory roof |
| Abort the current roof operation |
| Get status of mount sensors connected to a DragonLAIR |
| Make a device beep/flash to help locate it physically |
Mount Sensor
Tool | Description |
| Get status of a standalone Mount Sensor (pitch, roll, safe position) |
DragonLIGHT (Flat Panel Controller)
Tool | Description |
| Get flat panel status (on/off, brightness) |
| Turn on the flat panel light |
| Turn off the flat panel light |
| Set brightness level (0-255) |
ASCOM Alpaca Devices
All Alpaca devices must first be connected using alpaca_device_connect.
Connection Management
Tool | Description |
| Connect or disconnect any Alpaca device |
Telescope
Tool | Description |
| Get telescope position, tracking state, and slewing status |
| Slew to coordinates (RA/Dec or Alt/Az) |
| Park or unpark the telescope |
| Enable or disable tracking |
| Abort any slew in progress |
Camera
Tool | Description |
| Get camera temperature, cooler state, and exposure status |
| Control cooler on/off and set target temperature |
| Start a light or dark exposure |
| Abort the current exposure |
Focuser
Tool | Description |
| Get focuser position, temperature, and movement state |
| Move focuser to a specific position |
| Halt focuser movement |
Filter Wheel
Tool | Description |
| Get current filter position and available filters |
| Change to a specific filter position |
Dome
Tool | Description |
| Get dome shutter state, position, and slewing status |
| Open or close the dome shutter |
| Slew dome to a specific azimuth |
Rotator
Tool | Description |
| Get rotator position and movement state |
| Move rotator to absolute or relative position |
| Halt rotator movement |
Switch
Tool | Description |
| Get status of all switches on a device |
| Set a switch on or off |
| Set a switch to a specific value |
Cover Calibrator
Tool | Description |
| Get cover and calibrator state |
| Open, close, or halt the cover |
| Turn calibrator on (with brightness) or off |
Safety Monitor
Tool | Description |
| Get safety monitor status (safe/unsafe) |
Observing Conditions (Weather)
Tool | Description |
| 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 toolsabort_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
Scored across 43 tools
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.
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.
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.
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
Related MCP Connectors
MCP server for aerospace calculations: orbital mechanics, ephemeris, DSN operations, ...
Find MCP servers for ESP32, Arduino, 3D printers, Home Assistant, cameras and other hardware.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
An MCP server for deep research or task groups
Related MCP Servers
- AlicenseAqualityDmaintenanceAn 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.74MIT
- AlicenseAqualityBmaintenanceA 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.131MIT
- AlicenseNot gradedqualityDmaintenanceMCP 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
- AlicenseNot gradedqualityBmaintenanceEnables 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 npmMIT