Skip to main content
Glama
HyrosOG

Hyros MCP

by HyrosOG

Hyros MCP Server

npm version License: MIT

Connect Hyros advertising attribution to AI assistants (Claude, Cursor, etc.) through the Model Context Protocol. Ask questions about your leads, sales, calls, subscriptions, and ad performance — and let the AI pull the data and run the reports for you.

61 tools covering leads, sales, calls, subscriptions, products, custom costs, carts, webhooks, conversion definitions, attribution reports (including ROAS and marginal CAC curve), ad management, async request tracking, and smart analytics. Targets Hyros REST API v1.40 and Webhooks v1.1. Agencies can run every tool against a connected client account via the optional accessible_account_id argument.

Built by Carlos Aragon.


You only need the Claude app (desktop or web). Nothing to install. No terminal. No Node.js. No config files.

  1. Open ClaudeSettingsConnectors.

  2. Click Add custom connector.

  3. Paste this address and click Add:

    https://hyrosmcp.callwithcarlos.com/mcp
  4. A small page opens in your browser asking for your Hyros API key. Get it from Hyros → Settings → Integrations → API, paste it, and click Connect.

  5. Done ✅ — Hyros now shows up in Claude's tools. Try asking "What was my revenue today?"

That's the whole thing. Your key is checked the moment you paste it (so you know right away if it's wrong) and is stored encrypted on the server — it never lives on your computer, and you never edit any files.

Controlling what the AI can do (permissions)

Inside Claude, every tool can be set to:

  • Always allow — runs without asking (great for read-only reports and lookups)

  • Ask every time — Claude asks for your approval before each use

  • Blocked — never runs

You'll find these in the connector's settings in Claude. The tools that change data (create a lead, refund an order, etc.) are flagged so Claude asks first by default.

If a tool answers "Unauthorized"

Hyros API keys carry roles, and several endpoints need a role that is not on a key by default. When a key lacks the role the API replies 401 Unauthorized with no explanation of which role is missing, so the tool looks broken when the key is simply too narrow.

Verified against Hyros API v1.39 on 2026-08-04, these tools need extra roles:

Tools

Needs a role for

hyros_get_products, hyros_update_product, hyros_delete_product

Products

hyros_get_custom_costs, hyros_update_custom_cost, hyros_delete_custom_cost

Custom costs

hyros_get_carts

Carts

hyros_get_webhook_subscriptions, hyros_create_webhook_subscription, hyros_delete_webhook_subscription

Webhooks

hyros_update_source, hyros_delete_source

Sources (write)

hyros_delete_lead

Leads (delete)

Fix it in the Hyros app under Settings → API Keys by enabling the roles on your key, or issue a key with full roles. A wrong key reads differently: it returns a JSON body containing Api key not valid, while a missing role returns the bare text Unauthorized.

Agency-level keys are a separate limit. They authenticate on hyros_get_user_info but return 401 on every data endpoint, and the API has no way to scope a request to a client account. Use a key from the client account itself.

How it works (the short version)

You (Claude app)  ──▶  hyrosmcp.callwithcarlos.com  ──▶  Hyros API
                       (a secure hosted server)

There's a small server running in the cloud (on Cloudflare) that speaks to Hyros on your behalf. When you connect, it asks for your API key once, verifies it, and keeps it encrypted. From then on, when you ask Claude a question, Claude talks to that server, which fetches your real Hyros data and hands it back. You don't host or maintain anything.

For developers / self-hosters: the server lives in worker/ and runs on Cloudflare Workers. See DEPLOY.md to deploy your own copy.


Related MCP server: Google Analytics MCP Server

Alternative — Run it locally (advanced / developers)

Prefer to run the server on your own machine instead of using the hosted one? This uses the npm package and Claude Desktop's local config. You'll need Node.js 18+.

Step 1 — Install the package

Open a terminal and run:

npm install -g hyros-mcp

This works on Windows, macOS, and Linux.

Step 2 — Add to Claude Desktop

Open your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add this (replace your_api_key_here with your key from Hyros → Settings → Integrations → API):

{
  "mcpServers": {
    "hyros": {
      "command": "hyros-mcp",
      "args": [],
      "env": {
        "HYROS_API_KEY": "your_api_key_here"
      }
    }
  }
}

Step 3 — Restart Claude Desktop

Close and reopen Claude Desktop. That's it — you're ready to use it.


Claude Code (CLI)

npm install -g hyros-mcp
claude mcp add hyros -e HYROS_API_KEY=your_api_key_here -- hyros-mcp

Cursor / Windsurf

Same config as Claude Desktop above — add it to your MCP settings file.


Troubleshooting

Remote connector (the 60-second install)

"That key didn't work" when you paste it — The key is wrong, expired, or lacks permissions. Copy it again, exactly, from Hyros → Settings → Integrations → API. The page tells you immediately if it's valid.

Hyros tools don't appear in Claude — Make sure you finished the browser step (pasting the key and clicking Connect). Re-open Settings → Connectors and confirm Hyros is listed and connected.

Need to change your API key later — Just disconnect and re-add the connector (or reconnect) and paste the new key. Nothing else to update.

Local install

"401 Unauthorized" — Your API key is wrong, missing, or lacks the role the endpoint needs. Make sure:

  1. HYROS_API_KEY is inside the env block

  2. The key is copied exactly from Hyros → Settings → Integrations → API

  3. You restarted Claude Desktop after saving the config

  4. The key has the role that tool needs, if only some tools fail — see If a tool answers "Unauthorized"

MCP tools not showing up — Restart Claude Desktop. The config is only read at startup.

"command not found: hyros-mcp" — The global install didn't complete. Run npm install -g hyros-mcp again and make sure npm's global bin folder is in your PATH.

Configuration

Variable

Required

Description

HYROS_API_KEY

Yes

Your Hyros API key (Settings > Integrations > API)

HYROS_BASE_URL

No

