Skip to main content
Glama
nidamen

Dr. Dabber Switch 2 MCP

by nidamen

Dr. Dabber Switch 2 MCP

A Model Context Protocol (MCP) server for controlling a Dr. Dabber Switch 2 vaporizer over Bluetooth LE. It exposes every safe user-facing control as a typed MCP tool, so any MCP-connected LLM or automation can discover, connect, and operate the device without touching the official app.

Problem it solves

The Switch 2 ships with a mobile/web Bluetooth app. This server bridges the device into the MCP ecosystem so you can drive it from Claude, Codex, or any other MCP client on your laptop or over a Raspberry Pi BLE proxy, keeping the device always reachable even when your phone app is not connected.


Related MCP server: discord-mcp

Install

Option A: run from GitHub (no clone needed)

npx -y github:nidamen/drdabber-switch2-mcp

Option B: local clone

git clone https://github.com/nidamen/drdabber-switch2-mcp.git
cd drdabber-switch2-mcp
npm install
npm run build

Node 20+ is required.


MCP client configuration

Direct BLE (laptop)

The server opens its own Bluetooth connection. The Switch 2 must be on, nearby, and not connected to another client.

Claude Desktop / claude_desktop_config.json:

{
  "mcpServers": {
    "drdabber-switch2": {
      "command": "npx",
      "args": ["-y", "github:nidamen/drdabber-switch2-mcp"],
      "env": {
        "DRDABBER_SWITCH2_TARGET": "My Switch 2"
      }
    }
  }
}

Or with a local build:

{
  "mcpServers": {
    "drdabber-switch2": {
      "command": "node",
      "args": ["/path/to/drdabber-switch2-mcp/dist/src/index.js"],
      "env": {
        "DRDABBER_SWITCH2_TARGET": "My Switch 2"
      }
    }
  }
}

Pi BLE proxy (always-on headless path)

When DRDABBER_PROXY_URL is set, the MCP forwards every command to the web control running on the Pi instead of opening its own BLE link. The Pi becomes the single BLE owner and multiple clients can share it without GATT contention.

{
  "mcpServers": {
    "drdabber-switch2": {
      "command": "node",
      "args": ["/path/to/drdabber-switch2-mcp/dist/src/index.js"],
      "env": {
        "DRDABBER_PROXY_URL": "http://192.168.1.44:4477"
      }
    }
  }
}

TOML style (Codex / Autohand):

[mcp_servers.drdabber-switch2]
command = "node"
args    = ["/path/to/drdabber-switch2-mcp/dist/src/index.js"]
env     = { DRDABBER_SWITCH2_TARGET = "My Switch 2" }

Environment variables

Variable

Required

Description

DRDABBER_SWITCH2_TARGET

No

BLE id or exact advertised name to prefer during scan. Omit to connect to the first Switch 2 found.

DRDABBER_PROXY_URL

No

