Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation3/5

    Most tools target a distinct Klaviyo resource, but the reporting tools overlap: campaign_report, campaign_ab_report, multi_account_summary, metric_aggregate, and custom_report all provide performance data with subtle scoping differences. list_accounts and account_info also have unclear boundaries. Descriptions help, but an agent could still misselect between metric_aggregate and custom_report.

    Naming Consistency3/5

    The list_ and get_ prefixes are used consistently for resource retrieval, but the reporting tools mix conventions: noun_report, noun_ab_report, noun_series_report, multi_account_summary, metric_aggregate, and custom_report. All names are readable and snake_case, but the pattern is not uniform.

    Tool Count3/5

    24 tools is at the top of the heavy range for a single-domain server. The count is justifiable given Klaviyo's many resources, but several reporting tools (campaign_report, campaign_ab_report, flow_report, flow_series_report, metric_aggregate, custom_report) overlap in purpose and make the surface feel larger than necessary.

    Completeness4/5

    The tool set covers read-only reporting and retrieval across campaigns, flows, segments, lists, templates, forms, metrics, events, and profiles. Minor gaps exist, such as no list_forms tool, no profile search/list beyond get_profile, and no paginated event history, but agents can work around these with the existing tools and custom_report.

  • Average 3.9/5 across 24 of 24 tools scored. Lowest: 3.3/5.

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

    • No community issues in the last 6 months
    • 2 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

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

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

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

  • If you are the author, simply .

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

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

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

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

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

How is the quality score calculated?

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

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

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

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

