Skip to main content
Glama
ryanpag3

coolercontrol-mcp

by ryanpag3

Create fan profile

create_profile

Creates a fan profile for fixed duty, temperature-based curves, mixed members, or overlay offsets; assign it to a channel afterward with apply_profile.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
nameYes
typeYes
curveNoGraph: temperature → duty points (sorted for you; temps must be unique)
offsetNoOverlay: duty → offset points applied to the base profile; one point is a static offset
membersNoMix: member profiles; Overlay: exactly one base profile (uids or names)
functionNoFunction uid or name (see list_functions); default: Default Function
speed_fixedNoFixed: duty %
temp_sourceNoGraph: the temperature the curve follows
mix_functionNoMix: how members combine

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the write-but-non-destructive profile is covered structurally. The description adds real value by mapping each type to its required parameters and flagging the two-step create-then-apply workflow, but says nothing about name-collision behavior, idempotency, or validation failures.

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 compact clauses, one per profile type, then the follow-up action. Zero filler and the core purpose is front-loaded in the first clause.

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 9-parameter tool with nested objects and no output schema, the description covers the type-conditional parameter usage and the required next step well. It omits what is returned (a profile id vs name) which matters because apply_profile later needs an identifier, but that is a modest gap given the otherwise thorough coverage.

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 78%, so most parameters are already documented, but the description adds the crucial conditional semantics the schema cannot express: which fields apply per type (Fixed→duty, Graph→curve+one sensor, Mix→members+function, Overlay→offset+one base profile). It leaves the default for function and the exact accepted identifier forms to the 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?

States a specific verb+resource ("Create a fan profile") and then defines all four profile types with their distinguishing semantics. An agent can tell this apart from update_profile/list_profiles immediately, and understands what kind of object is being produced.

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?

Explicitly routes the agent to the follow-up tool: "Assign it to a channel afterwards with apply_profile," which clarifies this tool alone does nothing useful. It doesn't state when to prefer create_profile vs update_profile, nor that a target function must already exist, so it stops short of full when/when-not guidance.

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