API base URL (default: https://api.hyros.com/v1)

Tools

Read Operations (26)

Tool

Description

hyros_get_user_info

Account information

hyros_get_leads

Search and retrieve leads

hyros_get_lead_journey

Full customer journey with attribution

hyros_get_sales

Query sales records

hyros_get_calls

Query call records

hyros_get_subscriptions

Query subscriptions

hyros_get_clicks

Get click history for a lead

hyros_get_tags

List all tags (deprecated, use hyros_get_tags_count)

hyros_get_tags_count

List tags with lead counts, paginated

hyros_get_stages

List funnel stages

hyros_get_domains

List verified domains

hyros_get_sources

Get ad sources and campaigns

hyros_get_ads

Get ads by platform

hyros_get_keywords

Get keywords by ad group

hyros_get_tracking_script

Get tracking script HTML

hyros_get_attribution_report

Attribution metrics (ROAS, ROI, CPA, etc.)

hyros_get_ad_account_report

Account-level attribution metrics

hyros_get_ad_accounts

List connected ad accounts and their ids

hyros_get_products

List catalog products with price and cost of goods

hyros_get_custom_costs

List custom costs active in a date window

hyros_get_carts

List carts, filterable to abandoned ones

hyros_get_webhook_subscriptions

List configured webhook subscriptions

hyros_get_roas_report

ROAS of one ad, ad set, campaign, or account (cash-based, break-even 1.0)

hyros_get_marginal_cac_curve

Cost of the next customer at each spend level, with saturation point

hyros_get_conversion_definitions

List conversion definitions by id or creation date

hyros_get_request_status

Status of an async write (PENDING / PROCESSED / FAILED)

Write Operations (30)

Tool

Description

hyros_create_lead

Create a new lead

hyros_update_lead

Update lead data and tags

hyros_create_order

Register a sale/order

hyros_refund_order

Process a refund

hyros_update_sale

Update sale status

hyros_delete_sale

Delete a sale

hyros_create_call

Register a call event

hyros_update_call

Update call qualification

hyros_delete_call

Delete a call

hyros_create_subscription

Create subscription

hyros_update_subscription

Update subscription

hyros_create_source

Create ad source

hyros_create_custom_cost

Add custom ad cost

hyros_create_product

Create product

hyros_create_cart

Track a shopping cart

hyros_update_cart

Update pending cart

hyros_create_click

Manually record a click

hyros_delete_lead

Erase a lead and its PII (GDPR / CCPA)

hyros_update_product

Update price, SKU, cost of goods, category

hyros_delete_product

Delete a product

hyros_update_custom_cost

Replace a custom cost

hyros_delete_custom_cost

Delete a custom cost

hyros_update_source

Rename or reclassify an ad source

hyros_delete_source

Delete an ad source

hyros_create_webhook_subscription

Subscribe an endpoint to Hyros events

hyros_delete_webhook_subscription

Delete a webhook subscription

hyros_create_conversion_definition

Define a custom conversion schema ($tag + captured fields)

hyros_update_conversion_definition

Replace a definition's captured fields

hyros_delete_conversion_definition

Delete a conversion definition

hyros_create_custom_conversion

Record a custom conversion for a lead (shows in journey and reports)

Agency access

Every tool accepts an optional accessible_account_id argument. Agencies pass the accountId listed under accessibleAccounts in hyros_get_user_info to run the call against that client account; the API rejects any target that is not an approved connected account.

Smart Analytics (5)

Tool

Description

hyros_daily_summary

Today's performance: revenue, leads, calls, subscriptions

hyros_best_performers

Top ads/campaigns ranked by any metric

hyros_compare_periods

Compare metrics between two date ranges

hyros_funnel_overview

Full funnel from leads to revenue

hyros_subscription_health

MRR, ARR, churn, and subscription breakdown

Resources

URI

Description

hyros://account

Account information

hyros://tags

Available tags

hyros://stages

Funnel stages

Prompts

Name

Description

daily_briefing

Daily performance summary

campaign_analysis

Campaign performance analysis

lead_lookup

Investigate a specific lead

Example Questions

Once connected, you can ask things like:

  • "What was my revenue today?"

  • "Show me my best performing Facebook ads this month"

  • "Compare last week vs this week"

  • "Look up the customer journey for john@example.com"

  • "What's my current MRR?"

  • "Which campaigns have the highest ROAS?"

  • "Create a lead with email test@example.com and tag them as VIP"

  • "Which leads were updated since yesterday?"

  • "Show me carts abandoned in the last week"

  • "Remove the trial tag from john@example.com"

  • "Which custom costs are still running with no end date?"

Security

  • HTTPS-only connections (API key never sent over plaintext)

  • Domain-restricted to *.hyros.com (prevents SSRF)

  • Runtime input validation on all tool parameters

  • Request timeouts (30s) with retry logic

  • Client-side rate limiting (25 req/sec)

  • Path traversal prevention on URL parameters

Development

git clone https://github.com/CachoMX/Hyros-MCP.git
cd Hyros-MCP
npm install
cp .env.example .env    # Add your API key
npm run build           # Compile TypeScript (local/stdio version)
npm run dev             # Run in development mode
npm test                # Run tests

Remote server (Cloudflare Worker)

The hosted connector lives in worker/ and reuses all the tool logic in src/. It adds a Streamable HTTP transport plus an OAuth layer that collects each user's Hyros API key on a single-field page.

npm run worker:check    # Validate the bundle (wrangler dry-run, no deploy)
npm run worker:dev      # Local dev server (wrangler dev)
npm run worker:deploy   # Deploy to Cloudflare

Full operator instructions — Cloudflare token scopes, KV setup, custom domain — are in DEPLOY.md.

License

MIT - Carlos Aragon

Available Tools

53 tools
hyros_best_performersBest PerformersA
Read-only

Get the top performing ads/campaigns ranked by revenue, ROAS, ROI, etc. for a given date range. Requires an ad account ID and the level of analysis. Use hyros_get_sources to find your ad account IDs first. Perfect for "what are my best ads this week?" or "which campaigns have the highest ROAS this month?"

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesLevel of analysis (required): use facebook_adset for Facebook ad sets, google_campaign for Google campaigns, etc.
rankByNoMetric to rank performers by (default: revenue)
endDateYesEnd date in ISO 8601 format, e.g. 2024-01-31T23:59:59 (required)
currencyNoCurrency for monetary values (default: user_currency)
topCountNoNumber of top performers to return (default: 10)
startDateYesStart date in ISO 8601 format, e.g. 2024-01-01T00:00:00 (required)
adAccountIdYesAd account ID to analyze (required). Get this from hyros_get_sources.
attributionModelNoAttribution model (default: last_click)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, so the tool is a safe read operation. The description adds that it returns ranked results based on various metrics, which is consistent with read-only behavior. It does not disclose any unexpected side effects or limitations, but the annotation already covers the main behavioral trait.

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

Conciseness5/5

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

The description is extremely concise with only three sentences. It front-loads the primary purpose, then adds requirements and a usage hint. Every sentence adds value without redundancy or filler.

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

Completeness4/5

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

Given 8 parameters, 100% schema coverage, and a read-only annotation, the description provides key context: purpose, required params, prerequisite, and example use cases. An output schema is absent, but the output is implied (list of top performers). The description is sufficient for an AI agent to understand the tool's role without gaps.

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

Parameters3/5

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

Schema coverage is 100%, with detailed descriptions for each parameter (e.g., level has enum values explained). The description mentions the required parameters and their roles but does not add significant meaning beyond the schema. It provides context for adAccountId (where to get it), but that is already in the schema description. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves top performing ads/campaigns ranked by metrics like revenue and ROAS for a date range. It uses a specific verb ('Get'), identifies the resource ('top performing ads/campaigns'), and distinguishes from other hyros tools by focusing on ranking and performance metrics.

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

Usage Guidelines4/5

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

The description provides explicit use cases ('what are my best ads this week?', 'which campaigns have the highest ROAS this month?') and a prerequisite ('Use hyros_get_sources to find your ad account IDs first'). It does not explicitly state when not to use the tool or compare to alternatives, but the context is clear enough for correct selection.

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

hyros_compare_periodsCompare PeriodsA
Read-only

Compare ad performance metrics between two date ranges using attribution data. Requires an ad account ID and level. Returns revenue, cost, ROAS, sales, leads, and percentage changes. Perfect for "compare this week vs last week".

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesLevel of analysis (required)
currencyNoCurrency code
adAccountIdYesAd account ID to compare (required). Get from hyros_get_sources.
period1EndDateYesPeriod 1 end date in ISO 8601 format (required)
period2EndDateYesPeriod 2 end date in ISO 8601 format (required)
attributionModelNoAttribution model (default: last_click)
period1StartDateYesPeriod 1 start date in ISO 8601 format (required)
period2StartDateYesPeriod 2 start date in ISO 8601 format (required)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description confirms a read-only comparison operation. It adds contextual value by listing specific returned metrics (revenue, cost, ROAS, etc.) and percentage changes, which are not in the schema. There are no contradictions. The description does not disclose potential behavioral details like data freshness or pagination, but given the read-only nature, this is adequate.

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

Conciseness5/5

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

The description is two sentences: the first clearly states the tool's purpose and requirements; the second lists output metrics and a concrete use case. There is no redundant information, and every sentence earns its place. It is appropriately front-loaded and easy to parse.

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

Completeness4/5

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

Given the tool's complexity (8 parameters, 6 required, no output schema), the description covers the core functionality, input requirements, and output. It lacks details about potential constraints (e.g., non-overlapping periods) or how to interpret percentage changes, but the use case example compensates partially. The presence of annotations and full schema coverage reduces the burden on the description.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description mentions 'Requires an ad account ID and level' and hints at date usage via the example, but does not add new meaning beyond what the schema already provides for each parameter. No additional constraints or format guidance are given.

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

Purpose5/5

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

The description uses a specific verb 'Compare' and identifies the resource 'ad performance metrics between two date ranges using attribution data.' It clearly distinguishes from sibling tools like hyros_best_performers by specifying the two-period comparison and the metrics returned (revenue, cost, ROAS, etc.). The example 'compare this week vs last week' further clarifies the purpose.

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

Usage Guidelines4/5

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

The description states prerequisites ('Requires an ad account ID and level') and describes what is returned (revenue, cost, ROAS, sales, leads, percentage changes). It also provides a typical use case ('Perfect for compare this week vs last week'). However, it does not explicitly mention when not to use this tool or suggest alternatives like hyros_best_performers for top-level summaries.

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

hyros_create_callCreate CallB

Register a call event in Hyros. Used to track sales calls and attribute them to ad sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoCall date in ISO 8601 format
nameYesName of the call event (required)
emailNoLead email
stageNoLead stage
stateNoCall state
leadIpsNoLead IP addresses
lastNameNoLead last name
firstNameNoLead first name
externalIdNoExternal call ID
phoneNumbersNoLead phone numbers
qualificationNoWhether the call was qualified

TDQS

B3.2/5.0
Behavior2/5

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

Annotations show readOnlyHint=false, confirming a write operation. However, the description only says 'register a call event' without disclosing side effects, required permissions, return behavior, or error handling. With no additional annotations, this is insufficient for a mutation tool.

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

Conciseness5/5

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

Two sentences, no wasted words. The first sentence defines the action, the second adds context. Front-loaded and efficient.

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

Completeness2/5

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

Despite 11 parameters and no output schema, the description does not explain success/failure signals, return values, or integration requirements. For a creation tool with many fields, more context is needed to ensure correct invocation.

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

Parameters3/5

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

The input schema covers all 11 parameters with descriptions, achieving 100% coverage. The description adds no further parameter semantics, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it registers a call event and links to ad sources. The verb 'create' and resource 'call' are specific, but it does not explicitly distinguish from sibling tools like hyros_update_call or hyros_create_lead.

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

Usage Guidelines3/5

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

The description implies usage for tracking sales calls and attribution, but provides no guidance on when to use this tool versus alternatives (e.g., hyros_update_call for editing, hyros_create_lead for lead creation). No exclusions or prerequisites are stated.

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

hyros_create_cartCreate CartA

Create a new cart in Hyros to track a shopping cart before it converts to an order. Use this when a lead adds items to a cart so Hyros can attribute the eventual purchase.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoCart date in ISO 8601 format
emailNoCustomer email
itemsYesCart items (required)
cartIdNoExternal cart ID
leadIpsNoLead IP addresses
currencyNoCurrency code (e.g., USD)
lastNameNo
firstNameNo
phoneNumbersNo

TDQS

A3.9/5.0
Behavior3/5

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

Description is consistent with annotations (readOnlyHint=false) but lacks details on constraints like uniqueness of cartId or side effects. Does not add behavioral context beyond the basic write operation.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and usage. No unnecessary words.

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

Completeness3/5

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

Given moderate complexity (9 parameters, no output schema), description is functional but lacks details on creation behavior, return value, and constraints.

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

Parameters3/5

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

Schema description coverage is high (67%), so description adds no extra meaning beyond schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states the verb 'Create', resource 'cart', and context 'before it converts to an order'. It distinguishes from sibling tools like hyros_create_order and hyros_update_cart.

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

Usage Guidelines4/5

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

Explicitly says when to use: 'when a lead adds items to a cart'. However, it doesn't specify when not to use or mention alternatives like hyros_update_cart.

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

hyros_create_clickCreate ClickA

Manually track a click event in Hyros for attribution purposes. Use when you need to create a click record that was not automatically tracked by the Hyros tracking script.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoLead IP address
tagNoTag to apply to this click
dateNoClick date in ISO 8601 format
emailNoLead email. Either sessionId or email is required.
phonesNoLead phone numbers
isOrganicNoWhether this is an organic (non-paid) click
sessionIdNoSession identifier. Either sessionId or email is required.
userAgentNoBrowser user agent string
adSourceIdNoAd source ID
adspendAdIdNoAd spend ad ID
previousUrlNoPrevious URL before the click
referrerUrlYesThe URL where the click originated from (the ad or source URL)
sourceLinkTagNoSource link tag (e.g., @source-name)
adSourceClickIdNoPlatform click ID (e.g., Facebook fbclid)
integrationTypeNoAd platform integration type (e.g., FACEBOOK, GOOGLE)

TDQS

A3.7/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, meaning mutation. The description adds 'manually track a click event' but no further behavioral details (e.g., idempotency, permissions, side effects). Since annotations carry the safety profile, the description contributes minimal extra transparency.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and usage scenario. No wasted words, every sentence is informative.

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

Completeness3/5

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

Despite 15 parameters, the description is minimal and does not mention return values or success behavior. There is no output schema to compensate. For a creation tool, missing response details is a gap. Adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100% with each parameter having a description. The description does not add semantic value beyond the schema; it only states the required parameter (referrerUrl). Baseline of 3 is appropriate as the schema already explains parameters.

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

Purpose5/5

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

The description clearly states the tool creates a click event for attribution purposes, with a specific verb ('create') and resource ('click event'). It distinguishes from sibling tools by specifying manual tracking for cases not automatically captured.

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

Usage Guidelines4/5

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

The description explicitly says 'Use when you need to create a click record that was not automatically tracked', providing clear context. It does not explicitly mention when not to use or alternatives, but the context is strong enough to differentiate from automatic tracking.

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

hyros_create_custom_costAdd Custom CostA

Add a custom ad cost in Hyros. Use this to track offline ad spend, influencer payments, or any cost not automatically tracked by Hyros integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
costYesCost amount (required)
nameNoCost name/description
tagsYesTags to associate with this cost (max 20, required)
endDateNoCost end date for recurring costs (ISO 8601)
frequencyYesWhether the cost is daily or one-time (required)
startDateYesCost start date in ISO 8601 format (required)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, confirming mutation. The description adds context on use cases but does not disclose behavioral details such as idempotency, side effects, or return values. With annotations present, a score of 3 is appropriate.

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

Conciseness5/5

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

Two sentences with no fluff. The first sentence states the purpose, the second gives usage examples. Perfectly front-loaded and concise.

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

Completeness3/5

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

For a create tool with 6 parameters and no output schema, the description lacks information about return values, idempotency, or success indicators. It adequately explains the purpose but is not fully complete.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter already has a description. The tool description does not add extra meaning beyond the schema. Baseline 3 is correct.

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

Purpose5/5

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

The description clearly states 'Add a custom ad cost in Hyros' with specific verb and resource. It distinguishes from siblings by specifying offline ad spend, influencer payments, or costs not auto-tracked. No ambiguity.

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

Usage Guidelines4/5

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

The description explicitly says when to use the tool (track offline ad spend, influencer payments, or costs not automatically tracked). It provides context but does not give explicit when-not-to-use guidance or alternatives, though siblings cover many other operations.

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

hyros_create_leadCreate LeadA

Create a new lead in Hyros. At least one of email or phoneNumbers must be provided. If the email already exists, the lead will be updated with any new information provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoArray of tags to apply to the lead
emailNoEmail address of the lead (required if no phone number)
stageNoLead funnel stage name (e.g., MQL, SQL)
leadIpsNoIP addresses of the lead (used for ad attribution)
lastNameNoLast name of the lead
firstNameNoFirst name of the lead
phoneNumbersNoPhone numbers (required if no email)
adOptimizationConsentNoAd optimization consent status

TDQS

A3.9/5.0
Behavior4/5

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

The description discloses the upsert behavior (update if email exists) which is beyond the simple 'create' annotation (readOnlyHint: false). It adds context about required fields and idempotency, but does not mention authentication, rate limits, or side effects. The description does not contradict annotations.

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

Conciseness5/5

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

The description is two sentences long, directly states the main action and key constraint, with no extraneous information. It is front-loaded with the primary purpose.

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

Completeness3/5

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

Given the tool has 8 parameters and no output schema, the description lacks information about the return value (e.g., whether it returns the lead ID) and any potential errors. However, it covers the essential behavioral aspect (upsert). For a creation tool with moderate complexity, it is minimally adequate but has clear gaps.

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

Parameters4/5

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

The schema has 100% description coverage, but the description adds value by clarifying the mutual requirement of email and phoneNumbers ('At least one must be provided'), which is not explicitly stated in the individual parameter descriptions. This aids in understanding the parameter relationship.

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

Purpose5/5

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

The description clearly states the verb 'create' and the resource 'lead', with additional nuance about upsert behavior. It distinguishes itself from siblings like hyros_update_lead by specifying that an existing lead with the same email will be updated.

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

Usage Guidelines2/5

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

The description provides a condition (at least one of email or phoneNumbers must be provided) but does not guide the agent on when to use this tool versus alternative tools such as hyros_update_lead or hyros_get_leads. No explicit when-to-use or when-not-to-use guidance is given.

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

hyros_create_orderCreate OrderA

Register a new sale/order in Hyros. This creates a sale record attributed to a lead.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOrder date in ISO 8601 format
emailNoCustomer email (required if no phoneNumbers)
itemsYesOrder items (required)
stageNoLead stage to apply
taxesNoTotal order taxes
orderIdNoExternal order ID
currencyNoCurrency code (e.g., USD)
discountNoTotal order discount
shippingNoShipping cost
phoneNumbersNoCustomer phone numbers (required if no email)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, consistent with the description's 'creates' action. The description adds that the sale is 'attributed to a lead', providing some behavioral context beyond annotations, but does not disclose side effects, authorization needs, or rate limits.

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

Conciseness5/5

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

Two brief, front-loaded sentences with no wasted words. Every sentence adds value, clearly stating the tool's purpose.

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

Completeness3/5

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

Given the complexity (10 parameters, no output schema), the description is minimal. It covers basic purpose but lacks operational context such as required lead identification (though schema handles it) or return information. Adequate but not comprehensive.

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

Parameters3/5

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

Schema description coverage is 100%, so the description does not need to add parameter details. The description adds no additional meaning beyond what the schema provides, meeting the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states 'Register a new sale/order' and 'creates a sale record', using a specific verb (register/create) and resource (sale/order). It distinguishes from sibling tools like hyros_refund_order (refund) and hyros_update_sale (update).

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

Usage Guidelines3/5

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

The description implies usage for creating orders but does not explicitly state when to use this tool versus alternatives or provide exclusions. It lacks guidance on prerequisites or when not to use it.

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

hyros_create_productCreate ProductA

Create a new product in Hyros for sale attribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProduct name (required)
priceYesProduct price (required)
categoryNoProduct category name
packagesNoComma-separated package names for recurring sale attribution

TDQS

A3.5/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, but the description does not add any behavioral context beyond that. It does not disclose idempotency, error handling, or side effects. For a mutation tool, more transparency is needed.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words. It is appropriately front-loaded and efficient.

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

Completeness3/5

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

Given no output schema, the description could mention return value or error conditions. However, for a simple create tool with few parameters, it is minimally complete but lacks guidance on what happens after creation.

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

Parameters3/5

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

Schema coverage is 100% and the description does not add meaning beyond the schema. The baseline is 3 since the schema already explains parameters; the description provides no extra value.

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

Purpose5/5

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

The description clearly states the verb (Create), resource (product), and purpose (for sale attribution). It distinguishes this from sibling tools that create other entities like leads or orders.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives or prerequisites. The description implies a straightforward creation task but lacks context like required authentication or typical usage scenarios.

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

hyros_create_sourceCreate Ad SourceB

Create a new ad source/traffic source in Hyros for tracking custom marketing channels.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoCampaign goal
nameYesSource name (required)
categoryNoSource category
accountIdNoAd account ID
isOrganicNoWhether this is an organic source
adSourceIdNoExternal ad source ID
campaignIdNoCampaign ID
isDisregardNoWhether to disregard this source in attribution
trafficSourceNoTraffic source identifier
adspendSubTypeNoAd spend sub-type
integationTypeNoAdvertising platform

TDQS

B3.4/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false (write operation), which the description confirms with 'create'. However, the description does not disclose other behavioral traits such as what the tool returns, whether it requires specific authentication, or error conditions. With no output schema, this is a significant gap.

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

Conciseness5/5

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

Single sentence of 15 words, no wasted text. Front-loaded with purpose.

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

Completeness2/5

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

With 11 parameters and no output schema, the description is too brief. It does not explain parameter relationships (e.g., integationType vs trafficSource) or expected return value, leaving the agent underinformed.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter has a description. The tool description adds 'for tracking custom marketing channels' but does not enhance understanding beyond schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'ad source/traffic source' in Hyros for tracking custom marketing channels. This distinguishes it from sibling tools like hyros_get_sources (read) and hyros_create_lead (different entity).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. While the tool is unique among siblings, the description does not mention prerequisites or when not to use it, leaving implicit usage.

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

hyros_create_subscriptionCreate SubscriptionB

Register a new subscription in Hyros for recurring revenue tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoSubscriber email
priceYesSubscription price per period (required)
stageNoLead stage
planIdNoPlan identifier
statusYesInitial subscription status (required)
lastNameNoSubscriber last name
firstNameNoSubscriber first name
startDateYesSubscription start date in ISO 8601 format (required)
periodicityYesBilling period (required)
cancelAtDateNoScheduled cancellation date (required if status is CANCELED)
phoneNumbersNoSubscriber phone numbers
trialEndDateNoTrial end date (ISO 8601)
subscriptionIdNoExternal subscription ID
trialStartDateNoTrial start date (ISO 8601)

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, so the description adds no extra behavioral context. It does not disclose side effects, permissions, or what happens upon creation.

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

Conciseness4/5

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

A single concise sentence that is front-loaded. However, for a tool with 14 parameters, slightly more detail could be added without losing conciseness.

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

Completeness2/5

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

Given the tool's complexity (14 parameters, no output schema), the description is minimal. It does not explain return values, error handling, or how this tool fits into a workflow.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional parameter-specific meaning beyond what the schema already provides.

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

Purpose5/5

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

The description uses a specific verb 'Register' and resource 'new subscription' clearly stating the action. It distinguishes from sibling tools like hyros_update_subscription or hyros_get_subscriptions.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., hyros_update_subscription) or any prerequisites/context.

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