Tool Scores

  • Behavior3/5

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

    The annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds a little context by clarifying that it returns metrics for common flows, but it does not disclose aggregation behavior, return format, or limitations beyond what the schema already documents. No contradiction with annotations.

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

    Conciseness5/5

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

    The description is two short sentences with the action front-loaded and only relevant examples included. There is no filler or redundant restatement of the tool name.

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

    Completeness3/5

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

    The description is sufficient for a read-only report tool but lacks sibling differentiation and any detail on return values, especially with no output schema. An agent could confuse it with flow_series_report or custom_report without additional context. Operational details are mostly delegated to the 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%, and the schema already provides meaningful details for parameters like conversion_metric_id, start/end, and timeframe. The description itself does not add parameter-level semantics, so it appropriately relies on 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 names a specific action and resource: getting email flow (automation) performance for a Klaviyo account, and gives examples of covered flows (welcome series, abandoned cart, post-purchase). It is clear about what the tool does, though it does not explicitly differentiate itself from the sibling flow_series_report.

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

    Usage Guidelines2/5

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

    There is no guidance about when to choose this tool over alternatives such as flow_series_report, campaign_report, or custom_report. The description implies it is for flow performance reporting, but it does not state exclusions or direct the agent to a sibling for other needs.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so safety is covered. The description adds useful context about returning up to 100 most recent events and optional metric filtering. However, it does not disclose pagination behavior, data freshness, or any account-level requirements beyond what the schema already specifies.

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

    Conciseness5/5

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

    The description is a single concise sentence that front-loads the main action and resource, and includes a useful example. Every word contributes meaning, and there is no redundancy with the schema or annotations.

    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 four parameters, no output schema, and no usage guidance, the description is minimally adequate. It covers the core purpose and a key return characteristic, but it does not describe the event object shape, pagination workflow, or when a user should choose this over related reporting tools.

    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 clearly. The description adds a concrete example for metric_id ('Placed Order') and a result limit hint, but these are minor enhancements beyond the schema. Baseline 3 is appropriate.

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

    Purpose4/5

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

    The description clearly states a specific verb and resource: 'List recent events for a Klaviyo account.' The optional metric_id filter adds relevant detail. It does not explicitly distinguish itself from sibling tools like metric_aggregate, but the intent is understandable from the name and description.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives such as metric_aggregate or list_metrics. It implies usage by describing the return of recent events and optional metric filtering, but there are no explicit use cases, exclusions, or comparisons to sibling tools.

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

  • Behavior3/5

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

    The annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds some useful context by listing the metadata fields returned, but it does not disclose additional behavioral traits such as authorization requirements, rate limits, or behavior when the account is not found. It aligns with the annotations and adds modest value.

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

    Conciseness5/5

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

    The description is a single concise sentence that front-loads the action and resource, then cleanly lists the returned metadata fields. Every word contributes to the agent's understanding, 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?

    For a simple read-only metadata tool, the description is nearly complete: it states the resource, the fields returned, and relies on annotations for safety. It does not explicitly explain that the 'account' parameter identifies which account's metadata to retrieve, but the schema already covers that. The absence of an output schema is partially mitigated by the field list.

    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 'account' described as 'Account name', so the description does not need to explain the parameter. The description does not add any further meaning about how the account name is used or validated, so it stays at the baseline for well-covered schemas.

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

    Purpose4/5

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

    The description clearly states the verb 'Get' and the resource 'Klaviyo account metadata', and enumerates the specific fields returned (org name, timezone, currency, contact email, industry). It does not explicitly contrast this with sibling tools like list_accounts or multi_account_summary, so it does not fully distinguish itself on its own.

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

    Usage Guidelines2/5

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

    The description provides no guidance about when to use this tool versus alternatives such as list_accounts or multi_account_summary. There is no mention of prerequisites, context, or exclusions, so an agent receives no decision-making support beyond the tool's obvious purpose.

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

  • Behavior4/5

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

    The annotations already establish readOnlyHint and openWorldHint, and the description adds valuable behavioral context: 'Buckets by interval' describes the operation's shape, and 'Rate limited: 2/min' discloses a concrete operational constraint. This goes beyond the annotations without contradicting them.

    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 and front-loaded. The first sentence states the core purpose and behavior; the second sentence adds the critical rate limit. Every word earns its place, and no redundant phrasing exists.

    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 an 8-parameter tool with no output schema, this description is minimal but not wholly inadequate. It conveys the resource, the batching behavior, and a rate limit, while the schema fills in parameter details. However, it does not describe what the returned series looks like, how to choose between timeframe and custom ranges, or when to prefer this over sibling reporting tools, leaving clear gaps for an 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 description coverage is 75%, so most parameters are already explained. The description adds minor semantic value by framing the tool as interval-bucketed time-series data, which supports interval and timeframe, but it does not clarify required parameters or the relationship between timeframe and custom start/end. The schema carries the main burden, and the description does not meaningfully compensate for the remaining gaps.

    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 identifies the resource as time-series flow/automation metrics for a Klaviyo account and adds the distinguishing mechanism 'Buckets by interval.' It lacks an explicit verb but the title annotation provides 'Get,' and the meaning is transparent. It does not explicitly differentiate itself from sibling tools like flow_report, so it falls short of a 5.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives such as flow_report or metric_aggregate. The rate-limit note is a constraint, not a usage guideline. There are no stated exclusions, prerequisites, or context that would help an agent choose this tool over a sibling.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint and openWorldHint, and the description adds the useful operational constraint of a 2/minute rate limit. It also clarifies the output focus (member counts, additions, removals), which goes beyond the annotations. No contradiction with annotations.

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

    Conciseness5/5

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

    The description is two short sentences with no filler. The core purpose and metric set are front-loaded, and the rate limit is clearly appended as a separate operational warning. Every word earns 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?

    The description is adequate for understanding the tool's purpose, metrics, and rate limit, but it lacks any routing guidance against sibling tools and does not mention the time-scoping flexibility beyond what the schema already documents. Given no output schema, a bit more contextual hand-holding 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 description coverage is high at 83%, so the schema carries most parameter meaning. The description does not add detail about how timeframe, start, end, year, or quarter interact, but the schema descriptions already cover these, so a baseline score of 3 is appropriate.

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

    Purpose4/5

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

    The description states what the tool reports—segment performance metrics—and enumerates the specific metrics included: member counts, additions, removals. This is clear and goes beyond the title, though it does not explicitly differentiate itself from siblings like list_segments or metric_aggregate.

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool versus alternatives such as list_segments or metric_aggregate. The rate limit is operational context, not usage guidance, so an agent must infer the appropriate selection context from the name and description alone.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds a specific operational constraint: rate limited to 2/min. It also discloses the primary return contents (views, submissions, submit rate), providing useful behavioral context beyond the structured annotations.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that conveys the tool's purpose, the key metrics, and the rate limit without wasted words. It is appropriately sized for the tool's complexity.

    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 rich schema descriptions, read-only annotations, and simple aggregate output, the description covers the essential return values and rate limiting. It is missing only explicit routing guidance among the many sibling report tools, which keeps it just short of fully 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 high at 83%, so parameters like start, end, year, quarter, and timeframe are already documented in the schema. The description adds no parameter-level meaning beyond identifying the account context, so the baseline 3 is appropriate.

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

    Purpose4/5

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

    The description clearly identifies the resource (sign-up forms) and the metrics reported (views, submissions, submit rate), which distinguishes it from sibling report tools like campaign_report or flow_report by domain. However, it lacks an explicit verb and does not directly name or contrast itself with any sibling.

    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 gives no guidance on when to use this tool versus alternatives such as campaign_report, flow_report, or segment_report. It does not state exclusions, prerequisites, or recommended scenarios beyond the generic 'for a Klaviyo account'.

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

  • Behavior3/5

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

    Annotations already provide readOnlyHint and openWorldHint, covering the safety profile. The description adds the returned field set and account scope, but does not mention pagination, rate limits, or the fact that the optional status filter can narrow the 'all flows' result.

    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, tightly written sentence that front-loads the verb and resource and includes the key output fields. There is no filler, repetition, 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?

    For a simple two-parameter, read-only listing tool, the description plus schema and annotations are nearly sufficient. The only minor gaps are lack of pagination/limit notes and not mentioning how the optional status filter interacts with the phrase 'all flows.'

    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%: both 'account' and 'status' have clear descriptions, and status has an enum. The description adds no parameter-level meaning, but the schema already carries that burden adequately.

    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?

    States a specific action ('List') and resource ('all flows (automations)') in a Klaviyo account, and names the fields returned (name, status, trigger type, last updated). This clearly distinguishes it from sibling detail/report tools like get_flow_detail and flow_report.

    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 gives no guidance about when to use this tool versus alternatives such as flow_report, flow_series_report, or get_flow_detail. An agent must infer usage from the name and description alone; there are no explicit contexts, exclusions, or alternative conditions.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds that it returns all email lists and specifies output fields, but it does not mention pagination, rate limits, or other behavioral traits. No contradiction with annotations.

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

    Conciseness5/5

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

    The description is a single sentence with no filler. It front-loads the action and resource, then lists the returned fields, making it 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?

    For a simple read-only list operation with one well-documented parameter and no output schema, the description is essentially complete: it states the scope ('all email lists'), the account context, and the returned fields. Minor details like pagination or result limits are not mentioned, but they are not critical for this tool.

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

    Parameters3/5

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

    Schema description coverage is 100% and the single 'account' parameter already has a description ('Account name'). The tool description does not add meaningful semantics about the account parameter beyond what the schema provides, so the baseline 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 uses a specific verb ('List'), a specific resource ('email lists'), and names the returned fields (name, opt-in process, creation date). The resource name itself distinguishes it from sibling tools like list_segments, list_campaigns, and list_metrics.

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

    Usage Guidelines2/5

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

    The description states what the tool does but gives no guidance on when to use it over alternatives. It does not reference any sibling tool or provide exclusion criteria, so an agent gets no help deciding between list_lists and list_segments or similar list tools.

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

  • Behavior3/5

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

    The annotations already declare readOnlyHint=true, so the read-only nature is structurally covered. The description adds that response content includes HTML/text and that this is an audit/preview tool, but it does not disclose response shape or default truncation behavior beyond what the schema's include_html description already states.

    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 the core action and resource front-loaded. The purpose statement ('Use for audit/preview') earns its place, and there is no filler or redundant 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?

    For a simple read-by-ID tool with full schema coverage, the description plus annotations covers the essentials. With no output schema, it could be slightly more explicit about the returned object shape or the default truncated HTML behavior, though the schema's include_html default partially fills that 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 account, template_id, and include_html are already well documented. The description's mention of HTML/text content loosely aligns with include_html, but it adds no new parameter-level meaning 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 names a specific action ('Fetch'), a resource ('email template'), and retrieval scope ('by ID'), and notes that HTML/text content is included. It is clearly distinct from listing tools like list_templates, though it does not explicitly name or contrast sibling alternatives, so it misses the top score.

    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?

    'Use for audit/preview' gives a clear intended context for when this tool is appropriate. It provides explicit usage direction but does not mention exclusions or point to alternative tools, such as list_templates or get_campaign_detail.

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

  • Behavior4/5

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

    Annotations already mark the tool as readOnly, and the description is consistent with that. It adds useful context by noting results are limited to 'recent' campaigns and by specifying the returned fields (IDs, names, status, send dates), which is valuable since there is no output schema. The vagueness of 'recent' and the lack of pagination details keep it from being a 5.

    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 filler: the first front-loads the action and scope, the second states the return payload. 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?

    For a low-complexity read-only list tool, the description covers scope, return fields, and account requirement, while the schema covers filtering. It is slightly incomplete because 'recent' is undefined and pagination/limits are not mentioned, but these are minor gaps given the annotations and simple signature.

    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 both parameters are already well documented. The description does not add meaning beyond the schema, aside from reinforcing the 'specific account' scope.

    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 a specific action ('List'), resource ('email campaigns'), and scope ('for a specific Klaviyo account'), and previews returned fields. It is distinguishable from multi-account or detail-oriented siblings, though it does not explicitly name them.

    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 phrase 'for a specific Klaviyo account' implies a key selection criterion and contrasts with multi-account tools like multi_account_summary. However, it does not explicitly say when to prefer get_campaign_detail or campaign_report, so usage guidance remains mostly inferred.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds the account-scoping context ('in a Klaviyo account') but does not disclose additional behaviors like pagination, ordering, or rate limits. This is acceptable for a simple list operation, so a 3 is appropriate.

    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 that immediately states the action and resource, followed by a brief clarifying parenthetical. Every word contributes value; there is 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 one-parameter, read-only list tool with no output schema and clear annotations, the description covers the essential context: what it lists, the account scope, and the domain (Klaviyo). Minor omissions like pagination or return format are not critical given the tool's simplicity.

    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 parameter 'account' is already documented as 'Account name'. The description reinforces that the account is a Klaviyo account but adds no new parameter-level meaning, such as format, allowed values, or example. Baseline 3 applies because the schema does the heavy lifting.

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

    Purpose5/5

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

    The description states a specific verb ('List'), a clear resource ('all tags'), and the scope ('in a Klaviyo account'), immediately distinguishing it from sibling list tools like list_campaigns or list_segments. The parenthetical adds useful context about what tags are used for, making the tool's role unambiguous.

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

    Usage Guidelines3/5

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

    The description implies usage through its resource focus and the note that tags label campaigns, flows, segments, and lists, but it does not explicitly state when to prefer this tool over alternatives or mention any exclusions. The differentiation from siblings is mostly by resource type (tags vs. campaigns vs. segments), which an agent can infer but is not directly stated.

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

  • Behavior4/5

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

    Annotations already establish readOnlyHint=true, and the description goes beyond that by disclosing the 2/min rate limit and specifying exactly what metrics are returned. It does not contradict the annotations, and the added behavioral detail is useful.

    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 short sentences with no filler: purpose first, output metrics second, rate limit last. 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?

    For a read-only report tool with fully documented parameters, the description covers the main purpose, the returned metric set, and the rate limit. It is slightly incomplete in not guiding the user between similar reporting siblings, but the high schema coverage and clear purpose make the definition sufficiently 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 the schema already documents all 7 parameters, including defaults, precedence, enums, and the required conversion_metric_id. The description adds no per-parameter meaning, but none is needed because the schema carries the load.

    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 names a specific operation (get performance metrics), a specific resource (email campaigns for a Klaviyo account), and lists the concrete metrics returned (opens, clicks, revenue, bounce rate, unsubscribes). This clearly distinguishes it from sibling tools like flow_report, segment_report, and form_report.

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

    Usage Guidelines3/5

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

    The description implies the usage context: retrieve email campaign performance metrics over a time period. It also notes a rate limit, and the schema adds that conversion_metric_id should be obtained from list_metrics first. However, it does not explicitly say when to prefer campaign_report over sibling tools like campaign_ab_report or multi_account_summary.

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

  • Behavior3/5

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

    Annotations already convey readOnlyHint=true and openWorldHint=true, so the safety and open-world nature are covered. The description adds a small amount of behavioral context by framing this as a lookup for revenue reporting, but it does not reveal additional characteristics such as pagination or whether the list may be partial.

    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 tight sentences: the first defines what the tool returns, and the second explains why an agent would call it. There is no filler or repetition of the schema, and the most useful 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?

    For a one-parameter, read-only listing tool with no output schema, the description gives enough context for an agent to invoke it correctly and understand the intended outcome. It stops short of describing the response structure or pagination, but the stated purpose of finding a metric ID makes the expected outcome reasonably clear.

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

    Parameters3/5

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

    Schema coverage is 100%, and the single 'account' parameter is described as 'Account name'. The description doesn't add much beyond that, aside from general context that the metrics belong to a Klaviyo account and that the result will contain metric IDs. This meets the baseline for schema-heavy 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 a specific verb ('List') and resource ('available metrics for a Klaviyo account'), and immediately ties it to a practical use case: finding the 'Placed Order' metric ID for revenue reporting. This distinguishes it from sibling list tools, which target different resources.

    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 gives a clear context for when to use the tool: when the agent needs to look up a metric ID, specifically the one for 'Placed Order'. It doesn't explicitly mention alternatives or when not to use it, but the purpose is concrete enough to route an agent correctly.

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

  • Behavior3/5

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

    Annotations already state readOnlyHint=true and openWorldHint=true, so a safe read operation is established. The description adds the scope of any metric and flexible time aggregation, but it does not disclose response shape, maximum lookback, or rate-limit behavior. This is acceptable given annotation coverage, but not rich.

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

    Conciseness5/5

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

    Two short sentences with no filler: the first states what the tool does, and the second states when to prefer it. The slight repetition of 'any metric' is minor, and the differentiator 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?

    The schema documents all parameter semantics, required fields, and enum choices, and the description gives purpose and routing. The only gap is no output-shape hint, but no output schema is provided and the read-only annotation reduces risk.

    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 covers 100% of parameters with meaningful descriptions, including enum values, defaults, and the singular interval note. The description only paraphrases 'custom timeframe + interval' and adds no parameter details 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 names a concrete operation ('Aggregate values'), a target resource ('any Klaviyo metric'), and a defining capability (custom timeframe + interval). It also differentiates the tool from campaign/flow reports, so an agent can distinguish it from sibling report tools.

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

    Usage Guidelines4/5

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

    It explicitly says 'More flexible than campaign/flow reports - use for any metric', which gives a clear preference signal for generic metric aggregation. It does not enumerate when-not-to-use conditions or name the exact sibling alternatives, but the context is sufficient for routing.

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

  • Behavior4/5

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

    Annotations already mark this as read-only and open-world. The description adds a meaningful behavioral caveat, 'Rate limited: 2/min', and clarifies that results are split by variation. This supplements the annotations without contradicting them.

    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 focused sentences: the first states the tool's purpose and distinguishing behavior, the second discloses a critical rate limit. No unnecessary words or repetition of schema details.

    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 read-only reporting tool with high schema coverage, the description is largely complete: it names the resource, explains the A/B split behavior, and warns about throttling. It does not describe the response structure, but the absence of an output schema and the straightforward 'metrics' nature make this 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 88%, so parameters are largely self-documenting. The description does not add parameter-level detail, and none is needed beyond the schema. It provides only domain context about A/B arms, which keeps this at the baseline.

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

    Purpose5/5

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

    Description states a specific verb ('Get'), a concrete resource ('per-variation email/SMS campaign metrics'), and the A/B arm scope. The phrase 'Splits results by variation so you can compare arms' clearly differentiates this from aggregate campaign report tools in the sibling list.

    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 gives clear context: use this when you need per-variation A/B arm comparison rather than overall campaign metrics. It does not explicitly name an alternative or state when not to use it, but 'so you can compare arms' communicates the intended use case well.

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

  • Behavior4/5

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

    The annotations already declare readOnlyHint=true, so the description does not need to restate that this is a read operation. It adds useful behavioral context by specifying exactly what data is returned, including consent/suppression status. No contradictions with the annotations.

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

    Conciseness5/5

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

    One concise, front-loaded sentence that states the action, targets, and return fields with no filler. Every part of the 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?

    For a simple read-only lookup with a fully documented schema, the description is nearly complete: it names the lookup keys and the returned profile fields. The only minor gap is that the required 'account' parameter is not reflected in the prose, but the schema makes that requirement explicit.

    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 some semantics by presenting email and profile_id as alternative lookup paths, but it does not clarify the required 'account' parameter or explain how it relates to the other identifiers, which would have added extra value.

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

    Purpose5/5

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

    The description uses a specific verb ('Look up'), identifies the resource ('customer profile'), and states the lookup keys ('email or profile ID') plus the returned fields. This clearly distinguishes it from sibling tools that list or report on campaigns, flows, or segments.

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

    Usage Guidelines4/5

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

    The description makes the usage context clear: use this tool when you need a single customer profile by email or profile ID. It does not explicitly name alternatives or exclusion criteria, but the lookup-by-identifier framing is unambiguous enough for an agent to select it appropriately.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, so safety is covered. The description adds valuable behavioral context by disclosing the 2/min per-account rate limit and the potentially long runtime across many accounts, which is important for an agent deciding whether to call this 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 convey the tool's purpose, scope, output, and the key operational constraint (rate limit/runtime) with no filler. 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?

    The description explains purpose, scope, and a critical rate-limit behavior, and the schema covers parameter semantics. It does not describe the exact fields in the unified report, which is a minor gap given no output schema exists, but the description is still sufficient for correct invocation.

    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 all six parameters, including the important conversion_metric_ids caveat. The tool description itself adds no parameter-specific meaning, which is acceptable given the schema already carries the burden.

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

    Purpose5/5

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

    Description states a specific verb ('Pull'), a specific resource ('ALL configured Klaviyo accounts'), and the output ('campaign performance summary' / 'unified cross-brand report'). This clearly distinguishes it from single-account sibling report tools.

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

    Usage Guidelines4/5

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

    The description makes clear this is for cross-account, cross-brand summary needs, which implies it is the right choice when aggregating across all accounts. It does not explicitly name alternative tools or say when not to use it, but the 'ALL configured accounts' framing provides clear contextual guidance.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, establishing that this is a read-only operation. The description adds behavioral context by listing the specific fields that will be returned, which helps the agent set expectations about the response. It does not discuss error behavior for invalid IDs, but that is a minor gap for a simple fetch-by-ID 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 one concise, front-loaded sentence that names the operation, the scope, and the key output fields without any filler or redundant restatement of the tool name.

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

    Completeness5/5

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

    For a read-only single-resource lookup with two straightforward parameters and no output schema, the description is complete: it identifies the input (campaign ID) and the expected return contents. The annotations cover safety, and the sibling list clarifies the niche. No critical information an agent needs to invoke it correctly is missing.

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

    Parameters3/5

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

    Schema description coverage is 100%, with both account and campaign_id documented directly in the input schema. The description does not add parameter-level meaning beyond 'campaign by ID,' but the schema already carries the necessary semantics, so a 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?

    Description uses a specific verb ('Get') with a clear resource ('full details for a single campaign by ID') and enumerates the fields returned: name, status, send_time, subject, preview text, channel, and message IDs. This distinguishes it from sibling tools like list_campaigns, which lists campaigns rather than fetching one detail object.

    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 clearly implies the usage context: use this when you have a specific campaign ID and need the full record for one campaign. It does not explicitly state when to avoid it or name alternatives such as list_campaigns for browsing, but the 'single campaign by ID' framing gives adequate contextual guidance.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, which covers the safety profile. The description adds useful behavioral context by specifying what the returned structure includes (status, trigger, actions/steps with type and message channel). It doesn't discuss edge behaviors like errors or pagination, but for a simple read-only detail tool the added context 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?

    Two tight sentences: the first front-loads the purpose and return contents, the second provides actionable routing to a sibling. No unnecessary words or repetition.

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

    Completeness5/5

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

    For a read-only, two-parameter tool with no output schema, this description gives the agent enough to select and call it correctly. It states what is returned, how to identify the resource, and where to get IDs if missing.

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

    Parameters3/5

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

    Schema description coverage is 100%, with 'account' and 'flow_id' already described meaningfully. The description's 'by ID' loosely maps to flow_id but doesn't add further parameter-level detail beyond the schema, so it stays at the baseline.

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

    Purpose5/5

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

    The description clearly states the action and resource: 'Get a flow's structure by ID' and enumerates the contents (status, trigger, actions/steps). It also distinguishes itself from the list sibling by instructing 'Use list_flows for IDs,' making the scope precise.

    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 gives explicit guidance for using the tool: retrieve a flow's structure once you have its ID. It also names the alternative for obtaining IDs ('Use list_flows for IDs'). However, it doesn't contrast with detail/report siblings like flow_report, leaving some usage differentiation implicit.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds contextual guidance (use first to see brands) but no new behavioral details such as auth requirements or output format. No contradiction with annotations.

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

    Conciseness5/5

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

    Two short sentences with the core action front-loaded and zero filler. 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?

    For a zero-parameter listing tool with read-only annotations, the description fully covers what the agent needs: what it lists, its scope ('configured accounts'), and when to call it. No return-value documentation is necessary given the absence of an output schema.

    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 takes zero parameters and schema coverage is 100%, so there is nothing for the description to add. Baseline 4 applies because the schema fully documents the empty parameter set.

    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 states a specific verb ('List') and resource ('all configured Klaviyo accounts'), and adds an explicit directive to use it first. This clearly distinguishes it from sibling tools focused on campaigns, metrics, and reports.

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

    Usage Guidelines4/5

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

    It explicitly instructs the agent to use this tool first to discover which brands are available, providing clear context. It does not name alternatives or exclusions, but the first-step orientation is sufficient for a zero-parameter discovery tool.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful behavioral context by specifying that it returns all segments and the particular fields included. It does not mention pagination or ordering, but this is a minor gap for a simple read-only list tool.

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

    Conciseness5/5

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

    The description is a single sentence that names the action, scope, resource, and return fields without any redundant wording. 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?

    For a simple read-only list operation with one documented parameter and no output schema, this description is complete. It tells the agent what the tool does, what fields to expect, and which account context is needed.

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

    Parameters3/5

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

    Schema description coverage is 100%: the single required parameter 'account' is documented as 'Account name'. The description references 'a Klaviyo account' but does not add 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 a specific verb ('List'), a specific resource ('all segments in a Klaviyo account'), and the returned attributes (name, member count, creation date). This differentiates it well from sibling tools that operate on campaigns, lists, flows, or profiles.

    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: it is for listing segments at the account level with no filtering. It does not explicitly name alternatives or state when not to use it, but the scope is unambiguous enough for an agent to select it appropriately.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful context about what the list contains and that it does not return template HTML, but it does not disclose behavior such as pagination, ordering, or whether the result set is limited or unbounded. The additions are modest but non-contradictory.

    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 filler. The primary purpose is front-loaded, the returned fields are summarized compactly in parentheses, and the sibling tool is named in the second sentence. Every part of the description 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?

    For a low-complexity list operation with one required parameter, no nested objects, and read-only/open-world annotations, the description provides sufficient context. It states what is returned, what is not returned, and how to access the alternative behavior. No output schema exists, but the simple metadata list is adequately described.

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

    Parameters3/5

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

    Schema description coverage is 100%; the single parameter "account" is already described as "Account name" in the schema. The tool description only repeats the notion of a Klaviyo account without adding new semantic detail, such as whether account refers to an ID, slug, or display name. With full schema coverage, 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 opens with a specific verb and resource: "List email templates in a Klaviyo account," and further clarifies what kind of data is returned by naming the fields (name, editor type, dates). It also distinguishes itself from get_template by explicitly stating that get_template is for the HTML of a single template, making sibling differentiation immediate and clear.

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

    Usage Guidelines5/5

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

    The description explicitly tells the agent when to use get_template instead: "Use get_template for the HTML of one." This establishes a clear conditional routing rule. The tool's own use case, listing template metadata rather than content, is also concrete enough for an agent to select it appropriately.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds valuable behavioral context beyond that: the API's `equals`-only limitation, a 100-item page limit, and cursor-based pagination. No contradictions with annotations.

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

    Conciseness5/5

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

    Three concise sentences with zero filler. Purpose is front-loaded, followed by the key call pattern and pagination note. Every sentence contributes operational 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?

    For a read-only listing tool with 3 documented parameters, annotations, and no output schema, the description covers purpose, reason restriction, page size, and pagination. It does not spell out the return payload shape, but 'List profiles' together with cursor-based pagination provides enough context for correct invocation.

    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 repeats the `equals`-only constraint already present in the schema and adds little new meaning for `account` or `page_cursor`. It is adequate but does not significantly enrich parameter understanding.

    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 names a specific verb ('List'), a specific resource ('profiles suppressed from email marketing'), and a clear scope ('for a single reason'). It immediately distinguishes itself from sibling list operations by focusing on suppressed profiles and the single-reason constraint.

    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?

    It gives explicit operational guidance: call once per reason if a full picture is needed, because Klaviyo only supports `equals` for suppression.reason. This directly tells an agent how to use the tool correctly and when repeated calls are necessary.

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

  • Behavior5/5

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

    Annotations mark this as readOnlyHint=true and openWorldHint=true, and the description adds substantial behavioral context beyond them: it returns raw JSON, auto-windows custom ranges into 1-year chunks back to a 2023-06-01 floor, and warns that filters are 'You own its correctness.' This makes the tool's behavior and limitations clear to the agent before invocation.

    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 compact, front-loaded with the core purpose, and every sentence earns its place: what it runs, what it returns, and when to use it. There is no filler or repetition of schema details.

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

    Completeness5/5

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

    For a high-complexity 12-parameter tool with no output schema, the description covers the essential invocation context: raw JSON output format, custom range chunking and floor, and the escape-hatch use case. Combined with the fully described schema and read-only annotations, nothing critical is missing for correct selection and use.

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

    Parameters4/5

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

    Schema coverage is 100%, so the baseline is already 3. The tool description adds cross-parameter meaning by explaining that custom ranges are auto-windowed, start overrides timeframe, and raw filter expressions are the caller's responsibility. This goes beyond simply restating property names and helps the agent combine parameters correctly.

    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 opens with 'Expert escape hatch - run ANY Klaviyo values or series report,' naming a specific verb, resource, and scope. It clearly distinguishes itself from specialized report tools by emphasizing full control over statistics, group_by, filter, interval, and timeframe, so an agent can tell this from siblings like campaign_report or flow_report.

    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?

    It explicitly states when to use this tool: 'Use when the specialized report tools do not expose a statistic, dimension, or filter you need.' This gives both a positive use case and an implicit exclusion, pointing the agent to specialized alternatives when they suffice.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

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

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

Card Badge

Klaviyo MCP MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

Klaviyo MCP MCP server – quality and maintenance score on Glama

Copy to your README.md:

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scalably-io/klaviyo-mcp'

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