Base URL of the Pi web control (e.g. http://192.168.1.44:4477). When set, all commands are proxied; BLE is not opened locally.


Transport

The server uses stdio MCP transport. It does not open any network ports itself. BLE communication runs via @abandonware/noble on the host machine, or via HTTP POST to the Pi proxy when DRDABBER_PROXY_URL is set.


Complete tool reference

Connection

Tool

Purpose

Parameters

Returns

discover_switch2

Scan for nearby Switch 2 devices advertising the fee7 BLE service

timeoutMs (int, optional, 1000-60000)

Array of { id, name, rssi, services, connectable }

connect_switch2

Connect to the Switch 2 and read device information

target (string, optional) BLE id or exact advertised name

Switch2DeviceInfo: { id, name, model, serial, hardwareRevision, softwareRevision, manufacturer, rssi }

disconnect_switch2

Disconnect from the current Switch 2

none

{ disconnected: true }

Device state

Tool

Purpose

Parameters

Returns

get_device_info

Return cached model, serial, firmware, and manufacturer info

none

Switch2DeviceInfo

get_status

Sync clock, request analytics, and return decoded device status

waitMs (int, optional, 0-10000, default 3000) ms to wait for BLE notifications

Full Switch2State: status + presets + analytics + raw notifications

get_presets

Return cached presets for all 5 vapor profiles

none

Array of Switch2Preset: { preset, tempF, tempC, holdTime, heatingProfile, heatingProfileLabel, customProfile }

Preset configuration

Tool

Purpose

Parameters

Returns

set_active_preset

Switch the active vapor profile

preset (int, required, 1-5)

Switch2Status

set_preset_temperature

Set a preset's target temperature

preset (int, required, 1-5); tempF (int, optional, 250-650) OR tempC (int, optional, 121-343). At least one is required.

Updated Switch2Preset

set_preset_hold_time

Set a preset's hold time

preset (int, required, 1-5); holdTime (int, required, 10-90 seconds)

Updated Switch2Preset

set_heating_profile

Set a preset's heating curve

preset (int, required, 1-5); heatingProfile (int, required): 161 Steady, 177 Ascent, 193 Descent, 209 Valley, 225 Hill, 241 Custom

Updated Switch2Preset

Session control

Tool

Purpose

Parameters

Returns

start_session

Start the active heating session

none

Switch2Status

stop_session

Stop the active heating session

none

Switch2Status

extend_session

Set the session extension value

minutes (int, required, 0-9)

Switch2Status

Device settings

Tool

Purpose

Parameters

Returns

set_light_mode

Set the LED pattern

lightMode (int, required, 0-17). 0=Stealth, 1=Calm, 2=Purple, 3=Blue, 4=Cyan, 5=Green, 6=Yellow, 7=Orange, 8=Red, 9=Pink, 10=Cali Sunset, 11=Purple Haze, 12=Northern Lights, 13=Vegas Nights, 14=Blue Dream, 15=Strawberry Cough, 16=Florida Groves, 17=Lime Light

Switch2Status

set_light_brightness

Set LED brightness

brightness (int, required, 0-100)

Switch2Status

set_temp_unit

Set displayed temperature unit

tempUnit (string, required): "F" or "C"

Switch2Status

set_haptic_feedback

Enable or disable haptic feedback

enabled (boolean, required)

Switch2Status

set_auto_shutoff

Set idle auto-shutoff timer. Use 0 to disable.

minutes (int, required, 0-60)

Switch2Status

set_device_name

Rename the Switch 2 (persisted on device)

name (string, required, 1-29 printable ASCII chars 0x20-0x7E)

Switch2DeviceInfo

Cleaning

Tool

Purpose

Parameters

Returns

start_cleaning_assist

Start the cleaning assist cycle

none

Switch2Status

stop_cleaning_assist

Stop the cleaning assist cycle

none

Switch2Status

Total: 21 tools.


Quick usage examples

Check device state and battery:

"Connect to my Switch 2 and tell me the battery level, current temperature, and active preset." The LLM calls connect_switch2 then get_status and reports back.

Change light and set temperature:

"Set preset 3 to 480F and switch the light to Purple Haze." The LLM calls set_preset_temperature with { preset: 3, tempF: 480 } and set_light_mode with { lightMode: 11 }.

Automated session:

"Start a session on preset 2, then stop it after I say done." The LLM calls set_active_preset with { preset: 2 }, then start_session, and waits for the next instruction to call stop_session.


Desktop control panel

A local web control panel is included under app/. It reuses Switch2Controller directly (no MCP layer) and serves a single-page UI at http://localhost:4477 over HTTP + Server-Sent Events. Controls mirror the official app: live temperature dial, preset editor, light mode and brightness, session start/stop/extend, cleaning assist, device rename, and all device settings.

# Real device
npm run app
# open http://localhost:4477

# Mock device (no hardware needed)
npm run app:mock

BLE protocol notes

Primary control surface:

Purpose

UUID

Demo service

0000fee7-0000-1000-8000-00805f9b34fb

Write characteristic

0000fec1-0000-1000-8000-00805f9b34fb

Notify characteristic

0000fec2-0000-1000-8000-00805f9b34fb

Device information service

0000180a-0000-1000-8000-00805f9b34fb

Intentionally excluded UUIDs:

Purpose

UUID

OTA service

e5c7a653-7e52-4b06-af32-960455084ae3

OTA write

4cbbd40d-f1fa-4dbd-9bb5-36ec99d99a08

OTA notify

739cb17a-1aec-4232-a01a-a250d4c35f0d


Safety boundaries

This server intentionally does NOT expose:

  • Firmware update or OTA writes

  • Factory reset

  • Arbitrary raw BLE writes

All state-changing tools validate input ranges before writing to the device. These boundaries are permanent design decisions, not omissions.


Verified device

Live verified on May 29, 2026:

Field

Value

BLE name

My Switch 2

Advertised service

fee7

Model

Switch 2

Serial

SN-EXAMPLE-0000

Hardware

V2.0.0

Firmware

SW2-260322-010

Manufacturer

Dr.Dabber


Development

npm test          # unit tests (21 tests)
npm run build     # compile TypeScript
npm run qa        # build + test
npm run probe     # BLE scan (requires hardware)
npm run live:status -- "My Switch 2"   # read-only live status

License

MIT

Available Tools

21 tools
connect_switch2Connect Dr Dabber Switch 2C

Connect to a Switch 2 and read device information.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNoOptional BLE id or exact advertised name, for example 'My Switch 2'.

TDQS

C2.9/5.0
Behavior2/5

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

The description omits behavioral details such as whether the connection persists, if it overrides existing connections, or any side effects. With no annotations, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the core purpose. It could benefit from more detail but remains concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks information about return values (no output schema), prerequisites, and how it fits into the sequence of operations among many sibling tools. Given the complexity of the tool set, this is inadequate.

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 single parameter 'target' is described in the schema with an example, so the description adds no extra meaning. Baseline 3 is appropriate due to full schema coverage.

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?

The description clearly states the verb 'connect' and the resource 'Switch 2' with an additional action 'read device information'. However, among siblings like 'get_device_info', it's not fully clear if this tool only connects and reads once or establishes a persistent connection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like 'discover_switch2' or 'get_device_info'. It doesn't specify prerequisites or whether it should be used before other tools.

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

disconnect_switch2Disconnect Dr Dabber Switch 2B

Disconnect from the current Switch 2.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior1/5

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

The description provides no information about side effects, state changes, or error conditions (e.g., what happens if not connected). With no annotations to compensate, the description fails to disclose any behavioral traits.

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 a single, clear sentence with no extraneous words. It efficiently communicates the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output tool, the description is minimally adequate. However, it lacks context about prerequisites, outcomes, and error handling, which would improve completeness for an agent.

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?

There are zero parameters, so the description does not need to explain them. The schema coverage is 100%. The baseline for zero parameters is 4, and no additional info is required.

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?

The description states 'Disconnect from the current Switch 2,' which clearly identifies the action (disconnect) and the target (Switch 2). Given the sibling tools like 'connect_switch2' and 'discover_switch2', the purpose is unambiguous, though it lacks specifics about what 'disconnect' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., when to disconnect vs. stop session) or any prerequisites (e.g., must be connected first). The agent receives no context for appropriate invocation.

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

