Skip to main content
Glama
thermoslop

thermoslop

by martellj

set_temperature

Idempotent

Set an absolute thermostat setpoint for heat, cool, or auto mode by specifying target or heat/cool temperatures; this creates a hold that can be cleared by resuming the schedule.

Instructions

Set an absolute setpoint, in °F unless unit says otherwise. In heat or cool mode use target; in auto mode use heat and/or cool. Allowed range: 55–80°F. Creates a hold, like changing it on the thermostat; resume_schedule clears it.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "set_temperature"
  }
}

Input Schema

NameRequiredDescriptionDefault
coolNo
heatNo
unitNoUnit of the temperatures in this call; defaults to the server's (see the description).
houseNoOnly thermostats in this house, e.g. 'cabin'.
targetNo
thermostatNoThermostat alias or name prefix, e.g. 'upstairs'. See list_thermostats.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations cover the safety profile (not read-only, idempotent, non-destructive), and the description adds real behavioral context: the call creates a hold analogous to a manual thermostat change, and resume_schedule removes it. It doesn't say what happens when values fall outside 55–80°F or whether the hold expires.

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 dense sentences, front-loaded with the core action and unit default, followed by mode-specific parameter rules and side effects. No filler.

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?

Covers the essentials for a mutation with no output schema: valid range, mode-dependent parameters, and hold side effect. Gaps remain around out-of-range errors and whether omitting 'thermostat' while passing 'house' applies to every thermostat in that house.

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 only 50%, with cool, heat, and target undocumented in the schema, but the description compensates by mapping them to HVAC modes. Unit default behavior and house/thermostat scoping are left to the schema, which covers them adequately.

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 concrete verb and resource ('Set an absolute setpoint') and the word 'absolute' implicitly contrasts with the sibling adjust_temperature. It does not name that sibling outright, so the distinction is inferable rather than explicit.

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?

Gives conditional guidance on which parameters to use: 'target' in heat/cool mode, 'heat' and/or 'cool' in auto mode, plus the 55–80°F valid range. It also routes to resume_schedule for clearing the hold. No explicit rule for when to prefer adjust_temperature over this.

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