Skip to main content
Glama
webcredo

umami-compass

by webcredo

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: metrics retrieval, traffic comparison, health auditing, and server information are all separated. Even similar functions like 'explain_traffic_change' and 'analyze_release_impact' target different analytical contexts.

    Naming Consistency4/5

    Most tools follow a verb_noun snake_case pattern (e.g., get_*, list_websites, resolve_website). The exception is 'tracking_health_check', which uses a noun_noun form, causing slight inconsistency.

    Tool Count5/5

    14 tools is well within the ideal 3-15 range for a focused analytics domain. Each tool covers a specific analytical need without redundancy, making the set appropriately scoped.

    Completeness4/5

    The toolset covers core analytics operations: data retrieval, comparison, health checks, and metadata. Minor gaps exist (e.g., no create/update/delete for websites), but these are likely intentional for a read-only analytics interface.

  • Average 3.7/5 across 14 of 14 tools scored. Lowest: 3.1/5.

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

    • No community issues in the last 6 months
    • 22 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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, establishing safe read behavior. The description adds minimal behavioral context by noting that both arrays are preserved and specifying the Umami version, but does not disclose rate limits, authentication needs, or response size constraints.

    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 extremely concise at two sentences, front-loading the purpose and key response detail. Every sentence contributes meaningful information, with no filler.

    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 having a complex schema with 6 parameters including a rich filters object, the description provides no context on how unit affects granularity, timezone handling, filter composition, or response structure beyond mentioning two arrays. It is insufficient for an agent to fully understand the tool's capabilities.

    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 approximately 67% (4 of 6 parameters have descriptions). The description adds no further parameter details beyond what the schema provides, so it meets the baseline without adding extra value for parameter understanding.

    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 retrieves pageview and session time series from Umami 3.2 and mentions response preservation of both arrays. It is specific about the resource and action, though it does not explicitly differentiate from sibling tools like get_metrics or get_website_stats.

    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 on when to use this tool versus alternatives. The description does not mention prerequisites, excluded scenarios, or contextual triggers, leaving the agent to infer usage from the purpose alone.

    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?

    Annotations already indicate readOnly, openWorld, idempotent, and non-destructive. The description adds behavioral context by detailing what the summary includes (e.g., period changes, leaders), which is valuable beyond annotations. No contradiction.

    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?

    Single sentence that packs key information. Could be slightly more structured, but it is efficient 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 6 parameters and an output schema, the description only gives a high-level summary of outputs. It lacks details on parameter usage or output structure, though the output schema exists. Adequate but not thorough.

    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 coverage is low (33%), and the description adds no parameter information. It does not explain the purpose of websiteLimit, staleAfterHours, anomalyMinimumPageviews, or anomalyThresholdPercent, leaving agents uninformed.

    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 summarizes bounded aggregate traffic across visible websites, listing specific outputs like period changes, growth/decline leaders, stale tracking, failures, and suspicious jumps. This distinguishes it from sibling tools that focus on single websites or specific metrics.

    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 does not mention prerequisites, exclusions, or context for use.

    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 already indicate readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral details beyond confirming it is a read operation ('Get metadata'). It does not disclose any edge cases, permissions, or other traits not already captured by 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, efficient sentence with no wasted words. It is front-loaded with the key action and resource. While it could perhaps add slightly more context, it remains concise and to the point.

    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 tool has only 1 parameter (fully described in the schema), rich annotations, and an output schema (not shown but present), the description is adequate for a simple read tool. It does not need to explain return values because the output schema exists. However, it could mention what specific metadata fields are returned to improve completeness.

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

    Parameters3/5

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

    Schema description coverage is 100% (the single parameter 'websiteId' is described as 'Umami UUID'). The tool description does not add any additional meaning or context about the parameter beyond what the schema already provides. Baseline 3 is appropriate as the schema does the heavy lifting.

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

    Purpose5/5

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

    The description clearly states the verb and resource: 'Get metadata for one website.' It specifies the action (get) and the object (metadata for a single website), which effectively distinguishes it from sibling tools like 'list_websites' (multiple websites) and 'resolve_website' (likely resolves a domain).

    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. There is no mention of when-not-to-use or any similar contextual rules. Sibling tools are listed but not referenced or differentiated beyond the single sentence. The agent receives no explicit usage 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?

    Annotations already declare readOnlyHint=true, destructiveHint=false, etc., so the safety profile is clear. The description adds the specific metrics returned and the time range parameter but does not disclose additional behavioral traits like rate limits, aggregation behavior, or data freshness. It does not contradict 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 description is a single sentence that efficiently conveys the tool's function without superfluous words. It is front-loaded with the key action and resource, making it easy to parse.

    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 the presence of an output schema and detailed annotations, the description is adequate but not fully comprehensive. It lists the returned metrics and mentions 'for a time range' but omits mention of the optional filters parameter and does not clarify the nature of 'comparison values'. More context about the tool's scope and limitations would improve 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 75% description coverage across 4 parameters (websiteId, start, end described; filters not described). The tool description lists the metrics returned but does not elaborate on any parameter beyond what the schema provides. Since schema coverage is high, the description adds marginal value, meeting the baseline for 3.

    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 retrieves various website metrics such as visits, visitors, pageviews, bounces, and comparison values for a time range. It uses a specific verb ('Get') and resource ('website stats'), making the purpose obvious. However, it does not explicitly differentiate from sibling tools like get_metrics or get_pageviews, which could be similar.

    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 any prerequisites, context, or exclusion criteria. Given the sibling tools list includes similar analytics tools, this omission is a significant gap.

    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 already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds no additional behavioral context beyond 'get the number', such as what constitutes an active visitor, time window, or real-time nature. The description does not contradict annotations (false).

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

    Conciseness5/5

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

    The description is a single sentence, no fluff, and directly states the tool's purpose. It is appropriately front-loaded and concise.

    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 the tool's simplicity (one required parameter, no nested objects, output schema exists but not shown), the description is minimally adequate. However, it lacks explanation of what 'active visitors' means or any time window, which could help the agent understand the metric better.

    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 full coverage (100%) with a single parameter 'websiteId' described as 'Umami UUID' with format and pattern. The tool description does not add any further meaning beyond the schema, so 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 uses a specific verb 'Get' and resource 'current number of active visitors for a website.' It clearly distinguishes from sibling tools like 'get_pageviews' or 'get_website_stats' by focusing on active visitors count.

    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?

    No explicit when-to-use or alternatives are mentioned. The description implies usage for retrieving active visitor counts, but does not guide the agent on when to prefer this over sibling tools like 'get_metrics' or 'get_website_stats'.

    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?

    Annotations already declare the tool as read-only, idempotent, non-destructive, and open-world. The description adds a behavioral note about disabled optional features being warnings only when marked as expected, but overall does not significantly expand beyond 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 concise at two sentences, with the first sentence listing core checks and the second clarifying behavior for disabled features. It is front-loaded and efficient, though slightly more clarity on parameters could improve.

    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 9 parameters and no required ones, the description provides a high-level overview but lacks details on input constraints and output. The presence of an output schema partially compensates, but the description does not mention the lookback window or website limit scope.

    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 0% schema description coverage, the burden on the description is high. However, it only loosely references some parameters (e.g., 'custom-event availability' for 'expectEvents', 'recorder configuration' for 'expectReplay') but fails to explain key parameters like 'websiteLimit', 'lookbackHours', 'staleAfterHours', 'minimumPageviews', and 'dropThresholdPercent'.

    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 audits visible websites for specific issues like stale traffic, traffic drops, domain mismatches, etc., using a specific verb ('Audit') and a distinct resource ('visible websites'). It distinguishes itself from sibling tools like 'get_metrics' or 'get_pageviews' which are for data retrieval, not health checks.

    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 use for auditing tracking health but does not explicitly state when to use or when not to use this tool versus alternatives. No direct comparison with sibling tools or conditions for usage are provided.

    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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds that it returns 'aligned buckets', which is minimal. It does not contradict annotations, but it does not enrich behavioral context (e.g., no mention of rate limits, data freshness, or handling of missing data).

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

    Conciseness5/5

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

    The description is a single sentence with no filler, immediately stating the action and purpose. It is efficiently front-loaded and every phrase contributes meaning.

    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 having an output schema (so return value details are covered) and moderate schema coverage, the tool is highly complex (10 parameters, nested filters, multiple enums). The description only provides a high-level purpose and lacks details on alignment semantics, bucket granularity, comparison modes, or how filters apply to both periods. This is insufficient for reliable agent selection.

    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 50% (5 of 10 parameters have descriptions in the schema). The tool description does not add any parameter-specific information beyond the schema. It does not explain the meaning of 'current' vs 'comparison' periods or how filters interact. Baseline 3 due to moderate coverage, but description should have compensated more.

    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 ('Return') and resource ('aligned current and comparison traffic buckets'), and states the outcome ('to locate the exact day or hour when traffic changed'). It clearly distinguishes itself from siblings like 'explain_traffic_change' and 'get_metrics' by focusing on pinpointing the timing of changes through comparison.

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

    Usage Guidelines3/5

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

    The description implies the tool is for comparing traffic time series to find change timing, but it does not provide explicit guidance on when to use it versus alternatives or when not to use it. For example, no mention of comparison modes (previous, year_over_year, custom) or when each is appropriate.

    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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds that visitor identifiers are excluded, which is a behavioral detail. However, no other behaviors (e.g., pagination, rate limits) are disclosed.

    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, efficiently conveying the core purpose and a key exclusion. No redundant information.

    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 description covers the output nature and exclusion of visitor identifiers, but omits guidance on filtering, pagination, and the extensive capabilities implied by the schema. With 8 parameters and nested objects, more context is needed for a complete understanding.

    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 low (38%), but the description does not describe any parameters beyond listing possible values for the 'type' parameter. It does not explain the meaning of required parameters like websiteId, start, end, or the complex filters object, leaving the agent underinformed.

    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 returns a 'ranked aggregate Umami metric breakdown' for dimensions like paths, referrers, countries, etc. It also notes what is excluded ('visitor identifiers'), making the purpose unambiguous and distinct from siblings.

    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 for obtaining metric breakdowns but does not explicitly state when to use this tool versus alternatives like get_pageviews or get_website_stats. No when-not or alternative guidance is provided.

    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?

    Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds minimal behavioral context beyond confirming the return of timestamps. It does not contradict 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 description is a single, concise sentence with no unnecessary words. It is front-loaded and immediately clear.

    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 presence of an output schema, the description does not need to explain return values. It is complete for a simple read-only tool with comprehensive annotations, though it could mention the return format briefly.

    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?

    With 100% schema description coverage, the schema already documents the single parameter websiteId fully. The description adds no additional meaning beyond what the schema provides.

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

    Purpose5/5

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

    The description clearly states the verb 'Get', the resource 'analytics timestamps', and the scope 'for a website'. It distinguishes this tool from siblings like get_website or get_website_stats by specifying the return of earliest and latest timestamps.

    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 such as get_website_stats or get_pageviews. The description only explains what it does, not the context or exclusions.

    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?

    Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds the important caveat that results describe association, not causation, which is valuable behavioral context beyond the 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?

    Two sentences, no filler, front-loaded with core action. Every sentence 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 the complexity (11 parameters, nested filters, multiple comparison modes) and low schema coverage, the description is too sparse. It covers high-level purpose but lacks guidance on required parameters, how to set comparison mode, and interpretation of results. The output schema is present but not described.

    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 only 45%, and the tool has 11 parameters. The description adds no parameter-level information (e.g., no explanation of websiteId, start, end, comparisonStart, etc.). It only lists possible dimensions but not how to specify them.

    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 compares traffic across periods and ranks changes across specific dimensions (pages, referrers, countries, devices, channels, events). It distinguishes from sibling 'compare_traffic_series' by focusing on explaining changes rather than time series visualization.

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

    Usage Guidelines3/5

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

    The description mentions comparison modes (previous, year-over-year, custom) and dimensions, but does not explicitly state when to use this tool versus alternatives like compare_traffic_series or get_metrics. There is no guidance on when not to use it.

    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?

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds context about environment variable behavior, which goes beyond annotations. No contradictions.

    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 extraneous information. Every sentence is necessary.

    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?

    Context signals indicate an output schema exists, so return format may be covered there. However, with three parameters and zero description coverage, the description is incomplete for an agent to use effectively.

    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%, so the description must explain parameters. It does not mention page, search, or pageSize at all. Without this, an agent may not understand how to use them.

    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 lists websites visible to the Umami identity, with specific behavior when UMAMI_WEBSITE_IDS is set. This distinguishes it from sibling tools like get_website which returns a single website.

    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?

    Describes the effect of environment variable UMAMI_WEBSITE_IDS, which guides usage. However, it does not explicitly state when to use alternatives or mention any prerequisites.

    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?

    Annotations already declare read-only, idempotent, and non-destructive hints. The description adds behavioral context beyond annotations: default return format (compact summary vs full detail) and partial-window handling for recent releases, which are valuable for agent behavior.

    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?

    Three sentences, each adding value: purpose, return format options, edge-case behavior. No wasted words, front-loaded with key action.

    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 tool's complexity (11 parameters, nested filters, output schema), the description covers essential behavior and key decision points (summary vs full, partial windows). It could mention available filters, but the output schema exists so return values are not required.

    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 low (18%). The description adds meaning for core parameters (e.g., releaseAt, windowDays, detailLevel) and the comparison concept, but many complex filter fields remain undocumented. It partially compensates but is insufficient for full clarity.

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

    Purpose5/5

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

    The description clearly states it compares equal pre- and post-release windows across traffic breakdowns and Core Web Vitals, with a specific verb and resource. It distinguishes from siblings like compare_traffic_series by focusing on release impact analysis.

    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 makes clear it is for analyzing release impact by comparing time windows, but does not explicitly state when not to use it or mention alternatives. Context is clear but lacks exclusions.

    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?

    Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. Description adds that it doesn't expose credentials, which is a security-relevant behavioral detail beyond 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?

    Single sentence, efficient, front-loaded with key information. No wasted words.

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

    Completeness4/5

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

    With zero parameters and an output schema present, the description adequately covers what the tool returns. Could potentially mention it's non-destructive, but annotations already cover that. Security note adds value.

    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?

    No parameters, schema coverage 100% (vacuous). Description adds meaning by listing the contents (version, toolsets, etc.) beyond the empty schema. Baseline for 0 params is 4.

    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?

    Clearly states the tool retrieves local package version, enabled toolsets, safety limits, and analysis capabilities without exposing credentials. This is distinct from sibling tools like get_website or get_metrics which focus on website data.

    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?

    No explicit guidance on when to use versus alternatives. Context implies it's for initial setup or health check, but lacks when-not or specific alternative naming.

    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?

    Annotations already indicate readOnly, idempotent, and non-destructive nature. The description adds valuable context about ambiguous matches returning bounded candidates instead of guessing, which is not covered by 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?

    Two concise sentences with no extraneous words. Front-loaded with verb and resource, efficiently conveying purpose and a key behavioral detail.

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

    Completeness5/5

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

    For a simple lookup tool with 2 clearly described parameters and an output schema present, the description provides sufficient context. No additional explanation needed.

    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 0% schema description coverage, the description adds meaning to the 'query' parameter by listing acceptable input types (UUID, domain, URL, name). The 'candidateLimit' parameter is explained via 'bounded candidates'.

    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 resolves a website UUID using various identifiers (UUID, domain, URL, name) and handling ambiguous matches. This distinctively separates it from siblings like get_website (retrieve data given UUID) and list_websites (list all).

    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 for resolving a website to its UUID, but does not explicitly state when to use this tool versus alternatives (e.g., get_website when UUID known). No exclusions or when-not conditions are provided.

    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

umami-compass MCP server

Copy to your README.md:

Score Badge

umami-compass 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/webcredo/umami-compass'

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