Skip to main content
Glama

Set Eight Sleep Temperature Level

eight_sleep_set_temperature
Idempotent

Adjust the Pod's heating level from -100 (coldest) to 100 (hottest) and optionally set a duration. Requires explicit user consent for temperature changes.

Instructions

Set the heating level (-100 .. 100). Optionally set a duration in seconds. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
levelYesHeating level. -100 = coldest, 0 = neutral, 100 = hottest. Eight Sleep clamps client-side.
user_idNo
response_formatNomarkdown
duration_secondsNoOptional duration in seconds. Omit for persistent override.
explicit_user_intentNoMust be true after the user explicitly asked for this write. Combined with EIGHT_SLEEP_ALLOW_MUTATIONS=true.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
dataNo
noteNo
methodYes
endpointYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.13
  2. Removedv0.2.6
  3. First observedv0.2.5

TDQS

A4/5.0
Behavior4/5

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

The description adds a meaningful behavioral constraint beyond the annotations: the operation requires explicit_user_intent: true and the environment variable EIGHT_SLEEP_ALLOW_MUTATIONS=true. The annotations already convey readOnly false, idempotent true, and destructive false, so the description's added value is the mutation gate and the duration behavior.

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 extremely concise and front-loaded: it states the action, range, and optional duration first, then the critical gating requirement. Every sentence earns its place and no filler or repeated schema content is present.

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 that the output schema exists, return values need not be documented. Annotations cover safety and idempotence, and the description supplies the main invocation gate and core behavior. It lacks explicit sibling routing and does not explain user_id or response_format, but optional parameters and naming conventions make this adequate for a mutation tool of this complexity.

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 description reinforces the level range and optional duration, which are already fairly well documented in the schema. It also clarifies the explicit_user_intent gating, but it adds nothing about user_id or response_format. With schema coverage at 60%, the description provides some value but does not substantially fill the remaining gaps.

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 action: set the heating level with an explicit range of -100 to 100, plus an optional duration. This distinguishes it from sibling tools like eight_sleep_get_temperature and eight_sleep_set_side by naming the resource precisely.

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 when to use it (when a user asks to set temperature) and adds a key precondition: it must be gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true. However, it never mentions alternatives or explicitly says not to use it for read operations, leaving some routing to the agent.

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