Dr. Dabber Switch 2 MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Dr. Dabber Switch 2 MCPDiscover nearby Switch 2 devices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpOption B: local clone
git clone https://github.com/nidamen/drdabber-switch2-mcp.git
cd drdabber-switch2-mcp
npm install
npm run buildNode 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 |
| No | BLE id or exact advertised name to prefer during scan. Omit to connect to the first Switch 2 found. |
| No | Base URL of the Pi web control (e.g. |
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 |
| Scan for nearby Switch 2 devices advertising the |
| Array of |
| Connect to the Switch 2 and read device information |
|
|
| Disconnect from the current Switch 2 | none |
|
Device state
Tool | Purpose | Parameters | Returns |
| Return cached model, serial, firmware, and manufacturer info | none |
|
| Sync clock, request analytics, and return decoded device status |
| Full |
| Return cached presets for all 5 vapor profiles | none | Array of |
Preset configuration
Tool | Purpose | Parameters | Returns |
| Switch the active vapor profile |
|
|
| Set a preset's target temperature |
| Updated |
| Set a preset's hold time |
| Updated |
| Set a preset's heating curve |
| Updated |
Session control
Tool | Purpose | Parameters | Returns |
| Start the active heating session | none |
|
| Stop the active heating session | none |
|
| Set the session extension value |
|
|
Device settings
Tool | Purpose | Parameters | Returns |
| Set the LED pattern |
|
|
| Set LED brightness |
|
|
| Set displayed temperature unit |
|
|
| Enable or disable haptic feedback |
|
|
| Set idle auto-shutoff timer. Use 0 to disable. |
|
|
| Rename the Switch 2 (persisted on device) |
|
|
Cleaning
Tool | Purpose | Parameters | Returns |
| Start the cleaning assist cycle | none |
|
| Stop the cleaning assist cycle | none |
|
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_switch2thenget_statusand reports back.
Change light and set temperature:
"Set preset 3 to 480F and switch the light to Purple Haze." The LLM calls
set_preset_temperaturewith{ preset: 3, tempF: 480 }andset_light_modewith{ lightMode: 11 }.
Automated session:
"Start a session on preset 2, then stop it after I say done." The LLM calls
set_active_presetwith{ preset: 2 }, thenstart_session, and waits for the next instruction to callstop_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:mockBLE protocol notes
Primary control surface:
Purpose | UUID |
Demo service |
|
Write characteristic |
|
Notify characteristic |
|
Device information service |
|
Intentionally excluded UUIDs:
Purpose | UUID |
OTA service |
|
OTA write |
|
OTA notify |
|
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 |
|
Advertised service |
|
Model |
|
Serial |
|
Hardware |
|
Firmware |
|
Manufacturer |
|
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 statusLicense
MIT
Available Tools
21 toolsconnect_switch2Connect Dr Dabber Switch 2C
Connect to a Switch 2 and read device information.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Optional BLE id or exact advertised name, for example 'My Switch 2'. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| timeoutMs | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| minutes | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| waitMs | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| minutes | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | ||
| heatingProfile | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| brightness | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lightMode | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | ||
| holdTime | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tempC | No | ||
| tempF | No | ||
| preset | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tempUnit | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
21 tool updates
v0.1.0- First observed
connect_switch2 - First observed
disconnect_switch2 - First observed
discover_switch2 - First observed
extend_session - First observed
get_device_info - First observed
get_presets - First observed
get_status - First observed
set_active_preset - First observed
set_auto_shutoff - First observed
set_device_name - First observed
set_haptic_feedback - First observed
set_heating_profile - First observed
set_light_brightness - First observed
set_light_mode - First observed
set_preset_hold_time - First observed
set_preset_temperature - First observed
set_temp_unit - First observed
start_cleaning_assist - First observed
start_session - First observed
stop_cleaning_assist - First observed
stop_session
TDQS
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.
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.
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.
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
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
MCP server for Klever blockchain smart contract development.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseBqualityDmaintenanceAn educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server for integrating with various LLM clients like Claude Desktop.1163MIT
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol (MCP) server for the Discord integration with MCP-compatible applications like Claude Desktop.476MIT
- AlicenseBqualityDmaintenanceAn educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server integrating with various LLM clients.2MIT
- AlicenseNot gradedqualityDmaintenanceAn implementation of the Model Context Protocol (MCP) server that enables multiple clients to connect simultaneously and handles basic context management and messaging with an extendable architecture.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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