discover_switch2Discover Dr Dabber Switch 2B

Scan for nearby Switch 2 devices advertising the fee7 BLE service.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutMsNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description must disclose behaviors. It states the scanning action but doesn't mention configurable timeout, return behavior on no devices, or whether it's blocking/non-blocking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no verbosity, but fails to include parameter details. Efficient for brevity but incomplete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks explanation of the return value, error conditions, and the on ly parameter. For a simple BLE scan tool, key behavioral and usage details are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the `timeoutMs` parameter at all, leaving its purpose and usage entirely undocumented.

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?

Clearly states the verb 'scan' and the resource 'nearby Switch 2 devices' with a specific BLE service UUID, distinguishing from sibling tools like connect_switch2 or get_device_info.

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?

Implicitly understood as the first step before connecting, but no explicit guidance on when to use or when not to. Sibling tool names provide context but description lacks direct instruction.

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

extend_sessionExtend SessionC

Set session extension value from 0 to 9.

ParametersJSON Schema
NameRequiredDescriptionDefault
minutesYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as whether setting a value overrides or extends an existing session, or if it requires an active session. The tool's behavior remains opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it lacks structure and does not earn its place by providing valuable context beyond the title. It could be expanded meaningfully.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations, and the description does not explain return values, errors, or side effects. Given the existence of sibling tools like start_session, the description leaves important gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning beyond the schema's existing constraints (integer 0-9). It does not explain what 'minutes' represents or how it affects the session.

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?

The description clearly states the verb 'Set' and the resource 'session extension value' with a numeric range 0-9. However, it does not differentiate from sibling tools like start_session, leaving the exact meaning of 'extend' ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like start_session. The description does not indicate prerequisites, side effects, or appropriate contexts for setting the extension.

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