hyros_create_webhook_subscriptionCreate Webhook SubscriptionA

Subscribe an endpoint to Hyros events. Returns a secretKey used to verify the X-Hyros-Signature header on delivered payloads; the key is shown only once, so surface it to the user immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSubscription name
targetUrlYesHTTPS URL that will receive the event POSTs
eventTypesYesEvents to subscribe to

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the annotation readOnlyHint=false, the description discloses a critical behavior: the returned secretKey is shown only once and must be surfaced to the user immediately. This is essential context for handling the tool's output and is not present in annotations or schema. No contradictions with annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary purpose and followed by the critical secretKey detail. Every sentence earns its place with no redundant or fluff content.

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

Completeness4/5

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

For a create tool with no output schema, the description sufficiently covers the action, the one-time secretKey return, and the verification header. It does not explain error cases or prerequisites, but the schema provides parameter constraints (e.g., HTTPS URL). This is adequately complete given the tool's simplicity.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters (name, targetUrl, eventTypes) are already well-documented in the schema. The description adds no additional parameter-level meaning beyond what the schema provides, matching the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's function: 'Subscribe an endpoint to Hyros events.' This is a specific verb+resource combination that distinguishes it from sibling tools like hyros_get_webhook_subscriptions (list) and hyros_delete_webhook_subscription (delete). The mention of returning a secretKey for verification further clarifies its purpose.

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

Usage Guidelines3/5

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

The description implies usage by saying 'Subscribe an endpoint to Hyros events,' but it does not explicitly state when to use this tool versus alternatives (e.g., when to list or delete subscriptions). No alternatives or exclusions are mentioned, so guidance is only implicit.

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

hyros_daily_summaryDaily SummaryA
Read-only

Get a complete performance summary for today (or a specific date). Returns total revenue from sales, number of new leads, call team performance, and subscription stats. Perfect for answering "how did we do today?" or "what is today's revenue?"

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate to summarize in YYYY-MM-DD format (defaults to today)
timezoneNoTimezone offset for the date (e.g., -05:00 for EST). Must be in +HH:MM or -HH:MM format. Defaults to +00:00

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, which the description aligns with. It adds behavioral context by listing the specific metrics returned (revenue, leads, calls, subscriptions), going beyond the annotation alone.

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

Conciseness5/5

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

Two well-structured sentences with no wasted words. Every sentence adds value, clearly stating functionality and usage examples.

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

Completeness4/5

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

Without an output schema, the description compensates by listing the key return fields (revenue, leads, calls, subscriptions). It covers the essential context for an agent to use this tool effectively.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes both parameters. The description adds no new meaning beyond restating 'today (or a specific date)', which matches the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'complete performance summary' with specific details like revenue, leads, calls, and subscriptions. It distinguishes from sibling tools that fetch individual metrics.

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

Usage Guidelines4/5

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

The description provides clear usage context with example questions like 'how did we do today?' but does not explicitly mention when to use alternatives or exclusions.

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

hyros_delete_callDelete CallB
Destructive

Permanently delete a call record from Hyros.

ParametersJSON Schema
NameRequiredDescriptionDefault
callIdYesCall ID to delete (required)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate destructiveHint: true, so the description merely reinforces the destructive nature with 'Permanently delete.' No additional behavioral details (e.g., irreversibility, required permissions) are disclosed. The description does not contradict 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.

Conciseness4/5

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

The description is a single, clear sentence that is concise and front-loaded. However, it could include a brief warning about destructiveness without losing conciseness.

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

Completeness2/5

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

Given the tool's destructive nature, the description lacks completeness by not mentioning that the action cannot be undone or any potential side effects. There is no output schema, so the return behavior is entirely unspecified. Minimal information beyond the basics.

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

Parameters3/5

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

The input schema provides a description for the single parameter callId: 'Call ID to delete (required).' The description adds no further meaning, staying within the schema coverage. With 100% schema coverage, the description's contribution is neutral.

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

Purpose5/5

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

The description clearly states 'Permanently delete a call record from Hyros,' specifying the exact verb (delete), resource (call record), and the permanent nature. It effectively distinguishes from sibling tools like create_call or get_calls.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks information about prerequisites, context, or when not to use it. The sibling list is extensive but no differentiation is given.

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

hyros_delete_custom_costDelete Custom CostA
DestructiveIdempotent

Delete a custom cost. Use this to stop a mistaken or open-ended recurring cost from skewing profit and ROAS on every report.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustom cost ID (from hyros_get_custom_costs)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description doesn't need to restate destructive behavior. It adds value by explaining the consequence: removing the cost prevents skewing profit and ROAS reports. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the action. Every word earns its place; no filler.

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

Completeness4/5

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

For a simple single-parameter delete tool with annotations, the description provides purpose, usage, and effect. It doesn't detail return values or permanent repercussions, but annotations and schema cover the essentials.

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

Parameters3/5

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

The input schema covers the single parameter 'id' with a description stating it comes from hyros_get_custom_costs. The description adds no further parameter semantics beyond what the schema provides, but with 100% schema coverage, baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Delete a custom cost,' which is a specific verb+resource pair. The added rationale about stopping mistaken or open-ended recurring costs distinguishes this from sibling get/create/update operations.

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

Usage Guidelines4/5

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

The sentence 'Use this to stop a mistaken or open-ended recurring cost from skewing profit and ROAS on every report' provides a concrete use case. It doesn't explicitly mention alternatives like hyros_update_custom_cost, but it implies when deletion is appropriate rather than editing.

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

hyros_delete_leadDelete LeadA
DestructiveIdempotent

Permanently erase a lead and its personal data, found by email or id. Use this for GDPR or CCPA right-to-erasure requests. Cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoID of the lead to delete. Provide either email or id.
emailNoEmail of the lead to delete. Provide either email or id.

TDQS

A4.4/5.0
Behavior5/5

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

The description adds significant context beyond annotations: it emphasizes permanence ('Cannot be undone'), mentions 'personal data' deletion, and links to legal frameworks. This goes beyond the destructiveHint=true annotation by explaining the real-world impact and data privacy implications.

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

Conciseness5/5

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

Two concise sentences deliver all essential information: what, how, when, and consequences. Zero waste, and the key message is front-loaded.

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

Completeness4/5

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

For a simple delete tool with only 2 optional parameters and no output schema, the description covers the purpose, usage context, and irreversibility. It doesn't describe return values, but that's expected for a delete operation. Could mention response behavior but not essential.

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

Parameters3/5

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

The schema already provides 100% coverage with both parameters described as 'Provide either email or id.' The description reinforces this but doesn't add new semantic details such as format or validation. Baseline 3 is appropriate since the schema carries the parameter documentation.

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

Purpose5/5

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

The description uses specific verb 'permanently erase' with clear resource ('a lead'), and distinguishes it from sibling delete tools (hyros_delete_call, hyros_delete_sale) by specifying the target (lead) and the method of identification (email or id).

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

Usage Guidelines4/5

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

It explicitly states when to use (GDPR/CCPA right-to-erasure requests) and provides clear context that this is for permanent deletion. While it doesn't name alternatives or exclusions, the purpose is obvious and privacy-related. It could be improved by mentioning that other delete tools exist for other resource types, but the context is sufficient.

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

hyros_delete_productDelete ProductA
DestructiveIdempotent

Delete a product from the Hyros catalog. Use this to remove one created by mistake or by a duplicate import.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct ID (from hyros_get_products)

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, and the description consistently adds catalog scope and intended use. It doesn't add significant behavioral detail beyond that, so a 3 is appropriate.

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

Conciseness5/5

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

The description is a single front-loaded sentence: first the action, then the usage note. Every word earns its place, with no redundancy.

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

Completeness5/5

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

For a simple delete tool with one parameter, strong annotations (destructive, idempotent), and no output schema, the description is sufficient. It explains what it does and when to use it, with no missing essential context.

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

Parameters3/5

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

The input schema fully documents the single 'id' parameter with a clear description and source (from hyros_get_products). The tool description adds no additional parameter semantics, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the action (delete) and resource (product from Hyros catalog), and adds usage context (mistake/duplicate import), distinguishing it from sibling delete tools for other resources.

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

Usage Guidelines4/5

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

Provides clear context for when to use: removing a product created by mistake or duplicate import. However, it doesn't explicitly mention alternatives like hyros_update_product for corrective actions, so it stops short of a full 5.

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

hyros_delete_saleDelete SaleA
Destructive

Permanently delete a sale record from Hyros. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
saleIdYesSale ID to delete (required)

TDQS

A3.9/5.0
Behavior4/5

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

The description adds 'permanently delete' and 'cannot be undone', which goes beyond the annotations (destructiveHint=true) by emphasizing irreversibility. No contradictions with annotations.

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

