Skip to main content
Glama

Cliente MCP for Crestron

Controla un sistema AV Crestron 4-Series desde Claude, en lenguaje natural. Esta es la parte cliente de MCP for Crestron: un servidor MCP que conecta Claude (Desktop o Code) a un procesador que ejecuta los módulos MCP for Crestron, exponiendo el sistema como herramientas MCP a través de stdio. Habla el protocolo de texto MCP for Crestron (ver PROTOCOL.md) sobre TCP, con autenticación de clave segura + TLS.

MCP for Crestron: controlando una sala de juntas desde Claude en inglés sencillo

Habla con tu sistema Crestron en inglés sencillo. Ver la demo completa (1:19) »

El cliente es gratuito. Controlar un procesador requiere que ese procesador tenga licencia (o esté en prueba gratuita). Ver Licencias. Una licencia de procesador cuesta AUD $249 (GST incluido); cada procesador también recibe tres pruebas gratuitas de 1 semana. Obtén una licencia en https://solutionav.com.au/crestron-mcp/.

Instalación

Claude Desktop (recomendado)

Descarga mcp-for-crestron.mcpb desde https://solutionav.com.au/crestron-mcp/ y ábrelo (o Configuración → Extensiones → Instalar). Introduce la dirección del procesador y su clave segura (que se muestra en la salida Key del módulo MCP Server Config); el puerto por defecto es 50794.

Claude Code / otros hosts MCP

No se necesita descarga. Ejecútalo directamente desde npm:

claude mcp add crestron \
  --env CRESTRON_HOST=10.0.1.38 \
  --env CRESTRON_KEY=<the processor's secure key> \
  -- npx -y mcp-for-crestron

Related MCP server: FleetShell

Configuración

Se resuelve de menor a mayor prioridad: config.json junto al ejecutable, variables de entorno y luego argumentos de CLI (<host> [port]).

Env

Significado

CRESTRON_HOST

IP / nombre de host del procesador (obligatorio)

CRESTRON_PORT

Puerto TCP (por defecto 50794)

CRESTRON_KEY

Clave segura (modo 2); habilita TLS + autenticación

CRESTRON_AUTH

Contraseña (solo modo 1)

CRESTRON_TLS

Forzar TLS sin clave

Herramientas

discover_crestron_system, list_crestron_rooms, list_crestron_devices, query_crestron_device, get_crestron_time, control_crestron_device, set_crestron_devices, pulse_crestron_device, ramp_crestron_device, cancel_crestron_device, get_room_status, activate_crestron_license, get_crestron_license_status, start_crestron_trial.

Consulta AGENT_GUIDE.md para saber cómo debe usarlos un asistente (sincronización, escenas, rampas, etiqueta de licencias de aviso sin insistir).

Licencias

El procesador debe tener licencia antes de aceptar comandos de control o consulta. Si no la tiene, cada herramienta devuelve una guía que incluye el código de activación (su MAC) del procesador. Dos opciones, ambas en el chat:

  • Prueba gratuita: start_crestron_trial (sin pago; hasta 3 × 1 semana por procesador).

  • Comprar: obtén una clave para ese MAC en https://solutionav.com.au/crestron-mcp/, pégala en el chat y el asistente llamará a activate_crestron_license.

La licencia se almacena en el procesador (vinculada a su MAC), por lo que persiste entre reinicios y cubre a todos los clientes. Una clave comprada solo funciona en ese procesador, por lo que es seguro recibirla en el chat.

Desarrollo

npm install
npm run build      # tsc -> dist/
npm start          # node dist/index.js
npm run mcpb       # build the Claude Desktop .mcpb (needs bun)

Licencia

MIT. Ver LICENSE. (El cliente es abierto; el producto es la licencia por procesador en el dispositivo.)

Marca comercial

Crestron es una marca comercial registrada de Crestron Electronics, Inc.; MCP for Crestron es un producto de Solution AV Automation, no afiliado ni respaldado por Crestron.

Available Tools