get_device_infoGet Switch 2 Device InfoA

Return cached model, serial, firmware, and manufacturer information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description reveals that the data is 'cached', indicating it may not be real-time, which is an important behavioral trait. With no annotations provided, the description carries the full burden, and it adequately discloses the read-only nature without side effects.

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 a single, front-loaded sentence that conveys all necessary information without redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there are no parameters, output schema, or annotations, the description is minimally sufficient. However, it lacks context about prerequisites (e.g., device must be connected) and does not detail the output format or potential error conditions, leaving some gaps for a complete understanding.

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?

The tool has zero parameters, and schema coverage is 100%, so the baseline is 4. The description adds meaning by listing the returned fields, though this pertains to output rather than parameter semantics. No additional parameter information is needed.

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 verb 'Return' and the specific resource 'cached model, serial, firmware, and manufacturer information', making the tool's purpose unambiguous. It also distinguishes itself from sibling tools, none of which retrieve device info.

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?

While the description does not explicitly state when to use or not use this tool, the purpose is straightforward and no sibling tools provide the same functionality, so usage context is clear. However, explicit guidance on prerequisites (e.g., device connection) would improve score.

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

get_presetsGet Switch 2 PresetsA

Return cached preset temperatures, hold times, heating profiles, and custom points.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Discloses that data is 'cached', implying potential staleness, which is useful. No annotations exist, so description carries full burden; however, it omits details like typical latency, data format, or whether this requires an active connection.

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?

Single, front-loaded sentence with zero waste. Efficiently communicates core functionality.

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?

Lists specific return categories (cached preset temperatures, hold times, heating profiles, custom points), which is adequate for a simple read tool with no output schema. Could mention data format or update frequency, but completeness is largely satisfied.

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?

No parameters in schema; schema_coverage is 100%. Baseline score with no parameters is 4, and description adds no extra param info, but none is needed.

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?

Description uses specific verb 'Return' and clearly identifies the resource as 'cached preset temperatures, hold times, heating profiles, and custom points', making purpose unambiguous and distinct from sibling setter tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_status or get_device_info for other data). No context on prerequisites or exclusions.

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

get_statusGet Switch 2 StatusB

Refresh and return current device status including battery, temperature, light mode, preset, and session state.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitMsNo

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. 'Refresh' suggests a non-idempotent action (e.g., cache invalidation or data fetch), but no details are given about side effects, safety, or prerequisites like device connection status.

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 a single sentence of 14 words, front-loading the key action 'Refresh and return' and listing output fields efficiently. Every word contributes meaning with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the tool returns (list of status fields), which partially compensates for lacking an output schema. However, it omits important context such as error handling, connection requirements, the effect of the 'waitMs' parameter, and rate limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the 'waitMs' parameter at all. The parameter's purpose (e.g., wait time before refresh? timeout?) is completely unexplained, leaving the agent with no semantic understanding.

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 tool refreshes and returns device status, listing specific fields (battery, temperature, light mode, preset, session state). This verb+resource combination is distinct from sibling tools like 'get_device_info' and 'set_*' tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With 21 sibling tools, explicit usage context would help the agent choose correctly. The description lacks any when-to-use or when-not-to-use information.

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

set_active_presetSet Active PresetB

Set the active vapor profile preset from 1 to 5.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description fails to disclose behavioral traits such as immediacy, required device connection, or side effects beyond stating the action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words, but could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter, the description covers the basic action but lacks behavioral context, making it minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description only repeats the schema's min/max range for the parameter, adding no additional meaning or context beyond what the schema already provides.

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 verb 'Set' and the resource 'active vapor profile preset' with the range 1-5, distinguishing it from sibling tools like get_presets and other set_* commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided; it does not specify when to use this tool vs alternatives, nor does it mention prerequisites or exclusions.

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

set_auto_shutoffSet Auto ShutoffA

Set the device idle auto-shutoff timer in minutes from 0 to 60. Use 0 to disable auto-shutoff.

ParametersJSON Schema
NameRequiredDescriptionDefault
minutesYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description provides useful behavioral details: the allowed range (0-60 minutes) and the special effect of 0 (disable). It does not cover any potential side effects or prerequisites, but for a simple setter it's adequate.

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?

