MCP Govee
Click on "Deploy 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., "@MCP Goveeset the living room lights to warm white at 70% brightness"
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.
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 installThen 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) |
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 |
| string | No | Override the default backend ( |
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 |
| string | Yes | The device ID (from list devices) |
| string | Yes | The device model (from list devices) |
| string | No | Override the default backend |
Set Power
Turn a device on or off.
Tool: set_power
Parameter | Type | Required | Description |
| string | Yes | The device ID |
| string | Yes | The device model |
| string | Yes |
|
| string | No | Override the default backend |
Set Brightness
Adjust a device's brightness level.
Tool: set_brightness
Parameter | Type | Required | Description |
| string | Yes | The device ID |
| string | Yes | The device model |
| integer | Yes | Brightness level (0-100) |
| 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 |
| string | Yes | The device ID |
| string | Yes | The device model |
| integer | Yes | Red (0-255) |
| integer | Yes | Green (0-255) |
| integer | Yes | Blue (0-255) |
| 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 |
| string | Yes | The device ID |
| string | Yes | The device model |
| integer | Yes | Color temperature in Kelvin (2000-9000) |
| 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 |
| string | Yes | The device ID |
| 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 |
| string | Yes | The device ID |
| 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 |
| string | Yes | The device ID |
| string | Yes | The device model |
| string | Yes | The name of the scene to activate (exact match from the list) |
| string | Yes |
|
License
Available Tools
9 toolsactivate_sceneB
Activate a built-in or DIY scene by name (v2 backend only)
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | The device model | |
| device_id | Yes | The device MAC address / ID | |
| scene_name | Yes | The name of the scene to activate | |
| scene_type | Yes | Scene type: 'light' for built-in scenes, 'diy' for user-created scenes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | The device model (from list_devices) | |
| backend | No | API backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default. | |
| device_id | Yes | The device MAC address / ID (from list_devices) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| backend | No | API backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default. |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | The device model | |
| device_id | Yes | The device MAC address / ID |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | The device model | |
| device_id | Yes | The device MAC address / ID |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | The device model | |
| backend | No | API backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default. | |
| device_id | Yes | The device MAC address / ID | |
| brightness | Yes | Brightness level (0-100) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| b | Yes | Blue value (0-255) | |
| g | Yes | Green value (0-255) | |
| r | Yes | Red value (0-255) | |
| model | Yes | The device model | |
| backend | No | API backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default. | |
| device_id | Yes | The device MAC address / ID |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | The device model | |
| backend | No | API backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default. | |
| device_id | Yes | The device MAC address / ID | |
| temperature | Yes | Color temperature in Kelvin (2000-9000) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | The device model | |
| state | Yes | Power state: 'on' or 'off' | |
| backend | No | API backend to use: 'v1' (default), 'v2', or 'lan'. Omit to use the server default. | |
| device_id | Yes | The device MAC address / ID |
TDQS
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.
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.
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.
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.
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.
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.
9 tool updates
v1.0.0- First observed
activate_scene - First observed
get_device_state - First observed
list_devices - First observed
list_diy_scenes - First observed
list_scenes - First observed
set_brightness - First observed
set_color - First observed
set_color_temperature - First observed
set_power
TDQS
Scored across 9 tools
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.
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.
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.
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
Related MCP Connectors
- mytesla.ioOAuthio.mytesla
Control your Tesla from your AI assistant - climate, charging, access, and security.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Manage digital signage screens, playlists and media from your AI assistant.
Control Android TV from any AI. 38 MCP tools: playback, recap, recommend, smart-home, schedules.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Philips Hue smart lighting systems, including individual lights, groups, scenes, brightness, and color adjustments through natural language commands.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Home Assistant smart home devices through natural language. Control devices, manage automations, query entity states, and retrieve historical data across your home automation system.1MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to control a local LedFX instance through natural language, allowing management of LED devices, virtuals, effects, scenes, palettes, and playlists.834MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to control Tuya/Smart Life smart home devices via tools like on/off, brightness, color, and custom commands.101MIT