Conciseness5/5

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

Two concise sentences with no wasted words. The core information is front-loaded.

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

Completeness5/5

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

For a simple delete operation with one required parameter and both annotations present, the description is fully adequate. It covers the action, permanence, and the required input.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. The description does not add extra meaning beyond what the schema's description ('Sale ID to delete (required)') already provides.

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

Purpose5/5

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

The description clearly states the verb 'delete' and the resource 'sale record', making the purpose unambiguous. It distinguishes itself from siblings like 'hyros_update_sale' and 'hyros_delete_call'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., update or other delete tools). No explicit when-not or alternative tools mentioned.

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

hyros_delete_sourceDelete Ad SourceA
DestructiveIdempotent

Delete an ad source by its tag. Use this to clean up sources created by mistake that clutter every attribution pull. Setting isDisregard via hyros_update_source is the reversible alternative.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesSource tag, including the @ prefix

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true. The description adds context that this is the irreversible option by highlighting the reversible alternative, going beyond the annotation's simple flags.

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

Conciseness5/5

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

Three concise sentences cover action, use case, and alternative. Each sentence earns its place without any fluff or redundancy.

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

Completeness4/5

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

This is a simple single-parameter tool with annotations covering destructive/idempotent flags. The description covers purpose, usage, and alternative, leaving little ambiguity for a delete operation.

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

Parameters3/5

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

The schema defines 'tag' with 'Source tag, including the @ prefix', providing 100% coverage. The description does not add additional parameter semantics beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states 'Delete an ad source by its tag' with a specific verb and resource, and it distinguishes itself from sibling tools by focusing on deletion rather than other operations like update_source.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool ('clean up sources created by mistake that clutter every attribution pull') and names an alternative ('Setting isDisregard via hyros_update_source is the reversible alternative').

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

hyros_delete_webhook_subscriptionDelete Webhook SubscriptionA
DestructiveIdempotent

Delete a webhook subscription by its externalId. Deliveries stop immediately and the secretKey is not recoverable afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
externalIdYesSubscription externalId (from hyros_get_webhook_subscriptions)

TDQS

A4.5/5.0
Behavior5/5

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

The description goes beyond the destructiveHint annotation by specifying that 'Deliveries stop immediately' and 'the secretKey is not recoverable afterwards.' This discloses critical irreversible consequences and timing of the delete operation. It also aligns with the idempotentHint annotation (deleting an already-deleted subscription could be considered idempotent). No contradiction with annotations.

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

Conciseness5/5

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

The description is two short sentences, with the action verb in the first word. It contains no filler or redundant statements. Every sentence adds essential information, making it exceptionally concise while still covering key behavioral details.

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

Completeness5/5

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

For a single-parameter delete tool with annotations for destructive/idempotent behavior, the description fully covers what happens (delete), how (by externalId), and consequences (immediate stop, secretKey loss). No output schema exists, so return values are not needed. The description is sufficiently complete given the tool's simplicity.

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

Parameters3/5

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

The input schema provides 100% coverage with a clear description for externalId ('Subscription externalId (from hyros_get_webhook_subscriptions)'). The description repeats 'by its externalId' but adds no new syntax or format details beyond the schema. Therefore, the baseline score of 3 applies, as the schema carries the semantic load.

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

Purpose5/5

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

The description begins with 'Delete a webhook subscription by its externalId,' clearly stating the action (delete), resource (webhook subscription), and method (by externalId). This distinguishes it from sibling tools like hyros_create_webhook_subscription and hyros_get_webhook_subscriptions. The additional consequence 'Deliveries stop immediately' reinforces the purpose.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: when you need to permanently stop webhook deliveries. It states the deletion is by externalId, and the schema description points to hyros_get_webhook_subscriptions for obtaining that ID. However, it does not explicitly mention alternatives or exclusions, so it lacks the explicit 'when-not' guidance that would earn a 5.

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

hyros_funnel_overviewFunnel OverviewA
Read-only

Get a complete funnel overview showing the full customer journey from clicks to revenue for a date range. Shows: total leads, calls (with qualification rate), sales (with amounts), subscriptions, and calculates conversion rates between each stage.

ParametersJSON Schema
NameRequiredDescriptionDefault
toDateYesEnd date in ISO 8601 format (required)
currencyNoCurrency code for revenue
fromDateYesStart date in ISO 8601 format (required)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds context that the tool calculates conversion rates and shows the customer journey stages. No contradictions, and the description adequately supplements the annotation's safety profile.

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

Conciseness5/5

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

Two concise sentences with the purpose front-loaded. Every sentence adds value: the first states the overall function, the second enumerates the specific metrics. No wasted words.

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

Completeness3/5

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

While the description covers the main functionality and metrics, it lacks details about output format, pagination, or data limits. For a composite tool with multiple metrics and no output schema, more context would be beneficial to fully inform the agent.

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

Parameters3/5

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

The input schema has 100% description coverage for its 3 parameters, so the schema already explains them. The description adds value by implying the date range applicability and listing the metrics calculated, but does not provide additional parameter-specific details beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('complete funnel overview') and lists the exact metrics included (total leads, calls, sales, subscriptions, conversion rates). This clearly distinguishes it from sibling tools that focus on individual metrics.

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

Usage Guidelines3/5

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

The description implies usage for obtaining an aggregated funnel view over a date range, but does not provide explicit guidance on when to use this tool versus alternatives like hyros_get_leads or hyros_get_sales. No when-not or exclusion criteria are mentioned.

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

hyros_get_ad_account_reportAd Account ReportA
Read-only

Get attribution metrics grouped by ad account. Provide the ad account ID(s) to get aggregated performance across all campaigns/ads in those accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesComma-separated ad account IDs to report on (required)
fieldsYesComma-separated metrics (required). Options: revenue,cost,sales,leads,roas,roi,profit,clicks,impressions,ctr,cost_per_lead,cost_per_sale,name
pageIdNoPagination page ID
endDateYesReport end date in ISO 8601 format (required)
currencyNoCurrency for monetary values
pageSizeNoResults per page (max 250)
startDateYesReport start date in ISO 8601 format (required)
attributionModelYesAttribution model to use
dayOfAttributionNoIf true, filters by click date instead of sale date
forecastingOptionNoForecasting basis for LTV/forecast fields
scientificDaysRangeNoDay range (1-30) for first ad attribution, used with the scientific model
sourceConfigurationNoWhich sources to include in attribution
ignoreRecurringSalesNoExclude recurring sales from the report
dateTimeGroupingOptionNoGroup results by time period instead of a single aggregate row (default: ad_account). With day, a 30-day window returns 30 rows whose costs sum to the aggregate total.
newCustomerConfigurationNoCustomer cohort to include
windowAttributionDaysRangeNoAttribution window in days (0-365)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=true, so the description's 'get' aligns. However, the description adds minimal behavioral context beyond what annotations provide (e.g., no mention of rate limits or error handling).

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

Conciseness5/5

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

Two concise sentences with no redundancy, effectively conveying the core purpose.

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

Completeness3/5

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

Given the complexity (16 parameters, no output schema), the description only covers high-level purpose. Lacks details on pagination, return format, or behavioral nuances, but schema is thorough.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema's parameter descriptions (e.g., 'ad account ID(s)' is already in schema).

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

Purpose5/5

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

Description explicitly states the action ('get'), resource ('attribution metrics grouped by ad account'), and scope, clearly distinguishing it from siblings like hyros_get_attribution_report.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as hyros_get_attribution_report. The description only instructs to provide ad account IDs but does not exclude other scenarios.

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

hyros_get_ad_accountsList Ad AccountsA
Read-only

List the ad accounts connected to Hyros with their id, name, and platform. Call this first to discover the ids that hyros_get_ad_account_report and hyros_get_attribution_report need.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated ad account ids to filter by (max 50). Omit to list every connected account.
fieldsNoComma-separated fields to include per result (e.g. id,name). Omit for all fields.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already include readOnlyHint: true, so the safety profile is covered. The description adds valuable behavioral context by explaining that this tool returns the ids required by other report tools, effectively positioning it as a discovery prerequisite. It also lists the returned fields (id, name, platform), which enriches the behavioral understanding beyond the annotation.

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

Conciseness5/5

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

The description is two sentences: the first front-loads the purpose and output, the second provides workflow guidance. There is zero fluff; every sentence earns its place. It's concise, scannable, and immediately informative.

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

Completeness5/5

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

For a simple list tool with no required parameters, no output schema, and read-only annotations, the description is complete. It explains what is listed, what fields are returned, and how to use it in relation to other tools. No critical information is missing given the tool's simplicity and the schema's full parameter coverage.

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

Parameters3/5

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

The input schema has 100% coverage with both parameters (ids, fields) already described clearly. The tool description does not add any extra meaning to the parameters themselves; it only mentions the output fields (id, name, platform), which is not parameter-related. Since the schema carries the full burden, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'List the ad accounts connected to Hyros with their id, name, and platform.' It uses a specific verb (List), specifies the resource (ad accounts connected to Hyros), and even mentions exact output fields. It also distinguishes itself from sibling report tools by stating it should be called first to discover ids needed by hyros_get_ad_account_report and hyros_get_attribution_report.

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

Usage Guidelines4/5

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

The description explicitly instructs when to use the tool: 'Call this first to discover the ids that hyros_get_ad_account_report and hyros_get_attribution_report need.' This gives clear context and a prerequisite workflow. However, it does not explicitly state when not to use it or mention alternative tools, so it stops short of a perfect 5.

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

hyros_get_adsGet AdsA
Read-only

Get ads from a specific advertising platform tracked in Hyros.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdNoPagination page ID
pageSizeNoResults per page (1-250)
adSourceIdsNoComma-separated ad source IDs to filter by
integrationTypeYesAdvertising platform to get ads from (required)

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates a safe read operation. The description adds no further behavioral details (e.g., pagination, ordering, or rate limits), so it provides minimal additional value beyond the annotation.

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

Conciseness4/5

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

The description is a single concise sentence with no filler, front-loading the key action. It could be slightly more informative without becoming verbose, but it remains efficient.

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

Completeness3/5

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

Given the absence of an output schema, the description could mention what data the tool returns (e.g., ad details). It also does not clarify the scope of 'ads' or any relationship to other tools. It is adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100%, so the description is not required to elaborate on parameters. It loosely references the integrationType by mentioning 'specific advertising platform', but this does not significantly add meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'ads', and adds context about filtering by a specific advertising platform. This distinguishes it from sibling tools like hyros_get_leads or hyros_get_sales.

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

Usage Guidelines3/5

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

The description implies the need for an integrationType parameter but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.

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

hyros_get_attribution_reportAttribution ReportA
Read-only

Get detailed attribution metrics for specific ads, campaigns, or ad sets. Use this to answer "what is my ROAS?", "how much did I earn vs spend?", "which ad has the best ROI?". Requires specifying the level (e.g., facebook_adset, google_campaign) and the IDs to query. Use hyros_get_sources to find source IDs first.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesComma-separated IDs based on the level (required, unless level is google_v2_keyword). E.g. for facebook_adset use the adset IDs. Use isAdAccountId=true to provide an ad account ID and get all sources within it.
levelYesAttribution level (required): the granularity of the report. Use facebook_adset for Facebook ad sets, google_campaign for Google campaigns, etc.
fieldsYesComma-separated metrics (required). Options: revenue,cost,sales,leads,calls,roas,roi,profit,refund,unique_sales,new_leads,cost_per_lead,cost_per_sale,cost_per_call,clicks,impressions,ctr,cpm,cvr,qualified_calls,unqualified_calls,30_days_ltv,90_days_ltv,1_year_ltv,new_mrr,churn_rate,aov,cac,name,parent_name. Example: "revenue,cost,sales,leads,roas,roi"
pageIdNoPagination page ID
endDateYesReport end date in ISO 8601 format, e.g. 2024-01-31T23:59:59 (required)
currencyNoCurrency for monetary values (default: user_currency)
pageSizeNoResults per page (1-250)
startDateYesReport start date in ISO 8601 format, e.g. 2024-01-01T00:00:00 (required)
isAdAccountIdNoIf true, the ids field should contain a single ad account ID and the report will include all sources in that account at the specified level
attributionModelYesAttribution model: last_click (last touch), scientific (AI-based), first_click (first touch)
dayOfAttributionNoIf true, filter by click date instead of sale date
timeGroupingOptionNoHow to group the results (default: source_link)
scientificDaysRangeNoDay range (1-30) for first ad attribution in scientific model (default: 30)
sourceConfigurationNoFilter by organic/paid sources (default: ignore_organic)
windowAttributionDaysRangeNoDays range for attribution window (0-365, default: 0)

TDQS

A3.9/5.0
Behavior3/5

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

The annotations already provide readOnlyHint=true. The description adds no further behavioral context (e.g., performance, data volume, pagination limits). It does not contradict annotations.

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

