Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.7

  • Disambiguation4/5

    Most tools have distinct purposes (get vs list vs control), but ha_call_service can duplicate any service-specific tool like ha_light_turn_on. Descriptions clearly delineate scope, so selection is unambiguous in practice.

    Naming Consistency4/5

    All tools share the 'ha_' prefix and snake_case, but the order varies: 'ha_light_turn_on' (noun_verb) vs 'ha_get_state' (verb_noun). This is a minor deviation from a fully consistent pattern.

    Tool Count5/5

    13 tools is well within the ideal range and matches the server's clear purpose for Home Assistant integration. Each tool covers a meaningful operation without redundancy.

    Completeness4/5

    Covers state reads, lists, registries, light control (individual and area), logbook, history, and a generic service caller, so most workflows are possible. Specific controls are limited to lights, but ha_call_service fills the gap for other domains.

  • Average 3.4/5 across 13 of 13 tools scored. Lowest: 2.6/5.

    See the Tool Scores section below for per-tool breakdowns.

  • This repository is archived. Archived repositories automatically receive an F maintenance tier.

  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior1/5

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

    With no annotations, the description bears full responsibility for behavioral disclosure. It only states 'Call' without revealing side effects, permissions, return values, or error behavior. This is a significant transparency gap for an action that can trigger arbitrary home assistant services.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no wasted words. Every term ('domain', 'service', 'data payload') directly maps to parameters, making it efficient.

    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 generic service-call tool with no output schema and no annotations, the description is too sparse. It omits that data keys are service-specific, that calling a service may have side effects, and that it can be used for custom services not exposed as dedicated tools. Incomplete for safe and correct invocation.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It mentions 'data payload' for the data parameter, but domain and service are only named, not explained. No examples, value formats, or constraints beyond the schema are provided.

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

    Purpose4/5

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

    The description specifies a clear action ('Call'), a resource ('Home Assistant service'), and the primary inputs ('domain/service' and 'data payload'). It is implicitly distinguished from sibling tools like ha_light_turn_on by being generic, but it does not explicitly name alternatives.

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

    Usage Guidelines2/5

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

    No guidance is given on when to use this tool versus specific service tools or other siblings. It doesn't mention conditions, prerequisites, or exclusions, leaving the agent without context for selection.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It discloses that 'since' expects an ISO time and that entity filtering is optional, but it omits critical behavioral details: the response format, what 'end' and 'minimal_response' do, whether all entities are returned if entity_id is omitted, and any limitations on result size. The read-only nature is only implied by the verb 'Fetch', not explicitly stated.

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

    Conciseness3/5

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

    The description is a single sentence of only 12 words and is efficiently front-loaded with the action and key parameters. However, it is too terse for a tool with four parameters and no annotations, crossing from conciseness into under-specification.

    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 four parameters, no annotations, and no output schema, the description omits crucial context: the meaning of 'end', the effect of 'minimal_response', the default scope when entity_id is absent, and the structure of the return value. An agent would lack sufficient information to use this tool correctly without external knowledge.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It explains 'since' as an ISO time and 'entity_id' as an optional filter, covering two of four parameters. However, 'end' and 'minimal_response' are left completely undefined, and the description does not provide enough detail to fully understand expected values or behaviors.

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

    Purpose4/5

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

    The description uses the specific verb 'Fetch' and identifies the resource as 'history', with clear qualifiers: 'since an ISO time' and 'optionally for an entity'. This distinguishes it from siblings like ha_get_state (current state) and ha_list_states (all states). A minor gap is not specifying the exact nature of the history (e.g., state changes), but the purpose is largely unambiguous.

    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?

    There is no explicit guidance on when to use this tool versus alternatives like ha_get_state or ha_get_logbook. The intended usage is implied by the tool's name and description (fetch historical states), but no alternative tools are mentioned, nor are exclusions or prerequisites stated.

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

  • Behavior2/5

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

    Annotations are absent, so the description carries full responsibility for disclosing behavior. It only states the action ('turn on') without mentioning side effects, error handling (e.g., invalid entity_id), state transitions, or any required permissions. The description adds no behavioral context beyond the literal 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?

    The description is a single, concise sentence that immediately conveys the tool's purpose. It contains no filler or redundancy, making it well-structured and easily scannable.

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

    Completeness2/5

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

    Despite the tool's low complexity, the description is incomplete: it lacks usage context, parameter format, and any note about errors or return behavior. The presence of sibling tools that could also turn on lights (e.g., ha_call_service) makes this minimal description insufficient for unambiguous agent selection and invocation.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description merely repeats 'entity_id' without explaining its format, expected values (e.g., 'light.living_room'), or how to obtain it. The description fails to add meaning beyond the parameter name, which is insufficient given the lack of schema documentation.

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

    Purpose5/5

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

    The description clearly states the tool's function: turning on a light. The verb 'turn on' and resource 'light' are specific, and the phrase 'by entity_id' indicates the scope. It differentiates from sibling tools like ha_light_turn_off and ha_area_lights_on by focusing on a single light entity.

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

    Usage Guidelines2/5

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

    No guidance is provided about when to use this tool versus alternatives such as ha_area_lights_on or ha_call_service. There are no contextual cues about preferred use cases, prerequisites, or exclusions, leaving the agent to infer the tool's appropriate usage.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It only states the action and parameter, without mentioning what happens if the light is already off, whether the operation is reversible, if it could fail, or what the return value looks like. It does not contradict any annotations (since none exist), but it lacks important behavioral context.

    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, concise sentence with no unnecessary words. It is adequately sized for the tool's simplicity and front-loads the core action.

    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?

    This is a very simple tool with one parameter and no output schema. The description gives the essential information: turn off a light, and the entity_id is needed. However, it lacks any note about potential errors or side effects, and without usage guidelines it may not be fully complete in the context of the sibling tools. It meets minimum viability.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for parameter meaning. The description says 'by entity_id' but does not explain what an entity_id is or its expected format (e.g., 'light.living_room'). It adds minimal value beyond the schema's basic type and required flag.

    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: 'Turn off a light by entity_id.' It uses a specific verb and resource, making it unambiguous. The entity_id parameter is mentioned, and since sibling tools include ha_light_turn_on and ha_area_lights_off, the description effectively differentiates this as a single-light operation rather than an area-wide one.

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

    Usage Guidelines1/5

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

    No guidance is provided about when to use this tool versus alternatives. The description does not mention that for turning off all lights in an area one should use ha_area_lights_off, nor does it state any prerequisites (e.g., the light must exist). This leaves the agent without context for choosing the correct tool among related siblings.

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

  • Behavior2/5

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

    No annotations are provided, and the description does not disclose any behavioral traits beyond the basic action. It lacks context about return format, error handling, or safety, which matters when no annotations are present.

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

    Conciseness5/5

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

    The description is a single, clear sentence with no wasted words. It is front-loaded with the action and parameter, making it appropriately concise for a simple get operation.

    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?

    While the tool is simple (one parameter, no output schema), the description is too sparse to fully equip an agent. It does not explain what the returned state looks like, what happens if the entity is not found, or how this tool relates to similar state-list tools.

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

    Parameters2/5

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

    The schema has 0% description coverage, and the description only restates that the tool uses 'entity_id' without explaining the expected format (e.g., 'light.living_room') or providing any additional meaning beyond the parameter name.

    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 ('Get') and resource ('Home Assistant entity state') with a parameter ('by entity_id'). It distinguishes from siblings like ha_list_states (which lists all states) and ha_get_history (which retrieves historical states), so 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.

    Usage Guidelines3/5

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

    Usage is implied through the description: use this tool when you need the current state for a specific entity_id. However, it does not explicitly state when to prefer this over alternatives or provide any exclusions or conditions.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('turn off') without mentioning how invalid area IDs are handled, whether only on-lights are affected, the effect of the optional transition parameter, or any side effects. This adds little beyond the tool's name.

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

    Conciseness5/5

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

    The description is a single, clear sentence that conveys the core functionality without extraneous words. It is front-loaded and easily parsed.

    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 no annotations, no output schema, and no parameter descriptions, the description is not complete. It omits information about the transition parameter, possible return values, error conditions, and any prerequisites. While the tool is simple, there are clear gaps that could confuse an agent.

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

    Parameters2/5

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

    The schema has two parameters with no descriptions: area_id (required string) and transition (optional number). The description mentions area_id but says nothing about transition, leaving its meaning (likely a fade time) undocumented. For a 0% schema coverage situation, the description only partially compensates for the missing parameter information.

    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 a specific verb ('turn off'), resource ('all lights in an area'), and method ('by area_id'). This distinctly differentiates it from sibling tools like ha_light_turn_off (single light) and ha_area_lights_on (opposite action).

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

    Usage Guidelines4/5

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

    The description provides a clear usage context: you would use this when you want to turn off all lights in an area and have an area_id. It does not explicitly list alternatives or exclusions, but the phrase 'all lights in an area' implies the appropriate scenario compared to single-light tools.

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

  • Behavior2/5

    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 states a listing operation but does not explicitly confirm it is read-only, describe the output, or note any limitations. This is 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?

    The description is a single concise sentence that is front-loaded with the action and resource. Every word earns its place, with no extraneous information.

    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 no-parameter list operation, the description is adequate. It identifies the source (area registry) and the subject (areas). Although there is no output schema, the return type is implicitly a list, so this is sufficiently complete.

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

    Parameters4/5

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

    The tool has zero parameters, and the schema is an empty object. The baseline for zero parameters is 4, and the description does not need to add parameter-level detail since there are none.

    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 uses a specific verb ('List') and identifies the resource ('Home Assistant areas') plus the source ('area registry'), clearly distinguishing it from sibling tools like ha_list_states and ha_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 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. It does not mention use cases, exclusions, or any comparison with sibling tools.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It states the core mutating action (turning on all lights) but does not disclose side effects, idempotency, permission requirements, or behavior for edge cases (e.g., no lights in area). This is adequate but minimal for a simple 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?

    The description is a single, front-loaded sentence with no filler. It conveys the essential purpose in nine words, making it exceptionally concise and easy to parse.

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

    Completeness2/5

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

    Given the tool has 3 parameters, no annotations, no output schema, and zero schema description coverage, the one-sentence description is insufficient. It fails to explain the optional parameters (transition, brightness_pct) and any behavioral nuances, leaving significant gaps for an agent to correctly use the tool.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It only clarifies the role of area_id implicitly, but transition and brightness_pct are left completely unexplained. The schema provides types/constraints but no semantic meaning, so the description adds minimal value beyond echoing the parameter name.

    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 ('Turn on'), the resource ('all lights in an area'), and the key qualifier ('by area_id'), which distinguishes it from sibling tools like ha_light_turn_on (single light) and ha_area_lights_off (turning off).

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

    Usage Guidelines4/5

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

    The description implies usage context: this is for area-wide light control, distinct from individual light control. However, it does not explicitly state alternatives or exclusions, so it falls short of a perfect score but provides clear enough context.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden. It implies a read-only listing operation but adds no details about return structure, filtering, pagination, or entity registry specifics. It is minimally transparent, fitting a simple list tool.

    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, focused sentence that clearly states the tool's purpose with no redundant words or fluff.

    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 zero-parameter list tool with no output schema, the description is adequately complete. It clearly defines the resource being listed, though it could optionally mention that it returns all entity registry entries, but this is implied by 'List' and the absence of filters.

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

    Parameters4/5

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

    The input schema has zero parameters, so the baseline is 4. The description adds no parameter info, but none is needed since there are no parameters to explain.

    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 uses a specific verb ('List') and a specific resource ('Home Assistant entity registry entries'), clearly distinguishing it from sibling tools like ha_list_states, ha_list_areas, and ha_list_devices that target different Home Assistant entities.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. The description simply states what it does, without mentioning context, exclusions, or that other list tools exist for different resource types.

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

  • Behavior3/5

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

    No annotations are present, so the description carries the full burden. The verb 'List' implies a read-only, non-destructive operation, but it does not explicitly state that it does not modify state, what permissions might be required, or the structure of the returned data. The simple nature of the tool makes this acceptable, but it lacks explicit behavioral 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?

    The description is a single concise sentence that directly states the tool's purpose without any filler. It is appropriately sized for a simple list operation and earns its place.

    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 zero-parameter tool with no output schema, the description is largely complete. It specifies that the tool lists services and their fields, which communicates the scope. However, it does not mention use cases or connection to sibling tools, which could add context, but given the simplicity, a 4 is appropriate.

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

    Parameters4/5

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

    The tool has zero parameters, and the input schema is empty, so the description does not need to explain parameter semantics. The baseline for 0 parameters is 4, and the description correctly omits param details that don't exist.

    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 'List Home Assistant services and their fields' clearly states the action (List) and the resource (Home Assistant services), and it distinguishes itself from sibling tools like ha_list_states, ha_list_areas, and ha_list_devices by targeting a different domain. The mention of 'fields' adds specificity.

    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?

    There is no guidance on when to use this tool versus alternatives. It does not mention related tools like ha_call_service for invoking services or ha_list_states for listing entity states. The description provides no context for selecting this tool.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden. It adds the useful warning that the response 'can be large', which is a behavioral trait. However, it does not clarify what a 'state' includes (e.g., full state objects, attributes, last_updated), nor does it mention potential pagination or rate limits. The size warning is a moderate 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?

    A single concise sentence that front-loads the core purpose and adds a meaningful caveat. Every word earns its place; no fluff or redundancy.

    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 simple nature of the tool (no parameters) and the presence of sibling tools that provide differentiation, the description is largely adequate. It states what the tool does and a key behavioral constraint. It could mention what the return value looks like, but the output schema is absent and not strictly required for such a straightforward list operation.

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

    Parameters4/5

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

    There are zero parameters, and the schema coverage is 100% (empty object). The baseline for no parameters is 4, and the description need not elaborate on parameter semantics since none exist.

    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 uses the specific verb 'List' and identifies the resource as 'Home Assistant entity states', which clearly distinguishes this from sibling tools like ha_get_state (which retrieves a single state) and ha_list_services or ha_list_areas (which list other kinds of entities).

    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 explicit guidance is provided about when to use this tool versus alternatives. The parenthetical '(can be large)' implies a cautionary note, but it does not suggest using ha_get_state for individual states or mention any exclusions. The description relies solely on the tool's name for context.

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

  • 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 full burden of behavioral disclosure. It states an action ('Fetch') that implies a read-only operation, but it does not explicitly confirm non-destructiveness, return format, pagination, or any special behaviors. For a simple fetch, this is adequate but not rich.

    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, concise sentence that is front-loaded with the verb and key concept. It contains no fluff and every word adds meaning. It is appropriately sized for the tool's simplicity.

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

    Completeness3/5

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

    The tool has 3 parameters and no output schema. The description covers the primary use and the 'since' parameter, but omits the 'end' parameter and does not explain return values or how this differs from the sibling 'ha_get_history'. Given the lack of annotations and output schema, more detail would be helpful for full 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?

    The input schema has 3 string parameters with no descriptions (0% coverage). The description clarifies that 'since' is an ISO time and that 'entity_id' is optional for filtering. However, the 'end' parameter is not mentioned, leaving its purpose ambiguous. The description partially compensates for the schema gap but not fully.

    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 'Fetch logbook entries since an ISO time (optionally for an entity)' clearly states the verb (Fetch), resource (logbook entries), and scope (since ISO time, optional entity filter). It distinguishes itself from sibling tools like ha_get_state and ha_get_history by referencing logbook entries specifically.

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

    Usage Guidelines4/5

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

    The description implies usage: when you need logbook entries based on a temporal boundary and optionally an entity. It does not explicitly mention alternatives or exclusions, but the context is clear. Since sibling tools like ha_get_history exist, mentioning when to prefer this over them would improve the score, but it is not misleading.

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

  • Behavior3/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 discloses the operation (list) and data source (device registry), implying read-only behavior, but does not mention any permissions, return format, or limitations. Minimal but not misleading; however, it lacks richness expected without annotations.

    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 entire description is a single, front-loaded sentence that says exactly what the tool does without any fluff or unnecessary detail. Every word earns its place.

    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 parameterless list tool, the description adequately covers the core behavior: lists devices from the device registry. It doesn't specify output details, but since there is no output schema and the operation is straightforward, this is sufficient for the tool's complexity.

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

    Parameters4/5

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

    With zero parameters and 100% schema coverage, the description doesn't need to explain inputs. The baseline for zero-parameter tools is 4, and the description adds no additional parameter constraints, which is appropriate given the empty 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 uses a specific verb 'List' and identifies the resource 'Home Assistant devices' plus the source 'device registry.' This clearly distinguishes it from siblings like ha_list_areas or ha_list_entity_registry, which target different registry types.

    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 provides no explicit guidance on when to use this tool versus alternatives such as ha_list_states or ha_list_entity_registry. Usage is implied by the name and description, but there are no exclusions or alternative referrals, so it stops at implied usage.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

hass-mcp MCP server

Copy to your README.md:

Score Badge

hass-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hannoeru/hass-mcp'

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