Skip to main content
Glama
hholen

@lodd/mcp-server

by hholen

@lodd/mcp-server

First-party web analytics for AI agents. You add a 2KB script, Lodd collects your site's traffic, and your agent queries your own data over MCP. It's the analytics platform, not a connector to one.

42 MCP tools covering traffic, events, funnels, conversions, sources, performance, and actor analytics. No dashboard. Your agent queries structured JSON directly.

Quick start

npx -y @lodd/mcp-server

Set LODD_API_KEY in your environment. Get a key at lodd.dev.

Related MCP server: Gizmo Analytics

Claude Code / Cursor

Add to your MCP config:

{
  "mcpServers": {
    "lodd": {
      "command": "npx",
      "args": ["-y", "@lodd/mcp-server"],
      "env": {
        "LODD_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Desktop / claude.ai

Add https://api.lodd.dev/mcp as an MCP connector. OAuth handles auth automatically.

What you can ask

  • "How's traffic this week?"

  • "Show me the pages with the highest bounce rate"

  • "Build a funnel from homepage to signup to purchase"

  • "Which traffic sources drive the most conversions?"

  • "Something unusual is happening today. Investigate."

Tools

42 tools across analytics, breakdowns, events, conversions, actors, annotations, trackable links, and account management. Full reference at lodd.dev/docs.

REST API

Same data is also available via REST at api.lodd.dev/v1/. API docs at lodd.dev/api. OpenAPI spec at lodd.dev/openapi.yaml.

Pricing

Free up to 2,500 events/month. EUR 9.99/month for 100K events. All tools included on both tiers.

Available Tools

40 tools
create_annotationA

Record a user-facing change that may affect analytics. Call after deploying changes to pages, flows, or tracking. Skip dependency updates, CI config, and refactors with no visible impact.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
contentYesWhat changed (e.g. 'Simplified checkout to single step')
timestampNoWhen it happened (ISO 8601). Defaults to now.

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the tool records a change and may affect analytics, but fails to describe side effects, idempotency, rate limits, or what happens on multiple calls. This is minimal for a create operation.

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, with each sentence adding distinct value: first states purpose, second gives usage guidelines. No redundant or filler content.

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

Completeness4/5

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

For a simple creation tool with three well-documented parameters and no output schema, the description is fairly complete. It explains when to use and what to avoid. It could mention the return value, but this is not critical.

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% (all parameters described), so baseline is 3. The description does not add parameter-specific details beyond the schema; it provides context for the 'content' field but no new 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 tool records a user-facing change that may affect analytics, with specific guidance on when to call (after deploying changes to pages, flows, or tracking) and when to skip (dependency updates, CI config, refactors with no visible impact). This distinguishes it from sibling tools like list_annotations and others.

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

Usage Guidelines4/5

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

The description provides explicit when-to-use and when-not-to-use scenarios, giving clear context. However, it does not name alternative tools for other cases, which would strengthen the guidance.

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

create_api_keyA

Generate a new API key for the current user. Use this to create keys for managed agents, CI pipelines, or other tools that need access to your Lodd analytics. The key is shown only once — save it immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoLabel for this key (e.g. 'managed-agent', 'cursor', 'ci-pipeline')unnamed

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses a critical behavioral trait: 'The key is shown only once — save it immediately.' This is essential for user awareness. With no annotations, this disclosure helps the agent understand the key's non-retrievable nature.

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 concise sentences with no wasted words. It front-loads the core action and adds critical behavioral info in the second sentence, making it efficient and easy to parse.

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 simplicity (one optional parameter) and no annotations or output schema, the description covers the essential purpose, usage context, and a key behavioral detail. It could optionally mention the return type, but it's sufficient for most agents.

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 the name parameter fully documented. The description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool generates a new API key for the current user, with specific examples like managed agents and CI pipelines. This distinguishes it from siblings like list_api_keys and revoke_api_key, which perform different operations on keys.

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

Usage Guidelines4/5

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

The description explicitly says to use this tool for creating keys for managed agents, CI pipelines, etc., providing clear context. It does not explicitly state when not to use it or list alternatives, but the sibling tools imply alternatives for listing and revoking keys.

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

create_siteA

Register a new website for analytics tracking. Returns the site ID, tracking secret, and the script tag to embed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the site (e.g. 'My Blog')
domainYesDomain to track (e.g. 'example.com'). Do not include https:// or www.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description notes that it returns site ID, tracking secret, and script tag. However, it does not disclose idempotency, error behavior for duplicate domains, or authorization requirements.

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

Conciseness5/5

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

Two concise sentences with no wasted words. The key action and return values are front-loaded.

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 explains the return values adequately given no output schema. However, it omits behavioral details like idempotency and potential errors, which would enhance 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%, so the schema already documents both parameters well. The description adds no additional semantic context beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the action ('Register a new website for analytics tracking') and specifies the resource (website). It distinguishes itself from sibling tools that list or retrieve 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 creation but does not provide explicit guidance on when to use this tool over alternatives like creating an API key or annotation, nor does it mention prerequisites or restrictions.

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

exclude_my_ipA

Exclude an IP address from analytics tracking for a site. Prevents the user's own visits from appearing in the data. In Claude Code, detect the IP with curl -s api.ipify.org first. In conversation agents, ask the user to check their IP at api.ipify.org and paste it. Must be done per site.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain (e.g. 'example.com') or UUID
ip_addressNoThe IP address to exclude. If omitted, uses the request's origin IP (only works from local MCP).

TDQS

A4.8/5.0
Behavior4/5

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

Although there are no annotations, the description explains the behavioral consequences (prevents user's visits from being tracked) and the prerequisite (per site). It could mention side effects or reversibility, but for a simple configuration action, this is sufficient.

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 concise with four sentences, each adding distinct value: purpose, effect, usage guidance for different agents, and per-site requirement. It is front-loaded with the primary action.

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 simplicity of the tool, the description covers all necessary context: what it does, what prerequisite is needed (IP detection), and that it must be done per site. No output schema is needed, and the parameter descriptions are adequate.

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?

The schema already describes both parameters (site, ip_address) with 100% coverage. The description adds valuable context: 'If omitted, uses the request's origin IP (only works from local MCP)'. This clarifies an important behavior not inferable from the schema alone.

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

Purpose5/5

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

The description clearly states the tool's action ('Exclude an IP address from analytics tracking for a site') and its purpose ('Prevents the user's own visits from appearing in the data'). This is specific and distinct from any sibling tools, which are mainly for retrieving analytics data or managing sites, not excluding IPs.

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

Usage Guidelines5/5

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

The description provides explicit instructions for different agent types: in Claude Code, detect IP with curl; in conversation agents, ask the user to check their IP. It also clarifies that the operation must be done per site. This clearly guides when and how to use the tool.

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

get_active_actorsA

List distinct actors (opaque hashed identifiers) with their event counts, first/last seen, and total revenue. Actors are customer-hashed — Lodd never sees the original identifier. Only includes events where an actor was set.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d

TDQS

A3.6/5.0
Behavior3/5

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

The description reveals that actors are hashed (opaque) and that Lodd never sees the original identifier, and that only events with an actor are included. However, it does not discuss authorization, rate limits, or any side effects. Given no annotations, more detail would be helpful for a read tool.

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

Conciseness5/5

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

Three sentences with no wasted words. The description is front-loaded with the core action and then adds clarifying details. Every sentence 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 tool is a simple list with 3 parameters and no output schema, the description adequately covers the subject. It explains the nature of actors and the filter. It lacks mention of pagination or ordering, but overall is sufficient.

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 all parameters described. The description adds global context about hashing but no additional parameter-specific semantics beyond what the schema provides. Baseline 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 the verb 'list', resource 'distinct actors', and includes the returned fields (event counts, first/last seen, total revenue). It distinguishes itself by noting the hashed nature of actors, which sets it apart from sibling tools like get_actor_activity or get_actor_retention.

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. Sibling tools like get_actor_activity and get_actor_retention exist but are not mentioned. There is no when-not-to-use or context for selection.

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

get_actor_activityA

Get the event timeline for a specific actor hash. Shows all events in chronological order with properties and revenue. The actor is an opaque identifier — Lodd does not know who it represents.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
actorYesThe actor hash to look up (from get_active_actors)
limitNoMax results (1-1000)
periodNoTime period30d

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that the actor is opaque and events are chronological with properties and revenue, but does not mention pagination, limits, error handling, or authentication needs.

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 in the first sentence, no filler, concise and effective.

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?

For a tool with 4 parameters, no output schema, and no annotations, the description covers basics but lacks details on output format, pagination, and error scenarios. More behavioral context would improve completeness.

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

Parameters4/5

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

Schema coverage is 100% (baseline 3). The description adds value by linking the actor parameter to get_active_actors and explaining the output order, going 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 states the tool retrieves the event timeline for a specific actor hash, specifies the output includes chronological events with properties and revenue, and clarifies that the actor is an opaque identifier. It distinguishes from siblings like get_active_actors and get_actor_retention.

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

Usage Guidelines3/5

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

The description mentions the actor comes from get_active_actors (implied prerequisite) but does not explicitly state when to use this vs alternatives like get_actor_retention or get_event_counts, nor 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.

get_actor_retentionA

Get weekly cohort retention by actor hash. Groups actors by the week they first appeared, then shows how many returned in weeks 1-4. Actors are opaque hashes — no personal data is stored or exposed. Requires 2+ weeks of data for meaningful results.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
periodNoTime period (use 90d for meaningful cohorts)90d

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full responsibility. It clarifies that actors are opaque hashes and no personal data is stored or exposed, adding important privacy context beyond the basic function. It stops short of stating safety properties like idempotency, but still provides meaningful behavioral insight.

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 only two sentences, both concise and informative. It avoids unnecessary detail while covering purpose, mechanics, and a usage hint. Every sentence 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 tool's simplicity (2 parameters, no output schema), the description is largely complete. It explains the cohort logic and data requirement. A minor gap is the lack of description of the output format, but overall it provides sufficient context for an agent to use the tool correctly.

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

Parameters4/5

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

The schema already describes both parameters (site and period) with 100% coverage. The description adds value by recommending using '90d' for meaningful cohorts, which goes beyond the default value. This extra guidance helps the agent choose appropriate input.

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 retrieves weekly cohort retention by actor hash, and explains the grouping logic. This is a specific verb-resource combination that distinguishes it from sibling analytics tools which focus on 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 Guidelines3/5

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

The description mentions a prerequisite (2+ weeks of data for meaningful results), providing some guidance on when to use. However, it does not explicitly state when not to use or suggest alternative tools, which limits its helpfulness for decision-making.

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

get_analyticsA

Get aggregate analytics for a site (visitors, page views, bounce rate, etc.) with automatic comparison to the previous period. Returns average_duration in seconds. Optional filters segment the result by country, browser, os, device type, UTM source, or referrer.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain (e.g. 'example.com') or UUID
periodNoTime period: 'today', 'yesterday', '7d', '30d', '90d', or 'YYYY-MM-DD..YYYY-MM-DD'30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description carries the burden. It discloses automatic period comparison and filter behavior, which are useful. However, it does not mention rate limits, pagination, or behavior with missing data. Still, it provides key behavioral traits 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 only: the first front-loads the core purpose and comparison feature, the second clarifies return value and filter options. Every sentence adds value without redundancy.

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

Completeness3/5

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

Given no output schema, the description partially prepares for the response by mentioning aggregate metrics and average_duration. However, it omits details on comparison output format (e.g., percentage change) and potential limitations. Adequate for a simple tool but not thorough.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter is documented. The description adds context by summarizing filters as segmentation options and specifying average_duration units. This adds marginal value over the schema, meeting the baseline for high 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 verb 'Get' and resource 'aggregate analytics for a site', listing example metrics (visitors, page views, bounce rate) and highlighting the unique automatic comparison feature. This distinguishes it from siblings like get_timeseries or get_realtime by focusing on aggregate data with period-over-period comparison.

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

Usage Guidelines3/5

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

The description implies usage for overall site analytics but does not explicitly state when to use this tool versus alternatives like get_pages or get_traffic_sources. No exclusions or alternative recommendations are provided, leaving the agent to infer based on context.

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

get_bot_reportA

Show bot and crawler traffic that's been filtered from analytics. Groups by user agent, showing sessions, page views, countries, and first/last seen. Useful for understanding what's crawling your site (AI crawlers, search engines, SEO tools).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It describes grouping and data fields but does not disclose whether the tool is read-only, any authorization requirements, rate limits, or what happens when no bot traffic exists. The implication is that it's a read-only report, but not stated explicitly.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The first sentence front-loads the verb and resource, and every sentence adds distinct value: purpose, grouping, and use case.

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 adequately covers the tool's purpose and output fields. However, without an output schema, it would benefit from a brief mention of the response format (e.g., 'Returns a list of user agents with metrics'). For a simple reporting tool, this is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the three parameters. The description adds context about the data fields (countries, first/last seen) but does not add new parameter semantics beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Show') and resource ('bot and crawler traffic'), clearly distinguishing this tool from siblings like get_analytics or get_traffic_sources. It explicitly states the grouping and data fields, leaving no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description provides clear context ('Useful for understanding what's crawling your site'), but does not explicitly state when not to use this tool or mention alternatives among the many analytics siblings. A brief note on when to prefer get_analytics or get_traffic_sources would strengthen this.

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

get_content_groupsA

Group pages by URL pattern and get aggregate metrics per group. Useful for comparing how blog vs docs vs app pages perform. Patterns use SQL LIKE syntax where % matches anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
groupsYesGroups to analyze
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided. Description implies read-only behavior (get aggregate metrics) and discloses SQL LIKE syntax. However, it does not explicitly state mutability, permissions, rate limits, or other side effects.

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 efficient sentences: first states purpose, second provides use case and pattern syntax. No filler or repetition.

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?

No output schema; description does not specify what aggregate metrics are returned (e.g., pageviews, visitors?). Lacks information on pagination or limits. For a parameter-rich tool with no output schema, this is incomplete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds context on URL pattern syntax (SQL LIKE) and the grouping concept, which is helpful but not required.

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

Purpose5/5

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

Clearly states the tool groups pages by URL pattern and returns aggregate metrics. Provides concrete examples (blog vs docs vs app) which distinguish it from sibling tools like get_pages or get_analytics.

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?

Gives a use case (comparing page groups) but no explicit guidance on when not to use or alternatives among siblings. The example implies a comparison scenario, but lacks boundaries.

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

get_conversion_pagesA

Find which pages lead to a specific conversion event. Shows pages viewed before the event in the same session, with conversion rate and average time to convert. Useful for identifying high-converting content.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d
event_nameYesThe conversion event name (e.g. 'signup_click', 'purchase')

TDQS

A4/5.0
Behavior4/5

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

No annotations provided; description clearly states what data is returned (pages, conversion rate, time to convert) and the session context. Lacks details on auth or rate limits but covers the main 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?

Three sentences: purpose, details, usefulness. No redundancy, front-loaded, 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?

Describes core functionality and metrics well, but lacks explicit output structure (e.g., list of objects). Given no output schema, slightly more detail would help, but still adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline 3. Description adds context about the output (conversion rate, time) but does not explain parameter syntax or constraints 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?

Clear verb 'find' and resource 'pages leading to a specific conversion event'. Distinguishes from siblings like get_pages and get_events by focusing on conversion attribution.

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 identifying high-converting content, but no explicit comparison to alternatives like get_funnel or get_event_sequences, and no 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.

get_countriesA

Get visitor geography breakdown by country. Call twice with different periods (e.g. '2026-04-01..2026-04-07' vs '2026-04-08..2026-04-14') to compare growth across countries. Optional filters segment by browser, os, device type, UTM source, or referrer.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does not explicitly state that the tool is read-only or non-destructive, nor does it mention rate limits, pagination, or response structure. However, the read intent is implicit.

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

Conciseness5/5

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

Three concise sentences: one for purpose, one for usage tip, one for filters. No fluff, each sentence adds value.

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 clear purpose and filters, the description does not mention what the response contains (e.g., a list of countries with counts or percentages). With no output schema, this omission forces the agent to guess the return format.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's mention of optional filters adds no value beyond the schema, as the schema already describes each filter. No parameter details are enhanced.

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 'get visitor geography breakdown by country' with a specific verb and resource. The usage tip about comparing periods distinguishes its purpose from sibling analytics tools like get_pages or get_traffic_sources.

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 suggests calling twice with different periods to compare growth, which is a helpful usage guideline. It does not explicitly mention when not to use or compare to siblings, but the context of the tool's purpose is clear.

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

get_dropoff_destinationsA

Given a URL, show where visitors go next or if they leave the site. Useful for understanding why people leave key pages like /pricing. The '(exited)' row means the session ended after viewing that page.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax destinations to return
periodNoTime period30d
from_urlYesURL path to analyze (e.g. '/pricing'). Substring match.
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses the meaning of the '(exited)' row, which is a key behavioral trait. It does not mention any destructive actions, which is appropriate for a data retrieval tool. The description is transparent about the output semantics.

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 action and provide immediate context. Every sentence 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.

Completeness4/5

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

While the tool has 10 parameters and no output schema, the description sufficiently explains the main output ('where visitors go next') and the special '(exited)' row. The schema covers the parameters. The description could benefit from slightly more detail on the output structure (e.g., list of destination pages), but it is adequate for an agent to understand its role.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all 10 parameters. The tool description adds minimal value beyond the schema, primarily by providing an example URL ('/pricing') and clarifying the substring match for 'from_url'. Given high schema coverage, a baseline 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 the tool's purpose: 'Given a URL, show where visitors go next or if they leave the site.' It uses a specific verb ('show') and resource ('where visitors go next'), and the parenthetical explanation of the '(exited)' row adds clarity. This distinguishes it from siblings like get_entry_exit_pages or get_session_paths.

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

Usage Guidelines4/5

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

The description provides a specific use case: 'Useful for understanding why people leave key pages like /pricing.' This implies when to use the tool, but does not explicitly state when not to use it or list alternatives. It gives clear context for its application.

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

get_entry_exit_pagesA

Get entry pages (where sessions start) and exit pages (where sessions end). Shows which pages attract new visits and where users leave. Useful for identifying effective landing pages and high-exit pages that may need improvement. Optional filters segment by country, browser, os, device type, UTM source, or referrer.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the tool is a read operation (getting data), lists filter options, and implies non-destructive behavior. However, it does not explicitly state auth requirements, rate limits, or pagination behavior, which would strengthen 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 two sentences: the first defines the core function, the second adds utility and filter context. It is front-loaded with the most important information and contains no extraneous words.

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

Completeness3/5

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

While the purpose and filters are clear, the description omits details about return format (e.g., field names, whether counts are provided). Given no output schema, explaining the response structure 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%, so baseline is 3. The description adds aggregate context by listing filter categories (country, browser, os, etc.) but does not enhance individual parameter meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool gets entry and exit pages, defining each as where sessions start and end. This differentiates it from sibling tools like get_pages or get_traffic_sources by focusing on the specific entry/exit dimension.

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 cases (identifying effective landing pages and high-exit pages) but does not explicitly state when to use this tool vs alternatives like get_pages or get_funnel. No exclusions or alternative tool names are provided.

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

get_event_countsA

Get a summary of all custom events tracked on a site, showing event names with their total count and unique sessions. Optionally segment by country, browser, os, device type, UTM source, or referrer (matched against the session's page views).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It describes the output (event names, total count, unique sessions) and notes segmentation matches session page views. However, it lacks details on potential limitations, pagination, or result ordering. For a read-only tool, it is moderately transparent.

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 fluff. The first sentence states the main action and output; the second adds optionality. 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?

Given eight parameters, no output schema, and no annotations, the description covers the key output fields (event names, total count, unique sessions) and segmentation. It lacks details on output format or limits, but for a summary tool it is largely complete.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds context about segmentation options but does not significantly deepen parameter understanding 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 returns a summary of custom events with counts and unique sessions, and lists optional segmentation dimensions. It distinguishes from siblings like get_events and get_event_timeseries which likely provide raw events or time series data.

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

Usage Guidelines4/5

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

The description implies usage for aggregated event summaries with optional filtering, but does not explicitly contrast with sibling tools. The context of siblings like get_events and get_event_timeseries provides implicit guidance, but explicit when-to-use/alternatives would improve it.

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

get_eventsA

Get individual custom event records with their properties. Optionally filter by event name.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d
event_nameNoFilter to a specific event name

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so the description carries the burden. It only states it's a 'get' operation (non-destructive), but lacks details on authentication needs, rate limits, error behavior, or response structure. Minimal behavioral disclosure.

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

Conciseness5/5

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

Extremely concise, single sentence with no wasted words. Front-loaded with the key action and object. Every part is necessary.

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

Completeness3/5

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

Given no output schema, the description could explain return properties or usage notes. However, parameters are well-covered by schema descriptions. Minimal but adequate for a straightforward list tool with clear schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no new meaning beyond the schema (e.g., 'Optionally filter by event name' is redundant with the event_name parameter description). No value added.

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

Purpose5/5

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

Clearly states the tool retrieves individual custom event records with properties and optionally filters by event name. Distinguishes from siblings like get_event_counts (aggregated) and get_event_timeseries (time series) by emphasizing individual records.

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 retrieving detailed event records, but no explicit guidance on when to use this over related tools (e.g., get_event_counts, get_event_timeseries) or when not to use it. Missing alternative naming or context.

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

get_event_sequencesB

Given a target event (like 'signup_complete'), find what actions typically precede it. Shows both pageviews and events before the target, ranked by frequency. step_position=1 is immediately before the target event.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
target_eventYesThe event to analyze (e.g. 'signup_complete')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
lookback_stepsNoHow many steps back to look (1-10)
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It explains the output format (ranked preceding actions, includes step_position meaning) and implies read-only behavior. However, it does not mention whether the tool requires authentication, has rate limits, or if the data is real-time or historical.

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 long with no redundant content. The first sentence immediately states the core purpose, and subsequent sentences add relevant details efficiently.

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 11 parameters and no output schema, the description is insufficient. It does not cover the available filters (e.g., filter_os, period) nor the structure of the results beyond ranking. A more complete description would mention filtering options and output format.

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

Parameters3/5

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

The input schema has 100% description coverage for all 11 parameters, so the description adds no additional meaning to input parameters. It does, however, explain the output field 'step_position', which is not in the schema, providing minor value beyond the schema.

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

Purpose4/5

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

The description clearly states that the tool finds preceding actions for a target event, with specific verb 'find' and resource 'event sequences'. It mentions showing both pageviews and events ranked by frequency, which distinguishes it from sibling tools like get_event_counts or get_funnel, but does not explicitly name alternatives.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives, nor any conditions for not using it. It only explains the meaning of step_position=1, which is a minor usage hint.

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

get_event_timeseriesB

Get event counts bucketed over time for a specific event. Useful for seeing how event frequency changes. Optional filters segment by country, browser, os, device type, UTM source, or referrer (matched against the session's page views).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
periodNoTime period30d
intervalNoBucket interval
filter_osNoOS substring match (e.g. 'iOS')
event_nameYesThe event name to get timeseries for
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It mentions that referrer filtering matches against session page views, but it omits details about output format (e.g., time buckets returned), ordering, pagination, error handling, or timezone interpretation.

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 immediately follow with filter options. Every word contributes meaning.

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

Completeness2/5

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

Given 10 parameters, 2 required, and no output schema, the description is insufficiently complete. It does not describe the return structure (e.g., array of {timestamp, count}), bucket interval behavior, or default/edge cases. A more thorough description is needed for proper tool understanding.

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 baseline is 3. The description adds minimal value by rephrasing filter capabilities and noting referrer matching context, but it does not clarify parameter interactions or format expectations beyond what 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 ('Get'), the resource ('event counts bucketed over time'), and the scoping ('for a specific event'). It distinguishes from siblings like get_event_counts (which likely returns total counts without time bucketing) and get_event_sequences.

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 indicates usefulness ('seeing how event frequency changes') and lists optional filters, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternative tools for non-time-series event data.

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

get_funnelA

Compute a conversion funnel across an ordered sequence of pageview URLs and custom events. Returns per-step session counts and conversion rate relative to step 0. Steps must all occur within the same session, in order. Optional filters constrain which sessions enter the funnel.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
stepsYesOrdered steps — at least 1, typically 2-5
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It reveals important constraints (same session, in order) and the computation nature (per-step counts, conversion rate), but does not explicitly state that the tool is read-only or non-destructive. It adequately describes the behavioral aspects for a typical analytics tool.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the primary purpose, and every word adds value. No redundancy or unnecessary detail.

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

Completeness4/5

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

Given the tool has 9 parameters and no output schema, the description covers the core functionality, output (per-step counts and conversion rate), and key constraints. It could mention return format or pagination, but for the complexity level, it is sufficiently complete.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value beyond the schema by explaining the session constraint and that filters constrain which sessions enter the funnel. This provides context that is not evident from parameter descriptions alone.

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 verbs ('Compute a conversion funnel') and clearly defines the resource ('pageview URLs and custom events'). It explains the output ('per-step session counts and conversion rate relative to step 0') and distinguishes from sibling tools like get_event_sequences by focusing on funnel conversion with session constraints.

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

Usage Guidelines4/5

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

The description states when to use the tool ('Compute a conversion funnel across an ordered sequence') and provides constraints ('Steps must all occur within the same session, in order'). It mentions optional filters but lacks explicit guidance on when not to use or alternatives, though the context is clear.

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

get_pagesA

Get pages ranked by traffic. Call twice with different periods to compare page performance over time. Optionally filter by URL path and/or segment by country, browser, os, device type, UTM source, or referrer. Returns page titles when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
url_containsNoFilter pages containing this path segment, e.g. '/blog'
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description transparently discloses that the tool returns pages ranked by traffic, supports optional filters, and includes page titles when available. It does not mention pagination or rate limits, but what is stated is accurate and helpful.

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 concise with four sentences that are front-loaded: 'Get pages ranked by traffic' immediately states the core purpose. Every sentence adds value without redundancy.

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

Completeness4/5

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

For a tool with 10 parameters and no output schema, the description covers the primary use case, optional filters, and return behavior. It lacks details on sorting order and pagination, but overall it provides sufficient context for an AI agent to use it correctly.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds context by grouping filters (e.g., 'segment by country, browser, os') and noting the ranking behavior, but it does not significantly enhance understanding 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 'Get pages ranked by traffic', which is a specific verb and resource. It distinguishes from sibling tools like get_entry_exit_pages and get_traffic_sources by focusing on page rankings with filtering options.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: 'Call twice with different periods to compare page performance over time.' It implies the tool is for comparing periods and optionally filtering, though it does not explicitly exclude alternatives.

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

get_performanceA

Get page load time metrics (average, median, p95) grouped by page URL, device type, country, or browser. Only includes data from pages with load time measurements. Useful for identifying slow pages and correlating performance with engagement.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d
group_byNoDimension to group bypage

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It describes what is returned and that it includes filtered data, but does not explicitly state read-only nature or disclose authentication/rate limit requirements.

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

Conciseness5/5

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

Two concise sentences, no redundancy, front-loaded with main action and then context.

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?

Adequate for a performance metrics tool with 4 parameters, though missing details like how period affects data and no output schema. Still sufficiently complete for agent to understand functionality.

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 covers all 4 parameters with descriptions, but description adds value by explaining grouped dimensions and output metrics (average, median, p95), which are not in 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 verb 'Get' and resource 'page load time metrics' with specific metrics (average, median, p95) and grouping dimensions. Distinct from sibling tools focusing on other analytics.

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?

Describes condition 'Only includes data from pages with load time measurements' and suggests use case 'identifying slow pages', but does not provide explicit when-to-use vs alternatives or 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.

get_realtimeA

Get the number of currently active visitors on a site (visitors with activity in the last 5 minutes)

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID

TDQS

A4.3/5.0
Behavior4/5

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

Discloses the definition of 'active' (activity in last 5 minutes), which is crucial. No annotations provided, so description carries burden; it adequately covers behavioral expectations for a read-only operation.

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, no redundancy; every word earns its place.

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?

Complete for a simple tool: explains output (count) and key context (5-minute window). No output schema needed; description suffices.

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?

Single parameter 'site' is fully described in schema (100% coverage). Description adds no additional meaning beyond 'Site domain or UUID'.

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

Purpose5/5

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

Clearly states the action ('Get'), resource ('number of currently active visitors'), and context ('in the last 5 minutes'), distinguishing it from historical 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 Guidelines4/5

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

Implicitly indicates real-time use case, but does not explicitly contrast with siblings like get_analytics or get_timeseries; context is clear enough.

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

get_session_pathsB

Find the most common page sequences visitors follow. Returns paths like '/blog → /pricing → /signup' with session counts. Useful for understanding navigation patterns and identifying the most common journeys to conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax paths to return (1-1000)
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
max_stepsNoMaximum pages per path (2-20)
min_sessionsNoMinimum sessions for a path to appear
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It states it returns paths with counts, but does not explicitly confirm it is a read-only operation, discuss authentication, rate limits, or any other side effects.

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 redundant information. Front-loaded with purpose and example. Very concise and well-structured.

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 11 parameters and no output schema, description gives a general idea and example. However, it lacks detailed return format information (e.g., fields in response). Schema covers parameter details, but output description is minimal.

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 parameters are already documented. The description adds an example of output format but does not significantly enhance parameter meaning beyond schema descriptions.

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?

Description clearly states it finds common page sequences and provides an example. However, it could better differentiate from siblings like get_funnel or get_dropoff_destinations, which also deal with paths.

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?

Description mentions usefulness for navigation patterns and conversion journeys, but does not specify when to use this tool vs alternatives like get_funnel or get_entry_exit_pages, nor provides any exclusions or prerequisites.

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

get_session_scoresA

Classify sessions into engagement buckets: bounced (1 page), browsed (2-3 pages), engaged (4+ pages or event fired), converted (conversion event fired). Optionally specify which event defines 'converted'.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
conversion_eventNoEvent name for 'converted' bucket (e.g. 'signup_complete'). If omitted, any event = converted.
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A4.2/5.0
Behavior4/5

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

Without annotations, description explains classification logic (page counts and event conditions) and optional conversion event. Does not cover potential side effects or authorization, but clearly states behavioral criteria.

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. First sentence defines core functionality, second adds optional parameter note. Information is efficiently presented and front-loaded.

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?

Provides sufficient context for the tool's purpose and classification rules. Lacks explicit output format description, but given the name and sibling tools, the return type is somewhat implied. No output schema provided.

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%, but description adds value by defining the engagement buckets that parameters like conversion_event influence. This clarifies the overall context and parameter purpose 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?

Description explicitly states 'Classify sessions into engagement buckets' with clear definitions for bounced, browsed, engaged, and converted. Distinguishes from sibling tools like get_analytics by specifying session-level classification.

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 usage for session engagement analysis but lacks explicit when-to-use or when-not-to-use guidance. No comparisons to siblings like get_session_paths or get_analytics are provided.

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

get_snapshotA

Quick today vs yesterday comparison: visitors, top referrer, top country, and duration trends

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It discloses the comparison scope (today vs yesterday) but lacks details on auth requirements, rate limits, or behavior with missing data.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words, efficiently conveying the tool's purpose and key metrics.

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

Completeness4/5

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

For a simple snapshot tool with one parameter and no output schema, it lists the returned metrics, but lacks details on return format or structure, which would be helpful for an AI agent.

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 one parameter (site) already described. The description adds no additional parameter details, meeting baseline for high 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 it provides a quick today vs yesterday comparison of specific metrics (visitors, top referrer, top country, duration trends), distinguishing it from more detailed analytics tools like get_analytics or get_timeseries.

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 a quick snapshot, but does not explicitly state when to use this tool over alternatives or when not to use it. No exclusions or alternative tools are mentioned.

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

get_source_conversionsA

Compare traffic sources by conversion rate for a specific event. Shows which referrers, UTM campaigns, and trackable links drive the most conversions, plus average time to convert per source.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d
event_nameYesThe conversion event name (e.g. 'signup_click', 'purchase')

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses the tool's computational result (comparison of conversion rates and average time) but does not state that it is a read-only query, mention authentication needs, rate limits, or whether data is aggregated. It is functional but minimally transparent.

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 the primary purpose, followed by specific outputs. Every clause adds value; no filler or redundancy.

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

Completeness4/5

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

For a tool with 4 parameters, no output schema, and no annotations, the description covers the core functionality and expected results. However, it could mention returned data structure, sorting (e.g., by conversion rate), or how limit affects results, though 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 100% with clear parameter descriptions (e.g., 'event_name' explanation includes examples). The tool description adds no additional parameter-level meaning beyond what the schema provides, so baseline score of 3 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?

The description clearly states the tool compares traffic sources by conversion rate for a specific event, listing specific metrics (referrers, UTM campaigns, trackable links, average time to convert). This distinguishes it from siblings like get_traffic_sources, which likely lacks the conversion focus.

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 analyzing source conversion performance but provides no explicit guidance on when to use this tool versus alternatives like get_event_counts or get_conversion_pages. No exclusions or context are given.

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

get_tech_breakdownA

Get browser, operating system, and device type distribution in one call. Optional filters segment by country, browser, os, device type, UTM source, or referrer.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results per category (1-1000)
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavior. It describes a read-only operation ('Get') that returns distribution data. However, it does not disclose authentication needs, rate limits, or potential side effects. The description is adequate but lacks details beyond basic functionality.

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 with no unnecessary words. The first sentence states the main purpose, and the second lists optional filters. It is front-loaded and efficient, earning its place.

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

Completeness3/5

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

Given 9 parameters and no output schema, the description covers the main purpose and filters but does not specify return format (e.g., structure of distribution data). For a tool with no output schema, more detail on the response would improve completeness. Adequate but with gaps.

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 adds value by summarizing filter dimensions (country, browser, OS, etc.) and indicating they are for segmentation. However, the schema already individually describes each filter parameter, so the description does not significantly enhance understanding 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 states the tool retrieves distribution of browser, operating system, and device type in one call. It mentions optional filters for segmentation. This distinguishes it from sibling analytics tools like get_traffic_sources or get_countries, as it specifically focuses on tech stack breakdown.

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

Usage Guidelines4/5

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

The description implicitly indicates usage when needing browser, OS, and device type distributions. It lists optional filters for segmentation but does not explicitly state when not to use or provide comparisons to alternatives. However, given the sibling list, no direct alternative exists, making usage clear.

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

get_timeseriesA

Get visitor and page view counts bucketed over time (hourly or daily). Returns an array of {date_label, page_views, unique_visitors} objects. Optional filters segment by country, browser, os, device type, UTM source, or referrer.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
periodNoTime period30d
intervalNoBucket interval. Auto-selected based on period if omitted.
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It correctly describes the output and filters but omits potential behaviors like latency, rate limits, or permission requirements. For a read operation this is minimally adequate but lacks depth.

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 return format, second lists filters. No redundant information. Front-loaded with key value. Every sentence 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 no output schema and no annotations, the description provides a good overview. It covers the return shape, available filters, and interval behavior. Could mention pagination or limits, but for a straightforward time-series tool this is largely sufficient.

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%, so the description does not need to repeat all parameter details. However, it adds value by summarizing filter types in a list and noting that interval auto-selects based on period, which is not in the schema description. This goes 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?

Clearly states verb 'Get', resource 'visitor and page view counts bucketed over time', and specifies return format. Distinguishes from siblings like get_realtime (real-time) and get_snapshot (point-in-time) by focusing on time-bucketed data.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. The description implies usage for historical trends but does not contrast with alternative tools like get_analytics or get_event_timeseries. Context is implied by the tool name and sibling list, but not stated.

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

get_traffic_sourcesA

Get traffic sources: referrers, trackable links, and UTM campaigns combined. Shows where visitors are coming from. Call twice with different periods to compare source mix over time. Optional filters segment by country, browser, os, device type, UTM source, or referrer.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
limitNoMax results (1-1000)
periodNoTime period30d
filter_osNoOS substring match (e.g. 'iOS')
filter_browserNoBrowser substring match (e.g. 'Chrome')
filter_countryNo2-letter country code (e.g. 'US')
filter_utm_sourceNoExact UTM source (e.g. 'twitter')
filter_device_typeNoDevice type: 'desktop' | 'mobile' | 'tablet'
filter_referrer_containsNoReferrer substring (e.g. 'google')

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It discloses the tool combines three source types and supports filtering, but does not explicitly state it is read-only, nor describe rate limits, pagination, or response structure. While functional, it could add more 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?

Three sentences with no wasted words. The first sentence states the core purpose, the second a usage tip, the third lists filters. 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?

Given the tool has 9 parameters and no output schema, the description is fairly complete. It states the output type (sources), suggests usage for comparison, and enumerates filters. It does not describe output format or sorting, but for a data retrieval tool this is acceptable.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 9 parameters. The description adds value by grouping the filters ('Optional filters segment by...'), but does not provide additional syntax or format details beyond what the schema offers. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it retrieves traffic sources including referrers, trackable links, and UTM campaigns, which is a specific verb-resource combination. It distinguishes from sibling tools like get_analytics (broader) and get_source_conversions (conversion-focused).

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

Usage Guidelines4/5

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

The description provides a concrete usage tip: 'Call twice with different periods to compare source mix over time.' It also lists available filters, giving context on when to use them. However, it does not explicitly state when not to use this tool or mention alternatives like get_source_conversions for conversion data.

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

get_usageA

Get current month's event usage and plan limits. Returns plan type, events used, monthly limit, and percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the returned fields but does not mention authentication requirements, side effects, caching behavior, or error conditions. For a read-only tool, more context on safe usage would be beneficial.

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 with two sentences. The first sentence states the action and scope, the second lists key return values. No superfluous words, and the most important information is front-loaded.

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 no output schema, the description adequately lists return fields. However, it does not mention data recency, pagination, or any limitations. For a simple usage check, this is mostly sufficient, but additional context (e.g., 'returns live data') could improve completeness.

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

Parameters4/5

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

The tool has zero parameters, so the input schema requires no additional explanation. With 100% schema description coverage, the description adds no unnecessary parameter info. Baseline for 0 params is 4, and the description correctly avoids over-explaining.

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 retrieves current month's event usage and plan limits, and lists the specific return fields (plan type, events used, monthly limit, percentage). It uses a specific verb 'Get' and resource 'usage', distinguishing it from sibling 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 checking current usage/plan limits but does not clarify when to use this tool over alternatives like get_analytics or get_event_counts. No explicit when-to-use or when-not-to-use guidance is provided.

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

list_annotationsB

List annotations (deploy notes, change records) for a site within a time period.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
periodNoTime period30d

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits (e.g., whether it is read-only, safe, or has pagination). The description lacks transparency beyond the obvious listing operation.

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 sentence, efficiently conveying the core purpose without unnecessary words. However, it could be restructured to front-load the most critical information.

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?

The tool has only two simple parameters and no output schema, but the description fails to mention any details about the return format, ordering, or limits. For a list tool, this is insufficient context for an agent to understand what to expect.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description mentions 'within a time period', which aligns with the period parameter, but adds no new meaning beyond the schema's property 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), the resource (annotations), and the context (for a site within a time period). It distinguishes from sibling tools like create_annotation.

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 or whether it is appropriate for read-only scenarios. The sibling tools include create_annotation, but no comparison is made.

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

list_api_keysA

List all API keys for the current user. Shows key prefix, name, creation date, and last used date. Does not reveal full keys.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses that full keys are not revealed, which is a key behavioral trait. It lacks details on permissions or rate limits but is sufficient for a simple read operation.

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 main purpose, and every word adds value. No fluff or repetition.

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

Completeness4/5

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

Given the tool has no parameters and no output schema, the description adequately covers what it does and what it returns. It could mention pagination but is complete for a simple list.

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

Parameters4/5

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

There are zero parameters, so the schema coverage is 100%. The description does not need to add parameter info. Baseline score of 4 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 the tool lists all API keys for the current user, using specific verb-resource phrasing. It distinguishes from sibling list tools by specifying the resource as 'API keys'.

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

Usage Guidelines4/5

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

The description implicitly indicates when to use this tool (to see existing API keys) but does not explicitly exclude alternatives or provide when-not-to-use guidance. However, given sibling tools include create_api_key and revoke_api_key, the context is clear.

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

list_membersB

List all users who have access to a site, with their roles (owner or member).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states it lists users with roles but does not mention permissions, pagination, limits, or confirm a read-only nature. Lacks depth for a standalone description.

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, front-loaded with the core purpose. Every word adds value, no redundancy.

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?

For a simple list tool with one parameter and no output schema, the description is adequate but not comprehensive. It could mention pagination or result format. Siblings like list_sites might have similar structure, but overall it's minimally complete.

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 single parameter 'site' described as 'Site domain or UUID'. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'list' and the resource 'users who have access to a site', and specifies the roles output (owner or member). This distinguishes it from siblings like list_sites and list_annotations.

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 prerequisites or exclusions mentioned. The description only states what it does, not when 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.

list_sitesA

List all websites you have access to with their domains and IDs

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It states that all accessible websites are listed, but lacks details on pagination, sorting, or what 'access' means (e.g., owned vs. shared). The description is minimally adequate.

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-structured sentence that immediately conveys the tool's purpose. No extraneous words, information is front-loaded, and 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?

Given the tool has no parameters, no output schema, and no annotations, the description is sufficient for a simple list operation. It could mention if results are ordered or paginated, but for basic functionality it is complete enough.

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

Parameters4/5

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

The input schema has no parameters, so schema description coverage is 100% trivially. The description adds meaning by specifying the output includes domains and IDs, which is useful. Since there are no parameters, the baseline is 4, and the description meets it.

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 all websites the user has access to, including domains and IDs. It uses a specific verb ('list') and resource ('websites'), and distinguishes itself from siblings like 'create_site' or 'share_site'.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. However, the tool is self-explanatory as a basic retrieval listing all accessible sites. Given the simplicity, implicit usage is clear but could benefit from stating it's the go-to for site enumeration.

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

remove_memberA

Remove a user's access to a site. Only the site owner can do this. Cannot remove the owner.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
emailYesEmail address of the user to remove

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided. The description discloses that the tool is a mutation (removes access), specifies authorization (owner only), and a limitation (cannot remove owner). While it covers key behavioral traits, it lacks details on reversibility or side effects.

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 with three short sentences, no filler, and front-loaded with the core action. Every sentence adds value.

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 no output schema and no annotations, the description covers the essential aspects: the action, authorization, and a key constraint. It does not specify return values or error conditions, which is acceptable under the rule that output schema is not present.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not repeat parameter details but adds context (e.g., 'user to remove') that reinforces the schema's intent. No additional semantic value beyond that.

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 'Remove a user's access to a site' with specific verb and resource. It adds constraints (only site owner, cannot remove owner) that distinguish it from sibling tools like 'list_members' and 'share_site'.

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

Usage Guidelines4/5

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

The description explicitly states who can perform the action ('Only the site owner') and what cannot be done ('Cannot remove the owner'). This provides clear context for usage, though it does not explicitly mention when not to use or suggest alternatives.

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

revoke_api_keyA

Permanently deactivate an API key. The key will immediately stop working. Use list_api_keys to find key IDs. Cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYesThe UUID of the key to revoke (from list_api_keys)

TDQS

A4.5/5.0
Behavior4/5

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

Discloses irreversibility and immediate effect ('permanently', 'cannot be undone', 'immediately stop working'). No annotations present, so description carries full burden and handles it well.

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

Conciseness5/5

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

Three concise sentences with no waste, front-loaded with core action and immediate consequences.

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 simple operation, description covers purpose, prerequisites, and consequences completely. No output schema needed. Sibling tools provide additional context.

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

Parameters4/5

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

Schema has one parameter with description; tool description adds context by linking to list_api_keys, enhancing understanding beyond schema alone.

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 'Permanently deactivate an API key' with specific verb and resource, and distinguishes from siblings like list_api_keys and create_api_key.

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 instructs to use list_api_keys to find key IDs, providing clear context. No explicit exclusions or alternatives, but simple action makes it adequate.

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

share_siteA

Give another user access to a site's analytics. They must have a Lodd account (signed up at lodd.dev). Only the site owner can share. The invited user gets a notification email.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite domain or UUID
emailYesEmail address of the user to invite

TDQS

A3.9/5.0
Behavior3/5

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

No annotations, so description carries burden. Mentions notification email but omits details like reversibility, permissions granted, or success/error response.

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 redundant information. Efficient and clear.

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?

Simple action with no output schema; description covers core behavior but leaves out result details (e.g., confirmation or failure handling).

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 covers both parameters fully (site domain/UUID, email with pattern). Description adds no new parameter-specific meaning beyond prerequisites.

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 verb ('give access') and resource ('site's analytics'), distinguishing it from sibling tools like list_members or remove_member.

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?

Provides context: only site owner can share, invited user needs Lodd account, and notification email is sent. Lacks explicit 'when not to use' but implies usage boundaries.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 40 tool updatesv0.1.15
    • First observedcreate_annotation
    • First observedcreate_api_key
    • First observedcreate_site
    • First observedcreate_trackable_link
    • First observedexclude_my_ip
    • First observedget_active_actors
    • First observedget_actor_activity
    • First observedget_actor_retention
    • First observedget_analytics
    • First observedget_bot_report
    • First observedget_content_groups
    • First observedget_conversion_pages
    • First observedget_countries
    • First observedget_dropoff_destinations
    • First observedget_entry_exit_pages
    • First observedget_event_counts
    • First observedget_event_sequences
    • First observedget_event_timeseries
    • First observedget_events
    • First observedget_funnel
    • First observedget_link_clicks
    • First observedget_pages
    • First observedget_performance
    • First observedget_realtime
    • First observedget_session_paths
    • First observedget_session_scores
    • First observedget_snapshot
    • First observedget_source_conversions
    • First observedget_tech_breakdown
    • First observedget_timeseries
    • First observedget_traffic_sources
    • First observedget_usage
    • First observedlist_annotations
    • First observedlist_api_keys
    • First observedlist_members
    • First observedlist_sites
    • First observedlist_trackable_links
    • First observedremove_member
    • First observedrevoke_api_key
    • First observedshare_site

TDQS

A3.8/5.0
Disambiguation4/5

Most tools have distinct purposes, but some overlap exists among analytics retrieval tools like get_analytics, get_snapshot, get_timeseries, and get_realtime, which could cause misselection if descriptions aren't carefully read. Overall, the set is well-differentiated.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_analytics, create_annotation, list_members, share_site). No mixing of conventions, making it predictable for an agent.

Tool Count4/5

40 tools is on the higher side, but each addresses a specific analytics need (events, funnels, sessions, actors, etc.). While somewhat heavy, it remains justified for a comprehensive analytics platform.

Completeness4/5

Covers a wide range of analytics functionality including site management, detailed queries, events, funnels, actors, and API key management. Missing some CRUD operations (e.g., update/delete site, edit annotations) but core workflows are well-covered.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI models to interact with Matomo analytics through a complete MCP server implementation. Provides tools for retrieving analytics data, managing sites, and generating reports with zero configuration setup.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Privacy friendly, cookieless web analytics built MCP-first. "Add analytics to my Next.js app" → an AI agent runs the setup_analytics_for_site tool, picks the right install snippet, edits your layout file, and verifies the script is loading. OAuth onboarding, no API keys to paste.
    28
    41
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that provides Google Analytics and Search Console data as tools for AI assistants, enabling natural language queries for web analytics, SEO performance, and site insights.
    13
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Hosted MCP server that gives AI agents read and write access to your full marketing & ecommerce stack — Google Analytics, Search Console, Google & Meta Ads, Shopify, WooCommerce, Shopware, Slack and LinkedIn. 100+ tools across 10 connectors. BYOK, OAuth 2.1.
    -

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/hholen/lodd-mcp-server'

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