Conciseness5/5

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

The description is only two sentences, front-loaded with the core purpose, and each sentence adds value without redundancy.

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

Completeness3/5

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

Given the high parameter count (15) and no output schema, the description covers the main use case but omits details on optional parameters like pagination, filters, and grouping. It is adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description restates the need for level and IDs but adds no new semantic value beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states the tool retrieves attribution metrics for ads, campaigns, or ad sets, and provides example questions. It distinguishes itself from sibling tools like hyros_get_sources by referencing the need to use that tool first.

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

Usage Guidelines4/5

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

The description explicitly tells when to use the tool (answering ROAS, ROI questions) and advises to use hyros_get_sources first. It does not explicitly state when not to use it, but the context is clear enough.

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

hyros_get_callsGet CallsB
Read-only

Retrieve call records from Hyros. Useful for businesses with phone sales teams. Filter by date, email, qualification status, or call state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated call IDs (max 50)
stateNoFilter by call state
emailsNoComma-separated emails (max 50)
pageIdNoPagination page ID
toDateNoEnd date in ISO 8601 format
leadIdsNoComma-separated lead IDs (max 50)
fromDateNoStart date in ISO 8601 format
pageSizeNoResults per page (1-250)
qualifiedNoFilter by qualification status
productTagsNoComma-separated product tags (max 20)

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true, so the description carries a lower burden. However, it merely restates filterable fields from the schema and adds no new behavioral details like pagination behavior, rate limits, or default result ordering.

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

Conciseness5/5

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

Two sentences, each providing value: the first states the core purpose, the second adds context and filter hints. No redundant or extraneous content.

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

Completeness2/5

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

Despite 10 optional parameters and no output schema, the description omits critical details like pagination (pageId, pageSize), default behavior when no filters are applied, and the return format. This inadequately prepares an agent for effective use.

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

Parameters3/5

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

Schema coverage is 100%, providing baseline of 3. The description groups parameters by category (date, email, qualification, call state) but does not add syntactic or relational meaning beyond the schema's individual descriptions.

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

Purpose5/5

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

The description clearly states the verb 'retrieve' and resource 'call records', distinguishing it from sibling tools like hyros_get_leads or hyros_get_sales. The additional context about phone sales teams reinforces the tool's domain.

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

Usage Guidelines3/5

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

The description provides a usage hint ('useful for businesses with phone sales teams') and lists filter options, but does not explicitly state when to avoid this tool or suggest alternative tools among the many siblings.

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

hyros_get_cartsGet CartsA
Read-only

List shopping carts filtered by purchase status, lead, or date. Set purchased=false to find abandoned carts for a recovery campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailsNoComma-separated emails (max 50)
pageIdNoPagination page ID
toDateNoEnd date, ISO 8601
leadIdsNoComma-separated lead IDs (max 50)
fromDateNoStart date, ISO 8601
pageSizeNoResults per page (1-250)
purchasedNotrue returns carts that converted to an order, false returns abandoned carts. Omit for both.

TDQS

A4.3/5.0
Behavior4/5

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

The annotation already declares readOnlyHint=true, so the safety profile is known. The description adds a behavioral note about the 'purchased' parameter's effect on filtering, helping the agent understand how to target abandoned carts. No contradictions.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with the action and entity. Every word adds value—the second sentence directly instructs a useful filter combination.

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

Completeness5/5

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

The tool is a simple filtered list operation with no required parameters. The schema fully documents all parameters, and the description provides a practical use case. The lack of an output schema is acceptable for a list tool of this nature, matching high-caliber examples.

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

Parameters3/5

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

The input schema already documents all 7 parameters with descriptions covering 100% of the schema. The description reinforces the 'purchased' parameter's semantics with an example, but does not add new information beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses the specific verb 'List' with a clear resource 'shopping carts', and explicitly mentions the filtering dimensions (purchase status, lead, date). This distinguishes it from sibling tools like hyros_get_sales and hyros_get_leads, which focus on different entities.

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

Usage Guidelines4/5

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

The description gives a concrete use case (Set purchased=false to find abandoned carts for a recovery campaign), indicating when the tool is useful. However, it does not explicitly mention alternatives or exclusions, so it stops short of full when/when-not guidance.

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

hyros_get_clicksGet ClicksA
Read-only

Get click tracking data for a specific lead. Shows the ad clicks and traffic sources that led a customer to your site.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoLead email to get clicks for (mutually exclusive with leadId)
leadIdNoLead ID to get clicks for (mutually exclusive with email)
pageIdNoPagination page ID
toDateNoEnd date in ISO 8601 format
fromDateNoStart date in ISO 8601 format
pageSizeNoResults per page (max 250)

TDQS

A3.8/5.0
Behavior3/5

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

The description aligns with readOnlyHint=true, indicating a read operation. It adds context about ad clicks and traffic sources but does not disclose additional behavioral details beyond what annotations provide.

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

Conciseness5/5

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

The description is a single clear sentence with no unnecessary words, making it highly concise and front-loaded.

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

Completeness4/5

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

The description covers the core purpose and mentions relevant context (ad clicks, traffic sources). While it omits pagination and date parameters, the schema fully documents these, so the combination is complete.

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

Parameters3/5

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

Schema coverage is 100% with well-described parameters. The description does not add significant meaning beyond what the input schema already provides, matching the baseline for high coverage.

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

Purpose5/5

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

The description clearly states it retrieves click tracking data for a specific lead, which is a specific verb+resource combination. It distinguishes itself from siblings like hyros_create_click and other get tools.

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

Usage Guidelines3/5

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

The description implies usage for retrieving clicks for a specific lead but does not explicitly state when not to use or mention alternatives. It provides basic context but lacks guidance on exclusions.

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

hyros_get_custom_costsGet Custom CostsA
Read-only

List custom costs (agency fees, tool subscriptions, offline spend) active in a date window. Use this to audit costs that skew profit and ROAS, especially recurring ones left without an end date.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated custom cost ids (max 50)
pageIdNoPagination page ID
toDateNoOnly costs active on or before this date, ISO 8601
fromDateNoOnly costs active on or after this date, ISO 8601. The window filters on when the cost applies, not when it was created.
pageSizeNoResults per page (1-250, default 50)

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes the read-only nature, and the description adds behavioral context about the date-window filtering and recurring-cost edge case. No contradiction exists, and the extra context is valuable.

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

Conciseness5/5

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

Two sentences with an action-first verb, concrete examples, and a clear use case. No redundancy or filler, making it appropriately sized and front-loaded.

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

Completeness4/5

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

For a simple read tool with full schema coverage and no output schema, the description covers purpose, examples, and use case. It does not mention pagination behavior, but that is available in the schema and not critical for this tool.

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

Parameters3/5

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

Schema descriptions cover 100% of parameters, including detailed semantics for fromDate. The description mentions 'date window' but does not elaborate on individual parameters, so it adds minimal value 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.

Purpose5/5

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

The description opens with 'List custom costs', a specific verb and resource, and adds clarifying examples (agency fees, tool subscriptions, offline spend) and a date-window scope. This clearly differentiates it from sibling tools like get_calls or get_leads.

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

Usage Guidelines4/5

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

The second sentence gives explicit use-case guidance: 'Use this to audit costs that skew profit and ROAS, especially recurring ones left without an end date.' It lacks explicit alternatives or when-not-to-use, but the context is clear.

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

hyros_get_domainsGet DomainsA
Read-only

Get all verified domains in your Hyros account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

The annotation readOnlyHint already signals non-destructiveness. The description adds that domains are 'verified' but does not disclose other behaviors like return format or rate limits.

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

Conciseness5/5

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

Single sentence with no wasted words, directly stating the tool's function.

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

Completeness4/5

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

Adequate for a simple read-only tool without parameters, though missing output details could be improved for full completeness.

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

Parameters4/5

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

With 0 parameters and high schema coverage, the description adds value by clarifying the scope ('verified domains') beyond the empty schema.

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

Purpose5/5

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

The description 'Get all verified domains in your Hyros account' uses a specific verb and resource, clearly distinguishing it from other get tools like hyros_get_user_info or hyros_get_calls.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives; lacks context such as prerequisites or exclusions.

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

hyros_get_keywordsGet KeywordsB
Read-only

Get keywords for a specific ad group (mainly for Google Ads keyword tracking).

ParametersJSON Schema
NameRequiredDescriptionDefault
adgroupIdYesAd group ID to get keywords for (required)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to repeat that. It adds the Google Ads context but no further behavioral details (e.g., rate limits, scope). Sufficient for a read operation given annotations.

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

Conciseness5/5

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

Single sentence, no fluff, front-loaded with the action and resource. Every word adds value.

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

Completeness4/5

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

For a simple read tool with one required parameter and no output schema, the description is mostly complete. It could hint at return format, but that is less critical given the tool's simplicity.

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

Parameters3/5

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

The schema covers the single parameter adgroupId with description. The description reiterates 'specific ad group' but adds no new semantic detail. Baseline score since schema coverage is 100%.

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

Purpose4/5

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

The description clearly states the action (get) and resource (keywords for a specific ad group), and hints at the Google Ads context. It distinguishes from siblings like hyros_get_ads or hyros_get_clicks by specifying the resource, though no explicit differentiation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other keyword-related tools or alternatives. The Google Ads hint is the only usage context, but lacks explicit when-to-use or when-not-to-use information.

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

hyros_get_lead_journeyLead JourneyA
Read-only

Get the complete customer journey for one or more leads: sales, calls, carts, subscriptions, linked leads, and ad attribution sources. Use this to understand what ads drove a customer to convert. Accepts emails directly, so no lookup round-trip is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated lead IDs. Provide either ids or emails.
emailsNoComma-separated emails. Provide either ids or emails.
includeEventsNoAlso return the chronological journey event list (default false)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, establishing the read-only nature. The description adds behavioral details beyond annotations: it returns multiple journey components (sales, calls, etc.) and accepts emails directly. It does not disclose response format or potential limitations, but with annotations covering safety, this is sufficient.

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

Conciseness5/5

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

The description is two concise sentences: the first states the function and data components, the second gives a use case and input flexibility. It is front-loaded with no filler or repetition.

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

Completeness4/5

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

The tool has 3 optional parameters and no output schema. The description explains the purpose, the contents of the journey, and when to use it, which is adequate for tool selection and basic invocation. It could mention response shape or pagination, but the listed components give a reasonable expectation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents ids, emails, and includeEvents thoroughly. The description reinforces email acceptance but does not add new parameter-level syntax or semantics. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description uses the specific verb 'Get' with a clear resource: 'complete customer journey for one or more leads,' and enumerates components (sales, calls, carts, subscriptions, linked leads, ad attribution sources). This distinguishes it from sibling tools that focus on individual data types.

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

Usage Guidelines4/5

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

The description provides a specific use case: 'Use this to understand what ads drove a customer to convert.' It also implies a workflow advantage by stating 'Accepts emails directly, so no lookup round-trip is needed.' However, it does not explicitly name alternative tools or exclusion criteria.

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

hyros_get_leadsGet LeadsA
Read-only

Search and retrieve leads from Hyros. Filter by email, phone, tag, stage, join date, or last-updated date. Use this to find customers, check their tags and current funnel stage, and sync changes into another system.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated lead IDs to retrieve (max 50)
tagsNoComma-separated tag names (max 50). Returns leads matching ANY of them. Tags must include their prefix, e.g. @california or !florida.
stageNoComma-separated stage names (max 50). Returns leads whose current stage matches ANY of them.
emailsNoComma-separated emails or email prefixes to search (max 50)
pageIdNoPage ID for pagination (from nextPageId in previous response)
phonesNoComma-separated phone numbers (max 50). Matches on trailing digits, so formatting and country codes are tolerated. Finds leads that also have an email.
toDateNoEnd of the JOIN date range, ISO 8601 (e.g. 2024-01-31T23:59:59-05:00)
fromDateNoStart of the JOIN date range, ISO 8601 (e.g. 2024-01-01T00:00:00-05:00)
pageSizeNoNumber of results per page (1-250, default 50)
updatedToDateNoOnly leads modified on or before this date, ISO 8601
updatedFromDateNoOnly leads modified on or after this date, ISO 8601. Use this for incremental sync: fromDate/toDate only see the join date and miss re-tagged or re-staged leads.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description aligns with that. Beyond annotations, the description/schema notes important behavioral traits: tags/stages match on ANY, phone matches trailing digits and only finds leads with an email, and updatedFromDate enables incremental sync (unlike join-date filters). These add valuable context beyond the read-only hint.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action and filters, followed by use cases. Every phrase earns its place, with no redundancy or fluff.

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

Completeness4/5

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

Given 11 parameters, no required params, and no output schema, the description covers the essential use cases and leaves param details to the schema (which is exhaustive). It doesn't explicitly mention pagination or filter combination, but the schema handles pagination via pageId/pageSize, making the description adequate for a read-only search tool.

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

