openwebnet-mcp
Provides tools for configuring and troubleshooting Home Assistant MyHOME platforms, including generating Home Assistant configuration YAML for MyHOME entities and automations controlled via OpenWebNet devices.
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., "@openwebnet-mcpDecode this OpenWebNet frame: #12*15##"
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.
OpenWebNet-MCP Server
Developer MCP Tool for OpenWebNet Protocol Validation, WHO Specifications, and Home Assistant Integration Knowledge. Deterministic syntax checking, formal WHO catalog reference, and AST signature introspection for AI coding assistants.
openwebnet-mcp is an offline, read-only Model Context Protocol (MCP) server built with Python 3.11+ using the FastMCP framework. It provides AI coding assistants (Claude Desktop, Cursor, VS Code, Antigravity) with fast semantic lookups, deterministic frame grammar validation, and reference documentation for OpenWebNet WHO families and Home Assistant myhome configuration patterns.
๐ Quick Start
1. Add to your MCP Client Configuration
Claude Desktop / Cursor / VS Code (mcp.json):
{
"mcpServers": {
"openwebnet-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/OpenWebNet-HA/openwebnet-mcp.git", "openwebnet-mcp"]
}
}
}Local Development Run:
{
"mcpServers": {
"openwebnet-mcp": {
"command": "python",
"args": ["-m", "openwebnet_mcp.server"],
"cwd": "/path/to/openwebnet-mcp"
}
}
}Related MCP server: websearch-mcp
๐ค Agentic Interaction Examples
Once connected, your AI coding assistant can browse documentation, interpret frames, and generate verified code autonomously.
Example 1: Decode a Bus Monitor Frame
User Prompt:
"I saw this frame on my SCS bus trace:
*#4*1*#14*0215*1##. What does it mean and which hardware is involved?"
AI Agent Action:
Calls
parse_and_validate_frame("*#4*1*#14*0215*1##").Resolves WHO=4 (Heating/Thermoregulation), Dimension 14 (Target Temperature & Mode), Zone 1, Target 21.5ยฐC, Mode 1 (Heating).
Returns human-readable breakdown and lists compatible thermostat units (3550, L4691).
Example 2: Configure CEN+ Scenario Pushbuttons
User Prompt:
"How do I configure my BTicino 3477 CEN+ interface to toggle a light when button 2 is pressed, and what OpenWebNet frames are sent?"
AI Agent Action:
Calls
get_ha_guide("cen_scenarios")to review the CEN vs CEN+ specifications and Home Assistant blueprint.Calls
draft_own_frame(who=25, command_type="command", where="11", what="21#2")to show the short-press pulse frame*25*21#2*11##.Calls
draft_ha_config(platform="light", ...)to draft the complete automation YAML.
Example 3: Solve Light Transition Inconsistencies
User Prompt:
"My dimmable lights jump instantly to brightness instead of ramping smoothly when I pass
transition: 5. Why?"
AI Agent Action:
Calls
search_documentation("transition stepped dimming").Reads the technical design document explaining hardware ramp limitations in older F411/F418 actuators vs software-emulated stepped dimming.
Suggests the proper configuration and command sequence.
๐ ๏ธ Tools & Resources Reference
MCP Tools (10)
Tool | Description |
| Ranked keyword and fuzzy search across all protocol specs, guides, and design docs. |
| Retrieve full technical specification, WHAT commands, and DIMENSIONS for a WHO family. |
| Summary inventory table of all 20+ OpenWebNet WHO families with archive status. |
| Full markdown guide for configuring and troubleshooting Home Assistant MyHOME platforms. |
| Grammar, regex templates, and parameter formats for OpenWebNet message types. |
| Deep syntax and semantic validation of any raw OpenWebNet frame string. |
| Construct and validate a syntactically correct OpenWebNet frame string. |
| Generate production-ready Home Assistant configuration YAML for MyHOME entities. |
| Inspect Python AST signatures and docstrings from |
| Flush caches and reload all OpenWebNet specifications, documents, and AST models. |
MCP Resources (4)
URI | Description |
| Read-only catalog of all OpenWebNet WHO families. |
| Read-only formal OpenWebNet grammar, regex patterns, and session specs. |
| Master Table of Contents for all indexed OpenWebNet & MyHOME documentation. |
| Read-only full text of a specific documentation guide. |
MCP Prompts (1)
Prompt / Slash Command | Description |
| Injects authoritative OpenWebNet protocol architecture, WHO subsystem mappings, frame delimiters, and modern Home Assistant |
Using /boost in MCP Clients
In Claude Desktop, Cursor, or Antigravity, trigger the prompt by typing /boost or selecting it from the prompt menu:
/boost topic: lightingThe server primes the LLM with strict frame grammar rules, hardware capabilities, and modern Home Assistant configuration standards, eliminating hallucinated syntax.
๐ Master WHO Family Inventory
WHO | Subsystem | Official Title | Status | HA Platform |
0 | Scenarios (Basic) |
| ๐ข Archived |
|
1 | Lighting |
| ๐ข Archived |
|
2 | Automation (Covers) |
| ๐ข Archived |
|
3 | Load Control |
| ๐ก Legacy |
|
4 | Thermoregulation |
| ๐ข Archived |
|
5 | Burglar Alarm |
| ๐ข Archived |
|
6 | Door Entry Call & Lock |
| ๐ก Legacy |
|
7 | Video Door Entry |
| ๐ข Archived |
|
9 | Auxiliary |
| ๐ก Legacy |
|
13 | Gateway Management |
| ๐ข Archived | Diagnostics |
14 | Actuators & Lock | (Reverse-Engineered) | ๐ข Documented | Diagnostics, |
15 | CEN Pushbuttons |
| ๐ข Archived |
|
16 | Sound System |
| ๐ข Archived |
|
17 | MH200N Scenarios |
| ๐ข Archived |
|
18 | Energy Management |
| ๐ข Archived |
|
22 | Sound Diffusion (Ext) |
| ๐ข Archived |
|
24 | Lighting / DALI |
| ๐ข Archived |
|
25 | CEN+ / Dry Contacts |
| ๐ข Archived |
|
1001 | Bus Diagnostics |
| ๐ข Archived | Diagnostics |
1004 | Heating Diagnostics |
| ๐ข Archived | Diagnostics |
1013 | Gateway Diagnostics |
| ๐ข Archived | Diagnostics |
๐งช Testing
Run unit tests and verify coverage with pytest:
pip install -e ".[dev]"
pytest --cov=src/openwebnet_mcp --cov-report=term-missing๐ License
MIT License. Copyright (c) 2026 OpenWebNet-HA Community.
Available Tools
10 toolsdraft_ha_configDraft Ha ConfigA
Generate production-ready Home Assistant YAML configuration for any MyHOME entity.
| Name | Required | Description | Default |
|---|---|---|---|
| mac | No | Physical gateway MAC address (mandatory in modern MyHOME integration). | 00:03:50:xx:xx:xx |
| who | No | Subsystem WHO code for binary sensors (default '25' for dry contacts, '1' for motion, '9' for aux) (platform=binary_sensor). | 25 |
| name | Yes | Friendly name for the entity (e.g. 'Living Room Dimmer', 'Garage Door Contact'). | |
| where | Yes | OpenWebNet bus address (e.g. '12', '21#4#1', '31'). | |
| dimmable | No | True if light is dimmable (platform=light). | |
| platform | Yes | Platform type ('light', 'cover', 'climate', 'sensor', 'binary_sensor', 'switch', 'media_player'). | |
| run_time | No | Full travel runtime in seconds (platform=cover). | |
| gateway_id | No | Gateway identifier for /config/myhome.yaml (e.g. 'f454', 'mh202'). | f454 |
| transition | No | Default transition speed 1-10 (platform=light). | |
| sensor_type | No | Type of sensor measurement ('power', 'energy', 'temperature') (platform=sensor). | power |
| cool_support | No | Enable cooling capability (platform=climate). | |
| device_class | No | Binary sensor device class ('opening', 'motion', 'garage_door', 'door', 'window') (platform=binary_sensor). | opening |
| heat_support | No | Enable heating capability (platform=climate). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is minimal and does not disclose any behavioral traits beyond what the schema provides. With no annotations provided, the description carries the full burden. It doesn't mention whether the generation is one-shot, whether it validates inputs, what happens if the platform doesn't match parameters (e.g., providing 'dimmable' with platform=cover - probably ignored), or whether it overrides existing configs. The schema has rich default values and parameter descriptions, but the overall behavior of the tool (e.g., whether it returns errors on invalid combinations) is not disclosed.
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, concise and to the point. It front-loads the purpose with 'Generate' and specifies the output type. It doesn't waste any words. However, it could expand slightly on usage without becoming bloated, but for a tool description that relies on schema, this is 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?
Given the tool's complexity (13 parameters, 7 platform types) and the rich schema with per-parameter descriptions and defaults, the description is adequate for an agent to understand the tool's scope. The output schema likely details the generated YAML structure, so the description doesn't need to explain return values. The main gap is usage guidance, but with the schema's parameter descriptions, an agent can infer how to use it.
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 description coverage is 100%, meaning each parameter has a description in the schema. The tool description adds no additional meaning beyond the schema. For example, the description doesn't explain the relationship between 'who' and 'platform' beyond what's in the schema. Given the high coverage, a baseline of 3 is appropriate; the description does not add extra semantic value.
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's purpose: 'Generate production-ready Home Assistant YAML configuration for any MyHOME entity.' It specifies the exact resource (Home Assistant YAML configuration) and the domain (MyHOME entities). It also suggests the output is ready-to-use, which is helpful for the agent. It doesn't explicitly name a sibling tool to differentiate from, but given the sibling list contains related tools like 'draft_own_frame' and 'get_ha_guide', the purpose is specific enough that an agent won't confuse it with the others.
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: when you need a Home Assistant YAML config for a MyHOME entity. It does not explicitly state when not to use it or mention alternative tools like 'lookup_frame_syntax' or 'get_ha_guide'. The context suggests it could be used alongside 'get_ha_guide' for guidance, but this is not explicitly stated. The tool is self-described as the way to generate configs, but no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_own_frameDraft Own FrameC
Construct and validate a syntactically correct OpenWebNet frame.
| Name | Required | Description | Default |
|---|---|---|---|
| who | Yes | Subsystem WHO code (1 = Lighting, 2 = Automation, 4 = Climate, etc.). | |
| what | No | Action or WHAT code (e.g. 1 for ON, 0 for OFF). | |
| where | Yes | Device address (e.g. '12', '0', '21#4#1'). | |
| values | No | Optional list of values for dimension writes (e.g. ['50', '0'] for 50% brightness). | |
| dimension | No | Dimension index (e.g. 1 for level, 0 for temp). | |
| command_type | Yes | One of 'command', 'status_request', 'dimension_request', 'dimension_writing'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 behavioral disclosure. It mentions 'construct and validate' but does not explain what happens on invalid input, whether it throws errors, or any side effects. It lacks details about how validation works or what constitutes a valid frame beyond syntactic correctness.
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, succinct sentence with no filler or repetition. It front-loads the core action and is appropriately concise for the tool's purpose, avoiding any unnecessary elaboration.
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 6 parameters and no annotations, the description is too sparse to be complete. It does not explain when to use this tool over siblings, what the output frame looks like (though an output schema exists, which mitigates that), or how validation behaves. The description leaves significant gaps for an agent deciding whether and how to call it.
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, with each parameter explained (who, what, where, values, dimension, command_type). The description adds no additional meaning beyond the schema, so it meets the baseline for high coverage. It does not clarify how parameters interact or provide examples beyond the schema's simple 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?
The description states a clear verb ('Construct and validate') and resource ('OpenWebNet frame'), making the purpose obvious. It does not explicitly differentiate from the sibling parse_and_validate_frame, but the action is distinct enough that an agent can infer it is for creating frames rather than parsing existing ones.
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?
There is no guidance on when to use this tool versus alternatives like parse_and_validate_frame or lookup_frame_syntax. The description gives no context about typical use cases, prerequisites, or when the tool should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_code_signatureGet Code SignatureB
Inspect Python AST signatures, public methods, and docstrings from custom_components/myhome or OWNd.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Class or module name (e.g. 'MyHOMELight', 'MyHOMECover', 'MyHOMEClimate', 'OWNMessage'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 discloses the tool inspects AST signatures, public methods, and docstrings, which is a read-only behavior. However, it doesn't mention whether the tool requires a specific environment, whether it can fail on missing symbols, or what the output structure looks like. The output schema exists, so return values are partially covered, but behavioral details like error handling are absent.
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 that front-loads the action and resource, then names the two source locations. It is concise and efficient, with no wasted words. It could be slightly more structured by separating the locations, but it's well within acceptable limits.
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 single-parameter inspection tool with an output schema, the description is mostly complete. It names the source locations and what is inspected. However, it doesn't clarify how the tool handles symbols that exist in both locations, whether it searches both, or what happens if the symbol is not found. These are minor gaps given 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?
Schema description coverage is 100%, so the schema already documents the 'symbol' parameter with examples. The description adds the context that the symbol is a class or module name and ties it to the two source locations, but it doesn't add significant meaning beyond the schema's examples. Baseline 3 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 states a specific verb ('Inspect') and resource ('Python AST signatures, public methods, and docstrings') from two locations. It is clear about what the tool does, though it doesn't explicitly distinguish itself from siblings like get_who_spec or search_documentation.
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 context by naming the source locations (custom_components/myhome or OWNd), which tells the agent when this tool is relevant. However, it doesn't explicitly state when to use this tool over alternatives like get_who_spec or search_documentation, nor does it mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ha_guideGet Ha GuideB
Fetch complete markdown guide for configuring and troubleshooting Home Assistant entities.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Name of guide/platform (e.g. 'lighting', 'automation_covers', 'climate', 'cen_scenarios', 'energy_sensors', 'sound_system', 'light_transitions', 'advanced_uses', 'troubleshooting'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Fetch complete markdown guide,' implying a read operation, but doesn't disclose any side effects, permission requirements, or error behavior. This is minimal and leaves the agent to infer most 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, concise sentence that immediately states the action and resource. There is no filler or redundancy, and it is front-loaded with the key information.
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 tool with a single well-documented parameter and an output schema, the description is largely complete. It clearly states what the tool does, and the schema covers the required input. The only gap is the lack of usage guidance, but that is covered under a different dimension. An agent can correctly invoke this tool based on the description and schema.
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%, with the parameter 'topic' clearly documented including example values. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 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 states a specific verb ('Fetch'), a clear resource ('complete markdown guide'), and the domain ('Home Assistant entities'). It clearly distinguishes from siblings like 'search_documentation' by indicating it retrieves a full guide rather than searching. The purpose 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 is provided on when to use this tool versus alternatives. It doesn't mention that this is for retrieving a specific guide by topic, while search_documentation might be for broader searches. There are no exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_who_specGet Who SpecA
Retrieve full technical specification, WHAT commands, and DIMENSIONS for an OpenWebNet WHO family.
| Name | Required | Description | Default |
|---|---|---|---|
| who | Yes | Numeric WHO identifier (e.g. 1 for Lighting, 2 for Covers, 4 for Climate, 15 for CEN, 16 for Sound, 25 for CEN+). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations whatsoever, the description bears full weight for behavioral disclosure. 'Retrieve' indicates a read-only operation, but it does not mention potential error cases, rate limits, or whether the response could be large. It adds basic context (return contents) but leaves more on the table.
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 concise single sentence that front-loads the action and the object, with no filler words. It packs relevant content (specification, commands, dimensions) exactly as needed, without bloating.
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 presence of an output schema, the return format is covered, and the single parameter is fully documented. However, the description does not address potential usage boundaries among the sibling tools, and the absence of annotations leaves a small discoverability gap for agents.
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%, and the schema itself explains the 'who' parameter with practical examples. The description does not add extra semantic detail beyond restating the scope, so a baseline 3 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 uses a specific verb ('Retrieve') and names a concrete resource ('full technical specification, WHAT commands, and DIMENSIONS') scoped to an OpenWebNet WHO family. It is clear, but it does not explicitly differentiate itself from sibling tools like list_who_catalog or lookup_frame_syntax, so the agent must infer the distinction.
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 should be used when a complete technical specification is needed, but it gives no explicit when-not or alternative selection. Sibling tools are not mentioned, so an agent may need to introspect other definitions to choose the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_who_catalogList Who CatalogA
Return complete inventory table of all 20+ OpenWebNet WHO families with archive status and HA platform.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently discloses that the tool returns a complete inventory table including archive status and HA platform. This is a read-only operation, but the description doesn't explicitly state that; however, the act of 'returning' implies no mutation. The behavior is clear enough for a simple listing tool, so a 4 is appropriate.
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 action and output. There is no fluff, and every word adds value. It is perfectly concise for the tool's 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 has no parameters and an output schema exists, the description fully covers what the tool does. It specifies the content of the return (complete inventory, archive status, HA platform), which is all an agent needs to decide and invoke it correctly. No missing information is apparent.
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 there is nothing for the description to explain beyond what the schema shows. Per the baseline for 0 params, a score of 4 is given. The description doesn't add param details (not needed), and the schema is empty, so no additional semantics are 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 a specific verb ('Return') and a clear resource ('complete inventory table of all 20+ OpenWebNet WHO families'). It also details what is included ('archive status and HA platform'), which distinguishes it from sibling tools like get_who_spec that likely focus on single families. The purpose is unambiguous and not a tautology.
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 clearly implies when to use this tool: when a complete inventory of WHO families is needed. It does not explicitly name alternatives or state exclusions, but the context of sibling tools (e.g., get_who_spec, search_documentation) makes the use case obvious. It provides clear context without formal exclusion guidance, fitting a score of 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_frame_syntaxLookup Frame SyntaxB
Look up OpenWebNet message grammar, regex templates, and parameter formats.
| Name | Required | Description | Default |
|---|---|---|---|
| who | No | Optional WHO code to cross-reference examples and addressing schemes. | |
| frame_type | No | Optional filter (e.g. 'STATUS_EVENT', 'STATUS_REQUEST', 'DIMENSION_WRITING', 'DIMENSION_REQUEST'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 does not mention whether the operation is read-only, what output it returns, any limitations (e.g., only statically defined syntax), or any dependencies. The term 'look up' implies read-only, but no explicit disclosure is given.
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 wasted words. It is appropriately concise and front-loaded with the core purpose.
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 presence of an output schema and simple optional parameters, the description is adequate for a basic lookup tool. However, it lacks usage context such as when to prefer this over search_documentation or how results are structured. The existence of an output schema may cover return details, but the description does not clarify the tool's role among siblings.
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 provides 100% coverage of both parameters with descriptions. The description adds a general mention of 'parameter formats' but does not elaborate on how the `who` or `frame_type` parameters interact. It adds minimal value over 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 ('look up') and the specific resource: OpenWebNet message grammar, regex templates, and parameter formats. This distinguishes it from sibling tools like get_who_spec (WHO-specific codes) and search_documentation (general documentation search).
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 like search_documentation or get_who_spec. The description only states what it does, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_and_validate_frameParse And Validate FrameA
Parse a raw OpenWebNet frame string and perform semantic protocol validation.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes | Raw OpenWebNet frame (e.g. '*1*1*12##', '*#4*1*0*0215##', '*#*1##'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool parses and performs semantic validation, which implies read-only analysis. But it does not describe failure modes (e.g., behavior on malformed frame strings), whether validation errors are returned in the response, or the exact scope of semantic validation. This is adequate but leaves a meaningful behavioral gap for an unhandled edge case.
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 filler, and the action is front-loaded. It states the exact resource and operation in the first clause. Every word carries meaning; there is no wasted ink.
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 a very simple one-parameter tool with 100% schema coverage and an output schema, the description is nearly sufficient. What is missing is a note about expected behavior on invalid input or the exact semantic validation process, but the output schema covers return structure, so this is only a minor gap. It ranks slightly above baseline because the scope is simple and mostly covered by structured data.
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% and the single parameter 'frame' has rich examples in the schema. The description adds an OpenWebNet frame string and the notion of validation, but does not add new parameter-level clarity beyond what the schema provides. Baseline 3 applies because the schema already does the job and the description does not extend it.
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 a specific verb ('parse') and a concrete resource ('raw OpenWebNet frame string'), and adds 'semantic protocol validation'. This clearly distinguishes the negative: it is not a lookup or draft tool. It does not explicitly contrast against siblings, so it stops short of a 5, but the action 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?
The usage context is implied: use it when you have a raw frame and need it parsed/validated. However, there is no explicit when-not-to-use guidance, no alternative naming (e.g., 'for syntax lookup use lookup_frame_syntax'), and no mention of prerequisite knowledge or context. It earns the implied-usage baseline but no more.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rescan_documentationRescan DocumentationA
Flush caches and reload all OpenWebNet specifications, markdown documents, and codebase AST models.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool flushes caches and reloads multiple data sources, which is useful side-effect transparency. However, with no annotations and no stated consequences (e.g., whether this is disruptive, requires permissions, or how long it takes), the behavioral description is incomplete.
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, focused sentence with concrete technical terms and no filler. It front-loads the key verb phrase 'Flush caches and reload' and lists the exact resources affected.
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 parameterless refresh operation, the description covers what and how, but it does not say when to use it (e.g., after documentation source changes) or what side effects/return behavior to expect. The output schema could help but is not described. This leaves some operational ambiguity for an agent deciding whether to call it.
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 no parameters decorating the schema, so there is no ambiguity about inputs. A baseline of no parameters means the description needs no additional parameter explanation, and it correctly omits any.
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 the specific operation ('flush caches and reload all OpenWebNet specifications, markdown documents, and codebase AST models'). The verb is concrete and the resource scope is explicit, making the tool's purpose immediately distinguishable from the read-only siblings like search_documentation and get_who_spec.
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 this is a maintenance/refresh action rather than a query operation, but it never states when to invoke it, when not to, or how it relates to alternatives. Unlike examples such as 'use search_calls_extensive instead', there is no explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_documentationSearch DocumentationA
Fuzzy and keyword search across OpenWebNet protocol specifications and Home Assistant MyHOME guides.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keywords or question (e.g. 'lighting transition speed', 'CEN+ blueprint', 'WHO 4'). | |
| category | No | Optional category filter ('embedded_guide', 'external_reference'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does mention the fuzzy/keyword search behavior and the scope of documents, which adds some context beyond the schema. However, it does not disclose whether results are ranked, any limits, or the nature of the output beyond what the output schema implies. It is adequate but not exhaustive.
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 that front-loads the action and scope. Both the search type (fuzzy/keyword) and the target resources are included without any fluff or redundancy. There is no wasted wording.
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 a simple search operation with two parameters (one required) and an output schema, so the description is largely sufficient. It clearly states what is being searched. It does not mention pagination or result details, but the output schema likely covers those. The low complexity and existing schema make this adequately complete.
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 both parameters (query, category) are already documented in the schema. The description adds no additional meaning about parameter usage or semantics beyond what the schema provides, so the baseline of 3 applies.
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 (search), the resource (OpenWebNet protocol specifications and Home Assistant MyHOME guides), and the nature (fuzzy and keyword). This is a specific verb+resource and is distinguishable from sibling tools like get_who_spec or list_who_catalog, which are targeted lookups rather than a general documentation search.
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 that this tool is for searching documentation, but it does not explicitly state when to use it versus the more specific sibling tools, nor does it provide exclusions or alternatives. The context is clear enough for an agent to infer usage, but no explicit guidance is given.
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.
10 tool updates
v0.1.0- First observed
draft_ha_config - First observed
draft_own_frame - First observed
get_code_signature - First observed
get_ha_guide - First observed
get_who_spec - First observed
list_who_catalog - First observed
lookup_frame_syntax - First observed
parse_and_validate_frame - First observed
rescan_documentation - First observed
search_documentation
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: search, retrieve specs, list catalog, get guide, lookup syntax, parse, draft, generate config, inspect code, and refresh caches. There is no overlap in functionality.
All tools use snake_case with consistent verb-noun patterns (e.g., search_, get_, list_, lookup_, draft_, rescan_). The naming is predictable and uniform.
With 10 tools, the set is well-scoped for a documentation and frame utility server, covering search, retrieval, parsing, drafting, and maintenance without redundancy or bloat.
The surface covers search, spec lookup, catalog listing, guides, syntax reference, parsing/validation, frame drafting, HA config generation, code inspection, and cache management. Minor gaps like a tool for comparing frames or bulk operations exist, but core workflows are complete.
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
The documentation, as a tool your agent can call: 950+ AI-dev guides. Search + fetch tools.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables comprehensive browser automation and web interaction through Playwright with 50+ specialized functions for navigation, form filling, data extraction, and Chrome DevTools Protocol support. Designed specifically for AI agents to perform complex web workflows including scraping, testing, and automated browsing tasks.51Apache 2.0- AlicenseAqualityNot gradedmaintenanceEnables web searching via SearXNG, page content extraction with Crawl4AI, and image analysis using vision language models. It provides AI agents with tools for information synthesis and web-based data retrieval through OpenAI-compatible LLM endpoints.3-
- AlicenseNot gradedqualityDmaintenanceProvides tools for AI assistants to access the Agent Web Protocol (AWP) specification, validate agent.json files, and generate protocol-compliant configurations. It enables developers to integrate the AWP standard into their websites through natural language prompts and automated validation.5MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants and IDEs to work with the AGNTCY Agent Directory, providing tools for validating, publishing, searching agent records, and navigating OASF taxonomies.2Apache 2.0