Skip to main content
Glama
matious89pl

umami-analytics-mcp

by matious89pl

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools have distinct purposes, but the high number (32) and some similar-sounding names (e.g., get_events vs get_metrics for events, get_realtime vs get_active_visitors) may cause confusion. Descriptions are clear enough to differentiate, but an agent might misselect without careful reading.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern in snake_case: get_*, list_*, report_*. This is a predictable and clear naming scheme that helps an agent quickly grasp the tool's action and subject.

    Tool Count3/5

    With 32 tools, the surface is heavy. While the analytics domain is broad and many tools serve distinct analytical needs, the count exceeds the 'heavy' threshold (16-25). Some tools could potentially be consolidated (e.g., report_* tools share similar structure).

    Completeness5/5

    The tool set covers the full analytics lifecycle: website and team metadata, time-series data, event tracking, session details, real-time, saved reports, segments, and various report types (funnels, goals, retention, etc.). It includes utility tools like get_website_daterange and get_website_values for validation. No obvious gaps for a read-only analytics server.

  • Average 3.7/5 across 32 of 32 tools scored. Lowest: 2.6/5.

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

    • No community issues in the last 6 months
    • 12 commits in the last 12 weeks
    • No stable releases found
    • 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?

    The description adds no behavioral context beyond what the readOnlyHint annotation already conveys. It does not disclose performance characteristics, data freshness, or any other operational details that would aid the agent.

    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 extremely concise (one sentence, 11 words). While brevity is valued, it under-specifies a tool with 19 parameters, missing important structural guidance. It earns a 3 for being short but not adequately informative.

    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, the description leaves many aspects unexplained: how multiple fields interact, filtering options, data scope, and performance implications. For a complex tool with many undocumented parameters, this is insufficient.

    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 schema description coverage at only 26%, the majority of parameters are undocumented. The description merely provides an example of the 'fields' parameter but does not explain the meaning or usage of other parameters, failing to compensate for the coverage gap.

    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 performs a 'multi-dimensional breakdown across one or more fields', which is a specific verb-resource combination. However, it does not differentiate from sibling report tools like report_attribution or report_funnel, so it lacks explicit sibling distinction.

    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 (e.g., other report tools). There is no mention of context, prerequisites, or exclusions, leaving the agent without decision support.

    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 indicate readOnlyHint=true. The description adds that it returns ranked {x, y} rows and is a top-N breakdown. No contradictions, but lacks details on default limit, pagination, or ordering beyond schema.

    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?

    Very concise: two sentences that convey core functionality without redundancy. Could benefit from a brief explanation of filter parameters but remains 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?

    Given 21 parameters and no explanation of most filters, the description leaves significant gaps. The return format is covered by the output schema, but the agent cannot infer how to use dimensions vs filters. More context is needed for a tool this complex.

    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 coverage is only 33%, and the description only explains the 'type' parameter (with enum hints) and 'url' as alias. The remaining 18+ parameters (filters like os, browser, etc.) are not explained, leaving the agent to guess their role.

    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?

    Clearly states it provides a top-N breakdown by a single dimension over a date range, with specific mentions of type=event and url=path. Distinguishes from siblings like get_stats (aggregate) and report_breakdown (multi-dimension), though not explicitly.

    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 when-to-use or when-not-to-use guidance. The description hints at usage for custom events and alias but does not differentiate from many sibling tools like get_website_values or report_breakdown.

    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 indicate readOnlyHint=true. The description adds that the tool produces a breakdown by UTM parameters, but does not disclose additional behaviors such as pagination, result limits, or required permissions beyond what annotations provide.

    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 concise sentence, front-loaded with the verb 'Breakdown', efficiently communicating core purpose. A second sentence could add parameter guidance without losing conciseness.

    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 18 parameters (many undocumented) and many sibling reporting tools, the description is insufficient. It does not explain how to filter results or leverage parameters, and though an output schema exists, the description itself is too sparse to enable correct invocation 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 only 22% (only 4 of 18 parameters documented). The description does not mention any parameters or explain the purpose of the many undocumented filter fields (e.g., os, tag, city, etc.), leaving the agent without guidance on how to narrow the breakdown.

    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 provides a breakdown of traffic by UTM parameters (source, medium, campaign, content, term), distinguishing it from sibling reporting tools that target other dimensions. However, it does not specify the output format (e.g., counts, metrics) or whether it groups or filters by these parameters.

    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 implies usage when UTM-based breakdown is desired, but it offers no explicit guidance on when to use this tool versus alternatives like report_breakdown or report_attribution, nor does it state 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.

  • Behavior3/5

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

    Annotations already indicate read-only (readOnlyHint=true). Description adds the return structure (arrays of x,y objects), but does not disclose pagination, rate limits, or authentication requirements beyond the schema.

    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 with no redundancy. Immediately states the resource and output format, making it 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?

    With 20 parameters and low schema coverage, the description should explain key filter parameters. It does not, making the tool less usable for agents without additional context.

    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 30%, but the description only mentions the 'unit' parameter. The other 19 parameters (os, tag, url, etc.) are not explained, leaving an agent to guess their purpose.

    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 time series of pageviews and sessions bucketed by unit, with the exact return format. This distinguishes it from sibling tools like get_stats or get_realtime.

    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 on when to use this tool vs alternatives like get_metrics, get_stats, or get_realtime. The description does not mention prerequisites or 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 declare readOnlyHint=true; description adds the endpoint path but no additional behavioral traits like rate limits or required permissions. No contradiction, but minimal value 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?

    Two sentences, front-loaded with purpose, no redundancy. Efficient and easy to scan.

    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 19 parameters and many optional filters, the description omits filtering behavior, date range interplay, and output schema usage. Lacks depth for a complex 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 coverage is low (26%); description only explains the goals parameter structure. Many filtering parameters (os, url, etc.) remain undocumented, not compensated by description.

    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 reports progress on goals, specifies the goal structure (type, value), and references the Umami endpoint, distinguishing it from siblings like report_breakdown or report_funnel.

    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 on when to use this tool vs alternatives like report_breakdown, report_funnel, or get_metrics. The description does not mention prerequisites or exclusion criteria.

    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, so the description adds the timeline nature and fields but no additional behavioral traits like pagination or limits. Adequate but not enhanced 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?

    Single sentence is concise and front-loaded with key information. Efficient but could benefit from slight structuring (e.g., listing returned fields more clearly).

    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 5 parameters and an output schema, the description is brief but covers core purpose. However, it lacks completeness in usage context and fails to address time range handling (covered in schema but not reiterated).

    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% with descriptions per parameter. Description does not add extra meaning beyond the schema, providing no additional context for parameters.

    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?

    Description clearly states 'Ordered pageview/event timeline for a single session' and lists fields returned. The phrase 'data-level session replay' provides strong context and distinguishes it from siblings like get_session (basic info) and get_session_properties.

    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 on when to use this tool vs. alternatives like get_session or get_session_stats. It does not mention exclusions or context where this tool is preferred.

    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 declare readOnlyHint, description adds pagination and filter context. 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?

    Single concise sentence covering key aspects: pagination, date range, fields, search/filters. 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?

    Output schema exists, description gives overview of returned fields. Lacks parameter usage details but adequate overall.

    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?

    Low schema coverage (33%) and description does not detail individual parameters beyond mentioning search/filters. Schema descriptions partially compensate for some fields.

    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?

    Clearly states it lists paginated sessions with fields listed. Distinguishes from singular get_session by name but not explicit in description.

    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 on when to use this vs alternatives like get_session. Implicit from naming but not stated.

    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. The description adds no extra behavioral context such as rate limits, required permissions, or data scope. It merely restates the aggregate nature, which is already implied by the tool name and 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, front-loaded with key info, no wasted words. The structure is efficient for quick comprehension.

    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 an output schema existing, the description omits important context like how parameters affect aggregation, relationship to sibling tools (e.g., get_pageviews vs get_session_stats), and any limitations. With 18 parameters and many siblings, the description is too brief to fully guide the 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 input schema has 18 parameters with only 22% description coverage. The description does not explain any filtering parameters (e.g., os, url, browser) or how they combine. This forces the agent to rely solely on parameter names without additional semantic guidance.

    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 'aggregate' and the resource 'session totals', listing specific metrics (pageviews, visitors, visits, countries, events) and emphasizing 'session-centric overview'. This distinguishes it from sibling tools like get_pageviews or get_stats.

    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 this tool versus alternatives like get_pageviews or get_realtime. The description implies a session-level aggregate use case, but does not state exclusions or compare with siblings, leaving the agent to infer.

    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?

    The readOnlyHint annotation already declares the tool is safe. The description adds minimal behavioral context (e.g., no mention of error handling or performance), but does not contradict the annotation. With annotations present, this is adequate but not exceptional.

    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, well-formed sentence that conveys essential information without redundancy. Every word is meaningful.

    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?

    The description is sufficient for a simple fetch operation given the presence of an output schema and well-documented parameters. However, more context on when to use this vs. other session tools 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?

    Schema coverage is 100% with good schema descriptions (e.g., 'Umami session ID (from list_sessions)'). The tool description adds no additional parameter meaning beyond what the schema already 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 action ('Fetch'), the resource ('a single visitor session's details'), and the key constraint ('by session ID'). It effectively distinguishes the tool from its siblings such as get_session_activity and get_session_properties.

    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 over alternatives. The description only implies the need for a session ID, but doesn't address prerequisites or context, especially given 28 sibling tools.

    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, so the description is not required to state it's read-only. It adds value by disclosing that a previous-period comparison is included by default, which is a key behavioral trait. However, it does not address rate limits, pagination, or data freshness, but these are less critical given the read-only annotation.

    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 long, front-loads the main purpose, and contains no unnecessary words. Every sentence contributes functional value (metrics list and comparison behavior).

    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 19 parameters and low schema coverage, the description is somewhat thin. It covers the core metrics and comparison, but does not explain how the many filtering parameters work. The existence of an output schema partially compensates, but for a tool with numerous optional filters, more context on their interaction would improve completeness.

    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 26%, so the description must compensate by explaining the purpose of the 19 input parameters. However, it only lists the output metrics, not how filters like os, tag, url, etc. affect the aggregation. This leaves a significant gap in parameter understanding for the agent.

    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 provides aggregate metrics (pageviews, visitors, visits, bounces, totaltime) for a website over a date range, and mentions a comparison feature. This specific verb+resource combination distinguishes it from siblings like get_pageviews, which likely returns only pageview data, or get_metrics for other 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?

    The description does not specify when to use this tool versus alternatives (e.g., get_pageviews, report_*). It gives no guidance on exclusions or prerequisites, leaving the agent to infer usage from 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 indicate readOnlyHint=true, so the read-only nature is covered. The description adds that roles are included in the output, providing some behavioral context 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, no extraneous words. Every part 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?

    With full schema coverage and an output schema, the description need not explain return values. It covers the core purpose, though it could mention pagination or search filtering.

    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% with descriptions for all 4 parameters. The tool description does not add further explanation beyond what the schema already 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 tool lists team members with their roles, which is specific and distinct from sibling tools like list_teams (all teams) or get_team (single team).

    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 on when to use this tool versus alternatives. No usage scenarios or exclusions 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 mark the tool as readOnlyHint=true. The description confirms it is a list operation, which is consistent. No additional behavioral traits beyond the annotation are disclosed (e.g., pagination behavior, filtering nuances). The description is neutral relative to 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 that efficiently conveys the tool's purpose. It is front-loaded with the verb. However, it could be slightly more structured by mentioning key parameters or usage context without becoming verbose.

    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?

    Given the tool has four parameters with full schema descriptions, an output schema, and annotations indicating read-only behavior, the one-sentence description suffices. It covers the essential purpose, and the structured fields handle the rest. No critical gaps remain.

    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% with each parameter well-described. The tool description adds no extra meaning over the schema; it does not explain how parameters interact or provide usage context beyond the schema. Baseline 3 applies due to high schema coverage.

    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 ('List') and the resource ('saved segments and cohorts defined for a website'). It distinctly identifies what the tool does and differentiates it from siblings like 'get_segment' which likely retrieves a single segment. No ambiguity remains.

    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 (e.g., get_segment for a specific segment). It does not mention prerequisites, limitations, or 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?

    The description adds context that steps are ordered and the window parameter is in hours, which is not fully covered by annotations (which only declare readOnlyHint=true). It does not contradict annotations. However, it omits details like pagination or data freshness.

    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 concise sentence that front-loads the primary purpose and key parameters. Every word adds value with no redundancy or filler.

    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 (20 parameters, many optional filters) and the presence of an output schema, the description covers the core concept but lacks detail on how filters affect the funnel or error conditions. It is adequate for simple use but not comprehensive.

    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 description explains the steps structure and window meaning, but the schema already partially covers these (e.g., schema describes steps as 'Ordered funnel steps (2–8)...'). Moreover, the description is slightly inaccurate (missing 'url' type in the step type enumeration) and does not address the 18 other parameters.

    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 is a 'conversion funnel across an ordered list of steps', which is specific and distinct from sibling report tools like report_attribution or report_breakdown. The verb 'report' and resource 'funnel' are directly identifiable.

    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 such as report_goals or report_journey. The description does not mention prerequisites, exclusions, or preferred scenarios, leaving the agent to infer from 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 indicate readOnlyHint=true, so the description does not need to restate that. It adds parameter mapping but does not disclose other behavioral traits like data freshness, rate limits, or pagination. Given the annotations cover the safety profile, the description provides minimal additional 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 extremely concise: one sentence for purpose followed by parameter clarifications. It front-loads the core purpose and avoids redundancy. Every word serves a purpose, making it efficient for agent consumption.

    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 complexity (8 parameters, 4 required, output schema exists), the description is adequately complete. It covers the essential purpose and key parameter meanings. The output schema handles return values, so that omission is acceptable. However, it could provide more context on how parameters interact (e.g., model and type combinations) or typical use cases.

    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 description coverage is high (88%). The description adds value by clarifying the semantics of 'model' (first-click/last-click), 'type' (target dimension), and 'step' (target value) beyond the schema's enum and description fields. This helps an agent understand the parameter roles better than schema alone.

    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 states 'Conversion attribution', which clearly identifies the tool's function. The parameter explanations ('model is first-click or last-click; type is the target dimension; step the target value') further clarify its use. However, it does not explicitly differentiate this tool from sibling report tools like report_revenue or report_funnel, which could also involve attribution-like analyses.

    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 conversion attribution analysis but provides no explicit guidance on when to use this tool versus alternatives. No when-not-to-use or exclusion criteria are mentioned, leaving the agent to infer context from the tool name and sibling list.

    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 provide readOnlyHint=true. Description adds context on returned content (type, parameters) but no further behavioral traits.

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

    Conciseness5/5

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

    Single sentence, no wasted words, front-loaded with verb.

    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?

    Simple tool with one param and output schema; description covers purpose and return. Lacks only usage exclusions.

    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 100% with description 'Saved report ID.'. Description echoes 'by ID' without adding new semantics.

    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 verb 'fetch', resource 'saved report's full definition', and specifics 'type, parameters'. Distinct from siblings like 'list_reports'.

    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?

    Implied usage for fetching report definition by ID, but no explicit guidance on when not to use or alternatives among many 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?

    The readOnlyHint annotation already marks it as a safe read operation. The description adds that it fetches a single definition, which is consistent. However, it does not disclose any additional behavioral traits beyond the annotation.

    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 is front-loaded, efficient, and contains no superfluous information. It 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?

    The tool is simple with two required parameters and a read-only operation. The description, combined with the schema and annotations, provides sufficient context for an AI agent to use it correctly. The presence of an output schema further reduces the need to explain return values.

    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% with both parameters having descriptions in the schema. The tool description does not add any extra meaning beyond what the schema already 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 'Fetch', the resource 'single segment/cohort definition', and the mechanism 'by ID'. It distinguishes this tool from its sibling 'list_segments' which retrieves all segments.

    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 when you have a specific segment ID, but does not explicitly state when to use versus alternatives like list_segments. No exclusions or prerequisites are mentioned.

    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?

    The description adds context by listing returned fields, but annotations already declare readOnlyHint=true, so no behavioral traits beyond that are disclosed. The description could mention that the tool does not modify data, but annotations already cover the safety profile.

    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 with no wasted words. It front-loads the purpose and specific fields returned, making it easy for an agent to quickly understand.

    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 single-parameter input, read-only annotation, and existence of an output schema, the description adequately covers what the tool does. It lists the returned fields, which complements the output schema. A small improvement could be clarity on requiring an existing website ID, but the schema already implies that.

    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%, and the description does not add additional meaning to the 'websiteId' parameter beyond what the schema provides. The schema's description already tells the agent to obtain the UUID from list_websites, so the tool description adds no extra value.

    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 fetches one website's metadata, listing specific fields (name, domain, share settings, createdAt), and distinguishes from sibling tools like list_websites. The verb 'Fetch' and resource 'one website's metadata' are precise and 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?

    The description implies use when you need a single website's details by ID, but it lacks explicit guidance on when to use this tool over alternatives, such as search or list tools for broader queries. No exclusions or prerequisites are mentioned.

    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, so the tool's safety profile is clear. The description adds behavioral context about listing multiple report types but does not disclose pagination, sorting, or other behaviors. With annotations present, the description adds limited value beyond the annotation.

    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 efficient sentence that provides the core action and key option without unnecessary words. Every element 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?

    Given an output schema exists and parameters are fully documented in the schema, the description covers the main action well. Could mention default behavior without parameters, but overall adequate for a simple listing 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 coverage is 100% with parameter descriptions already present. The description adds minimal value by clarifying websiteId scoping, but otherwise the schema provides complete 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.

    Purpose5/5

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

    The description clearly states 'List saved reports' with specific types (funnels, goals, journeys) and optional website scoping, which effectively differentiates this tool from sibling tools like get_report or report_funnel.

    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 listing saved reports but provides no explicit guidance on when to use this tool versus siblings, nor any exclusions or alternatives. The optional website scoping is mentioned but no context on when to use it.

    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, so safety is clear. Description adds the concept of cohort retention but does not disclose additional behavioral traits like data aggregation or time boundaries beyond schema.

    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, front-loaded with key concept 'cohort retention over the selected period'. No unnecessary words; 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?

    Given the presence of an output schema (no need to describe returns), 5 required parameters with full schema coverage, and readOnly annotations, the description is complete enough. Could hint at output format but 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 coverage is 100% with descriptions for all 5 parameters. Description adds no extra meaning to parameters beyond what the schema already provides, 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?

    Description clearly states 'cohort retention' and 'how many users return on subsequent days', specifying verb (report), resource (retention), and scope (cohort). Differentiates from siblings like report_funnel or report_journey.

    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?

    Description implies use for retention analysis but does not explicitly say when to use this tool vs alternatives like report_breakdown or report_goals. No exclusions or context 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?

    The description is consistent with the readOnlyHint annotation but adds no behavioral context beyond what the annotation already provides.

    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 efficiently conveys the tool's purpose without any superfluous text.

    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?

    Given the simple input (1 required parameter), presence of an output schema, and a readOnlyHint annotation, the description sufficiently covers the tool's functionality.

    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 schema already provides 100% coverage and a description for the single parameter (teamId), so the tool description adds no new semantic meaning.

    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 (Fetch), resource (single team's metadata), and method (by ID), distinguishing it from sibling tools like list_teams.

    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 when a team ID is available, but no explicit guidance on when to use this tool over alternatives or 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.

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true. Description adds no additional behavioral traits beyond listing scope and availability, which is adequate but not extra.

    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 key information, no wasted words. Efficient and to the point.

    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?

    With three parameters fully described in schema, readOnlyHint annotation, and output schema present, the description completes the picture for a simple list 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 coverage is 100%. Description does not add meaning beyond schema for parameters (page, search, pageSize). Baseline score applies.

    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?

    Description clearly states verb 'list', resource 'teams', scope 'you belong to', and specifies output fields '(id, name, role)'. Distinguishes from siblings like get_team (singular) and get_team_members.

    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?

    Implied usage: use to list teams you belong to. Mentions availability on Cloud and self-hosted, but lacks explicit when-to-use, when-not-to-use, or alternatives.

    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, so the description does not need to reiterate that the operation is read-only. The description adds the behavioral context of being a preliminary discovery tool, but it does not disclose any other behavior (e.g., pagination, limits).

    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, front-loaded with the action and scope, followed by a specific use case. Every word earns its place; 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?

    Given the presence of an output schema and well-documented input parameters, the description provides sufficient context for a read-only discovery tool. It could be slightly improved by mentioning that the output is a list of distinct values, but the name and title already imply that.

    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 (83%), so the schema already documents most parameters. The description adds the concept of 'over a date range' but does not provide additional parameter-level meaning beyond what is in the 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?

    Description clearly states the action 'List the distinct values seen for a column over a date range' and includes a specific use case ('discover valid filter values'). It distinguishes itself from sibling tools by focusing on distinct field values, which is unique among the get_* tools.

    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?

    Description provides clear context for when to use the tool: 'useful to discover valid filter values ... before filtering other queries.' It implies the tool should be used as a preliminary step, but no explicit exclusions or alternatives are mentioned.

    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, so the description adds value by noting the depth constraint and start/end step flexibility, but doesn't disclose other behavioral traits like data freshness or sorting.

    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 (two sentences), front-loads the key purpose, and includes essential parameter constraints without waste.

    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 7 parameters (1 required), presence of output schema, and annotations, the description provides adequate context for understanding the tool's core behavior, though it could mention response format or performance implications.

    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% and the description references key parameters (steps, start/end step), but does not add significant meaning beyond the schema 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 the tool reports 'most common navigation paths' with configurable depth and optional start/end step pinning, distinguishing it from sibling report tools.

    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?

    It explains when to use (for navigation path analysis) and the key parameters (steps, pinned steps), but does not explicitly contrast with alternative tools or state when not to use.

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

  • Behavior4/5

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

    Annotations show readOnlyHint=true, consistent with description. Description adds prerequisite 'requires revenue events', which is useful context 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?

    Two sentences: first states purpose and prerequisite, second highlights required parameter. Front-loaded, no 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?

    With output schema and well-documented parameters, description is compact yet sufficient for an informed agent. Could include a hint about return structure but not essential.

    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 75%, baseline 3. Description only adds 'currency is required', which is already in schema's required field. No additional meaning for other parameters.

    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?

    Description clearly states 'Revenue analytics over the period', specific verb+resource, and differentiates from siblings like report_breakdown, report_funnel by focusing on revenue.

    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?

    Mentions prerequisite of revenue events, but does not provide explicit guidance on when to use this tool vs alternatives like report_breakdown or report_utm.

    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 indicate readOnlyHint=true, and the description adds that it's real-time and covers visitors in the last few minutes, providing useful behavioral context beyond the annotation.

    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, front-loaded with key information, no unnecessary words. Highly concise and well-structured.

    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?

    Given the tool's simplicity (one parameter, read-only, has output schema), the description is complete. It explains the scope and nature of the data without needing to detail return values.

    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%, and the description does not add extra meaning beyond what the schema already provides. The schema description for websiteId is informative, so baseline score of 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 specific verb 'get' and resource 'active visitor count', and clarifies it's real-time visitors in the last few minutes, distinguishing it from other analytics 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 for current active visitors but does not explicitly state when to use this tool versus alternatives like get_pageviews or get_metrics. No exclusion criteria 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 indicate readOnlyHint=true, and the description uses 'Explore' which aligns. The description adds context about view options but doesn't disclose other behavioral traits like pagination or rate limits. With annotations present, this is adequate but not exceptional.

    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 the primary purpose, and every sentence adds value. 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?

    Given the tool's complexity (7 params, output schema exists), the description covers the core functionality and key parameter `select` well. It doesn't detail startAt/endAt/range, but those are described in the schema. Return values are covered by output schema. Slightly incomplete for a fully self-contained understanding, but sufficient.

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

    Parameters5/5

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

    Schema description coverage is 100%, but the description adds significant meaning by explaining the `select` enum values in detail, noting that propertyName is required when select='values', and mentioning optional eventName scoping. This goes beyond the schema 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 'Explore custom event properties' and lists the specific views via the `select` parameter, differentiating it from sibling tools like get_events (general events) and get_metrics (metric aggregates).

    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 exploring custom event data with different views, but it doesn't explicitly state when to use this tool versus alternatives, nor does it provide when-not-to-use guidance.

    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 declare readOnlyHint=true, which the description aligns with. The description adds context by specifying that properties are 'set via identify calls', which is valuable behavioral context beyond the annotation. 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?

    A single sentence that front-loads the action and resource. Every word is necessary, no fluff.

    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 read-only list operation with no output schema concerns (output schema exists), the description covers what the tool does and what data it returns. With good annotations and schema, no gaps remain.

    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% with clear parameter descriptions. The description does not add extra meaning to the parameters but provides context about the tool's output (custom properties). Baseline 3 is appropriate as schema already documents parameters sufficiently.

    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 noun ('custom properties attached to a single session'), clearly distinguishing it from sibling tools like 'get_session' (which likely returns session metadata) and other 'get_' tools that return different 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?

    The description implies use when needing custom properties set via identify calls, but does not explicitly state when to avoid using it or mention alternatives among the many sibling tools. Usage context is clear but exclusions are absent.

    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 openWorldHint=true, so safety profile is covered. The description adds return fields (id, name, domain, createdAt) and emphasizes the tool as a dependency. However, it does not disclose pagination behavior, rate limits, or authentication requirements beyond the schema.

    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 with no waste. First sentence states purpose and scope; second sentence provides imperative call-to-action and lists key return fields. Information is front-loaded and efficient.

    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?

    Output schema exists, so return fields are not strictly required. The description still lists key fields. It explains the tool's role as a prerequisite. For a list tool with pagination parameters, it lacks mention of pagination behavior, but the schema covers that. Overall, adequate for the complexity.

    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 mentions 'including team sites' which relates to the includeTeams parameter, but this is already described in the schema. No additional parameter explanations beyond schema 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 the action ('List') and resource ('websites'), and specifies scope ('every website you can access, including team sites'). It distinguishes this tool from siblings as the primary listing tool for websites, unique among many sibling tools.

    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?

    Explicitly states 'CALL THIS FIRST' and explains why ('every other tool needs a website ID from here'). This provides clear when-to-use guidance and establishes prerequisite relationships with other tools.

    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. The description adds value by disclosing that credentials/tokens are stripped from the response, which is behavioral info beyond annotations. No other traits needed.

    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 fluff. Front-loaded with the core purpose ('Return the authenticated account's profile'). Every sentence adds value.

    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?

    Given no parameters, presence of output schema, and simple functionality, the description fully covers what the tool returns and the privacy note. No gaps.

    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 no parameters, so baseline is 4. The description doesn't need to add param info; it's complete without any parameter details.

    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 returns the authenticated account's profile, listing specific fields (id, username, role, isAdmin, teams) and noting credential stripping. This is a specific verb+resource that distinguishes it from siblings that fetch other 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?

    Usage is implied: use it to get your own account info. However, there is no explicit guidance on when to use vs alternatives, nor any when-not-to-use conditions. Siblings make it clear but description lacks direct guidance.

    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 declare readOnlyHint=true, which the description supports. The description adds critical behavioral context: availability varies by Umami version and it 'falls back gracefully.' This goes beyond the annotation by warning the agent about potential unavailability and fallback behavior, enhancing 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?

    The description is extremely concise: two sentences that are front-loaded with the tool's purpose. Every word adds value, with no redundancy or filler. Ideal for an agent to quickly grasp the function.

    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?

    Given the output schema exists (handling return values), the description only needs to clarify the tool's purpose and unique traits. It does so by specifying the scope ('recent events/sessions/series') and version considerations. For a simple tool with one parameter, this is 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?

    Schema coverage is 100% (only websiteId), so baseline is 3. The description adds value by specifying how to obtain the UUID ('from list_websites'), which aids the agent in parameter preparation. This extra context justifies a score above baseline.

    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 that this tool provides a 'richer real-time snapshot' for a website, listing specific elements (events/sessions/series). It distinguishes itself from siblings like get_active_visitors (likely just visitor count) and get_events (raw events) by emphasizing richness and version-dependent behavior.

    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 implicitly suggests using this tool for a comprehensive real-time overview ('richer'), but it does not explicitly state when to use it versus simpler alternatives like get_active_visitors or get_events. It mentions version-dependent availability and graceful fallback, providing some context but lacking clear guidance on selection.

    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 indicate read-only; description adds that it returns timestamps and usage guidance. No contradictions, and additional context beyond annotations is provided.

    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 primary action, no unnecessary words.

    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?

    Given the simple tool (1 param, read-only, output schema exists), the description sufficiently covers purpose, usage, and parameter source.

    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% with a clear description for websiteId. Description does not add new parameter-level information beyond 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?

    Description states specific verb 'Return' and resource 'earliest and latest timestamps for a website', clearly distinguishing from siblings like get_stats or get_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?

    Explicitly tells when to use ('before querying stats/metrics'), providing clear context. No exclusions or alternatives mentioned.

    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?

    The description, combined with the readOnlyHint annotation, accurately indicates the tool is a safe read operation. It adds behavioral context by specifying the output is a time series of event counts, which is useful beyond the annotation alone.

    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—two sentences that front-load the core purpose and then add a usage guideline. Every word serves a purpose, with no redundancy 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?

    Given that the tool has 6 parameters, all documented in the schema, and an output schema exists, the description is sufficiently complete. It mentions the output type (time series of event counts) and provides a clear alternative. Minor omission: it doesn't detail the output structure, but the output schema covers that.

    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 schema description coverage is 100%, meaning all parameters are already well-documented in the schema. The description adds 'bucketed by unit' but this is also present in the schema. Thus, the description provides minimal additional parameter meaning beyond the 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 clearly defines the tool as returning a time series of custom-event activity over time, bucketed by a unit. It distinguishes itself from the sibling get_metrics(type='event'), which returns a ranked list of event names, making the purpose unambiguous.

    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 explicitly states when to use this tool versus an alternative: 'For a ranked list of event names use get_metrics(type='event').' This provides clear guidance on tool selection based on the desired output format.

    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-analytics-mcp MCP server

Copy to your README.md:

Score Badge

umami-analytics-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/matious89pl/umami-analytics-mcp'

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