14 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
license_keyYesThe license key the user obtained for this processor.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses one-time activation, key stored on processor, persists across reboots, and that the key is not secret. Since annotations are absent, description carries full burden and does it thoroughly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences efficiently convey purpose, usage, behavior, and security. Front-loaded with activation purpose, no redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one param, no output schema), the description covers all necessary context: when, why, how, and behavioral traits. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has one param with basic description. The description adds context on how to obtain the key and its non-secret nature, going beyond the schema. Schema coverage is 100%, so baseline is 3, but description adds significant value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Activate' and resource 'Crestron processor' with 'license key'. Differentiates from sibling tools like 'start_crestron_trial' and 'get_crestron_license_status' by specifying activation with a user-provided key.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use when a command fails due to licensing and explains how to get the key from the user based on the processor's activation code. No alternative usage needed, provides complete guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYesUnique device identifier (e.g. "lounge_a3").

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It fully discloses the tool's effects: stopping ramps, releasing pulses, clearing delayed actions, but not altering a static value. It also notes applicability: 'Works on any device type.' This is complete behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative but slightly verbose. It front-loads the core action and uses examples effectively. While every sentence adds value, it could be trimmed slightly without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only one parameter, no output schema, and a rich sibling tool list, the description is complete. It explains what the tool does, when to use it, what it avoids, and its broad applicability, leaving no important gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a description for device_id. The tool description adds no additional parameter-level detail beyond the schema's example. Baseline of 3 is appropriate since schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Stop/cancel activity' and specifies the resource 'device'. It enumerates specific actions: stop ramp, release pulse, clear delayed action, and provides concrete examples like 'stop the fade'. This distinguishes it from sibling tools like ramp_crestron_device, pulse_crestron_device, and set_crestron_devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states use cases: 'Use for "stop the fade", "stop ringing the bell", "cancel that timer".' It also clarifies what it does not do: 'Does not otherwise change the device's value - a device that is simply on/high from a normal set stays on.' This provides clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYesUnique device identifier (e.g. "conf_rm_a_lights_on").
valueYesNew value - digital "0"/"1", analog "0"-"65535", or serial text.
delay_msNoOptional delay in milliseconds before the set runs on the processor (0 / omit = immediate).

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavior. It states the action and optional delay, but lacks details on idempotency, side effects, permissions, or error handling. The example adds context but is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences. First states purpose, second adds optional delay with an example. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no output schema and many siblings, the description is brief. It does not explain return values, how to verify success, or error cases. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptive parameter descriptions. The description adds no new meaning beyond the schema, except for a usage example and explanation of delay_ms. Baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Set a device's value') and the resource (device), with an example. However, it does not explicitly differentiate from siblings like 'set_crestron_devices' (bulk) or 'pulse_crestron_device'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description mentions optional delay and gives an example, it does not provide guidance on when to use this tool versus alternatives (e.g., pulse, ramp). No exclusions or context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_crestron_systemA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions the return format (rooms, categories, device counts) which adds context. However, with no annotations, it does not disclose whether the tool is read-only or has side effects. The verb 'Discover' implies a safe operation, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the verb and resource, and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description adequately conveys the purpose and return content. It is complete enough given the simplicity of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema is trivially complete. According to calibration rules, baseline score is 4 when there are no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to discover devices and capabilities in the Crestron system, returning rooms, categories, and device counts. It distinguishes from sibling tools like list_crestron_devices and list_crestron_rooms by focusing on high-level discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for initial system exploration, but does not explicitly state when to use it versus more specific siblings like list_crestron_devices. No guidance on when not to use or alternatives is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It explains what the tool returns but does not mention side effects, permissions, or idempotency. The behavioral guidance on presenting results adds some context beyond raw output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and front-loaded with purpose. Includes extra guidance but remains efficient. Slightly verbose with the 'Nudge, don't nag' line, but overall well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description adequately explains the tool's return fields and use cases. Could mention error scenarios, but is sufficiently complete for a simple status check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters defined; schema coverage is 100%. Baseline score of 4 applies per rules for zero-parameter tools. Description adds no parameter info because none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks the processor's license/trial state and lists specific details it returns. It distinguishes this status-checking tool from sibling tools like activate_crestron_license and start_crestron_trial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context to call it at session start and whenever license status is relevant, plus guidance on how to present results (mention trial time, offer renewal). Lacks explicit when-not-to-use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It accurately describes the tool as a read-only getter that returns epoch_ms and iso, without mentioning side effects or permissions. For a simple retrieval tool, this is sufficient and does not contradict any annotations (none provided).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long with no filler. It front-loads the purpose and output, then immediately provides usage guidance. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description fully covers the tool's behavior. It specifies the output fields and provides a clear usage scenario, making it complete for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100%. The description adds value by explaining the output fields (epoch_ms and iso) and their use, going beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get', the resource 'processor's current time', and the output format 'epoch milliseconds and ISO 8601'. It distinguishes the tool from siblings like query_crestron_device by highlighting its use for absolute timestamps, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using this tool to correlate timestamps from query_crestron_device or when system real time is needed, and notably suggests avoiding the need to decode a wired clock. While it doesn't explicitly state when not to use it, the guidance is clear and context-specific.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_room_statusC

