Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools target distinct domains (devices, scenes, home, variables, quick apps). However, find_by_name and resolve_by_name overlap significantly in purpose, and fibaro_device also supports name-based retrieval, causing potential confusion.

    Naming Consistency3/5

    Five tools follow the 'fibaro_*' prefix convention, but three (find_by_name, first_run, resolve_by_name) break this pattern. Naming is readable but inconsistent, mixing noun phrases with verb phrases.

    Tool Count5/5

    With 8 tools, the set is well-scoped for a home automation system. Each tool covers a major functional area without being too numerous or sparse.

    Completeness4/5

    The tool set covers all major aspects of Fibaro home automation: device control, scenes, home/system info, variables, and quick apps. Minor gaps like advanced scheduling or bulk operations exist but don't hinder core usage.

  • Average 3.5/5 across 8 of 8 tools scored. Lowest: 2.8/5.

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

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It only states the operations available but fails to mention side effects, idempotency, permissions, or response behavior. For a tool that modifies state (create/delete/update), this is insufficient.

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

    Conciseness3/5

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

    The description is very short (one sentence) but includes redundant phrasing ('Variable intent tool'). It could be more concise while retaining clarity. Not overly verbose, but not optimally structured.

    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 5 parameters (with nested objects) and no output schema, the description is too brief. It omits details on return values, error handling, and advanced usage (e.g., the 'variable' object payload). The tool's complexity demands a more complete description.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond listing the operations. Baseline 3 is appropriate; the description does not enhance understanding of the schema.

    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 clearly states the tool manages global variables with operations list/get/set/create/delete, making the purpose specific and actionable. However, it does not differentiate from sibling tools (e.g., fibaro_device, fibaro_scene), though the resource type is distinct enough to avoid confusion.

    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 or not use this tool relative to alternatives. While sibling tools cover different resources, the description offers no contextual cues or exclusions, leaving the agent to infer usage independently.

    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 must convey behavioral traits. It fails to indicate which operations are destructive (e.g., delete_room, restore_backup), required permissions, side effects, or rate limits. The description only lists operations without 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.

    Conciseness3/5

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

    The description is moderately concise but contains repetition (e.g., 'energy_graph, energy_panel' appears twice). It front-loads the general purpose and then lists supported topics, which is reasonable, but could be more tightly structured.

    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 tool with 38 parameters and many operations, the description is incomplete. It does not cover all operations, lacks details about return values, error conditions, or prerequisites. It provides only a high-level overview and specific guidance for a few operations.

    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?

    With only 18% schema description coverage, the description should compensate. It explains a few sub-operations (device_stats, energy_panel, energy_graph) but does not provide semantics for most parameters like room_id, section_id, or the many op enum values. The description adds minimal value beyond the schema.

    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 clearly states the tool's purpose as 'Home/system management' and lists major capabilities (rooms, sections, users, weather, etc.). It distinguishes between sub-operations within the tool, though it does not explicitly differentiate from sibling tools like fibaro_device.

    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 explicit guidance for certain operations: 'For quick stats use op=device_stats', 'For current power consumption use op=energy_panel', 'For historical energy/power data use op=energy_graph'. This helps an agent choose the appropriate operation within the tool, though it does not cover all operations or exclude sibling 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?

    No annotations are provided, so the description must cover behavior. It mentions the plurality and error behavior, but is silent on side effects, idempotency, or any additional behavioral traits. Minimal disclosure for a tool with no annotations.

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

    Conciseness4/5

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

    The description is a single clear sentence, free of fluff. It conveys core behavior efficiently. Could be slightly longer to cover return value, but overall concise and well-structured.

    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 lack of output schema and the presence of a 'format' parameter, the description should explain what the tool returns and how the format parameter affects it. This is missing, making the tool less complete for an agent to use correctly.

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

    Parameters3/5

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

    Schema coverage is 100%, so each parameter is documented. The description adds context about the query parameter's plurality behavior but does not elaborate further on parameter semantics. Baseline score of 3 is appropriate.

    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 clearly states it resolves a device by name, with specific behavior for singular vs plural queries. It distinguishes itself from siblings like find_by_name by mentioning ambiguity handling, but does not explicitly contrast with similar tools.

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

    Usage Guidelines3/5

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

    The description implies usage context by noting that singular queries error on ambiguity, hinting at when to use carefully. However, it lacks explicit guidance on when to prefer this tool over siblings like find_by_name or the Fibaro-specific 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?

    No annotations exist, so the description must fully disclose behavioral traits. It only lists operations without mentioning side effects, authentication needs, error handling, or return behavior. For a tool that includes destructive operations like delete, this is insufficient.

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

    Conciseness5/5

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

    The description is extremely concise: a single sentence that lists all operations without any redundant phrases. Every word carries meaning, and it is front-loaded for quick scanning.

    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's complexity (8 parameters, no output schema, multiple operations), the description is incomplete. It lacks information about return values, error conditions, required permissions, and operation-specific behavior. The agent would not have enough context to use the tool correctly in many scenarios.

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

    Parameters3/5

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

    Schema coverage is 100%, so the baseline is 3. The description does not add any meaning beyond what the input schema already provides for each parameter. While the schema descriptions are complete, the tool description itself contributes no extra parameter context.

    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 purpose as a 'Quick App intent tool' and enumerates all supported operations (list, create, update code, update variables, get lua, delete). This provides a specific verb+resource combination and differentiates it from sibling tools like fibaro_device or fibaro_scene.

    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. Sibling tools are listed but without any comparative context or conditions for selection. No when-not-to-use scenarios are mentioned.

    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 must fully convey behavioral traits. It only mentions returns (instructions/templates) but does not state that the tool has no side effects, modifies nothing, or requires no authentication. This is insufficient for a setup 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?

    Two sentences, front-loaded with purpose, no redundant information. 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 setup helper with 8 parameters, the description is minimal but sufficient to convey output (instructions+templates). It could mention that no state changes occur, but overall it completes the picture given the simple nature of the tool.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already explains each parameter. The description adds no extra meaning beyond the overall purpose; for instance, 'format', 'client', 'os' are self-explanatory in schema. Baseline 3 is appropriate.

    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 'Setup helper' and explains it returns step-by-step instructions and config templates. It is specific about the resource (configuration setup) and distinguishes from sibling tools like fibaro_device which are for device interaction.

    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 explicitly says 'Use this when configuration is missing,' providing clear when-to-use guidance. It does not list alternatives or when not to use, but the sibling set makes it obvious this is for initial setup only.

    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 warns about large data with unfiltered list, but lacks details on authentication, rate limits, side effects of actions (e.g., delete), or response format. Partial 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 three sentences, front-loaded with purpose, then critical usage advice, then supported operations. No wasted words.

    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?

    With 22 parameters and no output schema, the description covers usage advice but lacks details on return values, error handling, or parameter dependencies. Adequate but not complete for a complex tool.

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

    Parameters3/5

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

    Schema description coverage is high (86%), so the description adds minimal extra meaning. It lists supported operations, but those are already in the op parameter description. The 'args' parameter remains undocumented. Baseline score.

    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 clearly states 'Device management: list/get/control devices' and lists specific operations, making the purpose obvious. However, it does not explicitly differentiate from sibling tools like fibaro_home or fibaro_scene, which is a minor gap.

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

    Usage Guidelines5/5

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

    The description provides explicit guidance: 'Avoid op=list without filters' and recommends using op=get with filters, specifying alternatives and when to use them. This is exemplary usage advice.

    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 must shoulder the behavioral disclosure burden. It mentions operations like run, stop, create, delete, but does not explain side effects (e.g., running a scene triggers actions, deleting removes it permanently). For a tool with destructive operations, this is a gap.

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

    Conciseness5/5

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

    The description is two sentences with no waste. The critical usage advice is front-loaded with 'IMPORTANT'. Every word adds value.

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

    Completeness3/5

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

    Given 6 parameters and moderate complexity, the description covers the main point but lacks details on return values (no output schema) and behavioral effects of mutations. It is adequate but not fully complete for safe autonomous use.

    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?

    Schema coverage is 83% (5/6 parameters described). The description adds nuance: it clarifies that 'name' can be used with 'op=get' (though schema only lists 'name' for create/update_lua) and that 'room_id' can filter 'list' operations. This goes beyond the schema's own descriptions.

    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 'Scene management: list/get/run/stop scenes and Lua code' and lists all supported operations, leaving no ambiguity about the tool's purpose. It differentiates from sibling tools like fibaro_device or fibaro_home by focusing on scenes.

    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 explicit 'IMPORTANT' guidance on when to use 'list' vs 'get', including filtering advice for efficiency. However, it does not compare this tool to sibling tools like resolve_by_name or first_run, so cross-tool guidance is missing.

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

  • Behavior4/5

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

    With no annotations, the description carries full weight. It discloses case-insensitivity and diacritics handling, which are key behavioral traits. However, it does not mention ranking criteria, pagination, or any side effects, slightly reducing transparency.

    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?

    One sentence, no wasted words. Information is densed and front-loaded.

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

    Completeness3/5

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

    Given no output schema, the description should explain return values. 'Returns ranked candidates' is vague; lacks details on candidate structure (e.g., IDs, types). The tool is not complex but missing output context reduces completeness.

    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?

    Schema has 100% coverage with descriptions, but the description adds value by explaining case-insensitivity and ranked results beyond schema. For 'kinds' and 'limit', schema provides basics; description does not add further, but overall meaningful addition.

    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 finds devices, rooms, or scenes by name, with specific behavioral details (case-insensitive, ignores diacritics, returns ranked candidates). It distinguishes from sibling tool 'resolve_by_name' by focusing on search rather than exact resolution.

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

    Usage Guidelines3/5

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

    The description implies when to use (name-based search) but does not explicitly state when not to use or compare with alternatives like 'resolve_by_name' or other search methods. No exclusions or context for choosing among siblings.

    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

fibaro-mcp MCP server

Copy to your README.md:

Score Badge

fibaro-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/ikari-software/fibaro-mcp'

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