Two short, direct sentences with no wasted words. The key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameter tool with no output schema and a single parameter, the description covers the purpose, parameter semantics, and special case (0 disables). No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'minutes' has 0% schema description coverage, but the description adds critical meaning: the units (minutes), allowed range (0-60), and the semantic of 0 (disable). This fully compensates for the missing schema descriptions.

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?

Description clearly states 'Set the device idle auto-shutoff timer' with specific verb-set and resource, and distinguishes from sibling set_* tools by naming the unique feature.

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?

No explicit when-to-use or alternatives provided; however, the purpose is self-contained and the sibling tools are distinct, so usage is implied.

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

set_device_nameSet Device NameA

Rename the Switch 2. Accepts 1 to 29 printable ASCII characters (0x20-0x7E).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It adds no side effects or operational context beyond the input constraints already present in the schema. Missing details like whether the device must be connected or if the change persists.

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 two short sentences with no extraneous information. The most important information (the action and key constraint) is front-loaded. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple rename tool with one parameter and no output schema, the description provides the essential constraint. However, it omits whether the device must be connected, what happens on success/failure, or any side effects, leaving some gaps for the agent.

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 mentions the allowed character set (printable ASCII) and length range, adding some human-readable meaning. However, schema coverage is nearly 100% already, so the added value is minimal. The description does not specify the parameter name, relying on context.

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 tool renames the Switch 2, which is a specific resource. This distinguishes it from sibling tools like set_auto_shutoff or set_light_brightness, all of which modify different aspects of the same device.

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 usage for renaming but provides no explicit guidance on when to use or avoid this tool. No alternatives or prerequisites are mentioned, but the purpose is straightforward enough that an agent can infer context from the tool name.

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

set_haptic_feedbackSet Haptic FeedbackC

Enable or disable haptic feedback.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits. It only states the action, omitting side effects, reversibility, or any impact on user experience.

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 a single, direct sentence with no unnecessary words. It perfectly achieves conciseness for its simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one boolean parameter, no output schema), the description is still minimal. It lacks context about what haptic feedback is or when to use it, which an agent might need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain the 'enabled' parameter beyond what the schema already provides. With 0% schema description coverage, it fails to add meaningful semantic context.

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 (enable or disable) and the resource (haptic feedback). It distinguishes this tool from its siblings, which manage other device settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives or what prerequisites are needed. The agent receives no context for decision-making.

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

set_heating_profileSet Heating ProfileC

Set preset heating profile. Values: 161 Steady, 177 Ascent, 193 Descent, 209 Valley, 225 Hill, 241 Custom.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYes
heatingProfileYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations exist, so the description must carry the burden. It only lists value-name mappings and does not disclose side effects, required permissions, or what happens on invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it lacks structure and does not front-load the most critical information (e.g., that it sets a profile and requires two params).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and 0% schema coverage, the description is severely incomplete. It does not explain return values, effects, or how the two parameters interact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, yet the description only adds meaning for the heatingProfile parameter by listing enum values with names. The preset parameter (integer 1-5) is not explained at all.

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?

The description clearly states the verb 'Set' and the resource 'preset heating profile', and lists the mapping from numeric values to named profiles. However, it does not differentiate from sibling tools like set_active_preset or set_preset_temperature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor are there any conditions or prerequisites mentioned.

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

set_light_brightnessSet Light BrightnessC

Set light brightness from 0 to 100.

ParametersJSON Schema
NameRequiredDescriptionDefault
brightnessYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only repeats the schema range. It omits crucial details like whether the light turns on, side effects, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the core purpose. However, it could be slightly improved by adding contextual information without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter tool with no output schema, the description provides only the bare minimum. It lacks information about return values, failure modes, or interaction with the device state, making it incomplete for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description should compensate, but it only restates the numeric range already in the schema. It does not clarify what 'brightness' means (e.g., percentage, lumens) or how it interacts with the light state.

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 resource (light brightness), and the allowed range (0 to 100), making the purpose unmistakable and distinguishing it from sibling tools like set_light_mode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., set_light_mode, set_active_preset), nor any context about prerequisites or expected outcomes.

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

set_light_modeSet Light ModeB

Set the active light mode from 0 to 17.