Get the status of every device in a room.

ParametersJSON Schema
NameRequiredDescriptionDefault
room_nameYesRoom name or id (e.g. "Conference Room A" or "conf_rm_a").

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description lacks behavioral details such as whether the operation is read-only, what side effects occur, or the format of the returned data. The description is minimal and does not disclose behaviors beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should clarify the return format (e.g., list of devices with status). It does not, leaving the agent uncertain about what data to expect. For a simple tool, more detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single parameter, and the schema description provides clear examples. The tool description does not add extra meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the status of all devices in a room. It uses a specific verb and resource, and the name distinguishes it from sibling tools which are focused on Crestron-specific operations like licenses and device control.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. Sibling tools like 'list_crestron_rooms' or 'query_crestron_device' could be related, but no exclusions or context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_crestron_devicesA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
roomNoOptional room name or id to filter by.
categoryNoOptional category to filter by (Lighting, AV, HVAC, Shades).

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. While 'list' implies a read-only operation, the description does not explicitly state that it is non-destructive, idempotent, or free of side effects. It lacks depth beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that efficiently communicates the tool's action and optional filters. No redundancy or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 required params, no output schema, 2 optional params), the description adequately explains the filter options. However, it does not specify default behavior (e.g., all devices if no filters) or pagination, which would be helpful for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, baseline is 3. The description adds value by listing the specific categories (Lighting, AV, HVAC, Shades) which are not enumerated in the schema. This helps the agent understand valid input values beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing controllable devices with optional filters. It uses a specific verb 'list' and resource 'controllable devices,' and distinguishes from sibling tools like control_crestron_device which perform actions rather than listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing devices with optional filters but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though the context of sibling tools makes the use case clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_crestron_roomsA

