Skip to main content
Glama
ryanpag3

coolercontrol-mcp

by ryanpag3

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
COOLERCONTROL_URLNoDaemon URL. Use https:// for a remote daemon with TLS enabled.http://localhost:11987
COOLERCONTROL_TOKENYesCoolerControl access token (cc_...) required to authenticate with the daemon.
COOLERCONTROL_MIN_DUTYNoLowest duty percentage that set_fixed_speed will apply. A guard against stopping a pump or fan by accident; set it to 0 to allow anything the hardware accepts.20
COOLERCONTROL_INSECURE_TLSNoAccept self-signed certificates.false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_healthB

CoolerControl daemon health: version, uptime, warning/error counts.

list_devicesA

List hardware CoolerControl knows about (CPU, GPUs, fan hubs, AIOs, PSUs, drives) with their speed-controllable channels and temperature sensors. Use the uids and channel names here for other tools.

get_statusA

Latest sensor readings: temperatures (°C), fan rpm, duty (%), power (W) and frequencies (MHz). Optionally limited to one device and channel.

get_channel_settingsA

What each speed-controllable channel is set to: a profile (by name), a fixed duty, or the default. Covers all devices unless one is given.

list_profilesB

Fan profiles (fixed, graph curves temp→duty, mixes) with their temperature source.

list_functionsB

Functions that shape how profiles apply duty changes (min/max duty, step sizes, hysteresis).

list_modesA

Saved modes (snapshots of all channel settings) and which one is active.

list_alertsC

Configured alerts and the recent alert log.

list_custom_sensorsC

User-defined custom sensors (mixes of other temps, or file-based sensors).

set_fixed_speedA

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.

apply_profileA

Assign an existing profile (see list_profiles) to a fan/pump channel. Returns the previous setting.

reset_channelA

Reset a fan/pump channel to its hardware default, removing any profile or fixed speed. Returns the previous setting.

activate_modeA

Activate a saved mode (see list_modes), applying all of its channel settings.

create_profileA

Create a fan profile. Fixed: a constant duty. Graph: a temperature→duty curve following one sensor. Mix: combines member profiles (Min/Max/Avg/Diff/Sum). Overlay: offsets one base profile. Assign it to a channel afterwards with apply_profile.

update_profileA

Change an existing profile. Only the fields given change; a new curve or offset replaces the old one. Changing type requires the new type's fields. Channels using the profile pick up the change immediately.

delete_profileA

Delete a profile. Refuses if any channel, Mix/Overlay profile or mode uses it, listing where, unless force is true; with force, channels using it fall back to their default and modes drop it.

get_modeC

The channel settings saved in a mode, with device and profile names.

create_modeB

Save the current settings of every channel as a new mode, which activate_mode can restore later.

update_modeB

Rename a mode and/or overwrite its saved settings with the current channel settings.

duplicate_modeB

Copy a mode, including its saved settings.

delete_modeA

Delete a saved mode. Channel settings currently applied are not changed.

create_functionA

Create a function. Required: name. Unset fields copy the Default Function. Common fields: f_type (Identity | Standard), duty_minimum / duty_maximum (step size per change, %), step_size_min_decreasing / step_size_max_decreasing, threshold_hopping, bypass_min_at_extremes; Standard also takes deviance, response_delay, only_downward.

update_functionB

Change fields of an existing function; fields not given keep their values.

delete_functionA

Delete a function. Refuses if it is in use unless force is true.

create_alertB

Create a alert. Required: name, min, max, warmup_duration (s), channel_sources: [{device_uid, channel_name, channel_metric}] where channel_metric is Temp | Duty | Load | RPM | Freq (all sources share one metric; channel_name is the sensor/channel name, e.g. temp1 or fan1). Optional: cooldown_duration, repeat_interval, enabled, desktop_notify, desktop_notify_audio, desktop_notify_recovery, shutdown_on_activation.

update_alertA

Change fields of an existing alert; fields not given keep their values.

delete_alertC

Delete a alert.

create_custom_sensorB

Create a custom sensor. Required: id (unique; becomes the sensor's name) and cs_type. cs_type Mix: mix_function (Min | Max | Delta | Avg | WeightedAvg | Sum) and sources: [{temp_source: {device_uid, temp_name}, weight}]. File: file_path. Offset: offset, optional scale, one source. TimeAverage / ExponentialMovingAvg: time_window_seconds (1-300), one source. Optional metric (Temp default; Duty | Load | RPM | Freq use channel_source instead of temp_source in sources).

update_custom_sensorB

Change fields of an existing custom sensor; fields not given keep their values.

delete_custom_sensorA

Delete a custom sensor. Refuses if it is in use unless force is true.

list_api_endpointsA

Every CoolerControl 5.1.1 REST endpoint a token can call, for use with call_api: lighting, LCD, calibrations, name overrides, daemon settings, stats, hardware detection, power profiles, ThinkPad / AMD overdrive, logs, metrics and the endpoints behind the other tools. Filter by tag or text.

call_apiA

Call any endpoint from list_api_endpoints directly. Prefer the dedicated tools when one fits; they validate inputs. Non-GET calls change daemon state and need a token with Write Access.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 32 tools

Disambiguation4/5

Tools are grouped by distinct resources and actions (profiles, modes, functions, alerts, custom sensors, channel operations), and most boundaries are clear. The main ambiguity is the generic call_api/list_api_endpoints pair, which overlaps every dedicated tool, but the description explicitly steers agents toward dedicated tools when available.

Naming Consistency5/5

All tool names use consistent snake_case with predictable verb_noun or action_resource structure. Variations like activate_mode, apply_profile, reset_channel, and set_fixed_speed are specific but still follow the same convention.

Tool Count3/5

32 tools is heavy for a fan-control server, even though the domain has many subresources with full CRUD families. Several conveniences (duplicate_mode) and meta-REST tools push the set beyond a tightly scoped surface, making it borderline over-scoped.

Completeness5/5

The set covers CRUD for modes, profiles, functions, alerts, and custom sensors, plus device/status reads and channel assignment/reset operations. The list_api_endpoints/call_api escape hatch also fills gaps for lighting, LCD, calibration, and other daemon endpoints.

Maintenance

ActivityMaintained
ResponsivenessNo issues