Parameters3/5

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

Schema description coverage is 100%, with rich per-parameter details (max limits, examples, matching semantics). The description only summarizes filter types ('email, phone, tag, stage, join date, last-updated') without adding new meaning. This is exactly the baseline 3 case where the schema carries the weight.

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

Purpose5/5

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

The description clearly states the action ('Search and retrieve leads from Hyros'), names the specific resource (leads), and enumerates the filter dimensions (email, phone, tag, stage, join date, last-updated). This distinguishes it from sibling tools like hyros_get_lead_journey, which focuses on a lead's journey rather than search/retrieval.

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

Usage Guidelines4/5

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

The description provides concrete usage context: 'Use this to find customers, check their tags and current funnel stage, and sync changes into another system.' This tells the agent when the tool is appropriate, but it does not explicitly name alternatives or exclusions, so it falls just short of a 5.

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

hyros_get_productsGet ProductsA
Read-only

List products in the Hyros catalog with price, cost of goods, and category. Use this before creating a product to avoid duplicates, or to audit the pricing that feeds profit and ROAS reporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated product ids (max 50)
nameNoFilter by product name
tagsNoComma-separated product tags (the $-prefixed ones)
pageIdNoPagination page ID
categoryNoFilter by category
pageSizeNoResults per page (1-250)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows it is safe and non-destructive. The description adds context about the purpose and that it returns pricing data, but it does not disclose pagination behavior, default result sizes, or the exact response shape. This is adequate given the read-only annotation, but not rich.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, and no unnecessary words or repetition. The use cases are appended succinctly. This is highly concise and well-structured.

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

Completeness3/5

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

The tool has 6 optional parameters, pagination support, and no output schema. The description explains the purpose and use cases, but it does not mention that results are paginated, whether all products are returned when no filters are provided, or the structure of the response. Given the absence of an output schema, this is a notable gap, though the read-only nature and good schema coverage keep it acceptable.

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

Parameters3/5

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

The input schema has 100% parameter description coverage, so the schema already explains each parameter. The description does not add any additional semantics beyond what the schema provides, such as examples, formatting rules, or relationships between parameters. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('List products in the Hyros catalog') and identifies the resource and specific returned fields (price, cost of goods, category). This distinguishes it from sibling getters such as get_sales or get_leads, and from product mutation tools like create_product.

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

Usage Guidelines4/5

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

The description provides explicit use cases: 'Use this before creating a product to avoid duplicates, or to audit the pricing that feeds profit and ROAS reporting.' It clearly indicates when to use the tool, though it does not mention when not to use it or name alternative tools.

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

hyros_get_salesGet SalesA
Read-only

Retrieve sales records filtered by date, email, lead ID, product tag, or recurring/refund status. Use this to check revenue, see what products sold, and track refunds.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated sale IDs (max 50)
emailsNoComma-separated emails to filter sales by (max 50)
pageIdNoPagination page ID
toDateNoEnd date in ISO 8601 format
leadIdsNoComma-separated lead IDs to filter sales by (max 50)
fromDateNoStart date in ISO 8601 format
pageSizeNoResults per page (1-250)
productTagsNoComma-separated product tags to filter by (max 20)
isRecurringSaleNoFilter by recurring status (default: ALL)
saleRefundedStateNoFilter by refund status (default: ALL)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description aligns with a read operation. No contradictions. The description adds behavioral context (date range, status filters) but omits pagination behavior. However, given annotations cover safety, further detail is not critical.

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

Conciseness5/5

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

Two sentences, no wasted words. The first sentence clearly states the action and filters; the second provides use cases. Efficient and easy to parse.

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

Completeness4/5

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

Despite no output schema, the description hints at output content (revenue, products, refunds). Parameter count is high but all optional, and the description covers the main filter categories. Slight omission of pagination details, but adequate for a read-only tool.

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

Parameters4/5

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

Since schema description coverage is 100%, the baseline is 3. The description adds value by grouping parameters into conceptual categories (date, email, lead ID, product tag, recurring/refund status), which helps the agent understand the tool's capabilities beyond the raw schema.

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

Purpose5/5

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

The description uses a specific verb ('Retrieve') and resource ('sales records'), lists multiple filter options, and explicitly states use cases (check revenue, see products sold, track refunds). Distinguishes from sibling mutation tools like hyros_refund_order and hyros_delete_sale.

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

Usage Guidelines4/5

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

The description provides clear use cases (check revenue, product sales, refunds) but does not explicitly mention when NOT to use this tool or suggest alternative tools for specific needs. Still, the context is adequate for selecting the tool.

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

hyros_get_sourcesGet Ad SourcesC
Read-only

Get ad sources and campaigns tracked in Hyros. Sources represent your marketing channels, campaigns, and ad sets.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdNoPagination page ID
pageSizeNoResults per page (1-250)
adSourceIdsNoComma-separated ad source IDs to retrieve
includeOrganicNoInclude organic traffic sources
integationTypeNoFilter by platform
includeDisregardedNoInclude disregarded sources

TDQS

C2.9/5.0
Behavior2/5

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

Description adds minimal beyond the readOnlyHint annotation. No mention of pagination, rate limits, or default behavior. For a tool with 6 optional parameters, more behavioral context is needed.

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

Conciseness5/5

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

Two sentences, no fluff. Every word earns its place.

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

Completeness2/5

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

With 6 optional parameters and no output schema, the description is too minimal. It does not explain return format, pagination, or how filters combine with the hierarchy of sources/campaigns/ad sets.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add much. The description provides a general overview but no additional detail beyond what the schema already describes.

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

Purpose4/5

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

The description clearly states the verb 'Get' and resource 'ad sources and campaigns', and explains what sources represent. However, it does not differentiate this tool from siblings like hyros_get_ads or hyros_get_clicks.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Lacks information about prerequisites or use cases.

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

hyros_get_stagesGet Funnel StagesA
Read-only

Get all lead funnel stages configured in your Hyros account (e.g., MQL, SQL, Opportunity, Customer).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter stages by name
pageIdNoPagination page ID
pageSizeNoResults per page (1-250)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description does not contradict this. It adds examples of common stage names, which provides context beyond the annotation, but does not disclose pagination behavior or any potential side effects. Overall, it offers a modest addition to the annotation.

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the primary purpose. All words are necessary, and there is no repetition. It is appropriately brief while being informative.

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

Completeness2/5

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

Despite full schema coverage and readOnlyHint, the description does not describe the response format (e.g., whether it returns a list of objects with IDs and names) or clarify the pagination behavior indicated by the parameters. This leaves the agent without crucial information for processing results. The description should compensate for the missing output schema.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described in detail. The description adds no extra meaning to the parameters (name filter, pagination IDs, page size). With high coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'all lead funnel stages' with concrete examples (MQL, SQL, Opportunity, Customer). It is unambiguous and distinguishes itself from sibling tools, none of which retrieve funnel stages.

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

Usage Guidelines3/5

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

The description gives the context of retrieving configured stages but lacks explicit guidance on when to use this tool versus alternatives, or when not to use it. Since no sibling tool retrieves stages, the omission is minor, but the dimension expects some usage direction.

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

hyros_get_subscriptionsGet SubscriptionsA
Read-only

Retrieve subscription records. Use this to check MRR, see active subscribers, find churned customers, and track subscription status changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated subscription IDs (max 50)
emailsNoComma-separated emails (max 50)
pageIdNoPagination page ID
statesNoComma-separated states: ACTIVE, TRIALING, CANCELED, PAST_DUE, INCOMPLETE, INCOMPLETE_EXPIRED, UNPAID, COMPLETED, PAUSED
toDateNoEnd date in ISO 8601 format
leadIdsNoComma-separated lead IDs (max 50)
fromDateNoStart date in ISO 8601 format
pageSizeNoResults per page (1-250)
productTagsNoComma-separated product tags (max 20)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so description doesn't need to reiterate safety. Description adds that it retrieves records and specific uses, but does not disclose behavioral details like pagination, rate limits, or response format. Adequate but minimal extra value.

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

Conciseness5/5

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

Two concise sentences with no redundant information. Every word contributes to clarity.

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

Completeness3/5

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

Given 9 optional parameters and no output schema, the description gives a high-level purpose but doesn't explain return structure, pagination behavior, or how the filters interact. Somewhat incomplete for a complex query tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional semantic meaning beyond the schema. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses specific verb 'Retrieve subscription records' and lists concrete use cases (MRR, active subscribers, churned customers, status changes). It clearly distinguishes from sibling tools, which are create/update/delete or for other entities.

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

Usage Guidelines4/5

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

The description implies usage by listing what you can do (check MRR, see active subscribers, etc.), but does not explicitly state when to use this tool over alternatives or provide exclusions. However, given the sibling list, its role as the primary read subscription tool is clear.

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

hyros_get_tagsGet TagsA
Read-only

Get all available tags in your Hyros account as a flat list. Tags starting with $ are product tags, @ are source tags, ! are action tags. Deprecated by Hyros in favour of hyros_get_tags_count, which adds lead counts and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description goes beyond by explaining tag prefix conventions ($ product, @ source, ! action) and the deprecation status. This adds useful behavioral context without contradicting the annotation.

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

Conciseness5/5

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

Three concise sentences, each earning its place: the core action, tag naming semantics, and deprecation guidance. Information is front-loaded and no unnecessary text remains.

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

Completeness5/5

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

For a parameterless list tool with no output schema, the description gives sufficient context: what is returned (flat list), how to interpret tag prefixes, and the recommended replacement. It is fully adequate for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description enriches understanding by detailing the meaning of tag prefixes, which is more than the empty schema provides.

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

Purpose5/5

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

The description clearly states it retrieves all available tags in the Hyros account as a flat list, with specific verb and resource. It differentiates itself from the sibling tool hyros_get_tags_count by noting deprecation and the alternative's additional features.

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

Usage Guidelines5/5

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

Explicitly advises that this tool is deprecated in favour of hyros_get_tags_count, which adds lead counts and pagination. This gives unambiguous guidance on when not to use this tool and what to use instead.

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

hyros_get_tags_countTag CountsA
Read-only

List tags along with how many leads carry each one. Use this instead of hyros_get_tags when you need sizes, pagination, or to look up one tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoLook up a single tag by its exact name, prefix included (e.g. @california). Partial names return nothing.
pageIdNoPagination page ID
pageSizeNoResults per page (1-250)

TDQS

A4.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that the tool returns counts per tag, which is useful behavioral context. However, it does not disclose additional details like pagination mechanics or error behavior, so it adds moderate value but not rich context.

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

Conciseness5/5

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

The description is two sentences with no fluff. The first sentence states the core function, the second gives targeted guidance about alternatives. Every word earns its place.

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

Completeness4/5

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

For a read-only tool with 3 optional parameters and no output schema, the description covers purpose, usage, and the alternative. It implies return structure ('how many leads carry each one') and the schema covers parameter details. It lacks explicit pagination-flow or edge-case handling, but overall it is complete enough for a simple tool.

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

Parameters4/5

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

Schema description coverage is 100% and parameter descriptions are detailed (e.g., exact name, prefix, partial names). The tool description adds meaning by mapping parameter use cases ('sizes' to counts, 'pagination' to pageId/pageSize, 'look up one tag' to name), which helps an agent understand when to supply each parameter.

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

Purpose5/5

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

The description uses a specific verb+resource ('List tags along with how many leads carry each one') and explicitly differentiates from the sibling tool hyros_get_tags by describing when to use this one instead. This clearly states the tool's purpose and distinguishes it from the most similar alternative.

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

Usage Guidelines5/5

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

The description explicitly states 'Use this instead of hyros_get_tags when you need sizes, pagination, or to look up one tag.' This names the alternative tool and provides clear conditions for when to use this tool, fulfilling the when-to-use guidance perfectly.

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

hyros_get_tracking_scriptGet Tracking ScriptB
Read-only

Get the Hyros tracking script to install on your website.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoDomain to get script for (returns default script if not provided)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds no extra behavioral context beyond that, but does not contradict annotations.

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

Conciseness4/5

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

Single sentence that is concise and front-loaded. Could benefit from slightly more detail without losing conciseness, but it is efficient and gets the main point across.

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

Completeness3/5

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

The description is minimal. Given there is one optional parameter and no output schema, it provides basic understanding but lacks details on output format, when to use 'domain', or any edge cases. Adequate but with clear gaps.

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

Parameters3/5

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

Schema coverage is 100% with one optional parameter 'domain' described in the schema. The description does not add any additional meaning or usage hints for the parameter beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'Hyros tracking script', and the purpose 'to install on your website'. It is specific and distinguishes from sibling tools which also use 'get' but for different resources.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or any context for choosing between this and other 'get' tools.

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

hyros_get_user_infoAccount InfoA
Read-only

Get the authenticated Hyros account information including email, timezone, and currency settings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

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

