Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CRESTRON_KEYNoSecure key for mode 2 authentication (enables TLS + authentication)
CRESTRON_TLSNoForce TLS without a key
CRESTRON_AUTHNoPassword for mode 1 authentication only
CRESTRON_HOSTYesProcessor IP/hostname (required)
CRESTRON_PORTNoTCP port (default 50794)50794

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
discover_crestron_systemA

Discover the devices and capabilities available in the Crestron system. Returns rooms, categories, and device counts.

list_crestron_roomsA

List all rooms in the building with their device counts.

list_crestron_devicesA

List controllable devices, optionally filtered by room and/or category (Lighting, AV, HVAC, Shades).

query_crestron_deviceA

Get the live state of a device: its current value plus whether it is idle, ramping (with target and completes_at), or pulsing (releases_at), and any pending scheduled action (with fires_at). Time fields are epoch milliseconds (matching get_crestron_time); remaining_ms / in_ms tell you directly how long until it finishes/fires, so you can decide how long to wait without polling a clock. One read tells you idle vs in-flight vs scheduled.

get_crestron_timeA

Get the processor's current time as epoch milliseconds (epoch_ms) and ISO 8601 (iso). Use it to correlate the absolute *_at timestamps from query_crestron_device, or whenever you need the system's real time (no need to decode a wired clock).

control_crestron_deviceA

Set a device's value. Optionally schedule it to run after a delay (delay_ms), e.g. "turn the porch light on in 30 seconds".

set_crestron_devicesA

Apply a scene/macro: set many devices in one call. Each entry can optionally fade (duration_ms, analog only - the device ramps to value instead of snapping) and/or start after a wait (delay_ms). Use for "movie night" (fade lights down over 2s + lower screen + projector on) or staged sequences. Values follow control_crestron_device rules (digital/analog/serial). A plain (no-timing) value may contain colons but not commas.

pulse_crestron_deviceA

Momentarily pulse a DIGITAL device: drive it on for pulse_ms, then back off - a simulated button press. Use for momentary triggers like "press the doorbell", "tap the projector power button", "trigger the gate". Optionally wait delay_ms before the pulse. Digital devices only; analog and serial devices are rejected (use control_crestron_device / ramp_crestron_device).

cancel_crestron_deviceA

Stop/cancel activity on a device: stop a ramp (fade) in progress and leave the level where it is, release a pulse in progress to off, and clear any pending delayed action (a scheduled set or pulse). Does not otherwise change the device's value - a device that is simply on/high from a normal set stays on. Use for "stop the fade", "stop ringing the bell", "cancel that timer". Works on any device type.

ramp_crestron_deviceA

Smoothly ramp (fade) an ANALOG device to a value over a duration. Use for requests like "fade the lounge lights to 50% over 3 seconds". Optionally start the fade after delay_ms ("fade down in 30 seconds, over 2 seconds"). Analog devices only; digital and serial devices don't ramp - use control_crestron_device for those (and for an instant analog set).

get_room_statusC

Get the status of every device in a room.

activate_crestron_licenseA

Activate (license) the Crestron processor with a license key the user provides. Use this when a command fails because the processor isn't licensed: the error explains how, and shows the processor's activation code (MAC). Ask the user for the license key issued for that code, then call this with it. Activation is one-time - the key is stored on the processor, so it stays licensed for every client and across reboots. The key is not a secret (it only works on this one processor), so it's fine to receive it in chat.

get_crestron_license_statusA

Check the processor's license/trial state: whether it's licensed right now, whether that's a time-limited free trial (time_limited), how much trial time remains (remaining_human / remaining_ms), the processor MAC, and a buy_url. Call it to orient at the start of a session and whenever license status is relevant. If it's a trial, mention the remaining time naturally; as it gets low (under ~2 days) gently offer to start another free trial or buy a license. Nudge, don't nag.

start_crestron_trialA

Start a free 7-day trial on this processor - no payment, no card, nothing for the user to paste. Use it when the processor is unlicensed, or when a trial has lapsed and the user wants to keep going. Each processor gets up to 3 one-week trials; this reports trials_remaining and the expiry after starting one. When the trials are used up it returns a buy link instead. The underlying AV keeps working regardless; licensing only gates this natural-language layer.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/SolutionAVAutomation/crestron-mcp-client'

If you have feedback or need assistance with the MCP directory API, please join our Discord server