Skip to main content
Glama
ryanpag3

coolercontrol-mcp

by ryanpag3

Set fixed fan speed

set_fixed_speed
Idempotent

Sets a fan or pump channel to a fixed duty percentage, rejects values below 20%, and returns the previous setting for restoration.

Instructions

Set a fan/pump channel to a fixed duty %. Values below 20% are refused (COOLERCONTROL_MIN_DUTY). Returns the previous setting so it can be restored.

Input Schema

NameRequiredDescriptionDefault
dutyYesDuty cycle in percent
deviceYesDevice uid, uid prefix (8+ chars) or exact device name, as shown by list_devices
channelYesSpeed channel name (e.g. fan1) or its label

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare non-read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds genuine value beyond them: a hard validation floor with a named error code (COOLERCONTROL_MIN_DUTY) and disclosure that the previous setting is returned, which matters for a mutation an agent may need to undo.

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?

Three short sentences with no waste, front-loaded with the action and immediately following with the constraint and return behavior. Every sentence 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 3-parameter mutation tool with annotations present and no output schema, the description covers the validity constraint and what gets returned, which is sufficient to call it correctly. It stops slightly short on the restore workflow (which sibling to use), the one remaining gap.

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 the baseline is 3. The description goes beyond the schema by disclosing that duty values below 20% are rejected despite the schema advertising a 0–100 range — a constraint invisible in the structured fields — which is exactly the kind of semantic detail an agent needs.

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?

States a specific verb and resource ('Set a fan/pump channel to a fixed duty %'), which is clearly distinct from read-oriented siblings like get_channel_settings. It does not explicitly name the sibling it supersedes (e.g. reset_channel) for returning to auto control, so sibling differentiation is left implicit.

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 purpose strongly implies when to use it, and the 20% floor gives practical usage context. However, there is no explicit when-to-use vs. alternatives guidance, and the restore path is only hinted at ('so it can be restored') without naming reset_channel or any sibling.

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