List all rooms in the building with their device counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavioral traits. It states the action but omits details like read-only nature, permissions, or output format. Given the simplicity, it is adequate but has clear gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence with no superfluous words. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description is sufficiently complete. It explains what it does (list rooms with device counts). Could be slightly improved by indicating list vs single result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100%. The description does not add param-specific meaning, but it is also not required. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' and resource 'all rooms' with additional detail 'with their device counts'. It clearly distinguishes from siblings like 'list_crestron_devices', which lists devices instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for getting an overview of rooms with device counts but does not explicitly state when to use this versus alternatives like 'get_room_status' or 'list_crestron_devices'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYesUnique digital device identifier (e.g. "lounge_d3").
pulse_msYesHow long to hold it on, in milliseconds (e.g. 500).
delay_msNoOptional delay in milliseconds before the pulse starts (0 / omit = immediate).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the pulsing behavior, rejection of non-digital devices, and optional delay. Does not detail error handling or return values, but overall is transparent about core behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and front-loaded with the main action. Covers key points in one paragraph without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and three parameters, the description adequately covers purpose, usage, parameter meanings, constraints, and siblings. Sufficient for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds examples and clarifies that delay_ms is optional, but does not significantly extend beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Momentarily pulse a DIGITAL device: drive it on for pulse_ms, then back off - a simulated button press.' It specifies the action (pulse), resource (digital device), and distinguishes from siblings like control_crestron_device and ramp_crestron_device.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance: 'Use for momentary triggers like "press the doorbell", "tap the projector power button", "trigger the gate".' Also states when not to use: 'Digital devices only; analog and serial devices are rejected (use control_crestron_device / ramp_crestron_device).'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYesUnique device identifier (e.g. "conf_rm_a_lights_on").

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior fully. It explains the return structure and time fields (epoch milliseconds, remaining_ms/in_ms). However, it omits details like side effects (none, as a read), authentication needs, or error conditions. Still, it provides substantial behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loading the main purpose and providing details in a single paragraph. While it could be slightly more structured (e.g., bullet points), it is not verbose and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains return values and introduces helpful fields like remaining_ms/in_ms. It covers the main states and time concepts, but lacks details on error cases or format confirmations (e.g., if device not found).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with a description for device_id. The description adds no additional parameter-specific semantics beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('live state of a device'), then enumerates specific state components (current value, idle/ramping/pulsing with time fields, pending scheduled action). This distinctively separates it from sibling tools like ramp_crestron_device or pulse_crestron_device.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for querying device state and explains how to interpret time fields, but does not explicitly state when to use vs. alternatives or provide exclusions. The note 'One read tells you idle vs in-flight vs scheduled' gives context, but lacks direct comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYesUnique device identifier (e.g. "lounge_a1").
valueYesTarget analog value "0"-"65535".
duration_msYesRamp duration in milliseconds (e.g. 3000 for 3 seconds).
delay_msNoOptional delay in ms before the fade starts (0 / omit = immediate).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. It discloses analog-only nature, duration, and optional delay. Could be more explicit about failure modes if device type mismatches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with core operation, then usage guidance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with 100% schema coverage and no output schema, the description is mostly complete. Minor gap: no mention of error handling if device_id invalid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description adds context (analog value range) but largely mirrors schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it ramps (fades) an analog device to a value over a duration, and distinguishes from sibling tools like control_crestron_device.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (analog fade requests) and when not to (digital/serial devices, instant set), and references an alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
assignmentsYesThe devices to set, each {device_id, value, duration_ms?, delay_ms?}.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that fading (duration_ms) is analog-only, that delay_ms can be applied, and that plain values may contain colons but not commas. It does not mention idempotency, authorization requirements, or side effects, but the core behavior is well-covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence adds value. The description is concise yet informative, front-loading the purpose and providing examples. No redundant phrasing or unnecessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and one parameter, the description is remarkably complete. It covers purpose, usage context, parameter constraints, behavior nuances, and examples. The sibling list further aids context. There are no obvious gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond schema: it explains analog-only restriction for duration_ms, the comma/colon constraint for values, and the relationship to control_crestron_device rules. These details help the agent use parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool applies a scene/macro by setting many devices in one call. It provides specific examples ('movie night', staged sequences) and the verb 'set' combined with 'many devices' distinguishes it from siblings like control_crestron_device (single device) and pulse_crestron_device.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool (e.g., 'movie night' or staged sequences) and implies when not to use (if only setting one device, use control_crestron_device). It also references 'Values follow control_crestron_device rules' to guide value formatting. However, it does not explicitly list alternatives or state when to avoid this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavior: it starts a trial, reports trials_remaining and expiry, returns a buy link when exhausted, and clarifies that underlying AV keeps working. This is comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with the main action stated first. Each sentence adds essential information without redundancy, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description provides complete context: what the tool does, when to use it, limits, return values, and side effects. It leaves no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since there are zero parameters and schema coverage is 100%, the baseline is 4. The description adds semantic value by explaining the output (trials_remaining, expiry, buy link) and operational context, exceeding the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts a free 7-day trial on a processor, with specifics like no payment needed. It distinguishes itself from siblings like 'activate_crestron_license' by focusing on trials and mentioning when to use it (unlicensed or lapsed trials).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using the tool when the processor is unlicensed or a trial has lapsed, and it mentions the trial limit of 3 per processor. It indirectly differentiates from license activation but lacks an explicit 'do not use when' statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv1.7.0
    • First observedactivate_crestron_license
    • First observedcancel_crestron_device
    • First observedcontrol_crestron_device
    • First observeddiscover_crestron_system
    • First observedget_crestron_license_status
    • First observedget_crestron_time
    • First observedget_room_status
    • First observedlist_crestron_devices
    • First observedlist_crestron_rooms
    • First observedpulse_crestron_device
    • First observedquery_crestron_device
    • First observedramp_crestron_device
    • First observedset_crestron_devices
    • First observedstart_crestron_trial

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct operation: licensing (activate/check/start trial), device control (control/pulse/ramp/cancel), batch control (set), querying (query, get_room_status, list, discover), and system info (get time). No two tools have overlapping purposes; agents can easily distinguish when to use which.

Naming Consistency4/5

Most tools follow a verb_crestron_device or verb_crestron_system pattern, with consistent snake_case. The only minor deviation is 'get_room_status' instead of 'get_crestron_room_status', but it's a single outlier and still clear.

Tool Count5/5

14 tools are well-scoped for a Crestron control system: licensing (3 tools), device control (5: control, pulse, ramp, cancel, set), information (5: discover, list rooms, list devices, get room status, query device), and utility (1: get time). This covers all core operations without bloat.

Completeness4/5

The set covers the full lifecycle: discover, list, query, control (single & batch), ramp, pulse, cancel, and licensing management. Minor gaps like a 'stop all devices' or 'reset device' are absent but not essential for typical agent workflows. Overall highly complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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

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