ParametersJSON Schema
NameRequiredDescriptionDefault
lightModeYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided. Description does not disclose side effects, permissions, or post-set behavior. Only mentions range, which is already in schema constraints.

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?

Single sentence, no unnecessary words. Front-loaded with action and resource, efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple setter with one parameter, but lacks behavioral context or return value description. Could benefit from noting immediate effect or persistence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%; description only repeats the integer range already defined by minimum/maximum in the schema, adding no new meaning beyond the constraints.

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?

Title and description clearly state the action ('Set') and resource ('light mode') with explicit range 'from 0 to 17'. Distinguishes from sibling like set_light_brightness.

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?

No explicit guidance on when to use this tool versus alternatives, but the purpose is straightforward and there are no overlapping siblings for light mode. Usage is implied by the tool name.

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

set_preset_hold_timeSet Preset Hold TimeC

Set a preset hold time in seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYes
holdTimeYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the action but doesn't mention side effects, authorization needs, reversibility, or that this is a mutation. Fails to compensate for lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise but under-specified. The single sentence lacks critical context, making it ineffective. It could be longer to include necessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool’s simplicity and absence of output schema or annotations, the description is incomplete. It doesn't explain the concept of presets or hold time, leaving the agent without sufficient context to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for 2 parameters. The description does not elaborate on what 'preset' or 'holdTime' mean, nor their allowed ranges or purpose. Fails to compensate for inadequate schema documentation.

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) and the resource (preset hold time), with specific units (seconds). It distinguishes this tool from siblings like set_preset_temperature and set_active_preset by focusing on hold time.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No prerequisites or when-not-to-use conditions. Usage is only implied by the verb 'set'.

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

set_preset_temperatureSet Preset TemperatureC

Set a preset temperature. Provide either tempF or tempC.

ParametersJSON Schema
NameRequiredDescriptionDefault
tempCNo
tempFNo
presetYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It mentions 'set' implying mutation, and the tempF/tempC mutual exclusivity, but omits details on whether the change is persistent, side effects (e.g., if the preset is active), or error conditions. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the core purpose. It is efficient, though the brevity sacrifices some necessary detail. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, output schema, and three parameters (one required), the description is too minimal. It does not explain return values, error behavior, or how the tool fits with siblings like 'set_active_preset' or 'get_presets'. More context is needed for effective use.

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?

Schema description coverage is 0%, so the description must compensate. It clarifies that tempF and tempC are optional and mutually exclusive ('either'), and implies that 'preset' selects a preset. However, it does not explain the numeric ranges or that the values are integers, which the schema already provides. It adds some value but could be more explicit.

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?

The description clearly states the verb 'set' and the resource 'preset temperature', and the mention of tempF/tempC distinguishes it from siblings like 'set_active_preset' or 'get_presets'. However, it does not explicitly state that the 'preset' parameter selects which preset (1-5) to target, which would add clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only says 'Provide either tempF or tempC', with no guidance on when to use this tool versus alternatives like 'set_active_preset' or 'set_temp_unit'. It lacks explicit context for usage exclusion or prerequisites.

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

set_temp_unitSet Temperature UnitC

Set displayed temperature unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
tempUnitYes

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states the action without any information about side effects, persistence, required permissions, or whether it is safe (non-destructive).

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 a single, efficient sentence with no extraneous words. Every part serves to communicate the purpose. It is appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter with enum), the description provides the basic purpose but lacks contextual details such as persistence, user scope, or confirmation of change. An agent may not know the implications of invoking this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 0%, but the description does not add meaning to the parameter beyond what the enum values ('F', 'C') implicitly convey. It does not explain that these stand for Fahrenheit and Celsius or that the change is local to the session or device.

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?

The description clearly states the action ('Set') and resource ('displayed temperature unit'). It is specific and distinguishes from sibling tools that modify other device settings, though it could be more explicit about the scope (e.g., affects display only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., other set_* tools). The description does not mention prerequisites, typical use cases, or exclusions.

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

start_cleaning_assistStart Cleaning AssistD

Start cleaning assist.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavior, but it offers none. It does not state if the tool is destructive, what state changes occur, or what side effects exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is too brief (3 words), providing no context; it is under-specified rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters or output schema, the description should clarify what 'cleaning assist' entails. The current text is too vague to be actionable.

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?