The description is consistent with annotations (readOnlyHint true) and adds value by specifying the return data. It fully informs the agent of the read-only, safe nature without contradictions.

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

Conciseness5/5

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

The description is a single, well-structured sentence with all necessary information front-loaded. No redundant words.

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

Completeness4/5

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

The description covers the return data sufficiently, but lacks mention of potential error cases or authentication scope. However, for a simple get tool, it is largely complete.

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

Parameters4/5

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

The tool has no parameters and schema coverage is 100%. The description adds meaning by listing the returned fields, meeting the baseline for zero-parameter tools.

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

Purpose5/5

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

The description clearly states the tool gets authenticated Hyros account information and specifies the data fields (email, timezone, currency). It distinguishes well from sibling tools which focus on other entities like leads, sales, or calls.

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

Usage Guidelines4/5

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

The description implicitly tells when to use the tool (when account info is needed), but does not explicitly state when not to use it or mention alternatives. However, given the unique function among siblings, this is adequate.

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

hyros_get_webhook_subscriptionsWebhook SubscriptionsA
Read-only

List the webhook subscriptions configured on the account, with their target URL, subscribed events, and delivery state. Use this to audit which systems receive Hyros events.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Description adds context about the content of the response (target URL, subscribed events, delivery state) beyond the readOnlyHint annotation, which is useful since there is no output schema. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, no filler. Directly communicates both what and why.

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

Completeness4/5

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

For a simple list operation with no parameters and readOnlyHint, the description covers purpose, result content, and a usage scenario. It lacks mention of pagination or error cases, but these are not critical for this simple tool.

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

Parameters4/5

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

There are zero parameters, so the description is not required to explain parameter details. The baseline of 4 applies as the schema is complete (empty).

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

Purpose5/5

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

States the specific action 'List' and resource 'webhook subscriptions' with account scope. Clearly distinguishes from create/delete webhook subscription tools by focusing on existing subscriptions.

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

Usage Guidelines4/5

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

Provides a clear use case ('audit which systems receive Hyros events') that informs when to use it, but does not explicitly mention alternatives or exclusions.

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

hyros_refund_orderRefund OrderA
Destructive

Process a refund for an existing order in Hyros.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesOrder ID to refund (required)
refundedAmountNoAmount to refund (if not provided, full refund is processed)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description's 'Process a refund' is consistent. However, it adds no further behavioral details such as irreversibility, effect on related data, or error conditions.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the key action. Every word is purposeful, with no redundancy or filler.

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

Completeness3/5

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

The tool is simple with two parameters and no output schema. The description explains the core function but omits what the tool returns on success or failure, leaving the agent to infer behavior.

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

Parameters4/5

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

Both parameters are fully described in the schema (100% coverage). The description adds that omitting refundedAmount results in a full refund, which provides useful nuance beyond the schema.

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

Purpose5/5

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

The description clearly states 'Process a refund for an existing order,' specifying the verb (refund) and resource (order). It is distinct from sibling tools like create/update/delete, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies this tool is for refunding orders, but it lacks guidance on when to use it versus alternatives, prerequisites (e.g., order must exist), or when not to use it.

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

hyros_subscription_healthSubscription HealthB
Read-only

Get a health report for your subscription business. Shows active count, MRR (monthly recurring revenue), trial count, churn (canceled this period), past due, and other subscription statuses. Perfect for "what is my MRR?" or "how many active subscribers do I have?"

ParametersJSON Schema
NameRequiredDescriptionDefault
toDateNoEnd date (ISO 8601)
currencyNoCurrency for MRR calculation
fromDateNoStart date to look for subscriptions (ISO 8601)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description does not need to repeat safety traits. It adds context about the report's contents (metrics), but does not disclose any additional behavioral traits such as authentication needs, rate limits, or data freshness. With annotations covering read-only, this is adequate but minimal extra value.

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

Conciseness4/5

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

The description is concise, consisting of two efficient sentences. The first sentence states purpose and lists key metrics; the second provides example queries. It is front-loaded with the action and key output. Minor improvement could be structuring the list of metrics more clearly, but overall it earns its space.

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

Completeness3/5

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

With no output schema, the description compensates by listing the main metrics (active count, MRR, etc.). However, it does not explain how the optional parameters (date range, currency) affect these metrics, nor does it describe the structure of the response (e.g., single object vs. array). This leaves some ambiguity for an agent trying to parse the output.

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

Parameters3/5

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

All three parameters (toDate, currency, fromDate) are fully described in the input schema (coverage 100%). The description adds no further meaning about these parameters, such as how they affect output or examples. Baseline is 3 for high schema coverage.

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

Purpose4/5

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

The description clearly states 'Get a health report for your subscription business' and lists specific metrics (active count, MRR, etc.). It uses a specific verb and resource, and the examples ('what is my MRR?') help clarify purpose. However, it does not explicitly differentiate from the sibling 'hyros_get_subscriptions' which may return raw subscription data, leaving some ambiguity.

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

Usage Guidelines3/5

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

The description provides 'Perfect for' examples that imply use cases (MRR, active subscribers). However, it does not specify when not to use this tool (e.g., when raw subscription data is needed) or mention alternatives such as 'hyros_get_subscriptions'. The guidance is implicit and lacks explicit exclusions.

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

hyros_update_callUpdate CallB
Idempotent

Update the qualification status or state of existing call records.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated call IDs to update
nameYesCall event name (required)
stateNoCall state
externalIdsNoComma-separated external call IDs to update
qualificationNoQualified status

TDQS

B3.3/5.0
Behavior3/5

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

The description aligns with annotations (readOnlyHint=false, idempotentHint=true) by indicating an update operation. However, it lacks details on required permissions, error handling, or side effects beyond stating the fields updated.

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

Conciseness4/5

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

The description is extremely brief, single sentence, front-loading the key action. While concise, it could expand slightly to cover more parameter interactions without significant bloat.

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

Completeness2/5

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

With five parameters including a boolean qualification and an enum state, the description does not explain how these fields relate or interact. No return value is described, and the tool could benefit from additional context on usage patterns.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already defines each parameter. The description adds no further parameter-level meaning beyond the high-level purpose, which is adequate.

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

Purpose4/5

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

The description clearly states the tool updates the qualification status or state of existing call records, which distinguishes it from create/delete siblings. However, it does not mention the ability to update other fields like name or externalIds, limiting full scope clarity.

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

Usage Guidelines3/5

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

The description implies usage for updating existing call records but provides no explicit guidance on when to use this tool versus alternatives (e.g., create_call, delete_call). No when-not or prerequisite information is given.

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

hyros_update_cartUpdate CartA
Idempotent

Update an existing cart in Hyros. Use this to modify items or customer info on a pending cart before it converts to an order.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoCart date in ISO 8601 format
emailNoCustomer email
itemsYesUpdated cart items
cartIdYesThe external cart ID to update
leadIpsNoLead IP addresses
currencyNoCurrency code (e.g., USD)
lastNameNo
firstNameNo
phoneNumbersNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=true, so the description's statement 'Update' is consistent but adds no extra behavioral detail (e.g., safety, prerequisites). It does not contradict annotations.

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

Conciseness5/5

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

Two concise sentences: first states action, second provides usage context. All information is relevant and front-loaded with no wasted content.

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

Completeness3/5

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

Given 9 parameters, no output schema, and annotations providing idempotency, the description covers usage but omits return values, error handling, and prerequisites (e.g., cart must exist and not be converted). Adequate but not thorough.

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

Parameters3/5

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

Schema description coverage is 67%, meaning some parameters lack descriptions. The description groups parameters as 'items or customer info' but does not fully compensate for undocumented fields like leadIps or phoneNumbers.

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

Purpose5/5

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

The description clearly states the verb 'Update' and resource 'cart' and adds specific context (pending cart before conversion), distinguishing it from sibling tools like hyros_create_cart.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this to modify items or customer info on a pending cart before it converts to an order,' providing clear context. It does not explicitly exclude scenarios but adequately guides when to use.

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

hyros_update_custom_costUpdate Custom CostA
Idempotent

Update a custom cost. The whole cost is replaced, so send every field, not only the ones changing. Use this to fix a wrong amount or to close an open-ended recurring cost by setting endDate.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustom cost ID (from hyros_get_custom_costs)
costYesCost amount
nameNoCost name
tagsYesTags the cost is attributed to. Each must already exist in the account, otherwise the API rejects the request.
endDateNoEnd date, ISO 8601. Leave unset for an open-ended recurring cost.
frequencyYesHow often the cost applies
startDateYesStart date, ISO 8601 (e.g. 2026-08-01T00:00)

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses a critical behavioral trait beyond the annotations: 'The whole cost is replaced, so send every field, not only the ones changing.' This is important for correct invocation and is not captured in the readOnlyHint/idempotentHint annotations. It also explains the endDate use case, adding practical context.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core action, and every clause adds value: the action, the replacement warning, and the use cases. No redundant or vague phrasing.

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

Completeness4/5

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

Given no output schema and sparse annotations, the description covers the essential operational context: what the tool does, the replacement semantics, and when to use it. It lacks return-value or error-behavior details, but for an update operation with a rich schema, this is adequate. Slightly more info on request results could push it to 5.

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

Parameters3/5

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

The input schema provides full descriptions for all 7 parameters (100% coverage), so the description doesn't need to explain individual parameters. It does add contextual guidance about sending every field due to replacement semantics, but this is more about overall operation behavior than specific parameter meaning.

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

Purpose5/5

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

The description clearly states 'Update a custom cost' with a specific verb and resource, and it distinguishes itself from sibling create/get/delete tools by presenting concrete use cases (fixing a wrong amount, closing an open-ended recurring cost).

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

Usage Guidelines4/5

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

The description explicitly says when to use the tool ('Use this to fix a wrong amount or to close an open-ended recurring cost by setting endDate'), which gives clear guidance for typical scenarios. However, it does not explicitly mention alternatives like create/delete for non-update cases, though sibling names make that implicit.

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

hyros_update_leadUpdate LeadA
Idempotent

Update an existing lead in Hyros. At least one search parameter (searchEmail, searchId, or searchPhone) must be provided. Can update email, name, tags, IPs, phone numbers, and funnel stage.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to ADD to the lead. Existing tags are kept.
emailNoNew email address
leadIpsNoIP addresses to set
lastNameNoNew last name
searchIdNoLead ID to find the lead
firstNameNoNew first name
removeTagsNoTags to REMOVE from the lead. Use this to undo a tag, including one that wrongly triggered a sale via product-tag matching.
searchEmailNoCurrent email to find the lead (use one of: searchEmail, searchId, or searchPhone)
searchPhoneNoPhone number to find the lead
phoneNumbersNoPhone numbers to set
leadStageDateNoDate the lead entered this stage (ISO 8601)
leadStageNameNoName of the funnel stage to apply
adOptimizationConsentNoAd optimization consent

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare this as a write operation (readOnlyHint=false) and idempotent (idempotentHint=true). The description adds the search-parameter requirement and the set of updatable fields, but doesn't disclose other side effects like permanent changes or error behavior when no lead matches. Given annotations cover the safety profile, the description provides moderate additional context.

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

Conciseness5/5

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

The description is three concise sentences, front-loaded with the action, then the key requirement, then the scope. No filler or repetition of schema property descriptions.

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

Completeness4/5

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

Given 13 parameters, the schema fully describes each with 100% coverage, and annotations convey idempotency. The description covers the essential search-parameter requirement and updatable field classes. It omits detailed return behavior, but for a mutation tool without an output schema, this is a minor gap; overall it's contextually complete for selecting and invoking the tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds a cross-parameter constraint not present in the schema: 'At least one search parameter (searchEmail, searchId, or searchPhone) must be provided.' It also groups updatable fields conceptually, which aids parameter selection.

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

Purpose5/5

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

The description opens with 'Update an existing lead in Hyros,' a specific verb and resource that clearly distinguishes it from create/delete lead siblings. It also lists the updatable fields (email, name, tags, IPs, phone numbers, funnel stage), which clarifies scope.

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

Usage Guidelines4/5

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

It states the mandatory precondition: 'At least one search parameter (searchEmail, searchId, or searchPhone) must be provided.' This tells the agent when the tool is applicable and the required lookup criteria. It doesn't explicitly mention alternatives, but the 'update' verb and sibling tool names imply the contrast with create/delete.

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

hyros_update_productUpdate ProductA
Idempotent

Update a product's price, SKU, cost of goods, or category. Cost of goods feeds profit and ROAS reporting, so correcting it changes historical margins.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct ID (from hyros_get_products)
skuNoNew SKU
nameNoNew product name
priceNoNew price
categoryNoNew category
recurringNoWhether the product is recurring
costOfGoodsNoCost of goods, used for profit and ROAS

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and idempotentHint=true, so the mutation and idempotency are known. The description adds a valuable non-obvious side effect: 'Cost of goods feeds profit and ROAS reporting, so correcting it changes historical margins.' This goes beyond the annotations and helps the agent understand the impact of changing that field.

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

