Skip to main content
Glama
danjam

MCP Govee

by danjam

MCP Govee

An MCP server that lets AI assistants control your Govee smart devices. Turn lights on and off, change colors, adjust brightness, activate scenes, and more — all through natural conversation.

Works with Claude Desktop, Claude Code, or any MCP-compatible client.


Use Cases

  • Ask your AI to set the mood with natural language — "make it feel cozy" or "I need bright light to focus"

  • Coordinate multiple devices with a single request — "turn everything off except the hallway"

  • Let your AI manage lighting as part of a larger workflow — "I'm starting a meeting, dim the office lights"

  • Use natural language to find and activate scenes without scrolling through the app

  • Have your AI check device states and troubleshoot connectivity across backends


Related MCP server: Home Assistant MCP Server

Setup

Requires Node.js 18+.

1. Get a Govee API Key

Open the Govee Home app on your phone and go to Settings → About Us → Apply for API Key. You'll receive your key by email.

2. Configure Your MCP Client

Add the server to your MCP client's configuration. There are two ways to do this:

Option A: Run directly from GitHub (no install needed)

{
  "mcpServers": {
    "govee": {
      "command": "npx",
      "args": ["-y", "github:danjam/mcp-govee"],
      "env": {
        "GOVEE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Option B: Clone and run locally

git clone https://github.com/danjam/mcp-govee.git
cd mcp-govee
npm install

Then point your MCP client at the local build:

{
  "mcpServers": {
    "govee": {
      "command": "node",
      "args": ["/path/to/mcp-govee/dist/index.js"],
      "env": {
        "GOVEE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Replace /path/to/mcp-govee with the actual path where you cloned the project.


Backends

The server supports three different ways to communicate with your Govee devices. By default it uses v1, which works for most people out of the box.

Backend

How it connects

Scenes support

Notes

v1 (default)

Govee cloud API

No

Simplest setup, works with all Govee devices

v2

Govee cloud API (newer)

Yes

Required for scenes; supports the same devices as v1. Much stricter rate limit (see below)

lan

Local network (UDP)

No

Fastest, no internet needed, no rate limits, but only works with LAN-capable devices on the same network. You must enable LAN control per device in the Govee Home app (device settings → LAN Control)

WARNING

v2 has a much stricter rate limit. The v1 API allows 100 requests per minute, but the v2 API only allows 10 requests per minute — that's one request every 6 seconds. We recommend leaving v1 as the default and only using v2 when you need scene features.

To change the default backend, add GOVEE_API_BACKEND to your config:

{
  "mcpServers": {
    "govee": {
      "command": "npx",
      "args": ["-y", "github:danjam/mcp-govee"],
      "env": {
        "GOVEE_API_KEY": "your-api-key-here",
        "GOVEE_API_BACKEND": "v2"
      }
    }
  }
}

To enable the LAN backend, also set GOVEE_LAN_ENABLED:

"env": {
  "GOVEE_API_KEY": "your-api-key-here",
  "GOVEE_LAN_ENABLED": "true"
}

You can also override the backend on a per-command basis — every tool accepts an optional backend parameter (v1, v2, or lan). This lets you use v1 as your default while still accessing v2-only features like scenes when you need them. You don't need to set v2 as your default to use scenes — the server will automatically route scene commands to v2.


What You Can Do

List Devices

See all the Govee devices on your account, including their IDs, models, and what commands they support. This is the starting point — you'll need a device's ID and model for all other commands. Only devices added to your Govee Home app will appear, and not all devices support every command.

Tool: list_devices

Parameter

Type

Required

Description

backend

string

No

Override the default backend (v1, v2, or lan)

Get Device State

Check the current state of a device: whether it's on or off, the brightness level, and the current color.

Tool: get_device_state

Parameter

Type

Required

Description

device_id

string

Yes

The device ID (from list devices)

model

string

Yes

The device model (from list devices)

backend

string

No

Override the default backend

Set Power

Turn a device on or off.

Tool: set_power

Parameter

Type

Required

Description

device_id

string

Yes

The device ID

model

string

Yes

The device model

state

string

Yes

on or off

backend

string

No

Override the default backend

Set Brightness

Adjust a device's brightness level.

Tool: set_brightness

Parameter

Type

Required

Description

device_id

string

Yes

The device ID

model

string

Yes

The device model

brightness

integer

Yes

Brightness level (0-100)

backend

string

No

Override the default backend

Set Color

Set a device to a specific color using RGB values.

Tool: set_color

Parameter

Type

Required

Description

device_id

string

Yes

The device ID

model

string

Yes

The device model

r

integer

Yes

Red (0-255)

g

integer

Yes

Green (0-255)

b

integer

Yes

Blue (0-255)

backend

string

No

Override the default backend

Set Color Temperature

Set a device to a warm or cool white using color temperature.

Tool: set_color_temperature

Parameter

Type

Required

Description

device_id

string

Yes

The device ID

model

string

Yes

The device model

temperature

integer

Yes

Color temperature in Kelvin (2000-9000)

backend

string

No

Override the default backend

List Scenes

List the built-in light scenes available for a device (e.g. "Rainbow", "Candlelight", "Ocean"). Use this to see what scene names you can activate. Requires the v2 backend.

Tool: list_scenes

Parameter

Type

Required

Description

device_id

string

Yes

The device ID

model

string

Yes

The device model

List DIY Scenes

List the custom scenes you've created in the Govee Home app. Requires the v2 backend.

Tool: list_diy_scenes

Parameter

Type

Required

Description

device_id

string

Yes

The device ID

model

string

Yes

The device model

Activate Scene

Activate a built-in or DIY scene by name. Use list scenes or list DIY scenes first to see available names. Requires the v2 backend.

Tool: activate_scene

Parameter

Type

Required

Description

device_id

string

Yes

The device ID

model

string

Yes

The device model

scene_name

string

Yes

The name of the scene to activate (exact match from the list)

scene_type

string

Yes

light for built-in scenes, diy for your custom scenes


License

MIT

Available Tools

9 tools
activate_sceneB

Activate a built-in or DIY scene by name (v2 backend only)

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesThe device model
device_idYesThe device MAC address / ID
scene_nameYesThe name of the scene to activate
scene_typeYesScene type: 'light' for built-in scenes, 'diy' for user-created scenes

TDQS

B3.3/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 carry the full burden of behavioral disclosure. It only mentions the backend version constraint and the action of activation, without side effects, auth requirements, or error conditions.

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 directly states the tool's purpose. It is concise but could benefit from additional context 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?

Given the 4 required parameters and sibling tools for listing scenes, the description lacks information about return values, error handling, and behavior when the scene does not exist or backend is unavailable.

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 coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond what is in the schema, such as format or 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?

The description clearly states the tool activates a scene, specifies it can be built-in or DIY, and notes the v2 backend constraint. It differentiates from sibling tools like list_scenes and set_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?

The description does not explicitly state when to use this tool versus alternatives. Usage is implied by the action of activating a scene, but no guidance on prerequisites or when not to use.

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

get_device_stateA

Get the current state of a Govee device (power, brightness, color)

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesThe device model (from list_devices)
backendNoAPI backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default.
device_idYesThe device MAC address / ID (from list_devices)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description carries full responsibility. It only states it gets state but does not disclose safety (non-destructive), authentication needs, rate limits, or any side effects. 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.

Conciseness5/5

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

Single sentence, 10 words, efficiently conveys the tool's purpose and what state fields are retrieved. No wasted content.

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 3 parameters all documented in schema and no output schema, the description is adequate but incomplete. It does not describe the return format or confirm the response includes the mentioned fields, leaving some gaps for an 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?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the input schema already provides for device_id and model.

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 it retrieves state (power, brightness, color) from a Govee device. It uses a specific verb 'Get' and resource 'device state', directly distinguishing it from siblings like set_brightness and list_devices.

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 it is for reading state, and siblings are for writing, but lacks explicit when-to-use or when-not-to-use guidance. No alternatives or exclusions are mentioned.

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

list_devicesA

List all Govee devices on your account

ParametersJSON Schema
NameRequiredDescriptionDefault
backendNoAPI backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. While it is obvious that listing devices is a read-only operation with no destructive side effects, the description does not disclose any additional behaviors such as pagination, ordering, or potential delays. This is adequate but minimal.

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

Conciseness5/5

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

The description is extremely concise: a single sentence that efficiently communicates the tool's purpose with no extraneous words. It is well-structured and front-loaded.

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

Completeness4/5

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

Given the simplicity of the tool (one optional parameter, no output schema, no nested objects), the description is nearly complete. It could mention the return format or behavior if no devices exist, but it is sufficient for an agent to understand the tool's role.

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 coverage is 100%, so the baseline is 3. The description does not add any meaning beyond what the schema provides for the single optional parameter (backend). The schema already describes the enum values and purpose, so no further clarification is necessary.

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 ('List'), the resource ('all Govee devices'), and the scope ('on your account'), making its purpose unambiguous. It is distinct from sibling tools that focus on scenes, states, or setting operations.

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 the tool should be used to list all devices, but it offers no explicit guidance on when to use it over alternatives like get_device_state (which gets state for a specific device) or any exclusions. The context is clear given the sibling tools, but better guidance would improve selection.

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

list_diy_scenesB

List user-created DIY scenes for a device (v2 backend only)

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesThe device model
device_idYesThe device MAC address / ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It only mentions listing and a backend constraint, omitting potential side effects, auth needs, or response format.

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 that is front-loaded with key information. No superfluous words, earning a top score for conciseness.

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 list tool with no output schema, the description is minimal. It does not explain return values, pagination, or how it differs from sibling tools, leaving gaps in completeness.

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 coverage is 100% with descriptions for both parameters. The description adds no extra meaning beyond what the schema provides, warranting the baseline score of 3.

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 'List' and the resource 'user-created DIY scenes for a device', distinguishing it from 'list_scenes' by specifying 'DIY' and adding a backend constraint '(v2 backend 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 on when to use this tool versus alternatives like 'list_scenes'. The description implies usage for DIY scenes but lacks explicit context or exclusions.

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

list_scenesA

List built-in dynamic light scenes available for a device (v2 backend only)

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesThe device model
device_idYesThe device MAC address / ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It adds the v2 backend constraint but does not disclose read-only nature, error behavior, or authentication needs. Minimal behavioral context beyond the core action.

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?

A single concise sentence that efficiently communicates the tool's purpose and a critical constraint (v2 backend only). No wasted words.

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

Completeness4/5

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

For a simple list tool with two parameters and no output schema, the description covers the core function and a key constraint. It could mention the output format (e.g., scene IDs or names) for completeness, but overall is adequate.

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 coverage is 100% with clear parameter descriptions. The description adds context about the type of scenes (built-in, dynamic) but does not provide new meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb (List), resource (built-in dynamic light scenes), and context (available for a device, v2 backend only). It distinguishes from sibling tools like list_diy_scenes and activate_scene.

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 mentions the v2 backend constraint but does not provide explicit guidance on when to use this tool versus alternatives. Usage context is implied but not spelled out.

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

set_brightnessA

Set the brightness of a Govee device (0-100)

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesThe device model
backendNoAPI backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default.
device_idYesThe device MAC address / ID
brightnessYesBrightness level (0-100)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It states the basic operation (set brightness) but does not mention whether the device must be on, if the change is instantaneous, or if there are any side effects. It is adequate for a simple mutation but lacks depth.

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 with no unnecessary words. It is front-loaded with the purpose and is highly efficient.

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?

The tool is simple with a single integer parameter and no output schema. The description captures the core functionality. However, it omits any mention of error conditions or prerequisites (e.g., device must be powered on). Still, it is mostly complete for the tool's simplicity.

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 input schema has 100% description coverage, so the schema already explains all parameters. The description adds the brightness range (0-100), but this is already captured by the schema's min/max constraints. Thus, it adds minimal value beyond the schema.

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

Purpose5/5

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

The description clearly states the action (set) and the target (brightness of a Govee device), and includes the valid range (0-100). It effectively distinguishes this tool from sibling tools like set_color or set_power.

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 provides no guidance on when to use this tool versus alternatives, such as when to prefer set_brightness over set_color or set_power. There is no mention of 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_colorB

Set the color of a Govee device using RGB values

ParametersJSON Schema
NameRequiredDescriptionDefault
bYesBlue value (0-255)
gYesGreen value (0-255)
rYesRed value (0-255)
modelYesThe device model
backendNoAPI backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default.
device_idYesThe device MAC address / ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only states 'set' without clarifying side effects, permissions, or requirements (e.g., device must be on). Minimal disclosure.

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 fluff. All necessary information is front-loaded.

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?

With 6 parameters, no output schema, and no explanation of return values or error handling, the description is incomplete. Could inform about success/failure behavior or prerequisites.

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 100%, so baseline is 3. Description adds 'RGB values' but that is already implicit in schema parameter descriptions. No extra meaning beyond schema.

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

Purpose5/5

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

Clear verb ('set'), specific resource ('color of Govee device'), and method ('using RGB values'). Distinguishes from siblings like set_brightness and set_color_temperature.

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?

Implies use for precise color setting via RGB, but no explicit guidance on when to use vs alternatives like set_color_temperature. Lacks exclusionary criteria.

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

set_color_temperatureB

Set the color temperature of a Govee device in Kelvin (2000-9000)

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesThe device model
backendNoAPI backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default.
device_idYesThe device MAC address / ID
temperatureYesColor temperature in Kelvin (2000-9000)

TDQS

B3.4/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 but fails to disclose behavioral traits beyond setting temperature. No mention of side effects, prerequisites, 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?

Single sentence, 12 words, front-loaded with verb and object. No redundancy, 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?

Tool is simple but no output schema, no behavioral notes, and no error handling information. Lacks response details and boundary conditions.

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 100%, so parameters are fully described there. Description only reiterates the Kelvin range already in schema, adding no new meaning.

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 the action ('Set'), resource ('color temperature'), and constraint ('in Kelvin (2000-9000)'), distinguishing it from sibling tools like set_color, set_brightness, and set_power.

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?

Description implies use for color temperature but provides no explicit guidance on when to use vs alternatives (e.g., set_color for RGB). No exclusion criteria or context provided.

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

set_powerB

Turn a Govee device on or off

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesThe device model
stateYesPower state: 'on' or 'off'
backendNoAPI backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default.
device_idYesThe device MAC address / ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the basic action without disclosing side effects (e.g., what happens if device is offline), rate limits, or the meaning of the backend parameter. More transparency about behavior is needed for a mutating tool.

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 very concise (6 words) but lacks structure. It is front-loaded with the action, which is good, but the brevity omits important context. It could be longer if it included essential details like backend selection guidance.

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 4 parameters (including a backend choice with no explanation), no output schema, and no annotations, the description is incomplete. An agent would benefit from details on how to choose the backend, what the response indicates, and error handling.

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 coverage is 100%, with each parameter having a description. However, the tool description adds no additional meaning beyond the schema. A baseline score of 3 is appropriate as the schema already provides parameter details.

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 specific action ('Turn a Govee device on or off') with a clear verb ('Turn') and resource ('Govee device'). It effectively distinguishes from sibling tools like set_brightness, set_color, etc., which handle different device aspects.

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 offers no explicit guidance on when to use this tool versus alternatives. However, the function is self-evident given sibling tool names, implying usage when toggling power is needed. A note about prerequisites (e.g., device must be discovered) or when not to use would improve clarity.

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.

  1. 9 tool updatesv1.0.0
    • First observedactivate_scene
    • First observedget_device_state
    • First observedlist_devices
    • First observedlist_diy_scenes
    • First observedlist_scenes
    • First observedset_brightness
    • First observedset_color
    • First observedset_color_temperature
    • First observedset_power

TDQS

A3.8/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose. The scene-related tools differentiate built-in from DIY scenes, and all control tools target different attributes (power, brightness, color, color temperature). No significant overlap.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., set_brightness, list_devices). The naming is predictable and clear, with no mixing of conventions.

Tool Count5/5

9 tools is well-scoped for a smart light controller. Each tool earns its place covering device discovery, state retrieval, power control, color adjustments, and scene management. Not too many or too few.

Completeness4/5

The tool set covers core operations: listing devices, getting state, setting power, brightness, color (RGB and temperature), and scenes. Missing features like device renaming or setting effects are minor and not essential for typical use.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers