Klaviyo MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Klaviyo MCPshow me campaign performance for the last 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Klaviyo MCP
Klaviyo MCP server. 24 read-only tools cover campaigns, flows, segments, metrics, reports, and profiles across many accounts.
Install
Claude Code:
claude mcp add klaviyo -e KLAVIYO_KEY_MAIN=pk_your_key -- npx -y @scalably-io/klaviyo-mcpCodex:
codex mcp add klaviyo --env KLAVIYO_KEY_MAIN=pk_your_key -- npx -y @scalably-io/klaviyo-mcpClaude Desktop: download klaviyo-mcp.mcpb from the latest GitHub release and open it. Claude Desktop's install form only accepts one account (KLAVIYO_KEY_MAIN).
Related MCP server: Stripe Connect MCP Server
Setup
Create a private API key in Klaviyo under Settings > API Keys.
Set one
KLAVIYO_KEY_<name>=pk_xxxenvironment variable per account, for exampleKLAVIYO_KEY_MAINorKLAVIYO_KEY_STOREONE. The server auto-discovers everyKLAVIYO_KEY_*variable at startup;list_accountsshows what it found.Multiple Klaviyo accounts (agencies, multi-brand portfolios) work only through Claude Code or Codex, since both let you pass arbitrary extra environment variables. Add as many
KLAVIYO_KEY_<name>variables as you have accounts, then call tools with the matchingaccountargument (the name afterKLAVIYO_KEY_, lowercased).All 24 tools are read-only.
Tools (24)
Tool | What it does |
| List all configured Klaviyo accounts. Use this first to see which brands are available. |
| List recent email campaigns for a specific Klaviyo account. Returns campaign IDs, names, status, and send dates. |
| Get email campaign performance metrics for a Klaviyo account. Returns opens, clicks, revenue, bounce rate, unsubscribes for the specified time period. |
| List available metrics for a Klaviyo account. Use this to find the 'Placed Order' metric ID needed for revenue reporting. |
| Pull campaign performance summary from ALL configured Klaviyo accounts. Returns a unified cross-brand report. |
| Get email flow (automation) performance for a Klaviyo account. Returns metrics for welcome series, abandoned cart, post-purchase, etc. |
| Get per-variation (A/B arm) email/SMS campaign metrics for a Klaviyo account. Splits results by variation so you can compare arms. |
| Time-series flow (automation) metrics for a Klaviyo account. Buckets by interval. |
| Segment performance metrics for a Klaviyo account: member counts, additions, removals. |
| Sign-up form performance for a Klaviyo account: views, submissions, submit rate. |
| List all segments in a Klaviyo account with name, member count, and creation date. |
| List all email lists in a Klaviyo account with name, opt-in process, and creation date. |
| List all flows (automations) in a Klaviyo account with name, status, trigger type, and last updated. |
| Get full details for a single campaign by ID: name, status, send_time, subject, preview text, channel, and message IDs. |
| List profiles suppressed from email marketing for a single reason. Klaviyo only allows |
| Aggregate values for any Klaviyo metric (e.g. opens, clicks, revenue) over a custom timeframe and interval. |
| Fetch an email template by ID, including HTML/text content. Use for audit/preview. |
| List recent events for a Klaviyo account, optionally filtered by metric_id (e.g. Placed Order). Returns up to 100 most recent. |
| Get Klaviyo account metadata: org name, timezone, currency, contact email, industry. |
| List all tags in a Klaviyo account (used to label campaigns, flows, segments, lists). |
| List email templates in a Klaviyo account (name, editor type, dates). Use |
| Look up a customer profile by email or profile ID: name, location, and email-marketing consent/suppression status. |
| Get a flow's structure by ID: status, trigger, and its actions/steps (type, message channel). Use |
| Expert escape hatch: run any Klaviyo values or series report with full control over statistics, group_by, filter, interval, and timeframe. |
Configuration
Variable | Required | Purpose |
| yes | Private API key for one Klaviyo account. One variable per account; the name after |
| no | Override the Klaviyo API base URL (default |
| no | Base delay in milliseconds for the retry backoff (default 1000) |
Reply shape
Every tool returns plain JSON with status (succeeded, partial, no_op), summary, target, result, proof, warnings, recovery. Failures throw a plain error string: <code>: <message> <hint>.
Limits
Reporting endpoints (campaign_report, flow_report, campaign_ab_report, flow_series_report, segment_report, form_report, custom_report for values/series reports) are rate limited by Klaviyo to 2 requests per minute per account. Reporting data is only available from 2023-06-01 onward; a custom range starting earlier is clamped to that floor. A single reporting request cannot span more than one calendar year, so a longer custom range is auto-windowed into consecutive yearly chunks with a spacing delay between them.
Verify
Each release lists the package version, the .mcpb sha256 and the production commit it was derived from in CHANGELOG.md. CI runs the tests and a clean install of the packed tarball on every push.
Privacy Policy
This server runs locally, on your machine, under your own credentials. It collects no personal data, contains no telemetry, stores nothing persistently, and talks only to the vendor API it wraps. No third party, including Scalably, receives your data. Contact: hello@scalably.io. Canonical copy: https://scalably.io/connector-privacy.html
License
MIT. Copyright Scalably.
Available Tools
24 toolsaccount_infoBRead-only
Get Klaviyo account metadata: org name, timezone, currency, contact email, industry.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name |
TDQS
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.
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.
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.
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.
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.
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.
campaign_ab_reportARead-only
Get per-variation (A/B arm) email/SMS campaign metrics for a Klaviyo account. Splits results by variation so you can compare arms. Rate limited: 2/min.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom range end, YYYY-MM-DD. Defaults to today. | |
| year | No | Year for quarter, e.g. 2024. | |
| start | No | Custom range start, YYYY-MM-DD. Overrides timeframe. Data floor: 2023-06-01 (earlier is clamped). | |
| account | Yes | Account name | |
| quarter | No | Quarter 1-4 (with year) - convenience for a full quarter. | |
| timeframe | No | ||
| campaign_id | No | Filter to a single campaign ID. | |
| conversion_metric_id | Yes | Placed Order metric ID. Get from list_metrics. |
TDQS
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.
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.
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.
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.
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.
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.
campaign_reportARead-only
Get email campaign performance metrics for a Klaviyo account. Returns opens, clicks, revenue, bounce rate, unsubscribes for the specified time period. Rate limited: 2/min.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom range end, YYYY-MM-DD. Defaults to today. | |
| year | No | Year for quarter, e.g. 2024. | |
| start | No | Custom range start, YYYY-MM-DD. Overrides timeframe. Data floor: 2023-06-01 (earlier is clamped). | |
| account | Yes | Account name | |
| quarter | No | Quarter 1-4 (with year) - convenience for a full quarter. | |
| timeframe | No | Preset period. Default: last_30_days. Ignored if a custom range is given. | |
| conversion_metric_id | Yes | Metric ID for revenue tracking (Placed Order). REQUIRED by Klaviyo API. Get from list_metrics tool first. |
TDQS
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.
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.
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.
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.
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.
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.
custom_reportARead-only
Expert escape hatch - run ANY Klaviyo values or series report with full control over statistics, group_by, filter, interval, and timeframe (preset OR custom range, auto-windowed into 1-year chunks back to the 2023-06-01 floor). Returns raw JSON results so you can analyze like a Klaviyo analyst. Use when the specialized report tools do not expose a statistic, dimension, or filter you need.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom range end, YYYY-MM-DD. Defaults to today. | |
| year | No | Year for quarter, e.g. 2024. | |
| start | No | Custom range start, YYYY-MM-DD. Overrides timeframe. Data floor: 2023-06-01 (earlier is clamped). | |
| filter | No | Raw Klaviyo filter expression, e.g. equals(campaign_id,"01ABC"). You own its correctness. | |
| account | Yes | Account name | |
| quarter | No | Quarter 1-4 (with year) - convenience for a full quarter. | |
| group_by | No | Grouping dimensions, e.g. ["campaign_id","send_channel"]. | |
| interval | No | For *-series-report only: hourly/daily/weekly/monthly. Default daily. | |
| timeframe | No | Preset period, OR use start/end/quarter/year. | |
| statistics | Yes | Statistics to fetch, e.g. ["recipients","open_rate","conversion_value"]. Must be valid for the chosen report_type. | |
| report_type | Yes | Which Klaviyo report to run. NOTE: there is no campaign-series-report - campaign reports are values-only; use metric_aggregate or per-period campaign-values for campaign trends. | |
| conversion_metric_id | No | Required whenever you request a revenue/conversion statistic (e.g. conversion_value, conversion_rate). |
TDQS
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.
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.
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.
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.
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.
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.
flow_reportBRead-only
Get email flow (automation) performance for a Klaviyo account. Returns metrics for welcome series, abandoned cart, post-purchase, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom range end, YYYY-MM-DD. Defaults to today. | |
| year | No | Year for quarter, e.g. 2024. | |
| start | No | Custom range start, YYYY-MM-DD. Overrides timeframe. Data floor: 2023-06-01 (earlier is clamped). | |
| account | Yes | Account name | |
| quarter | No | Quarter 1-4 (with year) - convenience for a full quarter. | |
| timeframe | No | Preset period. Default: last_30_days. Ignored if a custom range is given. | |
| conversion_metric_id | Yes | Metric ID for revenue tracking (Placed Order). REQUIRED. Get from list_metrics tool first. |
TDQS
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.
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.
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.
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.
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.
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.
flow_series_reportARead-only
Time-series flow (automation) metrics for a Klaviyo account. Buckets by interval. Rate limited: 2/min.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom range end, YYYY-MM-DD. Defaults to today. | |
| year | No | Year for quarter, e.g. 2024. | |
| start | No | Custom range start, YYYY-MM-DD. Overrides timeframe. Data floor: 2023-06-01 (earlier is clamped). | |
| account | Yes | Account name | |
| quarter | No | Quarter 1-4 (with year) - convenience for a full quarter. | |
| interval | No | ||
| timeframe | No | ||
| conversion_metric_id | Yes | Placed Order metric ID. |
TDQS
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.
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.
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.
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.
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.
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.
form_reportARead-only
Sign-up form performance for a Klaviyo account: views, submissions, submit rate. Rate limited: 2/min.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom range end, YYYY-MM-DD. Defaults to today. | |
| year | No | Year for quarter, e.g. 2024. | |
| start | No | Custom range start, YYYY-MM-DD. Overrides timeframe. Data floor: 2023-06-01 (earlier is clamped). | |
| account | Yes | Account name | |
| quarter | No | Quarter 1-4 (with year) - convenience for a full quarter. | |
| timeframe | No |
TDQS
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.
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.
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.
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.
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.
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.
get_campaign_detailARead-only
Get full details for a single campaign by ID: name, status, send_time, subject, preview text, channel, and message IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name | |
| campaign_id | Yes | Campaign ID. |
TDQS
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.
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.
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.
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.
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.
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.
get_flow_detailARead-only
Get a flow's structure by ID: status, trigger, and its actions/steps (type, message channel). Use list_flows for IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name | |
| flow_id | Yes | Flow ID. |
TDQS
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.
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.
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.
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.
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.
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.
get_profileARead-only
Look up a customer profile by email or profile ID: name, location, and email-marketing consent/suppression status.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email address to look up. | ||
| account | Yes | Account name | |
| profile_id | No | Profile ID (alternative to email). |
TDQS
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.
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.
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.
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.
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.
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.
get_templateARead-only
Fetch an email template by ID, including HTML/text content. Use for audit/preview.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name | |
| template_id | Yes | Template ID. | |
| include_html | No | Include full HTML body. Default false (truncated). |
TDQS
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.
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.
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.
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.
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.
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.
list_accountsARead-only
List all configured Klaviyo accounts. Use this first to see which brands are available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
list_campaignsARead-only
List recent email campaigns for a specific Klaviyo account. Returns campaign IDs, names, status, and send dates.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by campaign status (case-sensitive Klaviyo values). Default: all. | |
| account | Yes | Account name (e.g., 'my-store' or 'My Store') |
TDQS
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.
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.
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.
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.
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.
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.
list_flowsARead-only
List all flows (automations) in a Klaviyo account with name, status, trigger type, and last updated.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status. | |
| account | Yes | Account name |
TDQS
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.
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.
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.
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.
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.
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.
list_listsARead-only
List all email lists in a Klaviyo account with name, opt-in process, and creation date.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name |
TDQS
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.
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.
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.
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.
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.
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.
list_metricsARead-only
List available metrics for a Klaviyo account. Use this to find the 'Placed Order' metric ID needed for revenue reporting.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name |
TDQS
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.
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.
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.
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.
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.
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.
list_recent_eventsBRead-only
List recent events for a Klaviyo account, optionally filtered by metric_id (e.g. Placed Order). Returns up to 100 most recent.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name | |
| metric_id | No | Filter to events for one metric. | |
| page_size | No | Default 25, maximum 100 per page. | |
| page_cursor | No | Cursor from the previous page. |
TDQS
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.
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.
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.
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.
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.
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.
list_segmentsARead-only
List all segments in a Klaviyo account with name, member count, and creation date.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name |
TDQS
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.
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.
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.
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.
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.
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.
list_suppressed_profilesARead-only
List profiles suppressed from email marketing for a single reason. Klaviyo only allows equals (not any) for suppression.reason, so call once per reason if you need a full picture. Up to 100 per call. Use cursor for pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Suppression reason. Required - Klaviyo allows only `equals` here. | |
| account | Yes | Account name | |
| page_cursor | No | Cursor from previous page. |
TDQS
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.
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.
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.
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.
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.
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.
list_tagsARead-only
List all tags in a Klaviyo account (used to label campaigns, flows, segments, lists).
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name |
TDQS
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.
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.
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.
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.
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.
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.
list_templatesARead-only
List email templates in a Klaviyo account (name, editor type, dates). Use get_template for the HTML of one.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name |
TDQS
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.
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.
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.
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.
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.
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.
metric_aggregateARead-only
Aggregate values for any Klaviyo metric (e.g. opens, clicks, revenue) over a custom timeframe + interval. More flexible than campaign/flow reports - use for any metric.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom end YYYY-MM-DD. Defaults to now. | |
| start | No | Custom start YYYY-MM-DD. Raw events have NO 2023 floor - reaches back to account inception. Max 1 year per call. | |
| account | Yes | Account name | |
| interval | No | Note: metric-aggregates uses singular (hour/day/week/month), NOT the series-report plural form. | |
| metric_id | Yes | Metric ID. Get from list_metrics. | |
| timeframe | No | Preset lookback. Use this OR start/end. Default: last_30_days. | |
| measurement | No | count, sum_value (revenue), or unique. Default count. |
TDQS
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.
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.
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.
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.
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.
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.
multi_account_summaryARead-only
Pull campaign performance summary from ALL configured Klaviyo accounts. Returns a unified cross-brand report. Rate limited: 2/min per account - may take several minutes for many accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom range end, YYYY-MM-DD. Defaults to today. | |
| year | No | Year for quarter, e.g. 2024. | |
| start | No | Custom range start, YYYY-MM-DD. Overrides timeframe. Data floor: 2023-06-01 (earlier is clamped). | |
| quarter | No | Quarter 1-4 (with year) - convenience for a full quarter. | |
| timeframe | No | Preset period. Default: last_30_days. Ignored if a custom range is given. | |
| conversion_metric_ids | No | Map of account name → Placed Order metric ID (from the klaviyo skill table). STRONGLY recommended: accounts often have duplicate "Placed Order" metrics and auto-discovery can pick the wrong one (revenue reads $0). Keys match names from list_accounts. |
TDQS
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.
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.
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.
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.
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.
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.
segment_reportARead-only
Segment performance metrics for a Klaviyo account: member counts, additions, removals. Rate limited: 2/min.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Custom range end, YYYY-MM-DD. Defaults to today. | |
| year | No | Year for quarter, e.g. 2024. | |
| start | No | Custom range start, YYYY-MM-DD. Overrides timeframe. Data floor: 2023-06-01 (earlier is clamped). | |
| account | Yes | Account name | |
| quarter | No | Quarter 1-4 (with year) - convenience for a full quarter. | |
| timeframe | No |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
24 tool updates
v1.0.0- First observed
account_info - First observed
campaign_ab_report - First observed
campaign_report - First observed
custom_report - First observed
flow_report - First observed
flow_series_report - First observed
form_report - First observed
get_campaign_detail - First observed
get_flow_detail - First observed
get_profile - First observed
get_template - First observed
list_accounts - First observed
list_campaigns - First observed
list_flows - First observed
list_lists - First observed
list_metrics - First observed
list_recent_events - First observed
list_segments - First observed
list_suppressed_profiles - First observed
list_tags - First observed
list_templates - First observed
metric_aggregate - First observed
multi_account_summary - First observed
segment_report
TDQS
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.
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.
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.
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.
Maintenance
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
Read-only access to your Reporting Ninja marketing and analytics data across 20+ ad platforms.
Read-only access to your CodeMouse accounts, repositories, and AI pull-request reviews.
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Read-only access to your Nexly web analytics: traffic, pages, acquisition, events, and reports.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides read-only access to TikTok advertising data, including campaigns, ad groups, ads, and performance reports through the TikTok Business API.641MIT
- AlicenseNot gradedqualityCmaintenanceRead-only access to Stripe data including customers, charges, subscriptions, balance, and invoices.14MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Kiwify sales, subscriptions, products, and affiliates via the official API. Read-only access for viewing data.MIT
- FlicenseNot gradedqualityCmaintenanceEnables read-only access to Google Analytics 4 and Google Search Console data, allowing users to run reports, query search analytics, and generate combined snapshots for reporting.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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