There are 0 parameters, so the description adds no parameter meaning beyond the schema. Per the guidelines, 0 parameters yields a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description simply restates the name ('Start cleaning assist.') without clarifying what 'cleaning assist' is, failing to differentiate from siblings like 'stop_cleaning_assist' or 'start_session'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., start_session) or any prerequisites.

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

start_sessionStart SessionC

Start the active heating session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states a state change ('start') but provides no details on side effects, whether the session can be restarted, or what happens if already running.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence with no redundancy. However, it lacks structure and does not earn its place fully due to missing helpful detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no parameters or output schema, the description is incomplete given the tool's role among many siblings. It does not explain what 'active' means or the session lifecycle.

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?

The input schema has no parameters, so schema description coverage is 100%. The description does not need to add parameter semantics, and the baseline of 4 is appropriate.

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?

The description clearly states the tool starts a heating session, using a specific verb and resource. However, it does not differentiate from siblings like 'extend_session' or 'stop_session', and the term 'active' is slightly ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., 'set_heating_profile' or 'extend_session'). The description does not specify prerequisites or context.

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

stop_cleaning_assistStop Cleaning AssistC

Stop cleaning assist.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits, but it fails to mention what happens when cleaning assist is stopped, whether it is safe, or any side effects. This is a critical gap for a control action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one sentence) but suffers from under-specification. It fails to earn its place by providing meaningful information beyond the tool name, violating the principle of appropriate size.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple stop action with no parameters and no output schema, the description could be minimally adequate, but it lacks context about prerequisites, state changes, or return behavior. The sibling tools hint at usage, but the description does not stand alone.

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?

The input schema has no parameters, and schema description coverage is 100%, making it trivially complete. The description adds no parameter info, but none is needed. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Stop cleaning assist' is a tautology that simply restates the tool name without defining what 'cleaning assist' is, leaving ambiguity about its purpose. It does not specify the resource or action clearly, and while the sibling 'start_cleaning_assist' provides context, the description alone is insufficient.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as the sibling 'start_cleaning_assist' or 'stop_session'. The description lacks explicit context, prerequisites, or exclusions, forcing the agent to infer usage from the tool name.

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

stop_sessionStop SessionA

Stop the active heating session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond the obvious. It does not mention side effects, safety, or state changes.

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?

One sentence, no wasted words. Highly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a simple tool with no parameters or output schema, but lacks context about when it is valid to call (e.g., only when a session is active).

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?

The tool has zero parameters, so schema coverage is 100%. The description adds no extra parameter semantics, but with no params, the baseline is 4.

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 title and description clearly state the action (stop) and resource (active heating session). Among siblings like start_session and extend_session, it is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., extend_session). No prerequisites or conditions (e.g., must have an active session) are mentioned.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 21 tool updatesv0.1.0
    • First observedconnect_switch2
    • First observeddisconnect_switch2
    • First observeddiscover_switch2
    • First observedextend_session
    • First observedget_device_info
    • First observedget_presets
    • First observedget_status
    • First observedset_active_preset
    • First observedset_auto_shutoff
    • First observedset_device_name
    • First observedset_haptic_feedback
    • First observedset_heating_profile
    • First observedset_light_brightness
    • First observedset_light_mode
    • First observedset_preset_hold_time
    • First observedset_preset_temperature
    • First observedset_temp_unit
    • First observedstart_cleaning_assist
    • First observedstart_session
    • First observedstop_cleaning_assist
    • First observedstop_session

TDQS

B3.1/5.0
Disambiguation4/5

Most tools have clearly distinct purposes. However, set_active_preset, set_heating_profile, set_preset_hold_time, and set_preset_temperature all modify presets, potentially causing confusion about which preset is being affected and whether heating profile applies to active or specific preset.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., connect_switch2, get_device_info, set_light_mode). Naming is uniform and predictable across the entire set.

Tool Count4/5

With 21 tools, the count is slightly above the typical 3-15 range, but each tool corresponds to a distinct device feature or operation, so it is reasonable for a feature-rich device controller.

Completeness4/5

The tool surface covers connection, presets, sessions, lighting, cleaning, and various settings. Minor gaps like a factory reset or firmware update might exist, but the set is largely comprehensive for day-to-day device control.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nidamen/drdabber-switch2-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server