Conciseness5/5

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

The description is two sentences with zero wasted words. The first sentence states the core functionality, and the second sentence conveys an important behavioral warning. Both earn their place, making it highly concise and well-structured.

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

Completeness4/5

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

Given the tool's complexity (7 params, 1 required, no output schema), the description covers the main purpose and a key side effect. It does not explicitly state that only provided fields are updated (partial update), but the schema's optional fields imply this. The absence of a return value description is acceptable since update tools typically return a standard success response. Overall, it is complete for a simple update operation.

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

Parameters4/5

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

The schema has 100% description coverage for all 7 parameters, providing the baseline of 3. The description adds extra meaning for the costOfGoods parameter by explaining its impact on profit and ROAS reporting, which is not in the schema. However, it does not add detail for other parameters like name or recurring, so it is slightly above baseline.

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

Purpose5/5

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

The description uses specific verbs and resource: 'Update a product's price, SKU, cost of goods, or category.' This clearly states the tool's function and differentiates it from create/delete product tools and other update tools. The mention of specific fields makes the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage (when you need to update product fields) but does not explicitly state when to use this tool versus alternatives. There is no mention of when not to use it or comparison with sibling tools like update_sale or create_product. The context is clear from the tool name, but no explicit guidance is provided.

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

hyros_update_saleUpdate SaleA
Idempotent

Update one or more sale records in Hyros. Can mark sales as recurring, refunded, or update refund amounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesComma-separated sale IDs to update (max 50, required)
isRefundedNoMark sale as refunded
refundedDateNoRefund date in ISO 8601 format
refundedAmountNoAmount refunded
isRecurringSaleNoMark sale as recurring

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=true. The description adds no additional behavioral context such as side effects, rate limits, or details about idempotency. It merely repeats the action.

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

Conciseness5/5

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

Two concise sentences with no fluff. The key actions are front-loaded and every sentence adds value.

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

Completeness3/5

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

Given the tool has 5 parameters, 1 required, no output schema, and annotations present, the description is adequate but minimal. It does not explain return values, error handling, or the max 50 IDs constraint (though present in schema). Could be more complete.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds semantic grouping: 'mark sales as recurring, refunded, or update refund amounts' maps to parameters like isRecurringSale, isRefunded, and refundedAmount. This provides context beyond the schema's individual descriptions.

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

Purpose5/5

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

The description clearly states the action (update) and resource (sale records), and specifies common use cases (mark as recurring, refunded, update refund amounts). It distinguishes from sibling tools like hyros_refund_order and hyros_delete_sale.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. It implies usage for updating sales but does not compare with alternatives like hyros_refund_order or mention prerequisites.

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

hyros_update_sourceUpdate Ad SourceA
Idempotent

Update an ad source: rename it, change its category, goal or traffic source, or toggle its organic and disregarded flags. Sources are addressed by tag, not by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesSource tag, including the @ prefix (e.g. @california)
goalNoNew goal
nameNoNew source name
categoryNoNew category
isOrganicNoMark the source as organic
isDisregardNoExclude this source from attribution
trafficSourceNoNew traffic source

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint false) and idempotency (idempotentHint true). The description adds the tag-based addressing constraint and clarifies the updateable flags, which is useful context beyond the annotations. It does not elaborate on side effects, error handling, or permission requirements, but this is acceptable given the simple update operation and annotation coverage.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence front-loads the action and lists the changeable attributes; the second adds the essential addressing rule. Every clause provides value, achieving high conciseness and clear structure.

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

Completeness4/5

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

For a moderate-complexity tool with 7 parameters and no output schema, the description covers the primary purpose and the key addressing requirement. The schema supplies remaining parameter details, and annotations cover idempotency. The only minor gap is the lack of explicit mention that only provided fields are updated (partial update), but this is implied by the schema's optional fields.

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

Parameters4/5

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

The schema covers all 7 parameters with 100% description coverage, including the @ prefix for tag. The description adds the critical clarification that sources are addressed by tag, not id, which is not explicitly stated in the schema and is essential for correct parameter usage. It also enumerates the fields in prose, reinforcing schema semantics.

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

Purpose5/5

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

The description clearly states the tool's action ('Update an ad source') and enumerates the specific attributes that can be changed (name, category, goal, traffic source, organic/disregarded flags). It distinguishes the tool from sibling create_source and delete_source tools by emphasizing the update scope, and the tag-based addressing note reinforces its purpose.

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

Usage Guidelines3/5

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

The description provides important context that sources are addressed by tag rather than id, which guides correct invocation. However, it does not explicitly state when to use this tool versus alternatives like create_source or delete_source, nor does it mention any exclusions or prerequisites. The usage context is implied but not fully delineated.

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

hyros_update_subscriptionUpdate SubscriptionB
Idempotent

Update existing subscription records. Can change status, price, dates, and cancellation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesComma-separated subscription IDs to update (max 50, required)
nameNoSubscription name
priceYesNew subscription price (required)
statusNoNew status
startDateNoNew start date (ISO 8601)
cancelAtDateNoCancellation date (required when setting status to CANCELED)
trialEndDateNoTrial end date (ISO 8601)
trialStartDateNoTrial start date (ISO 8601)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations provide idempotentHint=true and readOnlyHint=false, so description adds no new behavioral traits. It doesn't mention side effects, validation, or other behaviors beyond what schema already covers.

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

Conciseness4/5

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

Single-sentence description is concise and front-loaded with the verb 'Update'. No wasted words, but could be more structured with bullet points for complex tools.

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

Completeness3/5

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

Given 8 parameters and no output schema, the description is thin. It doesn't explain output or provide usage context beyond 'existing' and list of changeable fields, though schema covers details.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. Description merely echoes param names without adding constraints, relationships, or usage context beyond what schema provides.

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

Purpose5/5

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

Description clearly states 'Update existing subscription records' with specific verb and resource, and lists fields that can be changed (status, price, dates, cancellation). This distinguishes it from create and get siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like hyros_create_subscription or hyros_get_subscriptions. Lacks explicit context for preferring this tool.

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

Tool Schema Changelog

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

  1. 18 tool updatesv1.1.0
    • Addedhyros_create_webhook_subscription
    • Addedhyros_delete_custom_cost
    • Addedhyros_delete_lead
    • Addedhyros_delete_product
    • Addedhyros_delete_source
    • Addedhyros_delete_webhook_subscription
    • Addedhyros_get_ad_accounts
    • Addedhyros_get_carts
    • Addedhyros_get_custom_costs
    • Changedhyros_get_lead_journey4 fields changed
      • addedInput schema / properties / emails
        Added value: +{
        +  "description": "Comma-separated emails. Provide either ids or emails.",
        +  "type": "string"
        +}
      • changedInput schema / properties / ids / description
        Previous value: -"Comma-separated lead IDs (required). Get lead IDs from hyros_get_leads first."New value: +"Comma-separated lead IDs. Provide either ids or emails."
      • addedInput schema / properties / includeEvents
        Added value: +{
        +  "description": "Also return the chronological journey event list (default false)",
        +  "type": "boolean"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "ids"
        -]New value: +[]
    • Changedhyros_get_leads7 fields changed
      • changedInput schema / properties / fromDate / description
        Previous value: -"Start date in ISO 8601 format (e.g. 2024-01-01T00:00:00-05:00)"New value: +"Start of the JOIN date range, ISO 8601 (e.g. 2024-01-01T00:00:00-05:00)"
      • addedInput schema / properties / phones
        Added value: +{
        +  "description": "Comma-separated phone numbers (max 50). Matches on trailing digits, so formatting and country codes are tolerated. Finds leads that also have an email.",
        +  "type": "string"
        +}
      • addedInput schema / properties / stage
        Added value: +{
        +  "description": "Comma-separated stage names (max 50). Returns leads whose current stage matches ANY of them.",
        +  "type": "string"
        +}
      • addedInput schema / properties / tags
        Added value: +{
        +  "description": "Comma-separated tag names (max 50). Returns leads matching ANY of them. Tags must include their prefix, e.g. @california or !florida.",
        +  "type": "string"
        +}
      • changedInput schema / properties / toDate / description
        Previous value: -"End date in ISO 8601 format (e.g. 2024-01-31T23:59:59-05:00)"New value: +"End of the JOIN date range, ISO 8601 (e.g. 2024-01-31T23:59:59-05:00)"
      • addedInput schema / properties / updatedFromDate
        Added value: +{
        +  "description": "Only leads modified on or after this date, ISO 8601. Use this for incremental sync: fromDate/toDate only see the join date and miss re-tagged or re-staged leads.",
        +  "type": "string"
        +}
      • addedInput schema / properties / updatedToDate
        Added value: +{
        +  "description": "Only leads modified on or before this date, ISO 8601",
        +  "type": "string"
        +}
    • Addedhyros_get_products
    • Addedhyros_get_tags_count
    • Addedhyros_get_webhook_subscriptions
    • Addedhyros_update_custom_cost
    • Changedhyros_update_lead2 fields changed
      • addedInput schema / properties / removeTags
        Added value: +{
        +  "description": "Tags to REMOVE from the lead. Use this to undo a tag, including one that wrongly triggered a sale via product-tag matching.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to apply to the lead"New value: +"Tags to ADD to the lead. Existing tags are kept."
    • Addedhyros_update_product
    • Addedhyros_update_source
  2. 38 tool updatesv1.0.4
    • First observedhyros_best_performers
    • First observedhyros_compare_periods
    • First observedhyros_create_call
    • First observedhyros_create_cart
    • First observedhyros_create_click
    • First observedhyros_create_custom_cost
    • First observedhyros_create_lead
    • First observedhyros_create_order
    • First observedhyros_create_product
    • First observedhyros_create_source
    • First observedhyros_create_subscription
    • First observedhyros_daily_summary
    • First observedhyros_delete_call
    • First observedhyros_delete_sale
    • First observedhyros_funnel_overview
    • First observedhyros_get_ad_account_report
    • First observedhyros_get_ads
    • First observedhyros_get_attribution_report
    • First observedhyros_get_calls
    • First observedhyros_get_clicks
    • First observedhyros_get_domains
    • First observedhyros_get_keywords
    • First observedhyros_get_lead_journey
    • First observedhyros_get_leads
    • First observedhyros_get_sales
    • First observedhyros_get_sources
    • First observedhyros_get_stages
    • First observedhyros_get_subscriptions
    • First observedhyros_get_tags
    • First observedhyros_get_tracking_script
    • First observedhyros_get_user_info
    • First observedhyros_refund_order
    • First observedhyros_subscription_health
    • First observedhyros_update_call
    • First observedhyros_update_cart
    • First observedhyros_update_lead
    • First observedhyros_update_sale
    • First observedhyros_update_subscription

TDQS

B3.4/5.0
Disambiguation3/5

Most tools have distinct resource-action purposes, but there are several overlap issues. hyros_get_tags and hyros_get_tags_count serve the same purpose (one deprecated), and multiple reporting tools (hyros_get_attribution_report, hyros_best_performers, hyros_compare_periods) have similar parameters and outputs, making it easy for an agent to misselect.

Naming Consistency4/5

The majority of tools follow a consistent hyros_verb_noun pattern (e.g., hyros_get_leads, hyros_create_order, hyros_delete_sale). However, a few tools break this pattern with noun-phrase names like hyros_daily_summary, hyros_best_performers, and hyros_compare_periods, which is a minor deviation.

Tool Count2/5

With 53 tools, the server is well beyond the 'heavy' threshold and feels bloated. While the domain is complex, several tools are redundant or could be consolidated (e.g., hyros_get_tags vs hyros_get_tags_count), and the sheer number will likely overwhelm agents.

Completeness4/5

The tool surface is quite comprehensive, covering CRUD operations for leads, sales, calls, subscriptions, carts, products, sources, custom costs, and webhooks, plus a range of attribution and analytics reports. Minor gaps exist, such as no update/delete for clicks and no direct delete for carts, but core workflows are well supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An implementation of Model Context Protocol (MCP) that allows users to interact with TripleWhale's e-commerce analytics platform using natural language queries through Claude Desktop.
    106
    7
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Connects Google Analytics 4 data to Claude, Cursor and other MCP clients, enabling natural language queries of website traffic, user behavior, and analytics data with access to 200+ GA4 dimensions and metrics.
    10
    240
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    Connects AI assistants like Claude to Sealmetrics analytics data, enabling natural language queries for traffic analysis, conversions, marketing performance, ROAS tracking, and funnel analysis.
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Connect AI assistants to live Meta Ads, GA4, and Google Search Console data. 100% local, credentials machine-locked and encrypted. Supports Claude Desktop, Cursor, Windsurf, Cline, and more.
    1
    MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HyrosOG/Hyros-MCP'

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