Skip to main content
Glama

Honeyfield Marketing MCP

Server Details

Hosted MCP server for marketing agencies: connect Google Ads, GA4, Search Console, Meta, LinkedIn and more to Claude or ChatGPT. Pull reports and make changes via OAuth login, no setup.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.4/5.0

Scored across 346 tools

Disambiguation3/5

The source prefixes and detailed descriptions distinguish most tools, but the 346-tool surface contains many nearby variants: campaign/adset/ad/keyword performance reports, multiple negative-keyword managers, asset link status vs unlink, and a deprecated ads_update_ad alongside ads_replace_ad. An agent can usually tell them apart, but only after reading long descriptions and understanding platform-specific hierarchies.

Naming Consistency4/5

Most names follow a predictable snake_case pattern with a source/domain prefix plus action or resource, such as ads_create_campaign, meta_update_adset, ga4_report, and wp_get_post. Minor deviations like ping, list_workspaces, anomaly_check, and budget_pacing are readable but slightly outside the pattern.

Tool Count1/5

346 tools is an extreme mismatch for a coherent tool set, even for a multi-source marketing platform. Useful capabilities are buried in a surface so large that selection, maintenance, and prompt context become major problems.

Completeness3/5

The surface covers a huge amount of marketing operations across Google Ads, Meta, LinkedIn, GA4, Search Console, GTM, GBP, Strapi, WordPress, and more, with many CRUD paths present. However, notable read/lifecycle gaps remain, such as PMax asset-group signals, shared negative-list contents, LinkedIn lead sync, and deletion/archival for some objects.

Available Tools

346 tools
ads_add_asset_group_assetsGoogle Ads: Add asset group assetsAInspect

Bestehende Assets an eine Asset Group hängen. assets: [{"asset_id","field_type"}] mit field_type HEADLINE, LONG_HEADLINE, DESCRIPTION, MARKETING_IMAGE, SQUARE_MARKETING_IMAGE, PORTRAIT_MARKETING_IMAGE, LOGO, BUSINESS_NAME oder YOUTUBE_VIDEO. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
assetsYes
workspaceNo
asset_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that assets are merely attached (additive, not replacing the group's contents), but says nothing about what happens on duplicate field_type conflicts, partial failures, or whether repeated calls are idempotent — meaningful gaps 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.

Conciseness4/5

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

Three dense sentences, front-loaded with the action and followed by the two non-obvious parameters. The long comma-separated field_type list is slightly unwieldy but every element is load-bearing information.

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?

An output schema exists, so return values need not be described. Still, for a mutation tool with 0% schema coverage the description omits the ordering/precondition story (assets must be uploaded first, asset group must exist, field_type must match the group's campaign type), which is exactly the context an agent needs before calling it.

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 0% and the assets array is typed only as a free-form object, so the description carries the full load — and it does: it documents the {"asset_id", "field_type"} shape and enumerates all nine valid field_type values, which the schema does not. workspace is explained as an optional customer slug; only asset_group_id is left to the agent's obvious reading of the name.

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 German sentence 'Bestehende Assets an eine Asset Group hängen' gives a specific verb (attach) and resource (existing assets → asset group), which is unambiguous. It does not, however, distinguish itself from closely related siblings such as ads_link_asset, ads_create_text_assets, or ads_upload_image_asset, so an agent still has to infer the boundary.

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?

'Bestehende Assets' implies prerequisites (assets must already exist, asset group must exist), but this is left implicit — no explicit when-to-use, when-not, or named alternative is given. With ~80 sibling tools in the ads_* family, this leaves the agent to infer the workflow rather than routing it.

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

ads_add_asset_group_signalGoogle Ads: Add asset group signalAInspect

Signale an eine PMax-Asset-Group hängen: Search Themes (Suchthemen, max. 25 je Gruppe — Google-Limit, nicht vorab geprüft) und/oder eine Audience. Ohne Signale lernt PMax blind. audience_id: ID einer Audience-Ressource (Google Ads UI → Zielgruppen-Manager → Kombinierte Segmente/Audiences). Die user_list_id aus ads_list_audiences gilt hier NICHT — für User Lists an Kampagne/Anzeigengruppe ads_add_audience_signal nutzen. Ablehnungen von Google kommen als Fehler-Ausnahme, nicht als {error}-Antwort. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
audience_idNo
search_themesNo
asset_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Adds behavior the annotations do not carry: Google-side rejections surface as exceptions rather than an {error} payload, and the 25-search-theme cap is a Google limit that is not validated in advance. Short of a full return-shape or partial-failure description, but well beyond the readOnly/destructive hints.

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?

Front-loaded with the action and both signal types before the caveats; each clause carries information (limit, wrong-ID warning, error mode). It runs as one dense block without line breaks, which makes the workspace note at the end easy to skim past.

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?

An output schema exists, so return values need no prose, and the description covers the realistic failure modes and the sibling hand-off. It does not say what happens if neither search_themes nor audience_id is supplied, which matters given only asset_group_id is required.

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 0%, so the description must carry the load and largely does: audience_id's provenance (Google Ads UI → Zielgruppen-Manager) and its explicit exclusion of user_list_id are exactly the disambiguation the bare schema lacks, and workspace's optionality rule is stated. search_themes only gets the count cap, not string format or semantics, and asset_group_id is left implicit.

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?

Names a specific verb and resource ('Signale an eine PMax-Asset-Group hängen') and enumerates the two signal types it accepts (Search Themes und/oder eine Audience). An agent can distinguish it from ads_add_audience_signal and ads_add_asset_group_assets purely from this text.

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 routes the agent: audience_id uses audience resources, while user_list_id from ads_list_audiences must NOT be passed here — use ads_add_audience_signal at campaign/ad-group level instead. It also gives the rationale ('Ohne Signale lernt PMax blind'), which clarifies when the call is worth making at all.

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

ads_add_audience_signalGoogle Ads: Add audience signalAInspect

Zielgruppenliste an Kampagne ODER Anzeigengruppe anhängen (genau eines angeben). Legt ein User-List-Kriterium an (Search/Display-Kampagnen bzw. deren Anzeigengruppen). NICHT für PMax — dort ads_add_asset_group_signal mit Audience-ID verwenden. user_list_id aus ads_list_audiences / ads_list_customer_match_lists. Ob Beobachtung oder Ausrichtung wirkt, bestimmen die Kampagnen-Einstellungen; das Tool liest und setzt den Modus nicht. Wirkt die Liste als Ausrichtung, begrenzt sie die Reichweite sofort auf ihre Mitglieder — Modus vorher in der Google-Ads-Oberfläche prüfen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
ad_group_idNo
campaign_idNo
user_list_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare readOnly=false, destructive=false, openWorld=true; the description adds the operationally critical facts: the tool neither reads nor sets observation-vs-targeting mode, and if the list is targeting it immediately restricts reach to its members. That is a real side effect not derivable from annotations, plus a pre-check warning.

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?

Front-loaded with the primary rule and the exclusion, then the supply chain for the ID, then the risk caveat — a sensible order. It runs slightly long with some overlap between the first two sentences about campaigns/ad groups, but no sentence is pure filler.

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

Completeness5/5

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

With an output schema present, return values need no explanation, and the description covers everything else an agent needs: target selection constraint, ID provenance, PMax diversion, and the delivery-impact warning. Nothing required for a correct call is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden and does: it explains the mutually exclusive campaign_id/ad_group_id pair, the source system for user_list_id, and the optionality of workspace when only one workspace exists. All four parameters gain meaning beyond their bare names.

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

Purpose5/5

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

States a specific verb and resource (attach an audience list to a campaign or ad group, creating a user-list criterion) and scopes it to Search/Display. It explicitly excludes PMax and names ads_add_asset_group_signal as the alternative, so an agent can distinguish it from siblings without opening schemas.

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?

Gives the exact use condition (exactly one of campaign_id or ad_group_id), the negative case (NICHT für PMax), and the replacement tool. It also routes the agent to ads_list_audiences / ads_list_customer_match_lists for obtaining user_list_id.

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

ads_add_keywordGoogle Ads: Add keywordAInspect

Keyword zu einer Ad Group hinzufügen. Match Type: BROAD, PHRASE oder EXACT. Default Status: PAUSED (Safety — User muss manuell aktivieren). Ein Keyword in einer laufenden Ad Group gibt sofort Geld aus — der direkteste Weg zu ungewolltem Werbebudget im ganzen Toolset. Beim Ergänzen bestehender, laufender Ad Groups deshalb daran denken: das Keyword wirkt erst nach ads_update_keyword_status(..., 'ENABLED'). Wer bewusst sofort ausspielen will, gibt status='ENABLED' mit. cpc_bid_eur wirkt nur bei MANUAL_CPC-Kampagnen; bei Smart Bidding ohne Effekt auf die Auslieferung. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusNoPAUSED
keywordYes
workspaceNo
match_typeNoBROAD
ad_group_idYes
cpc_bid_eurNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly=false, destructive=false) by explaining that a keyword in a live ad group starts spending immediately and only takes effect after an explicit status update — real side-effect disclosure for a mutation tool. It also notes cpc_bid_eur is a no-op under Smart Bidding, which prevents a silent misconfiguration.

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?

Front-loaded with the action and defaults, then the reasoning; every clause is actionable. Some rhetorical flourish about spending money could be trimmed, but the emphasis is on point for a spend-risk mutation.

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 6-parameter mutation with an output schema, the definition covers defaults, side effects and the follow-up tool, so an agent can call it correctly. Missing pieces are minor: no pointer to ads_bulk_add_keywords for multi-keyword insertion and no keyword string format guidance.

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% schema description coverage the description must carry the burden, and it does for match_type (BROAD/PHRASE/EXACT), status (default PAUSED, override ENABLED), cpc_bid_eur (MANUAL_CPC only) and workspace (optional with a single workspace). It says nothing about ad_group_id or the expected keyword string format (e.g., whether bracketed/exact syntax is accepted).

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

Purpose5/5

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

States a specific verb and resource ('Keyword zu einer Ad Group hinzufügen') plus the allowed match types, so the agent knows exactly what is created and where. It is distinguishable from read-only siblings like ads_list_keywords and from ads_remove_keyword.

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?

Gives clear conditional guidance: default PAUSED for safety, enable later via ads_update_keyword_status(..., 'ENABLED'), or pass status='ENABLED' deliberately. It does not mention the sibling ads_bulk_add_keywords, so the single-vs-bulk decision is left to inference.

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

ads_add_negative_keywordGoogle Ads: Add negative keywordAInspect

Negatives Keyword zu einer Kampagne hinzufügen (blockiert Suchanfragen). match_type: EXACT (Default), PHRASE oder BROAD. EXACT blockiert genau diese Suche; PHRASE jede Suche, die die Wortfolge enthält; BROAD jede Suche mit allen Wörtern in beliebiger Reihenfolge — PHRASE/BROAD nur bewusst wählen und dem Nutzer vor dem Anlegen nennen, sie blockieren schnell relevante Suchen. Legt ein kampagneneigenes Negative an — für mehrere Kampagnen ads_manage_shared_negative_list, kontoweit ads_manage_account_negatives verwenden. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
keywordYes
workspaceNo
match_typeNoEXACT
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark this as a non-destructive mutation with open-world behavior. The description adds meaningful context beyond that: it explains that the keyword blocks searches, details how EXACT/PHRASE/BROAD affect matching, warns that broad match types can block relevant searches, and clarifies that the negative is campaign-owned.

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 purpose is front-loaded, and the subsequent match-type explanation, warning, alternatives, and workspace note all earn their place. It is dense but not redundant.

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?

An output schema exists, so return values need not be described. The description covers the main behavioral risks, match-type semantics, workspace handling, and sibling alternatives; the main remaining gap is keyword format guidance.

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 0%, so the description must compensate. It extensively explains the match_type values and notes that workspace is optional for single-workspace accounts, but it does not explain keyword formatting or add much detail about campaign_id.

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

Purpose5/5

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

The description states a specific verb and resource: adding a negative keyword to a campaign, with the effect of blocking search queries. It also distinguishes campaign-level negatives from shared and account-level negatives by naming the relevant alternative tools.

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

Usage Guidelines5/5

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

It explicitly says when to use this tool (campaign-owned negative keywords) and when to use alternatives for multiple campaigns or account-wide negatives. It also warns that PHRASE and BROAD should only be chosen deliberately and disclosed to the user before creation.

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

ads_ad_performanceGoogle Ads: Ad performanceA
Read-only
Inspect

Anzeigen-Performance — Top 20 Anzeigen nach Kosten der letzten N Tage bis gestern (heute nicht enthalten): campaign, ad_group, ad_id, final_url (erste Final-URL), status, impressions, clicks, cost_eur, ctr_pct, conversions (primäre). Anzeigen ohne Kosten fehlen — Vollliste über ads_list_ads. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds non-obvious behavior: a hard top-20 cap, cost-based ranking, the yesterday cutoff, and the silent exclusion of zero-cost ads — all things an agent would otherwise get wrong.

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?

Front-loaded with the core statement, then caveats, then the parameter note — a sensible order. The field enumeration is somewhat long and partly duplicates the output schema, but it stays readable and earns most of its space.

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 two-parameter read-only report with an output schema, the description covers scope, ranking, time window, exclusions, and the alternative tool. The only gap is the undocumented 'days' parameter default/limits.

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 0%, so the description must compensate. It explains workspace well (slug, optional when only one workspace), but only alludes to the days parameter ('letzten N Tage') without naming it, stating its default, or clarifying valid ranges.

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 precisely what the tool returns: the top 20 ads ranked by cost over the last N days up to yesterday, with an explicit field list. It also distinguishes itself from ads_list_ads (full list) and implicitly from ads_campaign_performance / ads_keyword_performance by scoping to ad level.

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?

Gives clear usage boundaries: today is excluded, ads without cost are omitted, and ads_list_ads is named as the route for a complete list. It does not compare against sibling performance tools (campaign/keyword), but the when-to-use context is otherwise explicit.

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

ads_ai_max_search_termsGoogle Ads: AI max search termsA
Read-only
Inspect

AI-Max-Quelle-Split: pro Suchbegriff × Kampagne die offizielle Quelle (source: KEYWORD / AI_MAX_KEYWORDLESS / AI_MAX_BROAD_MATCH / BROAD_MATCH …) mit impressions, clicks, cost_eur, conversions (primäre), conversions_value — über die letzten N Tage bis gestern (heute nicht enthalten) aggregiert, absteigend nach Kosten, max. 200 Zeilen. Deckt Off-Target-Streuung der AI-Max-Expansion auf. Headline/Landing-Page sind NICHT enthalten (API-seitig nicht mit der Quelle kombinierbar). campaign_id: optional nur diese Kampagne. min_cost_eur blendet Kombinationen unter dieser Kostenschwelle aus. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo
campaign_idNo
min_cost_eurNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only and open-world, so the description is free to add genuinely new behavior: the aggregation window ends yesterday with today excluded, results are sorted descending by cost, output is capped at 200 rows, and headline/landing-page dimensions are structurally unavailable via the API. That last point is important negative information an agent could not otherwise know. It does not discuss rate limits or empty-result behavior.

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?

Compact and front-loaded: the source split and its purpose come first, then the metric list, then window/sort/limit, then the per-parameter notes. It is one dense paragraph with telegraphic punctuation and some run-on clauses, but nearly every sentence carries information an agent needs.

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

Completeness4/5

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

For a read-only reporting tool with an output schema, the essentials are present: what is returned, how it is aggregated and sorted, the row cap, the unavailable dimensions, and all four filters. Minor gap: it does not point to where headline/landing-page data can instead be obtained, which would help an agent recover from that limitation.

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 0%, so the description carries the full burden and largely meets it: days is defined as the aggregation window ending yesterday (today excluded), campaign_id as an optional single-campaign filter, min_cost_eur as a cost threshold that hides combinations below it, and workspace as a customer slug that is optional when only one workspace exists. The only gap is that the days=30 default and the exact semantics of the 200-row cap interaction with min_cost_eur are left to the schema.

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

Purpose4/5

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

States a specific operation: a source split per search term × campaign returning the official source (KEYWORD / AI_MAX_KEYWORDLESS / AI_MAX_BROAD_MATCH / BROAD_MATCH) plus metrics. It also declares its analytical purpose ('Deckt Off-Target-Streuung der AI-Max-Expansion auf'), which differentiates it from ads_search_terms and ads_performance-style siblings in substance. It stops short of naming a sibling it is not, so 4 rather than 5.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the reader can infer this is the tool for AI Max keywordless/broad-match spillover analysis, and the note that headline/landing page data is NOT available is a useful scope exclusion. There is no explicit 'use this when / use X instead' routing against ads_search_terms or ads_pmax_search_insights, and no prerequisites are mentioned.

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

ads_apply_recommendationGoogle Ads: Apply recommendationA
Destructive
Inspect

Eine Google-Ads-Empfehlung anwenden (resource_name aus ads_list_recommendations). Nur nach ausdrücklicher Bestätigung anwenden — Empfehlungen können Budgets, Gebote und Targeting verändern. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
resource_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/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 safety profile is known. The description adds concrete substance beyond that: recommendations can alter budgets, bids and targeting, and explicit user confirmation is required — a real workflow constraint rather than a restatement of 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?

Three short lines, with the action and the confirmation warning front-loaded before the parameter note. No filler, though the workspace hint could be trimmed since the schema already marks it optional with a null default.

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 destructive two-parameter mutation with an output schema, the definition covers source of input, safety consequence, and required confirmation. Return-value explanation is unnecessary given the output schema, so nothing essential is missing.

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 0%, so the description must carry the load, and it does: resource_name's provenance (ads_list_recommendations) and workspace's meaning (client workspace slug, optional when only one workspace) are both explained. It stops short of showing the resource-name format, which keeps it from a 5.

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

Purpose5/5

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

States a specific verb (anwenden/apply) and resource (Google Ads recommendation), and points to the exact sibling (ads_list_recommendations) that supplies the resource_name. An agent can distinguish this from ads_dismiss_recommendation without opening either schema.

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?

'Nur nach ausdrücklicher Bestätigung anwenden' gives an explicit precondition for invocation, and the parenthetical tells the agent to obtain resource_name from ads_list_recommendations first. It doesn't explicitly contrast with the sibling dismiss tool, but the usage context is clear.

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

ads_asset_group_performanceGoogle Ads: Asset group performanceA
Read-only
Inspect

Performance je Asset Group (PMax) der letzten N Tage: Impressions, Klicks, Kosten (EUR), Conversions und Ad Strength — optional je Kampagne. days: letzte N volle Tage bis gestern, heute ausgenommen. Felder je Asset Group: impressions, clicks, cost_eur, conversions, conversions_value, ad_strength, status; sortiert nach Kosten absteigend. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description adds useful behavioral detail: the date window means the last N full days up to yesterday and excludes today, results are sorted by cost descending, and workspace is optional when only one workspace exists. It does not discuss authentication or rate limits, but for a read-only reporting tool the added context is substantive.

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 front-loaded with the main purpose and then supplies date interpretation, returned fields, sorting, and workspace notes. It is reasonably efficient, though listing every returned field is somewhat redundant given that an output schema exists.

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

Completeness4/5

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

With an output schema present and read-only annotations provided, the description covers the essential context: what is measured, over what date window, how results are sorted, and the workspace condition. The main remaining gap is campaign_id semantics, but overall it is complete enough for an agent to invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It explains the days parameter well (last N full days, excluding today) and explains workspace as a slug that is optional when there is only one workspace. The campaign_id parameter is only implied by 'optional je Kampagne' and its format or exact role is not clarified.

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

Purpose5/5

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

The description states a specific resource and metric domain: performance of PMax asset groups over the last N days, including impressions, clicks, cost, conversions, and Ad Strength. It makes clear that this is asset-group-level performance, which is distinguishable from sibling tools such as ads_campaign_performance or ads_ad_performance.

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?

It specifies the reporting window and that campaign filtering is optional, which implies the usage context. However, it does not explicitly say when to use this tool instead of sibling performance tools like ads_campaign_performance or ads_list_asset_groups, leaving the agent to infer the choice from the resource name.

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

ads_budget_statusGoogle Ads: Budget statusA
Read-only
Inspect

Tagesbudget, tatsächliche Ausgaben und Budget-Auslastung pro Kampagne. Fester Zeitraum: letzte 7 vollständige Tage (heute nicht enthalten). avg_daily_spend_eur = 7-Tage-Summe / 7 (auch bei jüngeren Kampagnen); budget_utilization_pct = Ø Tagesausgabe / Tagesbudget. Bei geteilten Budgets bezieht sich daily_budget_eur auf das gemeinsame Budget, die Ausgaben nur auf diese Kampagne. Felder: daily_budget_eur, avg_daily_spend_eur, budget_utilization_pct, recommended_budget_eur, total_spend_7d_eur, impressions_7d, clicks_7d. Für den Monatsverlauf budget_pacing nutzen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context: the fixed 7-day window, how avg_daily_spend handles younger campaigns, how the utilization ratio is computed, and how shared budgets are attributed — none of which is in 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?

Front-loaded with purpose and window before formulas and field list; every sentence carries information. It is dense and formula-heavy but not padded, and the field enumeration is somewhat redundant given an output schema exists.

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

Completeness4/5

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

With an output schema present, return values need not be explained, yet the description lists them anyway; combined with the window, formulas, and parameter note, an agent can invoke this correctly. Slight redundancy rather than a completeness gap.

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 0% for the single workspace parameter, so the description must compensate, and it does: it defines workspace as the customer workspace slug and notes it is optional when only one workspace exists. That is the meaningful semantic an agent needs for the only 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 names a specific verb/resource combination (daily budget, actual spend, utilization per campaign) and pins down the exact reporting window (last 7 complete days, excluding today). It also lists the returned metrics, so an agent knows precisely what this tool answers versus generic performance tools.

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

Usage Guidelines4/5

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

It explicitly routes the agent to budget_pacing for the monthly course, which gives a clear positive alternative. It also explains the shared-budget caveat, but does not state exclusions relative to ads_campaign_performance or ads_update_campaign_budget beyond that single pointer.

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

ads_bulk_add_keywordsGoogle Ads: Bulk add keywordsAInspect

Mehrere Keywords in einer Ad Group anlegen — ein API-Call statt N. Default Status: PAUSED (Safety — User muss manuell aktivieren). Gerade ein Bulk-Import in eine laufende Ad Group wäre sonst der schnellste Weg zu ungewolltem Werbebudget. Aktiviert wird anschließend mit ads_bulk_update_keyword_status (alle criterion_ids auf einmal, ein API-Call). keywords: Liste von {"keyword": str, "match_type": "BROAD"|"PHRASE"|"EXACT", "cpc_bid_eur": float|null}. match_type default BROAD. cpc_bid_eur optional; wirkt nur bei MANUAL_CPC-Kampagnen, bei Smart Bidding ohne Effekt auf die Auslieferung. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusNoPAUSED
keywordsYes
workspaceNo
ad_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false; the description goes beyond them by disclosing the PAUSED default, the budget-risk reasoning behind it, and the two-step create-then-activate pattern. It also notes that cpc_bid_eur has no delivery effect under Smart Bidding, which is real behavioral context. It stops short of covering duplicate-keyword handling, batch-size limits, or error behavior.

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?

Front-loads the action in the first clause, then the safety default, then the parameter details — a sensible order. The safety rationale runs a bit long for what it conveys, but every sentence carries operative information rather than 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?

With an output schema present and annotations covering the safety profile, the description supplies what is missing: the mutation's default state, the activation follow-up, and the nested keyword object semantics. It would be complete with a note on duplicate handling or per-call limits for a bulk mutation.

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 0%, so the description carries the full burden and largely does: it spells out the keywords item shape (keyword, match_type enum with BROAD default, optional cpc_bid_eur with its MANUAL_CPC caveat) and explains workspace as an optional slug when only one workspace exists. Only ad_group_id is left undocumentedly explained, which is the main remaining gap.

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

Purpose5/5

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

States a specific verb and resource — creating multiple keywords in an ad group — plus the scope differentiator 'ein API-Call statt N', which separates it from the singular ads_add_keyword sibling. It also names ads_bulk_update_keyword_status as the follow-up, so the agent knows exactly where this tool sits in a workflow.

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?

Explains the safety rationale for the PAUSED default (avoiding unintended ad spend on a live ad group) and explicitly routes the agent to ads_bulk_update_keyword_status with all criterion_ids for activation. What is not stated explicitly is the boundary versus the single-keyword tool ads_add_keyword — it is only implied by 'Mehrere Keywords'.

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

ads_bulk_add_negative_keywordsGoogle Ads: Bulk add negative keywordsAInspect

Mehrere negative Keywords in einer Kampagne anlegen — ein API-Call statt N. keywords: Liste von {"keyword": str, "match_type": "EXACT"|"PHRASE"|"BROAD"}. match_type Default EXACT — für ausgeschlossene Suchbegriffe die sichere Wahl, blockiert genau diese Suche. PHRASE blockiert jede Suche mit der Wortfolge, BROAD jede Suche mit allen Wörtern in beliebiger Reihenfolge; beide nur bewusst wählen und dem Nutzer vor dem Anlegen je Begriff nennen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
keywordsYes
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already mark this as a non-read-only, non-destructive, open-world mutation. The description adds useful behavioral context beyond the annotations: it explains how match types block searches, why EXACT is the safe default, and warns that PHRASE/BROAD should only be used deliberately after user notification.

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 front-loaded with the core purpose and then adds relevant match-type guidance. The match-type explanation is somewhat lengthy, but it earns its place because the schema does not document those semantics elsewhere.

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 three parameters, two required, and no schema descriptions; the description covers `keywords` and `workspace` but omits the required `campaign_id`. An output schema exists, so return values need not be explained, but the missing required-parameter meaning is a meaningful completeness gap for a mutation 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 0%, so the description must carry parameter meaning. It does well for `keywords` by documenting the object shape, match_type values, defaults, and blocking behavior, and it explains that `workspace` is optional when only one workspace exists. However, it never explains the required `campaign_id` parameter, leaving one of three parameters undocumented.

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

Purpose4/5

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

The description states a specific verb and resource: creating multiple negative keywords in a campaign, with the efficiency rationale "ein API-Call statt N". This clearly distinguishes bulk negative keyword creation from single-add and bulk positive-keyword tools, although it does not explicitly name the sibling alternatives.

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

Usage Guidelines3/5

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

Usage is implied by "Mehrere negative Keywords" and "ein API-Call statt N", which suggests using this tool when adding multiple negatives rather than calling a single-add tool repeatedly. It gives strong guidance for match_type selection, including a safe default and a warning to tell the user before creating PHRASE/BROAD terms, but it does not explicitly compare this tool with sibling tools.

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

ads_bulk_update_keyword_statusGoogle Ads: Bulk update keyword statusA
Destructive
Inspect

Mehrere Keywords einer Ad Group aktivieren oder pausieren — ein API-Call statt N. Das ist der vorgesehene zweite Schritt nach ads_bulk_add_keywords, das Keywords absichtlich PAUSED anlegt: Hier alle criterion_ids der Ad Group auf einmal übergeben, statt ads_update_keyword_status pro Keyword aufzurufen (spart Aufrufe im Monatskontingent und erzeugt einen statt N Journal-Einträgen). criterion_ids: Liste von Keyword Criterion IDs, alle aus derselben Ad Group (aus ads_list_keywords), max. 1000; Doppelte werden ignoriert. Für Keywords aus mehreren Ad Groups je Ad Group einmal aufrufen. status: ENABLED oder PAUSED. Läuft atomar — entweder alle oder keines. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusYes
workspaceNo
ad_group_idYes
criterion_idsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses atomic execution ('entweder alle oder keines'), the 1000-ID limit, duplicate handling, cross-ad-group behavior, and side benefits around quota and journal entries. These are meaningful operational traits that the annotations do not convey.

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 front-loaded with purpose and alternative, then moves into parameter guidance. It is efficient overall, though the quota/journal rationale is slightly more verbose than strictly necessary for tool selection.

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

Completeness5/5

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

Given that an output schema exists, the description need not explain return values, and it covers all behavioral and parameter details an agent needs. The only minor gap is that ad_group_id is inferred rather than explicitly defined, but the surrounding text makes its role unambiguous.

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

Parameters5/5

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

Although schema description coverage is 0%, the description compensates fully: it explains criterion_ids constraints and source (ads_list_keywords, same ad group), status values (ENABLED/PAUSED), and workspace optionality. ad_group_id is not defined in a standalone sentence but is clearly implied by the ad-group scoping throughout.

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 first sentence states a specific verb and resource ('Mehrere Keywords einer Ad Group aktivieren oder pausieren') and immediately distinguishes the tool from per-keyword updates by noting it is one API call instead of N. The scope and the sibling it replaces are both clear without opening the schema.

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 names when to use this tool: after ads_bulk_add_keywords, and instead of ads_update_keyword_status per keyword. It also states the multi-ad-group case ('je Ad Group einmal aufrufen'), so the agent knows both the primary use case and the boundary condition.

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

ads_campaign_performanceGoogle Ads: Campaign performanceA
Read-only
Inspect

Kampagnen-Performance der letzten N Tage (Impressions, Clicks, Cost, CTR, CPC, Conversions). Zeitfenster: N vollständige Tage bis gestern, heute nicht enthalten. Conversions = primäre (gebotsrelevante) Conversions wie in der Spalte „Conversions"; die Summe über alle Kampagnen ergibt die Konto-Gesamtzahlen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

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 openWorldHint=true, so the description's job is to add semantics — and it does: it defines the exact date window (excludes today), defines which conversion type is counted (primary/bid-relevant, matching the 'Conversions' column), and notes the additive property across campaigns. It does not discuss limits on data volume or freshness beyond the day boundary.

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?

Three sentences, front-loaded with the metric list, then the time-window rule that matters most for correct invocation. No filler, though the conversions-definition sentence is dense and could be split for readability.

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

Completeness5/5

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

With an output schema present, the description need not explain return shape, and it covers the two things the schema does not: the reporting window semantics and the workspace scoping rule. An agent has everything required to call this 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?

Schema description coverage is 0%, so the description must carry both parameters — and it does: 'days' is defined as N complete days ending yesterday (today excluded), and 'workspace' is explained as the client workspace slug, optional when only one workspace exists. Only the default value of 7 is left to the schema.

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

Purpose4/5

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

States a specific resource (campaign performance) and enumerates the exact metrics returned (Impressions, Clicks, Cost, CTR, CPC, Conversions). An agent can distinguish this campaign-level report from ad-level or keyword-level siblings by the metric scope, though the description never names those siblings explicitly.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the time-window rule ('N vollständige Tage bis gestern, heute nicht enthalten') and the note that summing all campaigns yields account totals give a sense of when the tool applies. There is no explicit guidance on when to prefer ads_ad_performance, ads_keyword_performance, or ads_device_performance instead.

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

ads_change_historyGoogle Ads: Change historyA
Read-only
Inspect

Änderungshistorie des Kontos: wer hat wann was geändert (User, Ressource, Operation, Felder). Google erlaubt max. 29 Tage zurück; das Fenster schließt heute ein. limit: max. Einträge (1–200), neueste zuerst. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the read-only/open-world profile, and the description adds real operational context on top: a hard 29-day retention limit that expires daily and newest-first ordering. It does not mention rate limits, pagination, or result volume beyond the limit cap.

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?

Four short sentences, front-loaded with the resource definition before the retention caveat and the two parameter notes. Dense but no filler; the only drag is that the parenthetical field list and the retention clause slightly overlap in intent.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the read-only profile comes from annotations. What remains for the description — retention window, ordering, the two optional parameters — is mostly covered, with the 'days' parameter range the only clear omission.

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 0%, so the description must compensate. It does explain 'limit' (1–200, newest first) and 'workspace' (optional with a single workspace), but 'days' is never named or bounded — the 29-day cap is stated only as a Google constraint, not as the valid range for the days parameter (default 14).

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

Purpose5/5

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

States a specific verb+resource ('Änderungshistorie des Kontos') and enumerates the returned dimensions (User, Ressource, Operation, Felder). No sibling tool in the ads_* family covers change auditing, so the agent can distinguish it immediately from performance/list 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?

Usage is implied through the 29-day retention constraint ('das Fenster schließt heute ein'), which tells the agent when data is still retrievable, but it never says when to prefer this tool over alternatives or what it is not for (e.g., vs. ads_campaign_performance for metric history).

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

ads_conversion_performanceGoogle Ads: Conversion performanceA
Read-only
Inspect

Conversion-Performance pro Aktion der letzten N Tage (Conversions, Wert, erster/letzter Tag, Tage mit Conversions, last_gap_days) plus Tagesverlauf. Zählt all_conversions (auch sekundäre Aktionen) — nicht 1:1 mit den klick-datierten Conversions der Kampagnen-Tools vergleichbar. Alle Datumsangaben (first/last_date, daily_total, last_gap_days) beziehen sich auf das CONVERSION-Datum: Offline-Importe zählen am Tag der Conversion (Eingabe des Ereignisses), nicht am Klick-Tag — ein heute verbuchter Import senkt last_gap_days. Fenster bis gestern (last_gap_days ≥ 1). Prüft so, ob Offline-Importe (z.B. HubSpot-Uploads) tatsächlich ankommen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only supply readOnlyHint/openWorldHint, and the description adds substantial non-obvious behavior: all dates are CONVERSION-dated, offline imports count on the event day, a same-day import lowers last_gap_days, and the window ends yesterday with last_gap_days >= 1. That is real interpretive context beyond the safety flags; only request-size/rate-limit style details are absent.

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?

Front-loaded with what is measured and what is returned, then the caveats. It is dense but not padded, though the conversion-date explanation is restated twice (date basis and the import/last_gap_days consequence), costing some economy.

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

Completeness4/5

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

With an output schema present, the description needn't explain the return shape, yet it usefully names the key metrics. It covers the crucial semantic traps (conversion-date basis, all_conversions scope, yesterday cutoff) that would otherwise cause misreading; the only real gap is the days parameter's default and bounds.

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 0%, so the description must compensate: it documents the workspace slug including the single-workspace fallback, and 'letzten N Tage' implicitly defines days. However, the days default (30) and valid range are never stated, leaving half the parameters only loosely covered.

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

Purpose5/5

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

States a specific measurement ('Conversion-Performance pro Aktion der letzten N Tage') plus the returned fields and daily breakdown, and explicitly distinguishes itself from the campaign-level tools by noting it counts all_conversions including secondary actions. An agent can tell what it computes and how it differs from ads_campaign_performance without opening a schema.

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?

Gives a concrete use case ('Prüft so, ob Offline-Importe (z.B. HubSpot-Uploads) tatsächlich ankommen') and names the alternative family it is not comparable to (click-dated campaign conversions). It doesn't spell out a when-not-to-use case, but the comparison guidance is explicit.

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

ads_create_adGoogle Ads: Create adAInspect

Responsive Search Ad anlegen. Google verlangt 3-15 Headlines (max 30 Zeichen) und 2-4 Descriptions (max 90 Zeichen). final_urls: mind. eine Landing Page URL. status: ENABLED oder PAUSED. Default Status: PAUSED (Safety — User muss manuell aktivieren). Die Anzeige wird IMMER zuerst als Probelauf gegen Google geprüft; bei einem Richtlinienverstoß kommt 'validation_failed' zurück und es wird nichts angelegt. Beim Texten vermeiden: Superlative ohne Beleg („bester", „Nr. 1"), fremde Marken, durchgehende Großschreibung, mehrfache Ausrufezeichen, Versprechen, die die Zielseite nicht einlöst. Wiederholte grobe Verstöße führen zur Sperre des Werbekontos, nicht nur zur Ablehnung der Anzeige. validate_only=true prüft nur und legt nichts an. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
path1No
path2No
statusNoPAUSED
headlinesYes
workspaceNo
final_urlsYes
ad_group_idYes
descriptionsYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: every ad is pre-validated against Google, validation_failed means nothing is created, the default status is PAUSED for safety, validate_only performs a dry run, and repeated policy violations can suspend the ad account. These are exactly the high-stakes operational details an agent needs before invoking a creation tool.

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 front-loaded with the core action and then organized around Google constraints, validation behavior, safety defaults, and policy risks. The compliance list is somewhat lengthy, but it earns its place given the account-suspension risk and the tool's high-stakes creation behavior.

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

Completeness3/5

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

The description is strong on validation, policy risk, safety defaults, and the main ad copy fields, and the output schema means return values need not be explained. However, with 9 parameters and 0% schema description coverage, it leaves meaningful gaps around required ad_group_id and optional path1/path2 semantics.

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 0%, so the description must carry parameter meaning. It supplies critical constraints for headlines, descriptions, final_urls, status, validate_only, and workspace, including counts, character limits, allowed status values, default PAUSED, and the optional workspace case. It still omits semantics for ad_group_id, path1, and path2.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Responsive Search Ad anlegen.' It makes clear this creates a Google Responsive Search Ad, which distinguishes it from update/remove/list tools and from non-Google ad creation siblings. The Google-specific requirements further reinforce the exact resource being created.

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 when to use the tool through its creation constraints, default PAUSED status, and validate_only dry-run mode. However, it does not explicitly route the agent against alternatives such as ads_update_ad, ads_replace_ad, or ads_create_text_assets, nor does it state when not to use this tool.

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

ads_create_ad_groupGoogle Ads: Create ad groupAInspect

Neue Ad Group in einer Kampagne anlegen. Default Status: PAUSED (Safety — User muss manuell aktivieren). type_: SEARCH_STANDARD, DISPLAY_STANDARD, etc. (passend zur Kampagne). cpc_bid_eur: optionales Standard-CPC-Gebot; wirkt nur bei Kampagnen mit MANUAL_CPC, bei Smart Bidding ohne Effekt auf die Auslieferung. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
type_NoSEARCH_STANDARD
statusNoPAUSED
workspaceNo
campaign_idYes
cpc_bid_eurNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only say the tool writes and is non-destructive; the description adds genuinely new behavior: entities are created PAUSED for safety and require manual activation, and cpc_bid_eur is inert under Smart Bidding. That is real context an agent cannot get from the annotations. It stops short of stating return payload, duplicate-name behavior, or whether creation is idempotent (an output schema exists, so returns are partly excused).

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?

Five short lines, purpose front-loaded followed by one line per non-obvious parameter. The repetition of the PAUSED default is justified because the description attaches the safety rationale the schema default alone cannot convey.

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 6-parameter mutation tool with an output schema, this covers creation scope, default state, conditional bid behavior, and workspace resolution — enough to call it correctly in the common case. Missing pieces are secondary: campaign_id validity requirements, name constraints, and error behavior. The German-only text alongside an otherwise English catalog is a minor consistency gap rather than a completeness one.

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 0%, so the description must carry the load, and it does for four of six parameters: type_ with concrete values, cpc_bid_eur with a conditional-effect rule, workspace with a single-workspace exception, and the status default with rationale. Only name and campaign_id are left undefined, though both are self-evident from their keys.

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 opening line gives a specific verb and resource ("Neue Ad Group in einer Kampagne anlegen"), so an agent immediately knows this creates an ad group inside an existing campaign. It does not name or differentiate against any sibling (e.g. ads_create_ad, ads_create_campaign, openai_ads_create_ad_group), but the noun is distinctive enough that confusion risk is low.

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

Usage Guidelines3/5

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

Usage is only implied: a campaign must already exist and type_ should match it ("passend zur Kampagne"). The PAUSED-by-default note hints at a follow-up activation workflow, but there is no explicit "use this when... / use ads_create_campaign instead when..." routing or statement of prerequisites such as campaign existence or permissions.

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

ads_create_asset_groupGoogle Ads: Create asset groupAInspect

Asset Group für eine PMax-Kampagne anlegen — atomar mit den Google- Mindest-Assets (3 Headlines, 2 Descriptions, Long Headline, Business Name, Marketing-Bild, Quadrat-Bild, Logo; IDs aus ads_create_text_assets / ads_upload_image_asset). extra_assets: [{"asset_id","field_type"}] z. B. für YOUTUBE_VIDEO. validate_only=True für einen Dry-Run. Default Status PAUSED. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
path1No
path2No
statusNoPAUSED
final_urlYes
workspaceNo
campaign_idYes
extra_assetsNo
logo_asset_idYes
validate_onlyNo
headline_asset_idsYes
description_asset_idsYes
business_name_asset_idYes
long_headline_asset_idYes
marketing_image_asset_idYes
square_marketing_image_asset_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), it discloses that creation is atomic with mandatory minimum assets and that new groups default to PAUSED — both meaningful safety-relevant traits. It says nothing about failure/partial-failure behavior or permission requirements, so it is strong but not complete.

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?

Front-loaded and dense — every clause carries information an agent needs. The long parenthetical list and em-dash chaining make it a run-on that slows parsing slightly, but little could be cut without losing semantics.

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 16-parameter, 10-required mutation tool, the description covers the asset prerequisites, their source tools, the extra-assets escape hatch, dry-run mode and the default status. With an output schema available and annotations covering the safety profile, nothing essential for a correct call is missing.

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% schema description coverage, the description must carry the load: it gives cardinality (3 headlines, 2 descriptions), maps nearly every required asset-ID parameter to its asset type, documents extra_assets' item shape and a YOUTUBE_VIDEO example, explains validate_only and the workspace slug rule. campaign_id, name, final_url, path1 and path2 remain undocumented, keeping it below 5.

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

Purpose5/5

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

States a specific verb+resource (create an asset group for a PMax campaign) and adds the decisive scope detail that creation is atomic with Google's minimum asset set. This clearly separates it from siblings like ads_add_asset_group_assets, which attach assets to an existing group.

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 routes the agent to ads_create_text_assets and ads_upload_image_asset for obtaining required asset IDs, and names validate_only=True for a dry run. It never states exclusions (e.g. that the campaign must already exist or that this isn't for adding incremental assets), so it stops 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.

ads_create_campaignGoogle Ads: Create campaignAInspect

Neue Kampagne anlegen (inkl. neuem, kampagneneigenem Budget). Default Status: PAUSED. channel_type: SEARCH, DISPLAY, VIDEO, PERFORMANCE_MAX. SHOPPING wird vor jedem API-Aufruf mit {error: unsupported_channel, hint} abgelehnt (braucht eine Merchant-Center-Verknüpfung — in der Google-Ads-Oberfläche anlegen). bidding_strategy: MANUAL_CPC, MAXIMIZE_CLICKS, MAXIMIZE_CONVERSIONS oder MAXIMIZE_CONVERSION_VALUE (PMax braucht eine der letzten beiden). target_cpa_eur wirkt nur bei MAXIMIZE_CONVERSIONS, target_roas nur bei MAXIMIZE_CONVERSION_VALUE — bei den anderen Strategien werden beide ignoriert. Netzwerke (nicht bei PMax): target_google_search (Default true), target_search_network = Such-Partner (Default true — für reine Google-Suche false setzen), target_content_network = Display (Default false). Bei PMax bleibt die Final-URL-Expansion auf Googles Standard (aktiv); ein Kampagnen-Feld dafür gibt es in der API nicht mehr, abschaltbar nur in der Google-Ads-Oberfläche. Die Kampagne wird als Kampagne ohne EU-Politikwerbung angelegt. Zum Schalten einer PMax danach ads_create_asset_group + ads_add_asset_group_signal aufrufen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
statusNoPAUSED
workspaceNo
target_roasNo
channel_typeNoSEARCH
target_cpa_eurNo
bidding_strategyNoMANUAL_CPC
daily_budget_eurYes
target_google_searchNo
target_search_networkNo
target_content_networkNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=false), it discloses that the campaign defaults to PAUSED, that budget is newly created, that unsupported channels return {error: unsupported_channel, hint}, that PMax final-URL-expansion cannot be disabled via API, and that campaigns are created without EU political advertising. These are exactly the side effects and limitations an agent needs.

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?

Every sentence carries operational information and the critical facts (purpose, default PAUSED status) are front-loaded. It is dense and somewhat run-on in the network/PMax paragraph, which slightly hurts scanability, but nothing is filler.

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 an 11-parameter mutation tool with an output schema present, the description covers the full lifecycle: creation semantics, default state, per-parameter constraints, rejection behavior, and required follow-up calls for PMax. An agent can call this correctly without consulting anything else.

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

Parameters5/5

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

Schema coverage is 0%, so the description must carry all parameter meaning — and it does: enumerated channel_type values with SHOPPING exclusion, bidding_strategy options with the PMax constraint, the fact that target_cpa_eur/target_roas are ignored outside their matching strategies, defaults for the three network flags, and the PMax caveat that networks don't apply.

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 first sentence states a specific verb and resource ('Neue Kampagne anlegen') and adds the important detail that a campaign-owned budget is created with it. It is clearly distinguishable from sibling tools like ads_update_campaign_settings or ads_create_ad_group.

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 gives concrete conditional guidance: SHOPPING is rejected before the API call, PMax requires calling ads_create_asset_group + ads_add_asset_group_signal afterwards, and workspace may be omitted when only one exists. It stops short of explicitly naming when to use update vs. create alternatives, but the creation context is unambiguous.

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

ads_create_conversion_actionGoogle Ads: Create conversion actionAInspect

Legt eine neue Conversion-Aktion an (z.B. „Qualifizierter Lead").

Die zurückgegebene Resource-Name/ID dient direkt als 'conversion_action' für 'ads_upload_conversions'. category: z.B. QUALIFIED_LEAD, LEAD, PURCHASE, SIGNUP, SUBMIT_LEAD_FORM. type: UPLOAD_CLICKS (Offline-Imports) oder WEBPAGE. counting_type: ONE_PER_CLICK oder MANY_PER_CLICK. default_value: Standard-Wert, der für ALLE Conversions dieser Aktion erzwungen wird (always_use_default_value) — mitgelieferte Werte aus Tag/Upload werden dann ignoriert. Weglassen, wenn echte Werte (z.B. per ads_upload_conversions 'value') gebucht werden sollen. validate_only: True für einen Probelauf (Dry-Run) ohne Schreiben. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
typeNoUPLOAD_CLICKS
categoryNoQUALIFIED_LEAD
workspaceNo
counting_typeNoONE_PER_CLICK
default_valueNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish write (readOnlyHint=false), non-destructive, open-world. The description adds genuinely non-obvious behavior: setting default_value forces always_use_default_value and causes supplied tag/upload values to be ignored, plus the dry-run semantics of validate_only. It does not mention permissions or whether duplicates are rejected, which keeps it below 5.

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?

Front-loads the purpose and the downstream-linkage in the first two lines, then one line per parameter — dense and scannable. It is longer than average, but nearly every line contributes enum or constraint information that the schema lacks; only the trailing workspace note is filler-ish.

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?

Seven parameters with zero schema coverage and a real create operation; the description covers six of them with values and side effects, explains the dry-run flag, and a rich output schema exists so return shape needn't be restated. An agent has what it needs to call this 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?

Schema description coverage is 0%, so the description must carry the parameter burden and largely does: it enumerates category values (QUALIFIED_LEAD, LEAD, PURCHASE, SIGNUP, SUBMIT_LEAD_FORM), type values (UPLOAD_CLICKS/WEBPAGE), counting_type values, and explains the default_value/always_use_default_value interaction. Only 'name' is left undocumented, which is partly implied by the example but is the single required 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?

States a specific verb+resource ('Legt eine neue Conversion-Aktion an') with a concrete example, and immediately ties the output artifact (resource name/ID) to the follow-up tool ads_upload_conversions. That distinguishes it from ads_update_conversion_action and ads_list_conversion_actions without requiring the schema.

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?

Gives actionable when-to guidance for two parameters: default_value should be omitted when real per-conversion values are booked via ads_upload_conversions, and validate_only=True is the dry-run path. It does not explicitly name ads_update_conversion_action as the alternative for modifying an existing action, so it stops short of full alternative routing.

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

ads_create_customer_match_listGoogle Ads: Create customer match listAInspect

Legt eine CRM-basierte Customer-Match-Userliste (CONTACT_INFO) im Google- Ads-Konto an und gibt die User-List-ID + Resource-Name zurück.

Customer Match spricht bestehende Kunden anhand gehashter Kundendaten in Google Ads an (oder schließt sie aus). Diese User-List-ID dient anschließend als 'audience_id' für 'ads_upload_customer_match_members' bzw. 'ads_remove_customer_match_members'. Eine bestehende Liste finden Sie über 'ads_list_customer_match_lists'.

Hinweis: Das Google-Ads-Konto muss für Customer Match berechtigt sein (Richtlinien-/Verlaufs-Voraussetzungen).

name: Anzeigename der Userliste. description: optionale Beschreibung. membership_life_span_days: Mitgliedschaftsdauer in Tagen (max. 540). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
workspaceNo
descriptionNo
membership_life_span_daysNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations declare non-read-only, open-world, non-destructive. The description adds real context beyond that: the account must be eligible for Customer Match (policy/history prerequisites) and the tool returns a user-list ID and resource name. It doesn't detail failure modes or rate limits, but for a create-list tool this is substantial added 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?

Front-loaded with the core action and return, then purpose, then prerequisites, then params. Well organized with no filler, though it is on the longer side; the parameter list is arguably redundant with a well-described schema but necessary here given 0% coverage.

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 4-param create tool, it covers purpose, alternatives, prerequisites, all parameters including a constraint, and return identifiers. An output schema exists, yet the description still names the returned ID/resource — an agent has everything needed to call it correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry parameter meaning — and it does: name (display name), description (optional), membership_life_span_days (with the max 540 constraint not in the schema), and workspace (optional when only one workspace). All four parameters are explained, compensating fully for the schema gap.

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

Purpose5/5

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

States a specific verb (legt... an = creates) and resource (CRM-basierte Customer-Match-Userliste), names the CONTACT_INFO type, and even discloses the return values (User-List-ID + Resource-Name). It explicitly distinguishes itself from ads_list_customer_match_lists by directing users there to find existing lists.

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?

Explains the purpose of Customer Match, states that the resulting ID serves as 'audience_id' for ads_upload_customer_match_members and ads_remove_customer_match_members, points to ads_list_customer_match_lists for lookup, and gives the eligibility prerequisite. When-to-use and alternatives are all explicit.

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

ads_create_text_assetsGoogle Ads: Create text assetsAInspect

Texte als wiederverwendbare Text-Assets anlegen (Headlines max. 30, Long Headline/Descriptions max. 90 Zeichen) — die Rolle bestimmt erst der field_type beim Verknüpfen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
textsYes
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so safety is partly covered. The description adds genuinely non-obvious behavior: per-asset character limits (30/90) that act as validation constraints, and the fact that the asset carries no role until linked — context an agent would otherwise get only after a failed call.

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

Conciseness5/5

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

Two short sentences/paragraphs with zero padding: the core action and limits come first, the workspace caveat second. Both sentences carry information not present elsewhere.

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 two-parameter mutation tool with an output schema and safety annotations, the description covers the essential unknowns (what counts as a valid text, when workspace is required, that role assignment happens later). Only batch-size and duplicate handling are absent, which is minor.

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 0%, so the description must compensate. It does explain the workspace parameter as a slug that is optional when only one workspace exists, and the character limits implicitly constrain the texts array, but it never says how many texts can be passed per call or whether duplicates are rejected.

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?

States a specific verb (anlegen/create) and resource (wiederverwendbare Text-Assets) and adds the distinctive constraint that role is only assigned later via field_type at linking, which separates it from role-specific siblings like ads_create_ad. It does not name a sibling tool directly, so it stops short of a 5.

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

Usage Guidelines3/5

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

The note that field_type is set when linking implies this tool must be followed by a linking step (ads_link_asset / ads_add_asset_group_assets), but no explicit when-to-use/when-not guidance or named alternative is given. Usage is inferable rather than stated.

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

ads_demographic_performanceGoogle Ads: Demographic performanceA
Read-only
Inspect

Performance nach Alter und Geschlecht — Basis für B2B-Ausschlüsse. Letzte N Tage (days, heute ausgenommen) aus den Anzeigengruppen-Kriterien: nur Kampagnentypen mit Anzeigengruppen (Search/Display/Video), PMax fehlt. Summen sind daher KEINE Kontosummen (dafür ads_campaign_performance). Rückgabe: {age: {total, by_campaign}, gender: {total, by_campaign}} mit impressions, clicks, cost_eur, conversions; Bucket AGE_RANGE_UNDETERMINED bzw. UNDETERMINED = unbekannt. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only supply readOnlyHint/openWorldHint; the description adds substantial behavior beyond them: only campaign types with ad groups are included (Search/Display/Video), PMax is excluded, today is excluded from the day range, and totals are explicitly NOT account totals. It also documents the report shape and the UNDETERMINED bucket semantics — rich context an agent cannot get from 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?

Front-loaded with purpose, then scope constraints, then return shape. Dense but each line carries information; the return-structure detail is partly redundant given an output schema exists, which keeps it from a 5.

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

Completeness5/5

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

For a read-only analytics tool with two params, it covers scope limitations, exclusion of PMax, alternative for account totals, and bucket semantics. Even though an output schema exists, the added explanation of UNDETERMINED buckets and non-account-total sums is decision-critical and 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?

With 0% schema description coverage, the description must carry the burden and does: 'days' is defined as last N days excluding today, and 'workspace' as the customer workspace slug, optional when only one workspace exists. Both parameters gain meaning beyond their bare types, though exact date anchoring for days could be sharper.

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 resource (performance by age and gender) and its intended use (basis for B2B exclusions), then immediately distinguishes it from ads_campaign_performance for account totals. An agent can differentiate it from device/geo/schedule performance siblings by the dimension named.

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 names the alternative for account-level totals (ads_campaign_performance) and states the use case (B2B exclusions). However, it does not state when to prefer this over ads_device_performance or ads_geo_performance when an agent wants a broad breakdown, so a small inference gap remains.

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

ads_device_performanceGoogle Ads: Device performanceA
Read-only
Inspect

Performance nach Gerätetyp (Mobile, Desktop, Tablet): Impressions, Clicks, Cost, Conversions, CTR der letzten N Tage (vollständige Tage bis gestern, heute nicht enthalten). Conversions = primäre (gebotsrelevante) Conversions. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

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 openWorldHint=true, so the safety profile is covered; the description adds real value on top with the reporting-window rule (complete days only, today excluded) and the definition of Conversions as primary/bid-relevant conversions. It says nothing about latency, rate limits, or empty-result behavior, so it is not fully transparent.

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?

Three compact sentences, front-loaded with the resource and metrics before the time-window and workspace caveats. The nested parentheticals make it dense but nothing is wasted.

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

Completeness5/5

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

For a read-only, two-parameter report with an output schema, the description covers what an agent needs: which dimension is broken out, which metrics come back, how the date window behaves, and how to resolve the workspace. Return-value structure is correctly left to the output schema.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load and largely does: it explains the `days` window semantics (last N complete days, today excluded) and defines `workspace` as a customer-workspace slug that is optional when only one workspace exists. The default value of 30 for `days` is never mentioned, leaving a small gap.

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

Purpose4/5

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

The description names a specific report and its breakdown dimension ("Performance nach Gerätetyp (Mobile, Desktop, Tablet)") plus the exact metrics returned, which implicitly separates it from ads_campaign_performance, ads_demographic_performance and ads_geo_performance. It never names a sibling or states which one to pick instead, so it stops short of the top score.

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

Usage Guidelines3/5

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

Usage context is implied by the window definition ("letzten N Tage, vollständige Tage bis gestern, heute nicht enthalten") and the note that workspace is optional for single-workspace accounts. There is no explicit when-to-use/when-not guidance and no routing to alternative performance tools for other breakdowns.

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

ads_dismiss_recommendationGoogle Ads: Dismiss recommendationA
Destructive
Inspect

Eine Google-Ads-Empfehlung verwerfen (resource_name aus ads_list_recommendations). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
resource_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, so the safety profile is carried by structured data. The description adds the workspace-optionality rule but says nothing about irreversibility, whether a dismissed recommendation can be restored, or permission requirements — modest value on top of annotations.

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

Conciseness5/5

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

Two short lines, zero filler, with the core action first and the parameter notes second. Nothing could be removed without losing information.

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

Completeness4/5

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

Only two parameters and an output schema exists, so return values need no explanation; both params are covered in the text. For a destructive mutation the description could still say more about consequences, but annotations cover the safety signal.

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 0%, so the description must carry both parameters, and it does: resource_name is sourced from ads_list_recommendations, and workspace is described as optional when only one workspace exists. It lacks any format/identifier detail for resource_name beyond the source tool.

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?

States a specific verb ('verwerfen'/dismiss) plus a specific resource ('Google-Ads-Empfehlung'), so an agent knows exactly what the tool does. It doesn't explicitly contrast with the natural sibling ads_apply_recommendation (accept instead of dismiss), which keeps it short of a 5.

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

Usage Guidelines4/5

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

Points the agent to ads_list_recommendations as the source of resource_name, which is real workflow guidance rather than none. It never states when to dismiss vs. apply a recommendation or any prerequisite, so the exclusion side is only implied.

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

ads_geo_performanceGoogle Ads: Geo performanceA
Read-only
Inspect

Performance nach Standort (Land): Impressions, Clicks, Cost, Conversions der letzten N Tage (vollständige Tage bis gestern, heute nicht enthalten), sortiert nach Kosten. Conversions = primäre (gebotsrelevante) Conversions. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint) and open-world scope, so the bar is lower; the description still adds real behavioral context: the window means full days through yesterday with today excluded, results are sorted by cost, and 'Conversions' means primary bid-relevant conversions. That is exactly the kind of semantic detail annotations cannot express.

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?

Front-loaded with the resource and grain, then the time-window rule, sort order, conversion definition, and the parameter note — no filler. Slightly dense and parenthetical-heavy, but every clause carries information an agent needs.

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

Completeness4/5

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

With an output schema present, return shape need not be described; combined with the readOnly annotation and both parameters explained, an agent has enough to call this correctly. The only gap is no disambiguation from sibling performance tools or geo-targeting tools.

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 0%, so the description carries the load and does compensate: 'days' is defined as the last N full days ending yesterday (today excluded), and 'workspace' is explained as the client workspace slug, optional when only one workspace exists. Only the default of 30 days is left to the schema.

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

Purpose4/5

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

States a specific resource and grain: Google Ads performance broken down by country ('nach Standort (Land)'), with the metric set enumerated. An agent can tell it is a geo reporting tool, distinct from siblings like ads_get_geo_targeting, though the description never explicitly names that distinction.

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

Usage Guidelines3/5

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

Usage is implied by the reporting nature (get metrics per country over a window) and the workspace note explains when the workspace param can be omitted. However, there is no explicit 'use this instead of X' routing versus ads_campaign_performance, ads_device_performance, or ads_get_geo_targeting.

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

ads_get_geo_targetingGoogle Ads: Get geo targetingA
Read-only
Inspect

Geo-Targeting pro Kampagne: Standorte und die Einstellung 'Präsenz vs. Präsenz oder Interesse' (PRESENCE_OR_INTEREST ist die häufigste Ursache für Geo-Leakage). Optional auf eine Kampagne gefiltert. Zeigt nur Standort-Kriterien (Geo-Target-Constants); Umkreis-Ziele (Radius/PROXIMITY) werden nicht gelesen — locations=[] heißt nicht zwingend "weltweit", bei Verdacht in der Google-Ads-Oberfläche gegenprüfen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations by disclosing a hard limitation (proximity/radius targets are not returned), warning that locations=[] does not imply worldwide coverage, and prescribing a verification path. These are exactly the caveats that prevent an agent from drawing a wrong conclusion from an empty result.

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?

Front-loaded with the resource and its two components, and every clause carries information. The dense parenthetical plus em-dash asides make it slightly harder to parse than it needs to be, but nothing is padding.

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?

An output schema exists, so return shape is covered elsewhere; the description still covers filter behavior, the coverage limitation, and the workspace parameter. The remaining hole is campaign_id format and multi-campaign behavior, which an agent needs in order to call it correctly.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry the burden. It does well for workspace ('Slug des Kunden-Workspace, optional bei nur einem Workspace') but only alludes to campaign_id via 'Optional auf eine Kampagne gefiltert' without saying whether it takes the numeric ID, resource name, or a list.

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?

States a concrete resource and scope: per-campaign geo targeting, covering both the location criteria and the PRESENCE vs PRESENCE_OR_INTEREST setting. It clearly reads settings rather than performance (unlike ads_geo_performance) and clearly does not write (unlike ads_update_geo_targeting), though it never names those siblings explicitly.

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?

Gives real usage context: the campaign filter is optional, PRESENCE_OR_INTEREST is flagged as the usual cause of geo-leakage, and the agent is told to cross-check in the Google Ads UI when in doubt. No explicit when-not-to-use or named alternative tool, so not a 5.

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

ads_get_language_targetingGoogle Ads: Get language targetingA
Read-only
Inspect

Sprach-Targeting je Kampagne lesen — optional auf eine Kampagne gefiltert. Liefert nur Kampagnen mit mindestens einem Sprach-Kriterium; Kampagnen ohne Sprach-Kriterium (= alle Sprachen) fehlen in der Liste. Bei campaign_id bedeutet [] also "alle Sprachen" ODER unbekannte Kampagne — mit ads_list_campaigns gegenprüfen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, the description discloses a non-obvious result-set behavior: campaigns without any language criterion (= all languages) are omitted entirely, and an empty array under a campaign_id is genuinely ambiguous (all languages OR unknown campaign). That is exactly the kind of trap an agent needs warned about before interpreting output.

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?

Front-loads the action, then the filtering caveat, then the ambiguity warning, then the parameter note. Every sentence adds decision-relevant information with no padding.

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?

Output schema exists, so return values need no explanation here; the description instead covers the things structured fields cannot: omission semantics, ambiguity of empty results, and workspace optionality. Nothing needed to call or interpret it correctly is missing.

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 0%, so the description carries the burden: it explains that workspace is a customer-workspace slug and optional when only one workspace exists, and it explains campaign_id's filtering semantics plus the ambiguity of []. It stops short of giving the identifier format for campaign_id.

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

Purpose5/5

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

States a specific verb+resource ('Sprach-Targeting je Kampagne lesen') with explicit scope (per-campaign, optionally filtered). It is clearly distinguished from the sibling ads_update_language_targeting by the read framing, and from ads_list_campaigns which is named as a different tool for verification.

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?

Gives clear context for when to call it (reading language criteria, optionally per campaign) and names ads_list_campaigns as the cross-check when an empty result is ambiguous. It does not explicitly say when to prefer a different tool (e.g., ads_update_language_targeting for writes), but the usage context is unambiguous.

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

ads_impression_shareGoogle Ads: Impression shareA
Read-only
Inspect

Search-Impression-Share (nur Suchnetzwerk, kein Display/PMax) der letzten N Tage bis gestern (heute nicht enthalten), in Prozent — wahlweise je Kampagne, Anzeigengruppe oder KEYWORD. Kennzahlen je Zeile: impression_share_pct (Anteil der möglichen Impressionen), top_impression_share_pct (Anteil oberhalb der organischen Ergebnisse, „Search top IS"), abs_top_impression_share_pct (Anteil auf Position 1, „Search abs. top IS"), lost_to_rank_pct plus impressions, clicks, cost_eur. level: 'campaign' (Default), 'ad_group' oder 'keyword'. Bei 'keyword' kommen zusätzlich keyword, match_type, status, criterion_id (für ads_update_keyword_bid) sowie ad_group_id/ad_group_name. lost_to_budget_pct gibt es NUR bei 'campaign' — auf Anzeigengruppen- und Keyword-Ebene lehnt Google die Kennzahl ab (Budgetverlust ist eine Eigenschaft der Kampagne). campaign_id / ad_group_id: auf eine Kampagne bzw. Anzeigengruppe einschränken (ad_group_id erst ab level='ad_group', sonst error=ad_group_needs_finer_level). keyword: Teilstring des Keyword-Textes, Groß-/Kleinschreibung egal — braucht level='keyword', sonst error=keyword_needs_keyword_level. Beispiel: level='keyword', keyword='zahnarzt baden'. Bleibt nach dem Entfernen von Anführungszeichen kein Text übrig, kommt error=invalid_keyword_filter, damit der Filter nicht stillschweigend jedes Keyword trifft. limit: max. Zeilen, nach Impressionen absteigend. Ohne Angabe liefert level='campaign' ALLE Kampagnen (wie bisher), 'ad_group' und 'keyword' je 100; max. 200. Wird die Grenze erreicht, kommt statt der Liste ein Objekt mit result und warning — der Ausschnitt ist dann nicht das Ganze. Gelöschte Kampagnen, Anzeigengruppen und Keywords bleiben auf allen Ebenen außen vor. Die Anteile sind Brüche mit je eigenem Nenner: Summieren oder Mitteln über Keyword- oder Anzeigengruppen-Zeilen ergibt NICHT den Kampagnenwert — für den korrekten Gesamtwert level='campaign' abfragen. Google kappt die Werte: 10.0 bedeutet „<10 %", 90.0 bedeutet „>90 %" — keine exakten Werte; null, wenn Google keinen Wert liefert. Das Feld note in jeder Zeile wiederholt diese Kappungsregel. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
levelNocampaign
limitNo
keywordNo
workspaceNo
ad_group_idNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark this readOnly/openWorld, and the description layers substantial extra context: the window excludes today, deleted campaigns/ad groups/keywords are filtered out on all levels, lost_to_budget_pct is rejected above campaign level, hitting limit returns a result+warning object instead of the full list, and Google caps values (10.0 = '<10%', 90.0 = '>90%', null when unavailable). That is exactly the kind of behavior an agent cannot get from the schema.

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

Conciseness4/5

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

Front-loaded with the single-sentence definition, then per-parameter blocks — each block earns its place and the error codes are actionable. It is long, and the capping rule is stated twice (once in prose, once by noting the repeated `note` field), which is mild redundancy but defensible as reinforcement.

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 7-parameter analytics tool with an output schema, everything an agent needs to call it correctly is present: valid level values, filter preconditions and their error identifiers, truncation semantics, aggregation caveat, and value capping. Return-field documentation goes beyond what the output schema alone would convey.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry all seven parameters — and it does: level with its three literal values and default, keyword as a case-insensitive substring with a worked example and the invalid_keyword_filter guard, limit with per-level defaults (all campaigns vs 100 vs max 200), campaign_id/ad_group_id scoping with their error codes, and workspace optionality for single-workspace accounts. Only the `days` parameter is described implicitly ('letzten N Tage') rather than by name.

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

Purpose5/5

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

States a precise resource and scope: Search-network-only impression share (explicitly excluding Display/PMax) for the last N days up to yesterday, segmented by campaign, ad group, or keyword. It also enumerates the exact metrics returned (impression_share_pct, top/abs-top IS, lost_to_rank_pct, etc.), which makes it unmistakable against generic siblings like ads_campaign_performance or ads_keyword_performance.

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?

Gives clear conditional guidance: ad_group_id only works from level='ad_group' (else ad_group_needs_finer_level), keyword requires level='keyword' (else keyword_needs_keyword_level), and it explicitly instructs to query level='campaign' for a correct aggregate because averaging keyword rows is invalid. It never names a sibling tool as the alternative, so it stops 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.

ads_keyword_performanceGoogle Ads: Keyword performanceA
Read-only
Inspect

Keyword Performance inkl. Quality Score, CPC, Conversions: Top 50 Keywords nach Kosten der letzten N Tage bis gestern (heute nicht enthalten) — kein vollständiger Abzug, für alle Keywords ads_list_keywords. quality_score 1–10 oder 'N/A' ohne ausreichende Daten; QS-Komponenten über ads_keyword_quality. Conversions = primäre (gebotsrelevante) Conversions. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description goes beyond them with the top-50-by-cost cap, the exclusion of today from the window, the quality_score 1-10/'N/A' semantics, and the definition of conversions as primary/bid-relevant. These are exactly the behavioral facts an agent needs. It stops short of describing pagination or ordering ties.

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 leads with what the tool returns and the time window, then adds caveats, alternatives, and parameter notes. It is dense but every sentence carries information. Some subject changes (QS scale, conversions definition, workspace) make it a bit choppy and it mixes German and English.

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

Completeness4/5

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

With an output schema present, the description need not enumerate return fields, and it still covers the key semantics (top-50 ranking by cost, QS range, conversions meaning). Combined with the annotations and sibling routing, an agent has enough to call it correctly, though the default day count is missing.

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 0%, but the description compensates: 'days' is explained as the last N days through yesterday (today excluded) and 'workspace' as the customer workspace slug that is optional when only one workspace exists. Neither parameter has a schema description, so this added meaning is valuable. A 5 is held back only because the default (14) is not acknowledged.

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

Purpose5/5

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

States a specific verb+resource with scope: 'Top 50 Keywords nach Kosten der letzten N Tage bis gestern', listing what is included (Quality Score, CPC, Conversions). It distinguishes itself from ads_list_keywords by explicitly saying it is not a complete dump. An agent can tell exactly what this returns.

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 names the alternative for full coverage ('für alle Keywords ads_list_keywords') and routes QS component questions to ads_keyword_quality. The 'bis gestern (heute nicht enthalten)' boundary clarifies when the window applies.

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

ads_keyword_qualityGoogle Ads: Keyword qualityA
Read-only
Inspect

Quality-Score-Komponenten je Keyword: Expected CTR, Ad Relevance, Landing Page Experience — für gezielte Landingpage-Arbeit. days: Zeitraum in Tagen (Default 30, heute ausgenommen). Nur Keywords aktiver (ENABLED) Kampagnen, die 100 impressionsstärksten. Liefert je Keyword quality_score (1-10), expected_ctr / ad_relevance / landing_page_experience (BELOW_AVERAGE/AVERAGE/ABOVE_AVERAGE), impressions, clicks. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

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 openWorldHint=true, so safety is covered. The description adds real behavioral context beyond the annotations: only keywords in ENABLED campaigns, restricted to the 100 highest-impression keywords, and the reporting window excludes today. This materially changes what results an agent should expect.

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?

Front-loaded with the metric components, followed by scope, return fields, and parameter notes — every block earns its place. The line-wrapped pseudo-structure makes it slightly harder to scan than a clean sentence flow, but there is no filler.

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 two-parameter read-only reporting tool it covers everything an agent needs: population filters, time window semantics, per-parameter meaning, and result shape (quality_score 1-10, three enum components, impressions, clicks) even though an output schema already exists. Nothing essential to calling it correctly is missing.

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 0%, so the description carries the full burden and largely does: 'days' is defined as a lookback period with default 30 and today excluded, and 'workspace' is described as a customer slug that can be omitted when only one workspace exists. Minor gaps remain (no upper bound on days, no format example for the slug).

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?

Names a specific resource (Quality-Score-Komponenten je Keyword) plus the three metric components and the analytical intent (Landingpage-Arbeit). An agent can tell this is a keyword-level quality diagnostics tool rather than a mutation or listing tool. It does not, however, differentiate itself from the closely related ads_keyword_performance sibling.

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

Usage Guidelines3/5

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

The phrase 'für gezielte Landingpage-Arbeit' implies the intended use case, and the scope line (only ENABLED campaigns, top 100 by impressions) hints at when the tool fits. But there is no explicit when-to-use/when-not framing or a named alternative such as ads_keyword_performance or ads_list_keywords, which an agent must infer.

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

ads_list_account_negativesGoogle Ads: List account negativesA
Read-only
Inspect

Kontoweite Negatives lesen. Negative Keywords kommen als Shared-Set- Listen mit keywords-Array. criterion_id ist die Konto-Zuordnung, shared_criterion_id ein einzelnes Keyword in der Liste. Zur Abgrenzung von Kampagnen-Listen siehe ads_manage_shared_negative_list. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds useful structural behavior beyond that: account negatives are returned as shared-set lists with a keywords array, and it distinguishes criterion_id from shared_criterion_id. It does not mention pagination or auth constraints, but with annotations and an output schema the burden is lower.

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 short and front-loads the purpose. Each sentence adds useful information about the data model, sibling distinction, or parameter, though the telegraphic phrasing and line breaks make it slightly less polished.

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

Completeness5/5

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

Given the presence of an output schema and annotations covering the read-only/open-world behavior, the description supplies everything essential: purpose, data-model interpretation, sibling pointer, and the sole optional parameter. Nothing critical is missing for correct invocation.

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

Parameters5/5

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

There is only one parameter, workspace, and schema description coverage is 0%. The description fully compensates by defining it as the customer workspace slug and stating it is optional when there is only one workspace.

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

Purpose5/5

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

The description states a specific verb and resource: reading account-wide negatives. It also differentiates the tool from campaign/shared-list contexts and explains the key data model, so an agent can identify it without opening the schema.

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?

It gives some usage context by noting it is for account-level negatives and points to ads_manage_shared_negative_list for distinction. However, it does not clearly name ads_list_negative_keywords for campaign-level negatives or ads_manage_account_negatives as the write counterpart, and the one alternative it names may be confusing.

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

ads_list_ad_groupsGoogle Ads: List ad groupsA
Read-only
Inspect

Ad Groups auflisten. Optional nach Kampagne filtern. Entfernte Gruppen und Gruppen entfernter Kampagnen sind ausgeblendet. campaign_status zeigt den Kampagnenstatus — eine ENABLED-Gruppe in einer PAUSED-Kampagne läuft nicht. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

With readOnlyHint already declaring a safe read, the description adds real behavioral context: removed ad groups and groups of removed campaigns are filtered out, and campaign_status is returned to signal inherited campaign state (an ENABLED group under a PAUSED campaign is not running). That is non-obvious semantics an agent could not infer from the schema.

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

Conciseness4/5

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

Five short sentences with no filler, front-loaded with the purpose and filter, followed by the filtering caveat and parameter note. Tight and readable, though the campaign_status remark reads slightly like a data-model aside rather than invocation guidance.

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?

An output schema exists so return values need not be described, and the description covers purpose, filtering, hidden records, the campaign_status nuance, and the workspace parameter. The main residual gap is not naming campaign_id as the filter input and its format.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry the load. It explains the workspace parameter well (customer workspace slug, optional when only one workspace exists), but campaign_id is only implied by 'nach Kampagne filtern' — its name and accepted format are never stated.

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?

States a specific verb and resource ('Ad Groups auflisten') plus the scoping capability ('optional nach Kampagne filtern'), which distinguishes it from write siblings like ads_create_ad_group. It does not explicitly differentiate from other list tools such as ads_list_campaigns or ads_list_ads, but the resource is 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?

Usage is implied: use it to enumerate ad groups, optionally narrowed by campaign. There is no explicit statement of when to prefer this over ads_list_campaigns or ads_list_ads, and no prerequisites or exclusions beyond the note that removed groups are hidden.

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

ads_list_adsGoogle Ads: List adsA
Read-only
Inspect

Anzeigen auflisten (Headlines, Descriptions, URLs, Status, Approval). Optional filtern. Maximal 100 Anzeigen je Aufruf, ohne Hinweis auf Abschneiden — bei größeren Konten mit campaign_id oder ad_group_id eingrenzen. Entfernte Anzeigen (REMOVED) werden ausgeblendet, ebenso Anzeigen entfernter Gruppen/Kampagnen. ad_group_status und campaign_status zeigen, ob die Eltern pausiert sind (dann läuft die Anzeige trotz status ENABLED nicht). Headlines/Descriptions nur für Responsive Search Ads; PMax-Kampagnen haben keine Anzeigen — dafür ads_list_asset_groups. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
ad_group_idNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint/openWorldHint; the description adds substantial behavior: a hard 100-ad limit with no truncation indicator, silent hiding of REMOVED ads and ads under removed groups/campaigns, and that ad_group_status/campaign_status reveal paused parents that keep an ENABLED ad from serving. These are exactly the traps an agent needs disclosed.

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?

Front-loaded with the resource and returned fields, and every sentence carries operational information. It is dense and packs several facts per sentence, making it slightly harder to scan, but nothing is filler.

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?

An output schema exists, so return values need no explanation, and the description still covers the field set, the result cap, filtering strategy, removal/parent-status edge cases, and the PMax exception. Nothing an agent needs to call this correctly is missing.

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 0%, so the description carries the burden and does explain all three parameters: workspace is a customer slug optional when only one workspace exists, and campaign_id/ad_group_id are scoping filters for large accounts. It stops short of stating ID formats or precedence when both filters are supplied, which is the remaining gap.

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

Purpose5/5

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

States a specific verb and resource ('Anzeigen auflisten') and enumerates the returned fields (Headlines, Descriptions, URLs, Status, Approval). It explicitly distinguishes itself from the sibling ads_list_asset_groups for PMax campaigns, so an agent can tell the two apart without opening a schema.

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?

Gives concrete when-to-use guidance: narrow with campaign_id or ad_group_id on larger accounts because of the 100-ad cap. It also names the alternative tool for PMax (ads_list_asset_groups) and the condition that selects it, plus the workspace-optional case.

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

ads_list_asset_groupsGoogle Ads: List asset groupsA
Read-only
Inspect

Asset Groups (PMax) mit Status, Ad Strength und Asset-Abdeckung je field_type auflisten — optional auf eine Kampagne gefiltert. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

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 openWorldHint=true, so the safety profile is covered. The description adds real value beyond that by naming the returned dimensions (status, ad strength, per-field_type asset coverage) and by explaining the single-workspace default for the workspace argument. No contradiction with annotations.

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

Conciseness5/5

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

Two short sentences: the core action and returned fields come first, then the filter and workspace caveat. Every clause carries information and nothing is repeated from the title.

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?

An output schema exists, so return shape need not be specified, yet the description still previews the key fields. For a two-optional-parameter read-only listing tool with annotations covering safety, the definition is sufficient; only the campaign_id format remains underspecified.

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 0%, so the description carries the burden and largely meets it: it explains workspace as a customer slug that may be omitted when only one workspace exists, and frames campaign_id as an optional campaign filter. The remaining gap is that the expected campaign_id format (bare ID vs. resource path) is never stated.

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

Purpose4/5

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

The description states a specific verb and resource ('Asset Groups (PMax) ... auflisten') and enumerates what comes back (status, ad strength, asset coverage per field_type), which separates it from ads_list_assets and ads_create_asset_group. It stops short of explicitly contrasting itself with the closer analytics siblings such as ads_asset_group_performance.

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 clause 'optional auf eine Kampagne gefiltert' gives a usable context hint for the main optional parameter, and the workspace note explains when it may be omitted. There is no explicit when-to-use versus ads_asset_group_performance or ads_create_asset_group, so the routing guidance is only implied.

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

ads_list_assetsGoogle Ads: List assetsA
Read-only
Inspect

Erweiterungs-Assets mit Approval-Status und Verknüpfungen auflisten. asset_type: SITELINK, CALLOUT, STRUCTURED_SNIPPET, PRICE, PROMOTION, CALL oder ALL. Texte kommen für SITELINK, CALLOUT und STRUCTURED_SNIPPET mit; PRICE/PROMOTION/CALL nur mit asset_id, type, approval_status und linked_to. linked_to zeigt Kampagnen- und Konto-Verknüpfungen, keine Anzeigengruppen-Ebene — ein leeres linked_to heißt also nicht „unverknüpft“. Jede Verknüpfung trägt ihren status (ENABLED/PAUSED/REMOVED) — genau den Wert, den ads_set_asset_link_status umschaltet. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
asset_typeNoSITELINK

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this as read-only, but the description adds important behavioral detail beyond them: which asset types return text fields, which only return linking metadata, and the caveat that an empty linked_to does not mean unlinked because ad-group links are not included. It also discloses that each link carries ENABLED/PAUSED/REMOVED status.

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 first sentence front-loads the core operation, and every subsequent line adds useful filtering, return-shape, or linking semantics. There is no filler.

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?

Although an output schema exists, the description still provides important context about result differences by asset_type and linked_to caveats. Combined with the annotations, an agent has enough information to invoke the tool correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full parameter burden. It lists all asset_type values and explains the workspace parameter's optional behavior when only one workspace exists, adding meaning not present in the schema.

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

Purpose5/5

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

The description states a specific verb and resource: listing extension assets with approval status and links. It also names the tool whose toggled status values are exposed (ads_set_asset_link_status), helping separate this read operation from link-management siblings.

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 clearly explains the asset_type filter values and notes that workspace is optional when only one workspace exists. It also links the returned status values to ads_set_asset_link_status, giving practical context for follow-up actions, though it does not explicitly state when not to use this tool versus other list tools.

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

ads_list_audiencesGoogle Ads: List audiencesA
Read-only
Inspect

Zielgruppenlisten (User Lists) des Kontos und deren USER_LIST-Kriterien auf Kampagnen-/Anzeigengruppen-Ebene. Nicht enthalten: PMax-Asset-Group-Signale (werden nur über ads_add_asset_group_signal geschrieben; zum Lesen gibt es derzeit kein Tool — in der Google-Ads-Oberfläche prüfen) sowie Interessen-, In-Market- und Custom-Audiences. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful behavioral scope: what is included, what is excluded, and the limitation that PMax asset-group signals currently have no reading tool and must be checked in the Google Ads UI.

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 purpose is front-loaded, followed by relevant exclusions, then the workspace note. The parenthetical about PMax is slightly long but earns its place by preventing a likely wrong-tool selection.

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 low-complexity with one optional parameter, read-only annotations, and an output schema. The description covers the resource scope, exclusions, the missing PMax-read path, and the only parameter, leaving no major gap for correct invocation.

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 0%, so the description carries the burden for the single optional parameter. It explains that workspace is the customer workspace slug and that it is optional when only one workspace exists, which adds 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 names the specific resource (Zielgruppenlisten/User Lists) and the exact granularity (USER_LIST criteria at campaign/ad group level). It also distinguishes the tool from adjacent audience categories and PMax signals, so an agent can identify what data this tool returns.

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 gives explicit exclusions for PMax asset-group signals and interest/in-market/custom audiences, and points to ads_add_asset_group_signal for writing PMax signals. It does not explicitly contrast with ads_list_customer_match_lists, but the main use/not-use boundaries are clear.

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

ads_list_campaign_conversion_goalsGoogle Ads: List campaign conversion goalsB
Read-only
Inspect

Conversion-Ziel-Konfiguration einer Kampagne lesen: Standard-Ziele (biddable je Kategorie) und evtl. gesetztes Custom Goal mit seinen Aktionen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

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 and openWorldHint=true, so safety is covered. The description adds useful behavioral context about what the read returns (biddable flags per category, optional custom goal), but says nothing about error behavior when no custom goal exists or rate/permission constraints.

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?

Two compact sentences front-load the purpose, with the parameter note last – well ordered and free of filler. Mixing German prose with an otherwise English toolset slightly taxes parsing but does not add length.

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?

An output schema exists, so return values need no explanation, and the tool is read-only. Still, with zero schema description coverage, leaving campaign_id undefined and omitting how the read behaves when no custom goal is configured leaves an agent to infer too much.

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 0%, so the description must compensate. It does explain the workspace parameter (customer workspace slug, optional when only one workspace exists), but campaign_id is never described in prose and only inferable from the tool name.

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?

States a specific verb and resource: read a campaign's conversion goal configuration, including standard goals (biddable per category) and any set custom goal with its actions. This clearly distinguishes it from the mutating sibling ads_set_campaign_conversion_goals, though that sibling is never named.

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

Usage Guidelines3/5

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

Usage is only implied: this is the read counterpart to the setter, and the workspace note hints at a pre-readstep. There is no explicit 'use this when…' or 'do not use for modifying goals – use ads_set_campaign_conversion_goals' guidance.

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

ads_list_campaignsGoogle Ads: List campaignsA
Read-only
Inspect

Alle Kampagnen auflisten (Name, Status, Budget, Channel Type, Bidding Strategy). Enthält ENABLED und PAUSED; entfernte Kampagnen (REMOVED) sind ausgeblendet. Die ads_list_ad_groups/-ads/-keywords blenden Kinder entfernter Kampagnen ebenfalls aus, jede dort genannte campaign_id steht also auch hier. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

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 openWorldHint=true, so safety is covered; the description goes beyond that by disclosing the implicit status filter (REMOVED suppressed) and a cross-tool consistency guarantee with ads_list_ad_groups/ads_list_keywords/ads_list_ads. It says nothing about result volume, pagination, or cost/rate behavior for a live Google Ads API call, which is the remaining 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?

Three sentences, front-loaded with the action and returned fields, then the status filtering rule, then the cross-tool consistency note, then the parameter. No sentence is redundant and no padding is present.

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?

An output schema exists, so return-value shape need not be explained; the description covers scope, filtering, cross-tool consistency and the only parameter. What remains unstated is whether results span all campaigns in the account/workspace on a single call or require paging — minor for a read-only list tool but relevant to agents planning a full inventory.

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 0%, so the description must carry the meaning of the single parameter — and it does: 'workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace)' explains both the value format (slug) and the optionality condition. That is meaningful compensation for the schema gap, though it does not explain resolution behavior when multiple workspaces exist.

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

Purpose5/5

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

States a specific verb and resource (list all Google Ads campaigns) and immediately enumerates what comes back (name, status, budget, channel type, bidding strategy). It is clearly distinguishable from sibling list tools such as ads_list_ad_groups, ads_list_ads and ads_list_keywords because it explicitly defines the parent/child relationship between them.

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?

Gives concrete inclusion/exclusion rules: ENABLED and PAUSED are returned, REMOVED campaigns are hidden — exactly the question an agent asks before calling a list endpoint. It also explains how results line up with the child-list tools. It does not name alternatives (e.g. ads_campaign_performance for metrics, ads_list_experiments), so routing guidance is clear but not exhaustive.

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

ads_list_conversion_actionsGoogle Ads: List conversion actionsA
Read-only
Inspect

Alle Conversion-Aktionen mit Status, Typ, Kategorie plus Conversions und letztem Conversion-Datum der letzten N Tage (bis gestern, heute nicht enthalten) — deckt totes Tracking auf. Zählt all_conversions nach Conversion-Datum (auch sekundäre Aktionen; Offline-Importe zählen am Tag der Conversion, nicht am Klick-Tag) — nicht 1:1 mit den klick-datierten Conversions der Kampagnen-Tools vergleichbar. Das Zählfeld heißt conversions_{N}d (z.B. conversions_30d). Liefert die numerische 'id' für ads_update_conversion_action und ads_upload_conversions. Bei Website-Conversions zusätzlich conversion_id ('AW-…') und conversion_label — genau die zwei Werte, die ein Google-Ads-Conversion-Tag im GTM braucht (gtm_create_tag, Typ 'awct'); bei Import-/App-Conversions sind beide None. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond readOnlyHint/openWorldHint: it discloses the data window (last N days up to yesterday, today excluded), the counting basis (all_conversions by conversion date, offline imports attributed to the conversion day rather than the click day), the dynamic field naming conversions_{N}d, and that import/app conversions return None for conversion_id/label.

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?

Front-loads purpose, then the counting caveat, then the ID/label hand-off to other tools — the ordering is sensible and sentences are information-dense. It is somewhat overloaded, mixing GTM tag setup guidance into a listing tool's definition, and the stray line break adds noise.

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?

Even though an output schema exists, the description supplies the semantics an agent needs to interpret it (which counting basis, what None means, how the dynamic field is named) plus the workspace requirement. Nothing material is missing for correct invocation.

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 0%, so the description carries the burden and does so: 'days' is defined by the window semantics (up to yesterday, today excluded) and echoed in the output field naming, and 'workspace' is explained as an optional customer slug when only one workspace exists. Only the default of 30 is left implicit via the conversions_30d example.

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

Purpose5/5

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

States a specific verb and resource ('Alle Conversion-Aktionen') and enumerates returned fields (Status, Typ, Kategorie, Conversions, letztes Conversion-Datum). It also scopes the time window, which distinguishes it from the campaign-level conversion tools in the sibling list.

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

Usage Guidelines4/5

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

Explicitly frames the use case ('deckt totes Tracking auf') and warns that the click-dated numbers from the campaign tools are not directly comparable, which effectively routes the agent. It also names the downstream consumers (ads_update_conversion_action, ads_upload_conversions, gtm_create_tag) but stops short of saying when another listing tool should be preferred instead.

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

ads_list_customer_match_listsGoogle Ads: List customer match listsA
Read-only
Inspect

Listet die CRM-basierten Userlisten (Customer Match) des Kontos auf.

Liefert je Liste id, name, type, Größe für Display/Suche und die Mitgliedschaftsdauer — zum Auffinden der 'audience_id' für Up-/Downloads. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds the returned field set (id, name, type, Display/Search size, membership duration), but says nothing about pagination, result limits, or permissions beyond what annotations and the output schema already provide.

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

Conciseness4/5

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

Front-loaded with the purpose, then the return contents, then the one parameter — a sensible order. It is compact, with only mild redundancy in restating field names the output schema likely covers.

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 single-parameter read-only listing with an output schema, the description covers purpose, returned fields, and the parameter's optionality. Missing only pagination/volume expectations, which are minor here.

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 0%, so the description carries the burden and does so: it explains that workspace is a customer-workspace slug and that it may be omitted when only one workspace exists. That is genuine meaning beyond the bare string type, though no format example or failure behavior is given.

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?

States a specific verb and resource: listing the account's CRM-based Customer Match user lists. It also gives a downstream intent (locating 'audience_id' for up-/downloads), which implicitly separates it from ads_list_audiences and ads_create_customer_match_list, though no sibling is named explicitly.

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

Usage Guidelines4/5

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

The description makes the use case clear: find the audience_id needed before uploading or removing members. It also notes the workspace param is optional when only one workspace exists, which is real invocation guidance. It stops short of explicitly excluding alternatives such as ads_list_audiences.

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

ads_list_experimentsGoogle Ads: List experimentsB
Read-only
Inspect

Kampagnen-Experimente (A/B-Tests) mit Status und Laufzeit. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safe-read nature is covered. The description adds that returned experiments include status and runtime, which gives useful return context beyond the annotations. It says nothing about pagination, empty results, or permissions, so it only modestly adds value.

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

Conciseness3/5

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

Two short sentences with no filler and the purpose front-loaded. However, it is sparse to the point that no real usage or behavioral context is provided — the brevity is as much under-specification as efficiency.

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?

Output schema exists, so return values needn't be fully explained, and the single parameter is addressed. Still missing scope (all experiments in the account vs. per campaign) and any sibling differentiation for an agent navigating a very large toolset.

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 0%, so the description must carry the one parameter — and it does: 'workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).' That explains what the param is and its optionality condition, compensating for the schema gap. It doesn't give format examples or how to discover the slug, keeping it at a solid 3.

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?

Written in German, it uses a clear verb+resource: it lists campaign experiments (A/B tests) with status and runtime. There is no sibling tool for experiments, so no disambiguation is needed among the 180+ siblings. Lacks scope detail (which campaign, whole account), preventing a 5.

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

Usage Guidelines2/5

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

No indication of when to use this versus ads_list_campaigns or the other list tools, no prerequisites, no exclusions. The agent must infer from the name alone whether listing experiments is the right action.

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

ads_list_keywordsGoogle Ads: List keywordsA
Read-only
Inspect

Keywords auflisten. Optional nach Kampagne oder Ad Group filtern. limit: max. Einträge (Default 200, höchstens 1000). Wird abgeschnitten, kommt statt der Liste {result: [...], warning: ...} — dann campaign_id/ad_group_id einschränken oder limit erhöhen. Enthält auch Ad-Group-Negatives, gekennzeichnet über negative=true. Keywords entfernter Gruppen/Kampagnen sind ausgeblendet; ad_group_status und campaign_status zeigen, ob die Eltern pausiert sind (dann läuft das Keyword nicht). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo
ad_group_idNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description discloses the truncated response shape ({result, warning}) and what triggers it, that removed groups'/campaigns' keywords are hidden, that ad_group_status/campaign_status reveal paused parents (so the keyword is not serving), and that ad-group negatives appear with negative=true. This is exactly the sort of behavior an agent cannot infer from schema or 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?

Front-loaded with the core action and filter, followed by edge-case behavior in priority order (limit, truncation, negatives, hidden entities, workspace); nearly every clause carries information. It is dense and somewhat run-on, and the German prose sits against English tool naming, which adds minor parsing overhead.

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

Completeness4/5

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

With an output schema present, the description needn't restate return fields, yet it still explains the exceptional truncated shape, which the schema likely doesn't capture. For a zero-required-parameter list tool this is close to complete; only pagination/ID-format details are absent.

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 0%, so the description carries the full burden and covers all four parameters: limit (default 200, max 1000, with truncation semantics), campaign_id/ad_group_id as filters, and workspace as the customer slug that is optional when only one workspace exists. It only lacks ID format conventions (e.g., raw numeric vs. resource path).

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?

"Keywords auflisten" gives a clear verb+resource, and the mention that ad-group negatives are included (flagged negative=true) implicitly delineates it from ads_list_negative_keywords. It stops short of naming sibling alternatives explicitly, so differentiation is inferable rather than stated.

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?

Useful operational guidance is given for the truncation case (narrow by campaign_id/ad_group_id or raise limit), which tells the agent how to recover. However, there is no explicit statement of when to prefer this tool over ads_list_negative_keywords or ads_keyword_performance, or which filter to use first.

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

ads_list_negative_keywordsGoogle Ads: List negative keywordsA
Read-only
Inspect

Negative Keywords auflisten. Optional nach Kampagne filtern. Nur kampagneneigene Negatives. Negatives aus angehängten geteilten Listen erscheinen hier nicht — Listen und member_count zeigt ads_manage_shared_negative_list(action='list'), den Listeninhalt derzeit nur die Google-Ads-Oberfläche; kontoweite Negatives: ads_list_account_negatives. limit: höchstens so viele Einträge (Default 200). Konten sammeln über die Jahre hunderte Negatives an; ein vollständiger Abzug verdrängt den eigentlichen Arbeitsauftrag aus dem Kontext. Wird abgeschnitten, kommt statt der Liste ein Objekt mit result und warning zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, it discloses two important behaviors: results are truncated at the limit and, when truncation occurs, the tool returns an object with 'result' and 'warning' instead of a plain list. It also explains why the limit exists (accounts accumulate hundreds of negatives, full dumps crowd out the agent's context), which is genuine operational context not present in 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?

Front-loaded with the core purpose and scope exclusions, then parameter notes. It is somewhat wordy (the rationale for the limit spans several clauses) but every part is informative and nothing is redundant with the schema.

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?

An output schema exists, so return values need not be restated, and the description still adds the non-obvious truncation/warning return shape. Combined with scope exclusions, alternative tools, and parameter notes, an agent has everything needed to call it 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?

Schema description coverage is 0%, so the description must carry parameter meaning: it explains 'limit' (max entries, default 200, truncation consequence) and 'workspace' (customer workspace slug, optional when only one workspace) well. 'campaign_id' is only covered implicitly through 'optional nach Kampagne filtern' – the role is clear but the parameter is not named and no format is 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?

States a specific verb and resource ('Negative Keywords auflisten') and immediately narrows scope to campaign-owned negatives only. It explicitly names the sibling tools that handle the excluded cases (ads_manage_shared_negative_list, ads_list_account_negatives), so an agent can distinguish this tool from its neighbors without opening schemas.

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?

Gives explicit routing: use this for campaign-level negatives, use ads_manage_shared_negative_list for shared-list metadata (and notes list contents are UI-only), use ads_list_account_negatives for account-wide negatives. The optional campaign filter and the limit guidance make the intended usage conditions unambiguous.

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

ads_list_recommendationsGoogle Ads: List recommendationsA
Read-only
Inspect

Offene Google-Ads-Empfehlungen des Kontos (Typ, betroffene Kampagne, resource_name für ads_apply_recommendation / ads_dismiss_recommendation). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that only *open* (unresolved) recommendations are returned and that resource_name is the handle for apply/dismiss, which is genuinely useful chaining context, though return-shape detail is largely redundant against the existing output schema.

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

Conciseness5/5

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

Two compact sentences: purpose and returned fields first, parameter note second. No filler, and the most decision-relevant 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 one-optional-parameter read tool with annotations and an output schema, the description covers purpose, follow-up chaining, and the only parameter's meaning. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the single parameter, and it does: workspace is the customer workspace slug, optional when the account has only one workspace. That adds format and optionality semantics the bare string|null schema lacks.

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

Purpose5/5

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

States a specific resource and scope: open Google Ads recommendations for the account, and names the fields surfaced (type, affected campaign, resource_name). An agent can distinguish this from ads_list_campaigns or ads_change_history without opening the schema.

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 parenthetical ties the output to the follow-up tools ads_apply_recommendation and ads_dismiss_recommendation, making this the discovery step in that workflow. It does not state explicit exclusions, but no sibling competes for the same listing job.

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

ads_manage_account_negativesGoogle Ads: Manage account negativesA
Destructive
Inspect

Kontoweite negative Keywords verwalten. remove_criterion_ids entfernt die KONTO-ZUORDNUNG, bei einer Keyword-Liste also die GANZE Liste vom Konto. remove_keyword_ids entfernt EINZELNE Keywords aus der Liste — Format sharedSetId~criterionId (= shared_criterion_id aus ads_list_account_negatives). Eine vorhandene, nicht angehängte Liste kann automatisch wieder angehängt werden; note=reattached_existing_list meldet das. Gibt es noch keine kontoweite Liste, wird beim Hinzufügen automatisch "Kontoweite negative Keywords (MCP)" angelegt und angehängt (created_list=true). Beide Möglichkeiten vor dem Call ankündigen. Liegt die einzige Liste im Manager-Konto, lehnt das Tool mit error + foreign_lists ab. Bereits vorhandene Keyword/Match-Type-Paare werden nicht doppelt angelegt und unter skipped gemeldet, unbekannte IDs unter skipped_removals. Ein Teil-Add meldet note=partial_add_result bzw. bei bestehender Note zusätzlich notes. match_type: BROAD, PHRASE oder EXACT. Zur Abgrenzung von Kampagnen-Listen siehe ads_manage_shared_negative_list. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
match_typeNoPHRASE
add_keywordsNo
remove_keyword_idsNo
remove_criterion_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the destructive/openWorld annotations, the description discloses substantial side-effect semantics: auto-creation of 'Kontoweite negative Keywords (MCP)' with created_list=true, reattachment of a detached list with note=reattached_existing_list, rejection with error+foreign_lists when only a manager-account list exists, dedup via skipped, and partial_add_result notes. This is rich context the annotations cannot convey.

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?

It is dense but front-loads the core purpose and each sentence adds distinct behavioral detail (removal semantics, auto-behaviors, dedup, error cases). Slightly long and the fields-on-return notes could be terser, but little is pure filler.

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 destructive, multi-mode mutation tool, the description covers side effects, error/edge cases, and even references the return note values (created_list, reattached_existing_list, skipped, foreign_lists), which is more than needed given an output schema exists. An agent has everything required to call it safely and interpret results.

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% schema description coverage, the description carries the full burden and mostly delivers: it explains the format sharedSetId~criterionId for remove_keyword_ids, the BROAD/PHRASE/EXACT values for match_type, and that workspace is optional with a single workspace. add_keywords is only implied ('beim Hinzufügen') and not described in detail, so it falls just short of complete.

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

Purpose5/5

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

The description states a specific resource (account-wide negative keywords) and the concrete operations (add, remove whole list assignment, remove individual keywords, auto-reattach, auto-create). It explicitly distinguishes itself from the sibling ads_manage_shared_negative_list for campaign-level lists, so an agent can route correctly without opening either schema.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance for the two removal paths (remove_criterion_ids vs remove_keyword_ids), states both auto-behaviors must be announced before the call, and points to the alternative tool for campaign lists. The conditions selecting each behavior are spelled out, not implied.

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

ads_manage_brand_exclusionsGoogle Ads: Manage brand exclusionsA
Destructive
Inspect

Marken als Ausschluss an eine Kampagne hängen (v. a. PMax gegen Brand-Kannibalisierung): löst die Namen in der Google-Brand-Datenbank auf, legt die Brand-Liste an bzw. verwendet sie wieder und hängt sie negativ an die Kampagne. Ohne exakten Namenstreffer wird der erste Präfix-Vorschlag der Brand-Datenbank verwendet — in der Rückgabe brands[] (query → brand_name) prüfen; nicht gefundene Namen stehen in unresolved. list_name: Name der Brand-Liste (Shared Set BRANDS); eine bestehende Liste gleichen Namens wird wiederverwendet, list_created zeigt eine Neuanlage. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
list_nameNoBrand-Ausschlüsse
workspaceNo
brand_namesYes
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, but the description adds genuinely non-obvious behavior: it resolves names against Google's brand database, reuses an existing BRANDS list of the same name, and – critically – falls back to the first prefix match when there is no exact hit. It also tells the agent to verify the mapping in brands[] and to check unresolved, which the annotations could never convey.

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?

Front-loaded with the action and purpose, then the surprising fallback behavior, then per-parameter notes – a sensible order with no filler. It is dense (German compound phrasing) and the parameter notes are appended without visual separation, but every sentence carries information.

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?

An output schema exists, and the description goes further by naming the exact fields to inspect (brands[], unresolved, list_created) rather than restating the return shape. For a destructive, open-world mutation with four undocumented parameters, this covers what an agent needs to call it safely and verify the result.

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 0%, so the description has to carry all meaning. It explains list_name (BRANDS shared set, reuse semantics, list_created flag) and workspace (optional with a single workspace), and implies brand_names/campaign_id through the resolution and attachment flow. campaign_id itself is never explicitly described, leaving one of four parameters undocumented.

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?

States a specific verb and resource in the first clause ('Marken als Ausschluss an eine Kampagne hängen') and adds the actual use case (PMax brand cannibalization). It implicitly separates itself from account-level siblings by scoping to a campaign and mentioning the BRANDS shared set, but it never names ads_manage_account_negatives or ads_manage_shared_negative_list as the counterpart tools.

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

Usage Guidelines4/5

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

Gives a clear use context (PMax against brand cannibalization) and explains the workspace parameter is optional when only one workspace exists. It does not state when NOT to use it – e.g. account-wide brand exclusions or editing an existing shared list – which is the main gap.

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

ads_manage_shared_negative_listGoogle Ads: Manage shared negative listA
Destructive
Inspect

Geteilte Negativ-Keyword-Listen (Shared Sets) — über mehrere Kampagnen wiederverwendbar, ideal für eine zentrale Off-Target-Liste. action: create_list (braucht name) | add_keywords (braucht shared_set_id + keywords [{keyword, match_type}]) | attach_to_campaign (braucht shared_set_id

  • campaign_id) | list. match_type Default EXACT (blockiert genau diese Suche). Eine geteilte Liste wirkt in jeder verknüpften Kampagne — PHRASE (jede Suche, die die Wortfolge enthält) oder BROAD (jede Suche mit allen Wörtern, beliebige Reihenfolge) nur setzen, wenn der Nutzer es ausdrücklich will; vor dem Anlegen nennen. action=list zeigt nur Kampagnen-Listen vom Typ NEGATIVE_KEYWORDS und liefert {shared_sets: [{shared_set_id, name, member_count, reference_count, status}], count} — auch REMOVED-Listen (status beachten); kontoweite Listen liefert ads_list_account_negatives. Den Inhalt einer Liste (Keywords) lesen oder eine Liste von einer Kampagne lösen kann dieses Tool nicht; der Inhalt ist derzeit nur in der Google-Ads-Oberfläche einsehbar. validate_only: True für einen Probelauf (Dry-Run) ohne Schreiben. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
actionYes
keywordsNo
workspaceNo
campaign_idNo
shared_set_idNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, but the description goes further by explaining the real blast radius: a shared list applies to every linked campaign, and broader match types block more traffic. It also discloses that action=list includes REMOVED lists (status must be checked) and that validate_only enables a dry run — genuinely useful behavioral context beyond 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 purpose and action list are front-loaded and every sentence conveys operational substance. It is somewhat dense and bundles the list-return shape even though an output schema exists, which is mild redundancy rather than noise.

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 multi-action, 7-parameter mutation tool with no schema descriptions, this covers actions, required inputs, defaults, destructive scope, limitations, alternatives, and a dry-run escape hatch. With an output schema present, the return-value details are a bonus rather than a requirement.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry the parameter burden and it does: it maps each action to its required parameters (name, shared_set_id, keywords [{keyword, match_type}], campaign_id), documents match_type's default of EXACT, explains validate_only as a dry run, and notes workspace is optional when there is a single workspace. All 7 parameters are given meaning despite 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 names a specific resource (shared negative keyword lists / shared sets) and enumerates the exact operations (create_list, add_keywords, attach_to_campaign, list). It explicitly positions itself against siblings, pointing to ads_list_account_negatives for account-wide lists and stating it does not read keyword contents or detach lists.

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 states when to use each action and what each action requires. It gives explicit exclusions and routing: account-wide lists belong to ads_list_account_negatives, content reading and detaching are not supported here. The match_type guidance ('only set PHRASE/BROAD if the user explicitly wants it; state it before creating') is explicit when-to/when-not guidance.

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

ads_move_keywordGoogle Ads: Move keywordA
Destructive
Inspect

Keyword von einer Ad Group in eine andere verschieben. Behält Match Type + CPC Bid + Status. Nicht atomar — Create vor Remove. Nur für positive Keywords: Ad-Group-Negatives derzeit nicht verschieben — sie würden in der Ziel-Ad-Group als positives, ausspielbares Keyword neu angelegt. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
source_ad_group_idYes
target_ad_group_idYes
source_criterion_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses non-atomic execution ('Nicht atomar — Create vor Remove'), the fact that match type, CPC bid and status are preserved, and a genuine data-integrity hazard for negatives. The destructiveHint is already flagged structurally, but the failure mode and the preserve-semantics are only in the description.

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?

Front-loaded with the action, then the preservation guarantee, then the risk, then the parameter note — a logical order with no filler. Small deduction for the dense, unformatted run of clauses around the negative-keyword caveat.

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 destructive, non-atomic move with an output schema already covering return values, the description covers the important risks. Minor gaps remain: no mention of permissions/access requirements or whether historical stats follow the keyword.

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 0%, so the description must carry parameter meaning. It explains only workspace ('Slug des Kunden-Workspace, optional bei nur einem Workspace'); source_ad_group_id, target_ad_group_id and source_criterion_id are left to self-describing names with no note on where criterion IDs come from.

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

Purpose5/5

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

States a specific verb and resource ('Keyword von einer Ad Group in eine andere verschieben') with clear scope, and names exactly which attributes travel with it. An agent can distinguish it from ads_add_keyword, ads_remove_keyword and ads_update_keyword_bid immediately.

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 bounds the use case: only positive keywords, ad-group negatives must not be moved, with the concrete consequence ('würden als positives, ausspielbares Keyword neu angelegt'). That is a clear when-not. It does not name a sibling alternative for the negative case (e.g. ads_add_negative_keyword), which keeps it from a 5.

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

ads_pmax_search_insightsGoogle Ads: PMax search insightsA
Read-only
Inspect

Suchbegriffs-Insights einer PMax-Kampagne (Kategorie-Ebene) — der PMax-Ersatz für ads_search_terms. Liefert je Suchkategorie (category, kein Einzel-Suchbegriff) impressions, clicks, conversions, conversions_value — keine Kosten (Kosten je Kategorie stellt Google nicht bereit). days: letzte N Tage ohne heute. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuinely useful behavioral facts beyond that: results are category-level, not per individual search term, and cost metrics are deliberately absent because Google does not expose them per category — which prevents the agent from treating missing cost data as an error.

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?

Front-loaded with purpose and the sibling routing before the return fields and parameter rules; every clause earns its place. The line breaks make it dense rather than bloated, though the return-field enumeration could be trimmed since an output schema exists.

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

Completeness4/5

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

With an output schema present, return fields need not be described, yet the description lists them anyway as a useful sanity check on what is not returned (cost). All three parameters and the read-only nature are covered; only the campaign_id semantics are left to inference.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: days is defined as the last N days excluding today (a real semantic detail), and workspace is defined as a customer workspace slug that is optional when only one workspace exists. Only campaign_id is left undefined, and its meaning is unambiguous from the tool name.

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

Purpose5/5

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

States a specific verb+resource (search-term insights for a PMax campaign at category level) and explicitly positions it as the PMax substitute for ads_search_terms. The agent can distinguish it from the ~200 siblings without opening a schema.

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?

"der PMax-Ersatz für ads_search_terms" explicitly names the alternative and the condition (PMax campaigns) that selects this tool over that one. No explicit when-not guidance, and campaign_id is required but the need for a PMax campaign id is only implied.

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

ads_remove_adGoogle Ads: Remove adB
Destructive
Inspect

Anzeige entfernen. VORSICHT: Nicht rückgängig machbar! workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
ad_idYes
workspaceNo
ad_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true and openWorldHint=true, so the description's "VORSICHT: Nicht rückgängig machbar!" restates the annotation rather than adding new information. It does not say what else is lost (historical performance data, ad review status) or whether confirmation/republishing is possible. It is consistent with the annotations but adds little beyond them.

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?

Two short sentences with the destructive warning front-loaded immediately after the action, which is the right ordering for a delete tool. Nothing is wasted, though the terseness leaves gaps that structure alone cannot compensate for.

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?

An output schema exists so return values need not be described, and annotations cover the safety profile. Still, for a destructive, open-world mutation with three undocumented parameters, the description omits what identifier format ad_id expects, what happens to dependent entities, and what a successful removal returns — gaps that matter before an irreversible call.

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 0%, so the description carries the burden — it partially meets it by explaining that workspace is a customer slug that is optional when only one workspace exists, which the schema's bare `default: null` does not convey. ad_id and ad_group_id are left entirely unexplained, and the required nesting/ad-group relationship is never stated.

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?

"Anzeige entfernen" states a specific verb and resource, so the agent immediately knows this deletes an ad. It does not distinguish itself from close siblings such as ads_remove_ad_group, ads_replace_ad, or ads_update_ad_status (pause-vs-delete), which is the one thing missing. The German wording against an English tool name adds minor friction but the meaning is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to delete an ad rather than pause it via ads_update_ad_status, replace it via ads_replace_ad, or remove the whole ad group. No preconditions (e.g. ad must exist, minimum ad count per group) are stated. The agent must infer usage entirely from the tool name.

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

ads_remove_ad_groupGoogle Ads: Remove ad groupC
Destructive
Inspect

Ad Group entfernen. VORSICHT: Nicht rückgängig machbar! workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
ad_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds genuinely new information with "VORSICHT: Nicht rückgängig machbar!" – irreversibility is stronger than what destructiveHint conveys – but it says nothing about cascade effects on contained ads/keywords or what the response confirms.

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?

Two short lines, front-loaded with the action and immediately followed by the risk warning and the parameter caveat. No filler, though the mixed German/English phrasing against an English tool name slightly hurts scannability.

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?

An output schema exists so return values needn't be explained, but for a destructive delete the description omits how to obtain a valid ad_group_id, whether deletion cascades to child ads and keywords, and what recovery options (if any) exist. Combined with the language mismatch, an agent has to guess at important 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 description coverage is 0%, so the description carries the burden and does explain workspace (customer slug, optional when the account has a single workspace), which is real added value. However, the required ad_group_id is left completely undefined – no format, no pointer to ads_list_ad_groups as the source – so half the parameters remain opaque.

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

Purpose3/5

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

The German phrase "Ad Group entfernen" does state a verb and resource, but it essentially restates the tool name/title rather than explaining scope. Nothing distinguishes it from siblings like ads_remove_campaign, ads_remove_ad, or ads_update_ad_group_status (setting status to REMOVED), which an agent could easily confuse it with.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus ads_update_ad_group_status, nor any prerequisites (required permissions, whether child ads/keywords must be removed first). The only conditional text is about the workspace parameter, which is parameter semantics, not usage guidance.

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

ads_remove_campaignGoogle Ads: Remove campaignB
Destructive
Inspect

Kampagne entfernen (Soft Delete). VORSICHT: Nicht rückgängig machbar! workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so irreversibility is partly implied. The description adds meaningful nuance by specifying it is a 'Soft Delete' yet not undoable via the tool, which is behavioral context beyond the flags. It still omits permission/auth requirements.

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?

Compact, with the destructive warning front-loaded right after the verb phrase. No wasted text. Slight deduction for the parameter note being appended inline rather than structured.

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

Completeness3/5

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

Given an output schema exists and annotations cover the safety profile, the description is adequate: it conveys the destructive nature and workspace semantics. It could still note what happens to associated entities (ads/ad groups) on removal to be fully complete for a destructive campaign 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?

Schema coverage is 0%, so the description must compensate. It usefully explains the workspace parameter (slug, optional when a single workspace) but leaves campaign_id unexplained, though its meaning is self-evident from the name.

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?

States a clear verb+resource (Kampagne entfernen) that distinguishes it from siblings like ads_update_campaign_status or ads_remove_ad_group. The 'Soft Delete' qualifier adds specificity. It doesn't need to name a sibling but the target is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives such as pausing via ads_update_campaign_status. The 'Nicht rückgängig machbar' line is a caution, not a usage rule. The agent gets no explicit when/when-not.

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

ads_remove_customer_match_membersGoogle Ads: Remove customer match membersA
Destructive
Inspect

Entfernt Mitglieder aus einer Customer-Match-Userliste (Data Manager API).

Wie beim Upload werden E-Mail/Telefon/Adresse server-seitig normalisiert und mit SHA-256 gehasht; nur die gehashten Werte werden gesendet. Es gelten die Identifier-Regeln von ads_upload_customer_match_members: phone nur E.164, address nur vollständig; unbrauchbare Mitglieder werden still übersprungen — members in der Antwort mit der Eingabe vergleichen, sonst bleibt die Person in der Liste. Versand in Batches à 2000 (requestId bzw. batches/request_ids); requestId bedeutet nur "angenommen".

audience_id: User-List-ID (oder Resource-Name) der Customer-Match-Liste. members: Liste von Dicts, je Mitglied 'email' und/oder 'phone' und/oder 'address' (Dict mit given_name/family_name/region_code/postal_code). validate_only: True für einen Probelauf (Dry-Run) ohne Schreiben. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
membersYes
workspaceNo
audience_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: server-side hashing means only hashed values are sent; invalid members are silently skipped so callers must diff the response against the input or the person stays in the list; sends occur in batches of 2000 and requestId only means 'accepted' (async semantics). These are critical behavioral facts not derivable from the destructiveHint/openWorldHint 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?

Purpose is front-loaded and the structure is logical (behavior then per-parameter notes). It is on the longer side and the inherited identifier rules reference another tool rather than restating them, which is efficient but adds a hop; a bit of trimming is possible.

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?

An output schema exists so return values needn't be explained, and the description covers normalization, silent skips, batching, and async acceptance — everything an agent needs to call and interpret this destructive operation correctly.

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

Parameters5/5

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

Schema coverage is 0%, so the description must carry the burden, and it does: audience_id (list ID or resource name), members (dicts with email/phone/address and nested address fields), validate_only as dry-run, and workspace optional for single-workspace accounts. This fully compensates for the empty 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?

States a specific verb and resource: removing members from a Customer Match user list via the Data Manager API. It also explicitly contrasts with the upload sibling (ads_upload_customer_match_members) whose identifier rules it inherits, so an agent can distinguish it without opening schemas.

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 removal context and validate_only dry-run are clearly explained, and it points to the upload tool for identifier rules. It doesn't explicitly state when NOT to use it (e.g., full-list deletion vs. member removal) or name alternative approaches, keeping it 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.

ads_remove_keywordGoogle Ads: Remove keywordC
Destructive
Inspect

Keyword entfernen. VORSICHT: Nicht rückgängig machbar! workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
ad_group_idYes
criterion_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known without the text. The description reinforces this with an explicit 'VORSICHT: Nicht rückgängig machbar!' warning and clarifies that workspace is optional when the account has only one workspace, but adds nothing about confirmation flow, cascading effects, or what identifier space the IDs live in.

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?

Two short lines, no filler, and the destructive warning is placed immediately after the verb. Minor deduction for mixing German body text into an otherwise English tool ecosystem and for folding parameter documentation into the same untitled block.

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?

For a destructive, irreversible mutation with zero schema description coverage, an output schema present, and many similar removal tools, the definition does too little: it never says which keyword namespace criterion_id refers to or how this differs from the status-update path. The irreversibility warning is the one substantive addition.

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

Parameters2/5

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

Schema description coverage is 0% across three parameters. The description explains only workspace ('Slug des Kunden-Workspace, optional bei nur einem Workspace'), while the two required parameters, ad_group_id and criterion_id, remain completely undocumented in both schema and description.

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?

States a specific verb and resource ('Keyword entfernen'), so an agent knows the operation is a deletion on a keyword criterion. It does not distinguish itself from near-siblings such as ads_remove_negative_keyword or ads_update_keyword_status (which can also set a keyword to REMOVED), leaving real ambiguity in the crowded ads_* removal family.

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

Usage Guidelines2/5

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

There is no statement of when to use this instead of ads_update_keyword_status (status change to REMOVED), ads_bulk_update_keyword_status, or ads_remove_negative_keyword. No prerequisites, no exclusions — the agent must infer from the tool name alone.

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

ads_remove_negative_keywordGoogle Ads: Remove negative keywordA
Destructive
Inspect

Negatives Keyword von einer Kampagne entfernen. criterion_id stammt aus ads_list_negative_keywords. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes
criterion_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a destructive mutation. The description adds useful operational context about sourcing criterion_id and workspace scoping, but does not elaborate on irreversibility, permissions, or side effects beyond what annotations provide.

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

Conciseness4/5

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

Three short, front-loaded sentences with no filler. The prerequisite and workspace note are packed efficiently, though the wording is slightly clipped.

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 destructive mutation with annotations covering safety and an output schema covering returns, the description supplies the key prerequisite and workspace scoping. Campaign_id could be clarified, but the essentials for correct invocation are present.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It explains criterion_id's source and workspace's slug/optionality, but leaves campaign_id undocumented beyond its self-evident name.

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

Purpose4/5

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

The description states a specific verb and resource ('Negatives Keyword ... entfernen') and scopes it to a campaign. It is clearly distinct from the add/bulk-add siblings, though it does not explicitly name those alternatives.

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 gives a concrete prerequisite: criterion_id comes from ads_list_negative_keywords, so an agent knows it must list negatives first. It lacks explicit when-not guidance or mention of bulk removal alternatives, but the operational context is clear.

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

ads_replace_adGoogle Ads: Replace adA
Destructive
Inspect

Anzeige ersetzen — Google Ads erlaubt kein direktes Editieren. Pattern: bestehende Ad lesen, Felder mergen (None = behalten), neue Ad erstellen und alte entfernen (oder pausieren wenn keep_old=True). Die neue Anzeige erbt den Status der alten (laufend bleibt laufend); optional per status übersteuerbar (ENABLED|PAUSED). Funktioniert nur für Responsive Search Ads. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
ad_idYes
path1No
path2No
statusNo
keep_oldNo
headlinesNo
workspaceNo
final_urlsNo
ad_group_idYes
descriptionsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true. The description adds substantive behavior beyond that: field merge semantics (None = keep), status inheritance from the old ad, optional status override (ENABLED|PAUSED), and pausing instead of deleting via keep_old. 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.

Conciseness4/5

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

Front-loads the core replacement pattern in the first sentence and then adds necessary constraints. The text is dense but every sentence adds information; there is little waste.

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

Completeness4/5

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

For a destructive replace operation, the description covers the mechanism, constraints, status behavior, and keep_old alternative. An output schema exists so return values need not be described; minor gaps are lack of explicit error or edge-case guidance.

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 0%, so the description must compensate. It clarifies keep_old, allowed status values, workspace optionality, and merge semantics for fields, but does not explain ad_id, ad_group_id, or enumerate all mutable fields like headlines, descriptions, final_urls, path1, path2.

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?

States a specific verb 'replace' and resource 'ad', and explains the underlying pattern (read, merge, create, remove) because Google Ads has no direct edit. It does not explicitly name the sibling ads_update_ad to differentiate, but the mechanism is clear enough for an agent to distinguish the operation.

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?

Explains when this pattern is necessary (Google Ads disallows direct editing), the key constraint (only Responsive Search Ads), and the keep_old alternative to deletion. It does not explicitly compare with ads_update_ad or ads_create_ad, 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.

ads_schedule_performanceGoogle Ads: Schedule performanceA
Read-only
Inspect

Performance nach Wochentag und Stunde — wann performt das Konto am besten? Zeitfenster: letzte N vollständige Tage bis gestern (heute nicht enthalten). Conversions = primäre (gebotsrelevante) Conversions. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnlyHint and openWorldHint, lowering the disclosure burden. The description adds valuable behavioral context: the time window is last N complete days through yesterday, today is excluded, and conversions refer to primary bid-relevant conversions. It does not cover rate limits or auth, but the added data-freshness and metric semantics are substantive.

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?

Four short lines, front-loaded with the core purpose, followed by time-window, metric, and workspace clarifications. Every sentence carries useful information with no filler.

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 two-parameter read-only performance query with an output schema, the description is complete enough. It establishes scope, time window, conversion definition, and workspace semantics, which are the main interpretive details an agent needs before calling it.

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 0%, so the description must compensate. It does: days is implicitly defined by 'letzte N vollständige Tage bis gestern', and workspace is explained as the customer workspace slug, optional when only one workspace exists. Defaults and valid ranges are still left to 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?

States a specific analysis: performance by weekday and hour at account level. The dimension 'nach Wochentag und Stunde' clearly distinguishes it from sibling performance breakdowns like device or geo performance, so an agent can identify its role without opening the schema.

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 it: answering 'when does the account perform best?' with a defined time window. It does not explicitly name alternatives or exclusions versus other ads performance tools, but the intended analytical use case is clear.

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

ads_search_termsGoogle Ads: Search termsA
Read-only
Inspect

Search Terms Report — was User wirklich gesucht haben (nur Search-Kampagnen). days: Zeitraum (Default 14) — vollständige Tage bis gestern, heute nicht enthalten. min_impressions: Mindest-Impressions (Default 5) — für teure Streuung mit wenigen Impressions auf 1 setzen. campaign_id / ad_group_id: optional auf eine Kampagne oder Ad Group filtern. Rückgabe: {search_terms: [{search_term, status, campaign, ad_group, impressions, clicks, cost_eur, ctr_pct, conversions}], coverage: {rows_cost_eur, total_cost_eur, share_pct, limit_reached, note}}. Max. 100 Suchbegriffe (nach Impressions); die Zeilen sind nie vollständig (Limit, min_impressions, von Google ausgeblendete seltene Begriffe) — Summen über die Zeilen sind KEINE Gesamtzahlen, coverage zeigt den Anteil. Gesamtkosten der Search-Kampagnen im selben Filter: total_cost_eur; alle Kampagnen: ads_campaign_performance. Conversions = primäre Conversions. Für PMax ads_pmax_search_insights, für den AI-Max-Quellen-Split ads_ai_max_search_terms. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo
ad_group_idNo
campaign_idNo
min_impressionsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond readOnlyHint/openWorldHint by disclosing the critical caveat that rows are capped at 100 terms by impressions and are never complete (limit, min_impressions, terms hidden by Google), so row sums are not totals and coverage must be consulted. It also states the date boundary (complete days up to yesterday, today excluded) and that conversions means primary conversions — exactly the kind of context annotations cannot carry.

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?

Content is front-loaded with the report definition before the per-parameter notes, and essentially every line carries usable information. It is a dense block without explicit list formatting, and the German text sits under an English tool name/title, which adds minor friction for non-German agents.

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 five-parameter analytics tool with an output schema, this covers everything needed: purpose, filters, defaults, the return shape sketch, the incompleteness/coverage caveat, and routing to three alternatives. No gap remains that would cause a mis-call.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must (and does) document all five parameters: days including its semantics and default, min_impressions with default and a tuning recommendation, campaign_id/ad_group_id as optional filters, and workspace as optional for single-workspace accounts. This fully compensates for the empty 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?

Opens with a specific verb+resource statement ("Search Terms Report — was User wirklich gesucht haben") and immediately scopes it to search campaigns only. It also names the sibling tools for adjacent use cases (ads_pmax_search_insights, ads_ai_max_search_terms, ads_campaign_performance), so the agent can distinguish it from the other search/performance tools without opening a schema.

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?

Gives explicit when-to-use conditions and exclusions: set min_impressions to 1 for expensive low-volume spread, use ads_campaign_performance for all-campaign totals, ads_pmax_search_insights for PMax, ads_ai_max_search_terms for the AI-Max source split. Workspace optionality is also stated. Nothing is left to inference.

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

ads_set_ad_scheduleGoogle Ads: Set ad scheduleA
Destructive
Inspect

Werbezeitplan (Ad Schedule) einer Kampagne setzen. WICHTIG: Kampagnen mit Ad-Schedule liefern NUR noch in den definierten Fenstern aus — Zeiten außerhalb sind komplett ausgeschlossen. schedule: Liste von {"day": "MONDAY".."SUNDAY", "start_hour": 0-23, "end_hour": 1-24, "bid_modifier": float optional (1.2 = +20 %, 0.8 = -20 %)}. Nur volle Stunden; ein Fenster liegt innerhalb eines Tages (start_hour < end_hour) — Nachtfenster als zwei Einträge (z. B. 22-24 und 0-6). replace_existing=True entfernt bestehende Zeitfenster vorher (default); schedule=[] mit replace_existing=True entfernt alle Zeitfenster (Kampagne liefert wieder durchgehend aus). Rückgabe: removed (Anzahl gelöschter Fenster), created (angelegte Fenster). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
scheduleYes
workspaceNo
campaign_idYes
replace_existingNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare destructiveHint=true, and the description earns it by spelling out exactly what is destroyed: existing windows are removed first by default, and an empty list wipes all windows. It adds the non-obvious delivery impact plus the constraint that only full hours are allowed and a window must sit inside one day, which no structured field conveys.

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?

Dense and front-loaded: the warning about delivery impact comes before the format spec, which is the right order for a destructive call. The trailing sentence enumerating removed/created slightly duplicates the output schema, so it is not entirely waste-free.

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 destructive, open-world mutation with four parameters and zero schema documentation, this covers the object shape, defaults, edge cases, and side effects. The only omission is the campaign_id semantics, which is self-evident, and return values are already covered by the output schema.

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

Parameters5/5

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

Schema description coverage is 0% and the schema types `schedule` only as a loose object array, so the description carries the whole burden — it defines the item keys (day enum range, start_hour/end_hour bounds, bid_modifier with a worked +20% example) and the night-window split pattern. It also documents replace_existing's default and clearing behavior, and the optional workspace slug.

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

Purpose5/5

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

States a specific verb and object ("Werbezeitplan (Ad Schedule) einer Kampagne setzen"), scoped to a campaign rather than an account or ad group. It is easily distinguished from siblings such as ads_schedule_performance (reporting) or ads_update_campaign_settings.

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?

Explains the operative consequence of calling it (campaigns with a schedule only serve inside the defined windows) and gives the clearing idiom (schedule=[] with replace_existing=True). It does not name a sibling alternative or state prerequisites/exclusions (e.g. campaign types that don't support schedules), so it stops short of full routing guidance.

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

ads_set_campaign_conversion_goalsGoogle Ads: Set campaign conversion goalsA
Destructive
Inspect

Conversion-Ziele NUR für diese Kampagne setzen (Custom Goal mit den angegebenen Conversion-Aktions-IDs) — andere Kampagnen bleiben unberührt. conversion_action_ids: IDs aus ads_list_conversion_actions (Duplikate werden entfernt). Idempotent: Existiert bereits ein Custom Goal mit genau dieser Aktionsmenge (Reihenfolge egal), wird es wiederverwendet statt neu angelegt — reused=true; ist es nicht aktiv, steht das in warnings (es wird nicht automatisch aktiviert). Existiert nur ein Custom Goal gleichen Namens mit anderen Aktionen, kommt error=goal_name_taken mit dem bestehenden Ziel zurück und nichts wird angelegt — anderen goal_name wählen oder die passenden conversion_action_ids angeben. Sonst wird ein neues Goal angelegt (reused=false). goal_name: Name eines neu angelegten Custom Goals (kontoweit eindeutig; Default "Kampagne Ziele"). Frühere Custom Goals bleiben bestehen. use_account_default=True stellt zurück auf die Konto-Standard-Ziele, ignoriert die übrigen Parameter und löscht das Custom Goal nicht. Ergebnis mit ads_list_campaign_conversion_goals zurücklesen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
goal_nameNo
workspaceNo
campaign_idYes
use_account_defaultNo
conversion_action_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Far exceeds the annotations: discloses idempotency semantics (identical action set reuse, order-insensitive, reused=true), that an inactive goal yields warnings without auto-activation, the goal_name_taken error with the existing goal returned, that prior custom goals persist, and that use_account_default does not delete the custom goal. This is exactly the mutation-side-effect detail an agent needs for a destructiveHint=true tool.

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?

Dense but front-loaded: the scope constraint leads, then parameter semantics, then the idempotency/error decision tree. Slightly wall-of-text and partly in German while the tool names and annotations are English, which costs a little scannability.

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?

An output schema exists, so return values need not be explained, yet the description still names the reused/warnings/error fields the agent should inspect. Combined with the idempotency and reset semantics, nothing needed to call this destructive mutation safely is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden and does: goal_name uniqueness scope and default template, workspace optionality when a single workspace exists, conversion_action_ids provenance and duplicate removal, and the override/ignore behavior of use_account_default. Every one of the five parameters gains meaning unavailable in the schema.

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

Purpose5/5

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

States a specific verb (set), resource (conversion goals / Custom Goal), and scope (only this campaign, other campaigns untouched) in the opening sentence. This clearly distinguishes it from ads_list_campaign_conversion_goals and ads_update_conversion_action, which operate differently.

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?

Points the agent to ads_list_conversion_actions as the source of IDs and to ads_list_campaign_conversion_goals for read-back, plus concrete recovery guidance for the goal_name_taken error. It does not explicitly contrast with a reset-vs-set alternative, though use_account_default covers the reset path within the same tool.

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

ads_set_device_bid_modifierGoogle Ads: Set device bid modifierA
Destructive
Inspect

Geräte-Gebotsanpassung einer Kampagne setzen. device: MOBILE, DESKTOP oder TABLET. bid_modifier: 1.2 = +20 %, 0.8 = −20 %, 0 = Gerät ausschließen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
deviceYes
workspaceNo
campaign_idYes
bid_modifierYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, and the description earns that back by explaining that bid_modifier 0 excludes the device entirely – the concrete meaning of the destructive flag for this tool. It stops short of stating auth requirements, whether the campaign must be running, or whether the change is reversible.

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?

Four compact units, each covering one parameter or the core action, with the action stated first. No filler sentences and no restatement of the title.

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?

An output schema exists, so return values need no explanation, and for a four-parameter mutation the description covers the risky semantics and all non-obvious parameters. Nothing an agent needs in order to invoke it correctly is missing, aside from optional permission detail.

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% schema coverage the description carries the load, and it does: it enumerates the accepted device values (which the schema does not constrain via enum), translates the numeric multiplier into percentages, and explains the 0 edge case plus the optional workspace slug. Only campaign_id is left unexplained, which is close to self-evident.

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

Purpose4/5

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

The description states a specific verb and resource (set a campaign's device bid modifier) and names the affected entity precisely. It does not, however, differentiate itself from nearby siblings such as ads_update_campaign_bidding_strategy or ads_update_ad_group_bid, so an agent must infer the boundary from the tool name alone.

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

Usage Guidelines3/5

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

Usage is implied by the domain semantics – adjust bids per device – and the workspace note clarifies the multi-workspace case. There is no explicit statement of when to prefer this over the bidding-strategy or ad-group-bid tools, and no prerequisites or exclusions are given.

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

ads_update_adGoogle Ads: Update adB
Destructive
Inspect

DEPRECATED — use ads_replace_ad. Identisches Verhalten (alte Ad wird entfernt, neue erstellt). Wird in einer späteren Version entfernt. Die neue Anzeige erbt den Status der alten (laufend bleibt laufend); optional per status übersteuerbar (ENABLED|PAUSED). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
ad_idYes
path1No
path2No
statusNo
keep_oldNo
headlinesNo
workspaceNo
final_urlsNo
ad_group_idYes
descriptionsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, but the description adds the crucial mechanic the agent cannot infer: the old ad is deleted and a new one created, and the new ad inherits the old ad's status unless overridden. That is real behavioral context beyond the annotations. It stops short of confirming what happens if the create fails after the delete.

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

Conciseness3/5

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

Short and front-loaded with the deprecation warning, which is the right priority. However, it mixes German and English within single sentences, which slows parsing for a tool definition consumed by an agent, and the workspace note is tacked on without a transition.

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?

An output schema exists, so return values need not be explained, but for a destructive 10-parameter replace operation the description leaves most content parameters (headlines, descriptions, final_urls, paths, keep_old) undefined despite 0% schema coverage. An agent cannot construct a valid replacement ad from this description alone.

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

Parameters2/5

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

Schema description coverage is 0% across 10 parameters, so the description must compensate and largely does not. It explains only status (adding the ENABLED|PAUSED values the schema lacks) and workspace, leaving headlines, descriptions, path1, path2, final_urls, ad_group_id, ad_id and especially keep_old undocumented — and keep_old sits in tension with the stated 'old ad is removed' behavior.

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?

States the resource (ad) and, more usefully, what the operation actually does: removes the old ad and creates a new one — which distinguishes it from a simple field mutation. The deprecation notice and pointer to ads_replace_ad are front-loaded. It loses a point only because the verb 'update' understates the replace semantics that the description then has to correct.

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 DEPRECATED — use ads_replace_ad, which is exactly the alternative-routing an agent needs and is reinforced by ads_replace_ad appearing in the sibling list. It does not, however, mention ads_update_ad_status for the status-only case, even though status override is discussed in the same sentence.

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

ads_update_ad_group_bidGoogle Ads: Update ad group bidA
Destructive
Inspect

CPC Gebot einer Ad Group ändern (in EUR). Wirkt nur bei Kampagnen mit MANUAL_CPC (siehe bidding_strategy in ads_list_campaigns); bei Smart Bidding wird das Gebot gespeichert, aber nicht für die Auslieferung verwendet. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
ad_group_idYes
cpc_bid_eurYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered. Beyond that, the description discloses a genuinely non-obvious behavior: under Smart Bidding the value is persisted but not used for delivery — an agent would otherwise assume the change takes effect. It doesn't mention permission scope or how to revert a wrong bid, so it stops short of a 5.

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

Conciseness4/5

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

Three compact sentences: the action first, then the effectiveness caveat with the verification pointer, then the parameter clarification. Every sentence earns its place and nothing is buried. Slightly dense with parenthetical cross-references, but front-loading is correct.

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 destructive mutation with an output schema already documenting the response, the description covers the critical unknowns: currency, strategy precondition, and no-op semantics. It omits what happens on an invalid ad_group_id and does not name the tool that yields ad_group_id, which is the remaining practical gap.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden. It supplies the unit for cpc_bid_eur (EUR) and clarifies workspace as a customer slug that is optional when only one workspace exists — both genuinely useful. ad_group_id is left without any hint on where to obtain it (e.g. ads_list_ad_groups), which leaves the coverage gap partly unfilled.

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 opens with a specific verb+resource+unit: change the CPC bid of an ad group, in EUR. That is unambiguous and distinguishes it from the sibling ads_update_keyword_bid by naming the ad-group level explicitly. It does not call out the alternative bid-editing tool by name, which keeps it from a 5.

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

Usage Guidelines4/5

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

It states the precondition for real effect (only campaigns with MANUAL_CPC) and routes the agent to ads_list_campaigns -> bidding_strategy to verify that before calling. It also explains the Smart Bidding case, so the agent knows when the call is effectively a no-op. No exclusion against keyword-level bid updates, which is the only meaningful gap.

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

ads_update_ad_group_nameGoogle Ads: Update ad group nameC
Destructive
Inspect

Ad Group Name ändern. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
new_nameYes
workspaceNo
ad_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=true. The description adds only the workspace note and does not explain any behavioral consequences of renaming an ad group, such as effects on reporting, references, or reversibility.

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 short and front-loads the action. The workspace clarification is appended efficiently, though the overall text is too sparse to be fully useful rather than genuinely concise.

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?

For a destructive mutation tool with three parameters and zero schema descriptions, the description is missing essential context about required identifiers, naming constraints, and operational impact. The presence of an output schema excuses return-value explanations, but not the parameter and mutation gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It explains only the optional workspace parameter and says nothing about ad_group_id format or new_name constraints, leaving two required parameters undocumented.

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

Purpose4/5

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

The description states a specific verb and resource: changing the ad group name. It clearly identifies the operation, though it does not distinguish it from sibling tools such as ads_update_ad_group_bid or ads_update_ad_group_status.

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 only contextual note is about the optional workspace parameter when only one workspace exists. There is no guidance on when to use this tool instead of related update or list tools, nor 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.

ads_update_ad_group_statusGoogle Ads: Update ad group statusB
Destructive
Inspect

Ad Group aktivieren oder pausieren. Status: ENABLED oder PAUSED. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusYes
workspaceNo
ad_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing behavioral on top of that: it does not say that pausing stops serving/spend, whether the change is reversible, what permissions are needed, or what the response contains. Framing it as 'activate or pause' arguably understates the destructiveHint=true annotation without contradicting it.

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?

Two short lines, with the core action and its allowed values front-loaded before the secondary workspace note. Nothing is padded. The only inefficiency is the mid-sentence language switch from the English setup to German, which adds friction rather than length.

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?

An output schema exists, so return values need not be described, and the annotations cover the mutation/safety profile. For a simple two-value status toggle the description is close to sufficient; the remaining gap is ad_group_id semantics (ID vs resource name) on a tool that cannot be called without it.

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 0%, so the description must carry the load, and it partly does: it enumerates the two allowed status values (information absent from the schema, which types status as a bare string with no enum) and explains that workspace is a customer slug that is optional when only one workspace exists. It says nothing about the format or source of ad_group_id, leaving one of three parameters undocumented.

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

Purpose4/5

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

The description names a specific verb pair (activate/pause) and a specific resource (ad group), which cleanly separates it from ads_update_ad_status, ads_update_campaign_status, ads_update_keyword_status and from ads_remove_ad_group. It also pins the value set to ENABLED or PAUSED, so the agent knows the operation is a reversible status flip rather than a delete. It stops short of explicitly naming the sibling alternatives.

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?

"Ad Group aktivieren oder pausieren" implies the use case clearly, but there is no explicit when-not guidance: nothing says whether a paused group can be re-enabled the same way, whether removed groups can be touched, or which sibling to call for bid or name changes. Usage is implied rather than stated.

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

ads_update_ad_statusGoogle Ads: Update ad statusB
Destructive
Inspect

Anzeige aktivieren oder pausieren. Status: ENABLED oder PAUSED. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
ad_idYes
statusYes
workspaceNo
ad_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the safety profile is covered. The description adds the enumerated status values, which the annotations do not, but says nothing about what pausing does to serving/history or what permissions are required.

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?

Two short sentences, front-loaded with the action, then the parameter note. No filler, though the brevity edges into under-specification given the missing ID semantics.

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?

An output schema exists, so return values need not be explained, and the destructive annotation covers risk. Still, for a 4-parameter mutation with zero schema descriptions and no sibling routing, the description leaves the agent guessing about the ID parameters and the effect of pausing.

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 0%, and the description compensates only partially: it defines the status domain (ENABLED/PAUSED) that the schema leaves as a bare string, and explains workspace is optional for single-workspace accounts. ad_id and ad_group_id are entirely undocumented in both places, so half the parameters remain opaque.

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

Purpose4/5

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

The description states a concrete verb pair (activate/pause) and resource (Anzeige/ad), plus the two allowed status values. It does not differentiate from close siblings such as ads_update_ad (creative edits) or ads_remove_ad, so an agent must infer the boundary.

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 statement of when to use this versus ads_update_ad, ads_replace_ad, ads_remove_ad, or the parallel status tools (ads_update_ad_group_status, ads_update_campaign_status). The only conditional guidance is the workspace note, which is parameter-level, not usage-level.

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

ads_update_campaign_bidding_strategyGoogle Ads: Update campaign bidding strategyA
Destructive
Inspect

Bidding Strategy einer Kampagne ändern. bidding_strategy: MANUAL_CPC, MAXIMIZE_CLICKS, MAXIMIZE_CONVERSIONS, MAXIMIZE_CONVERSION_VALUE, TARGET_CPA, TARGET_ROAS, TARGET_SPEND (MAXIMIZE_CLICKS und TARGET_SPEND sind dieselbe Strategie). target_cpa_eur required für TARGET_CPA, optionales Ziel bei MAXIMIZE_CONVERSIONS. target_roas required für TARGET_ROAS (z.B. 4.0 = 400 %), optionales Ziel bei MAXIMIZE_CONVERSION_VALUE. cpc_bid_ceiling_eur: optionale CPC-Obergrenze (EUR) für MAXIMIZE_CLICKS/TARGET_SPEND. target_spend_micros: veraltet — nicht verwenden. Bei Fehler BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET zuerst ads_update_campaign_budget(..., explicitly_shared=false) aufrufen — Smart Bidding braucht ein kampagneneigenes Budget. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes
target_roasNo
target_cpa_eurNo
bidding_strategyYes
cpc_bid_ceiling_eurNo
target_spend_microsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, so the mutation risk is known. The description adds real value beyond that: a known API error code with a recovery sequence, and an explicit deprecation warning for target_spend_micros. It doesn't say whether switching strategies resets existing targets or bids, which a mutation tool ideally would.

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?

Information-dense and organized parameter-by-parameter, with no filler. The mixed German/English and telegraphic style costs some readability but every line carries operational 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?

An output schema exists, so return values need not be described. For a 7-parameter mutation with zero schema documentation, the description covers strategy values, target requirements, deprecation, the shared-budget prerequisite, and workspace scoping — nearly everything. Only campaign_id's meaning is left implicit.

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

Parameters5/5

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

Schema description coverage is 0% and there are 7 parameters, so the description carries the full burden — and it does. It enumerates the bidding_strategy values (which the schema leaves as a bare string with no enum), states which targets are required versus optional per strategy, gives a unit example (4.0 = 400%), flags target_spend_micros as deprecated, and explains the workspace default.

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 opening line plus the tool name state a specific verb and resource: changing a campaign's bidding strategy. It distinguishes itself from ads_update_campaign_budget by naming that tool as a prerequisite in one error path. It does not, however, distinguish itself from ads_update_campaign_settings, which an agent could plausibly confuse with it.

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?

Strong conditional guidance: 'target_spend_micros: veraltet — nicht verwenden' tells the agent what not to do, and the BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET case prescribes a concrete prerequisite call before retrying. What is missing is a general 'use this when' statement relative to sibling campaign-update tools.

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

ads_update_campaign_budgetGoogle Ads: Update campaign budgetA
Destructive
Inspect

Tagesbudget einer Kampagne ändern (in EUR). Achtung: Die Änderung wird auf die Budget-Ressource der Kampagne geschrieben — bei einem geteilten Budget gilt sie für alle Kampagnen, die dieses Budget nutzen. explicitly_shared=false macht aus einem geteilten Budget ein kampagneneigenes — nötig, bevor Smart Bidding (MAXIMIZE_CONVERSIONS/ MAXIMIZE_CONVERSION_VALUE) gesetzt werden kann, wenn Google den Fehler BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET meldet. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes
daily_budget_eurYes
explicitly_sharedNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the destructiveHint=true annotation, the description discloses a non-obvious side effect: the write targets the budget resource, so a shared budget change affects every campaign using it, and explicitly_shared=false irreversibly splits a shared budget into a campaign-owned one. That is exactly the kind of blast-radius detail annotations cannot convey.

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?

Purpose is front-loaded in the first sentence, followed by the risk warning and then the parameter note. The BIDDING_STRATEGY error string is dense but earns its place as a trigger condition; the block could be tightened slightly.

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 4-parameter mutation with an output schema and destructive annotations, the description covers the material risks and prerequisites. No return-value explanation is needed given the output schema. Minor gap: no mention of failure modes other than the shared-budget bidding error.

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 0%, so the description must compensate, and it does: it clarifies the currency for daily_budget_eur, the optionality/meaning of workspace, and the semantic consequence of explicitly_shared=false. campaign_id is left implicit, which is the only gap.

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

Purpose5/5

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

The description states a specific verb and resource ('Tagesbudget einer Kampagne ändern') and adds the unit (EUR), which the schema does not. It is clearly distinguishable from sibling mutations such as ads_update_campaign_bidding_strategy or ads_update_campaign_settings.

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 gives a concrete conditional workflow: set explicitly_shared=false before applying Smart Bidding when Google returns BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET. It also explains the workspace parameter's optionality. What's missing is an explicit routing statement against the nearest sibling (e.g., when to use ads_update_campaign_settings instead).

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

ads_update_campaign_nameGoogle Ads: Update campaign nameC
Destructive
Inspect

Kampagnen-Name ändern. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
new_nameYes
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered, but the description adds nothing about effects: no mention that existing ads/asset links are unaffected, that renaming is applied to a live campaign, or any rate-limit/auth context. Beyond the workspace optionality note, it is essentially a restatement of the tool name.

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?

Two short sentences, action stated first, with the workspace caveat second. Nothing is wasted, though the brevity comes partly from under-specification rather than tightness.

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?

An output schema exists so return values need not be explained, and this is a simple rename operation. Still missing is enough parameter detail (campaign_id source/format) and behavior on invalid IDs or name conflicts for an agent to call this confidently in a mutation 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 0%, so the description must compensate. It usefully explains the workspace parameter (slug, optional with a single workspace), but says nothing about campaign_id (ID vs. name, where to obtain it) or new_name constraints (length, allowed characters, uniqueness).

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

Purpose4/5

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

The description states a specific verb and resource ('Kampagnen-Name ändern') and the title reinforces Google Ads campaign-name scope. It is distinguishable from siblings like ads_update_campaign_budget or ads_update_campaign_status by the resource named, though it never explicitly differentiates itself from them.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives such as ads_update_campaign_settings, nor any prerequisites (permissions, whether the campaign must be paused, ID format). The only contextual note is that workspace is optional when a single workspace exists.

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

ads_update_campaign_networkGoogle Ads: Update campaign networkA
Destructive
Inspect

Such-Partner-/Display-Netzwerk einer Kampagne an- oder ausschalten.

Wichtigster Hebel gegen Traffic aus dem Such-Partner-Netzwerk (hsa_src=s). Die echte Google-Suche bleibt immer aktiv. target_content_network optional (None = unverändert). validate_only: True für einen Probelauf (Dry-Run) ohne Schreiben. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes
validate_onlyNo
target_search_networkYes
target_content_networkNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is partly covered; the description adds genuinely new context by documenting a validate_only dry-run and clarifying that Google Search is never disabled by this call. It still does not explain what 'destructive' means here (immediate live traffic loss, reversibility).

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?

Six short lines, the action front-loaded, then the operational rationale, then the parameter notes. Every sentence adds information and nothing is padded.

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 5-parameter destructive mutation with an output schema, the description covers side effects, dry-run capability, and optional-parameter defaults — enough to call it safely. Gaps remain around campaign-type prerequisites and what the response confirms.

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 0%, so the description must carry all parameter meaning. It does explain target_content_network (None = unchanged), validate_only (dry run), and workspace (optional with a single workspace), but leaves the required target_search_network and campaign_id undefined — and the relationship between target_search_network and 'real Google Search stays active' is only implied.

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 first line names a specific verb and resource: toggling the Search Partner / Display network of a campaign. It is clear what changes, but among the many ads_update_* siblings (notably ads_update_campaign_settings) it never states which one owns this setting, so the agent must infer the split.

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?

It gives useful context that this is the primary lever against search-partner traffic (hsa_src=s) and that real Google Search stays active, which implies when to reach for it. However, it never says when to use this versus ads_update_campaign_settings, nor whether prerequisites (campaign type, e.g. not PMax) apply.

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

ads_update_campaign_settingsGoogle Ads: Update campaign settingsA
Destructive
Inspect

final_url_suffix einer Kampagne setzen ('' entfernt das Suffix). url_expansion_opt_out wird NICHT mehr unterstützt — das Campaign-Feld existiert in Google Ads API v23 nicht mehr, der Aufruf liefert eine erklärende Ablehnung; die URL-Expansion in der Google-Ads-Oberfläche steuern. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes
final_url_suffixNo
url_expansion_opt_outNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/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 safety profile is covered. The description adds real value beyond that: it discloses that url_expansion_opt_out will be rejected with an explanatory error, and that passing '' is the destructive removal path. It stops short of describing auth requirements or the full mutation scope.

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?

Three sentences, front-loaded with the primary action, then the deprecation caveat, then the workspace note. Each part earns its place, though the middle sentence is dense and slightly convoluted; bullet-style structure would read cleaner.

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?

An output schema exists, so return values needn't be explained. For a targeted single-field mutation the description covers the key semantics, the deprecation behavior, and workspace scoping. Only minor gaps remain (campaign_id meaning, success behavior), which the schema largely covers.

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% schema description coverage, the description must compensate, and it does for three of four params: final_url_suffix ('' removes it), url_expansion_opt_out (deprecated/rejected), and workspace (slug, optional when a single workspace). Only campaign_id is left unexplained, but it is self-evident as the required target identifier.

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

Purpose4/5

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

The description states a specific verb (setzen) and resource (final_url_suffix einer Kampagne), narrowing the generic 'Update campaign settings' title to one concrete field. It effectively distinguishes itself from sibling update tools (name, budget, status, bidding_strategy) by field focus, though it never names those siblings explicitly.

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?

It conveys useful usage context: '' removes the suffix, and url_expansion_opt_out is unsupported and should be handled in the Google Ads UI instead. However, it never states when to choose this tool versus the many sibling campaign-update tools, leaving routing to inference from the field name.

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

ads_update_campaign_statusGoogle Ads: Update campaign statusA
Destructive
Inspect

Kampagne aktivieren oder pausieren. Status: ENABLED oder PAUSED. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusYes
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the mutation risk is signalled structurally. The description adds that the action is a status toggle between ENABLED and PAUSED, but does not say what pausing actually does (stops serving ads/incurs no spend), whether it requires the campaign to be enabled first, or whether the change is idempotent or reversible.

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?

Two short sentences, front-loaded with the action, then the parameter detail. No filler. Mixed language (German description with English tool/annotation names) and the run-on 'workspace:' fragment slightly reduce polish.

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?

An output schema exists so return values need not be explained, and all key parameters are covered. What is missing for a destructive mutation is effect context: what pausing means operationally for the account, and any prerequisite state. Adequate but with a clear behavioral gap.

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 0% and the schema even lacks an enum on 'status', so the description carries real weight: it enumerates the accepted values ENABLED and PAUSED and explains that 'workspace' is a customer workspace slug that is optional when only one workspace exists. Only 'campaign_id' is left undescribed, which is largely self-evident.

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?

States a specific verb pair and resource: 'Kampagne aktivieren oder pausieren' (activate or pause a campaign). This clearly separates it from siblings like ads_update_campaign_name, ads_update_campaign_settings or ads_remove_campaign, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

Usage is implied by the status toggle, but there is no guidance on when to use this vs. ads_update_campaign_settings, ads_remove_campaign (deletion) or ads_bulk_update_keyword_status-style bulk operations. No prerequisites or warnings about pausing a live campaign are given.

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

ads_update_conversion_actionGoogle Ads: Update conversion actionA
Destructive
Inspect

Ändert eine bestehende Conversion-Aktion (nur übergebene Felder).

primary_for_goal=True macht die Aktion primär (Smart Bidding optimiert darauf), False sekundär (nur Beobachtung) — z.B. „Qualifizierter Lead" auf primär setzen oder „Kontaktformular" reversibel auf sekundär herabstufen. Auch False und default_value=0 werden übernommen. default_value: Standard-Wert, der für ALLE Conversions dieser Aktion erzwungen wird (always_use_default_value) — mitgelieferte Werte aus Tag/Upload werden ignoriert. status: ENABLED oder REMOVED (unumkehrbar) — Pausieren/HIDDEN erlaubt die Google-API nicht. success bedeutet nur, dass die API nicht abgelehnt hat — Name und Status nach dem Aufruf mit ads_list_conversion_actions zurücklesen. Lehnt Google mit „Multiple requests were attempting to modify the same resource" ab, wiederholt das Tool den (idempotenten) Update-Aufruf automatisch bis zu zweimal (1 s, 2 s Pause); die Antwort nennt dann retries. Bleibt es beim Fehler, kommt error=google_ads_error mit Hinweis zurück. validate_only: True für einen Probelauf (Dry-Run) ohne Schreiben. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
statusNo
workspaceNo
default_valueNo
validate_onlyNo
primary_for_goalNo
conversion_action_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: status REMOVED is irreversible, pausing/HIDDEN is not supported by the Google API, default_value is forcibly applied to ALL conversions and overrides tag/upload values, 'success' only means the API did not reject, and there is documented automatic idempotent retry (twice, 1s/2s) with a 'retries' field and google_ads_error otherwise. This is exactly the extra context the destructive/openWorld hints cannot carry.

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?

Front-loaded with the core action, then organized per parameter with the highest-risk facts (irreversible removal, verification requirement, retry behavior) placed before the mundane ones. A few sentences (the retry mechanics) are dense but each earns its place; the mixed German/English naming adds minor noise.

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 7-parameter destructive mutation with an output schema, the description covers everything an agent needs to call it safely: partial-update scope, irreversible status, forced default values, dry-run mode, post-call verification, and retry/error semantics. Return-value explanation is correctly left to the output schema apart from the notable 'retries' field.

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 0%, so the description must carry the load and mostly does: primary_for_goal, default_value, status, validate_only, and workspace are all explained with semantics and edge cases. 'name' and 'conversion_action_id' are only implied by the opening sentence, which keeps it from a 5.

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?

States a specific verb and resource ('Ändert eine bestehende Conversion-Aktion') and immediately pins down the partial-update semantics with '(nur übergebene Felder)'. It never explicitly contrasts with ads_create_conversion_action, but the word 'bestehende' plus the required conversion_action_id makes the create-vs-update boundary clear enough.

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?

Gives concrete usage contexts: promote a qualified lead to primary, demote a contact form reversibly to secondary, dry-run with validate_only, and read back with ads_list_conversion_actions. It does not state when to prefer this over other paths or any prerequisites (permissions, account state), so it stops short of full alternative routing.

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

ads_update_geo_targetingGoogle Ads: Update geo targetingA
Destructive
Inspect

Geo-Targeting einer Kampagne ändern: positive_geo_target_type (PRESENCE oder PRESENCE_OR_INTEREST — PRESENCE stoppt Geo-Leakage), Standorte hinzufügen (add_location_ids, Geo-Target-Constant-IDs, z.B. 2276 = Deutschland, 2040 = Österreich; negative=True für Ausschlüsse) oder entfernen (remove_criterion_ids aus ads_get_geo_targeting). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
negativeNo
workspaceNo
campaign_idYes
add_location_idsNo
remove_criterion_idsNo
positive_geo_target_typeNo

Output Schema

NameRequiredDescription

No output parameters

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 openWorldHint=true, and the description adds real domain context: PRESENCE stops geo-leakage, negative=True turns additions into exclusions, and removal IDs must come from ads_get_geo_targeting. It does not mention permissions or irreversibility of removals, so it does not fully exploit the destructive mutation profile.

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?

Front-loaded with the core verb and resource, then groups parameters by operation. The parentheticals are dense but each carries non-obvious information (enum values, example IDs, cross-reference), so little is wasted.

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 6-parameter mutation tool with an output schema present, the description covers every meaningful operation and parameter source. It stops short of stating whether at least one operation must be supplied or what happens if none is given.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does so: it supplies the accepted values for positive_geo_target_type (which the schema does not enumerate), explains that add_location_ids are geo-target constant IDs with concrete examples (2276 = Germany, 2040 = Austria), documents the negative flag's effect, and points remove_criterion_ids to their source.

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?

Uses a specific verb plus resource ('Geo-Targeting einer Kampagne ändern') and enumerates the three concrete operations (set positive_geo_target_type, add locations, remove criteria). It also names the sibling tool ads_get_geo_targeting as the source of criterion IDs, so an agent can distinguish it from related geo tools without opening a schema.

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?

Explains the conditions for each mode: use positive_geo_target_type to switch between PRESENCE and PRESENCE_OR_INTEREST, add_location_ids to add, remove_criterion_ids (fetched via ads_get_geo_targeting) to remove, and negative=True for exclusions. There is no explicit 'do not use this for X' exclusion versus other siblings, which keeps it 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.

ads_update_keyword_bidGoogle Ads: Update keyword bidA
Destructive
Inspect

CPC Gebot eines Keywords ändern (in EUR). Wirkt nur bei Kampagnen mit MANUAL_CPC (siehe bidding_strategy in ads_list_campaigns); bei Smart Bidding wird das Gebot gespeichert, aber nicht für die Auslieferung verwendet. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
ad_group_idYes
cpc_bid_eurYes
criterion_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, so safety is covered. The description adds real behavioral context beyond that: the currency unit (EUR) and the important caveat that under Smart Bidding the write succeeds but has no delivery effect.

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?

Three compact lines with the core action first, then the MANUAL_CPC caveat, then the parameter note. No filler, though the parameter note is appended rather than integrated.

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?

An output schema exists, so return values need no explanation. However, for a destructive mutation requiring three opaque IDs at 0% schema coverage, the description leaves the agent without guidance on obtaining criterion_id or ad_group_id.

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 0%, so the description must compensate. It clarifies workspace (optional when only one workspace) and that cpc_bid_eur is denominated in EUR, but says nothing about where ad_group_id and criterion_id come from or their expected formats.

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?

States a precise verb+resource+unit: change the CPC bid of a keyword, in EUR. The scope (keyword-level, not ad-group-level) implicitly separates it from ads_update_ad_group_bid, though it never names that sibling explicitly.

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?

Gives a concrete applicability condition – only effective on MANUAL_CPC campaigns, and points to bidding_strategy in ads_list_campaigns as the way to check. Smart Bidding behavior (bid stored but unused) is spelled out. It stops short of naming alternatives such as bulk keyword updates.

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

ads_update_keyword_statusGoogle Ads: Update keyword statusA
Destructive
Inspect

Keyword aktivieren oder pausieren. Status: ENABLED oder PAUSED. Für mehrere Keywords derselben Ad Group ads_bulk_update_keyword_status nehmen — ein API-Call statt N, und ein Journal-Eintrag statt N. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusYes
workspaceNo
ad_group_idYes
criterion_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=true, openWorldHint=true); the description adds genuinely new behavior — that the write produces a journal entry, and that workspace is optional when only one workspace exists. It does not clarify reversibility or error behavior for an already-matching status, so it stops short of a 5. No contradiction with destructiveHint, since pausing is the intended state change.

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?

Four short, front-loaded sentences: action and allowed values first, then the sibling alternative, then the workspace nuance. Dense but every sentence carries information; only the workspace caveat is slightly tacked on at the end.

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?

An output schema exists, so return values need not be described, and the side-effect and status-value gaps are covered. However, for a 3-required-parameter mutation with zero schema documentation, the description never says where ad_group_id and criterion_id come from, leaving the agent to guess at identifier sourcing.

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 0%, and the description compensates for only half the parameters: it defines the valid status strings (ENABLED/PAUSED, which the schema leaves as a bare string with no enum) and explains the workspace slug/null behavior. ad_group_id and criterion_id — the two identifiers an agent most plausibly gets wrong — are left unexplained, with no hint that criterion_id comes from ads_list_keywords.

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

Purpose5/5

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

The description states a concrete verb pair and resource ("Keyword aktivieren oder pausieren"), gives the exact allowed status values, and explicitly distinguishes itself from the batch sibling ads_bulk_update_keyword_status. An agent can identify the operation without inspecting the schema.

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 names the alternative tool and the condition that selects it (multiple keywords in the same ad group → use the bulk variant, one API call and one journal entry instead of N). That is a clear routing rule, though there is no explicit "when not to use" (e.g., use ads_remove_keyword for deletion, or verify current status first).

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

ads_update_language_targetingGoogle Ads: Update language targetingA
Destructive
Inspect

Sprach-Targeting einer Kampagne SETZEN (ersetzt die Auswahl), z. B. ["de", "en"]; leere Liste entfernt alle Sprach-Kriterien (= alle Sprachen). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes
language_codesYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already flag destructiveHint=true, but the description adds the crucial behavioral detail those hints cannot: existing language criteria are overwritten, not merged, and an empty array silently means 'target all languages'. That is exactly the kind of consequence an agent needs before invoking a destructive call.

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 short clauses, each load-bearing: the replace semantics first, the example second, the empty-list gotcha third, then the optional workspace note. No filler and the most consequential 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 3-parameter destructive mutation with an output schema present and safety hints already in annotations, this covers what an agent must know to call it correctly: overwrite behavior, empty-list meaning, and workspace scoping. Nothing material is missing.

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 0%, so the description carries the load: it documents language_codes format with a concrete example (["de", "en"]) and its empty-list edge case, plus the optional workspace slug clause for single-workspace accounts. It leaves campaign_id and the exact accepted code format (ISO code vs. Google Ads language constant) unstated, so it compensates well but not fully.

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?

Specific verb and resource: "Sprach-Targeting einer Kampagne SETZEN" with the parenthetical "(ersetzt die Auswahl)" that makes it a replace operation rather than an additive one. This distinguishes it from the read-side sibling ads_get_language_targeting and from the additive ads_add_audience_signal-style tools without opening any schema.

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?

Clear operational context is given: a non-empty list replaces the selection and an empty list clears all language criteria (= all languages). However, no sibling alternative is named and no precondition (e.g. campaign must be paused / must exist) is stated, so it stops short of explicit when/when-not routing.

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

ads_upload_conversionsGoogle Ads: Upload conversionsAInspect

Lädt Offline-/Enhanced-Conversions an Google Ads via Data Manager API hoch.

Für Conversions, die außerhalb der Website entstehen (z.B. CRM-Abschlüsse, Telefon-Leads) oder zur Anreicherung bestehender Conversions mit gehashten Kundendaten (Enhanced Conversions). E-Mail/Telefon werden server-seitig normalisiert und mit SHA-256 gehasht — Klartext wird nicht gesendet. Voraussetzung: Google-Verbindung des Workspace mit Data-Manager-Scope.

conversion_action: numerische 'id' aus 'ads_list_conversion_actions' oder resource_name/conversion_action_id aus 'ads_create_conversion_action'. events: Liste von Ereignissen. Pro Ereignis (Dict) möglich: - 'gclid'/'gbraid'/'wbraid': Klick-IDs (für Offline-Conversions), - 'email'/'phone': Kundendaten (für Enhanced Conversions, werden gehasht); 'phone' nur im E.164-Format (+43…), sonst wird die Nummer ohne Fehler verworfen, sobald ein anderer Identifikator (E-Mail/Klick-ID) dabei ist, - 'address': {given_name, family_name, region_code, postal_code} optional (alle vier nötig, Namen werden gehasht), - 'value' + 'currency': Conversion-Wert (z.B. 49.9, 'EUR'), - 'event_time': Zeitpunkt RFC 3339 (Default: jetzt), - 'event_source': WEB (Default) / APP / IN_STORE / PHONE / OTHER, - 'transaction_id': eindeutige ID zur Deduplizierung, - 'consent': {'adUserData','adPersonalization'} je 'CONSENT_GRANTED'/ 'CONSENT_DENIED' — für EEA/UK pro Ereignis dringend empfohlen. validate_only: True für einen Probelauf (Dry-Run) ohne Schreiben — Antwort enthält requestId + validated: True, Fehler kommen als {'error': …}. Rückgabe: {requestId, events, conversion_action}. Erfolg heißt nur „angenommen" (asynchrone Verarbeitung) — Verbuchung mit ads_conversion_performance prüfen (Import-Nachlauf; dort zählt das Conversion-Datum). Ab 2000 Events werden mehrere Batches gesendet ('batches'/'request_ids'); bei einem Teilfehler nennt die Antwort submitted_events — beim Wiederholen nur die restlichen Events senden. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
eventsYes
workspaceNo
validate_onlyNo
conversion_actionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses server-side normalization and SHA-256 hashing (no plaintext leaves), silent dropping of non-E.164 phone numbers when another identifier is present, asynchronous processing where success only means 'accepted', and batch splitting above 2000 events with submitted_events on partial failure. The annotation set (readOnly=false, destructive=false, openWorld=true) is consistent with a non-destructive write via an external API.

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?

Purpose and usage are front-loaded, then a clearly delimited parameter block, then return/batching semantics. The event-field enumeration is long, but it is dense with required information that the schema lacks, so the length is largely earned rather than bloat.

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?

Despite an output schema existing, the description adds the crucial operational context an agent needs: that a successful response is only an asynchronous acknowledgement, how batching and partial failures behave, and how to verify actual booking. Nothing needed to call this mutation correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates: it documents every event key (click IDs, email/phone with the E.164 rule, address with all four fields required, value+currency, RFC 3339 event_time defaulting to now, event_source values, transaction_id dedup, consent flags for EEA/UK) plus conversion_action, validate_only and workspace. This is more information than the flat schema conveys on its own.

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 first sentence gives a specific verb and resource ('Lädt Offline-/Enhanced-Conversions an Google Ads via Data Manager API hoch'), and the second sentence scopes it to conversions originating off-site or to enrichment of existing ones. It is clearly distinguishable from reporting siblings like ads_conversion_performance and from ads_list_conversion_actions, which it explicitly names as the ID 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?

Explicit when-to-use (CRM closes, phone leads, enhanced conversions with hashed customer data), explicit prerequisite (workspace Google connection with Data-Manager scope), and explicit verification path ('Verbuchung mit ads_conversion_performance prüfen'). It also names a dry-run alternative (validate_only) and the correct retry behavior after partial failure.

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

ads_upload_customer_match_membersGoogle Ads: Upload customer match membersAInspect

Lädt Mitglieder in eine Customer-Match-Userliste hoch (Data Manager API).

Die Userliste legen Sie zuvor mit 'ads_create_customer_match_list' an oder finden sie mit 'ads_list_customer_match_lists'. E-Mail/Telefon/Adresse werden server-seitig normalisiert und mit SHA-256 gehasht — Klartext wird nicht gesendet. Für Customer Match nutzt Google in der Regel nur die E-Mail-Adresse; Telefon/Adresse erhöhen die Trefferquote. Voraussetzung: Google-Verbindung des Workspace mit Data-Manager-Berechtigung.

Versand in Batches à 2000 (Rückgabe requestId bzw. batches/request_ids, members = tatsächlich gesendete Anzahl, audience_id). Bei einem Teilfehler nennt die Antwort failed_batch_index und submitted_members — beim Wiederholen nur die noch nicht gesendeten Mitglieder übergeben. requestId bedeutet nur "angenommen": Matching und Listengröße (ads_list_customer_match_lists) aktualisieren sich zeitversetzt.

audience_id: User-List-ID (oder Resource-Name) aus 'ads_create_customer_match_list' / 'ads_list_customer_match_lists'. members: Liste von Dicts, je Mitglied 'email' und/oder 'phone' und/oder 'address'. phone NUR im E.164-Format (+43664...), andere Formate werden ohne Fehler verworfen. address nur mit allen vier Feldern given_name, family_name, region_code, postal_code (Aliase first_name/last_name/ country_code/zip), sonst still verworfen. Mitglieder ohne gültigen Identifier werden übersprungen — members in der Antwort mit der Eingabe vergleichen; error=no_identifiers nur, wenn keines brauchbar ist. consent: optionales {'adUserData','adPersonalization'} je 'CONSENT_GRANTED'/ 'CONSENT_DENIED'/'CONSENT_STATUS_UNSPECIFIED' — für EEA/UK dringend empfohlen. validate_only: True für einen Probelauf (Dry-Run) ohne Schreiben. accept_customer_match_terms: True akzeptiert die Customer-Match- Nutzungsbedingungen im Namen des Werbekontos für diesen Request (nur nach ausdrücklicher Bestätigung durch den Kontoinhaber setzen; nötig bei TERMS_AND_CONDITIONS_NOT_SIGNED, solange das Konto die Bedingungen nicht dauerhaft in der Google-Ads-Oberfläche akzeptiert hat). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
consentNo
membersYes
workspaceNo
audience_idYes
validate_onlyNo
accept_customer_match_termsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Die Annotationen (readOnlyHint=false, destructiveHint=false, openWorldHint=true) decken nur das Sicherheitsprofil ab; die Beschreibung ergänzt serverseitige Normalisierung und SHA-256-Hashing, Batch-Größe 2000, Teilfehler-Semantik (failed_batch_index, submitted_members), die Bedeutung von requestId als bloße Annahme samt zeitversetzter Listenaktualisierung sowie stilles Verwerfen ungültiger Telefon-/Adressformate.

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?

Der Text ist lang, aber dicht und front-loaded: Zweck, Voraussetzung, Verhalten, dann Parameterspezifikation. Jeder Abschnitt trägt Information; minimaler Abzug, weil die Mischung aus Fließtext und Parameterliste ohne Gliederungssignale schwer zu scannen ist.

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?

Für eine mutierende, gebündelte Upload-Operation mit Consent- und ToS-Bedingungen ist alles Nötige vorhanden: Voraussetzungen, Fehler-/Retry-Semantik, Parameterformate und Hinweis auf zeitversetzte Ergebnisaktualisierung. Das Output-Schema entlastet bei Rückgabefeldern, die Beschreibung erklärt dennoch die relevanten Antwortschlüssel.

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

Parameters5/5

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

Bei 0% Schema-Beschreibungsabdeckung trägt die Beschreibung die volle Last und erfüllt sie: audience_id-Herkunft, members-Struktur mit Pflichtfeldern, E.164-Format für phone, Adressfelder plus Aliase, consent-Werte-Enum, validate_only und accept_customer_match_terms mit Bedingungen. Das geht weit über das nackte Schema hinaus.

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?

Der erste Satz nennt Verb, Ressource und Zielsystem ("Lädt Mitglieder in eine Customer-Match-Userliste hoch (Data Manager API)"). Die Abgrenzung zu den Geschwistertools ads_create_customer_match_list, ads_list_customer_match_lists und ads_remove_customer_match_members wird explizit hergestellt.

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?

Die Beschreibung nennt Voraussetzungen (Google-Verbindung mit Data-Manager-Berechtigung, Liste zuvor anlegen oder finden), Alternativen (ads_list_customer_match_lists zur Größenprüfung) und bedingte Nutzung (validate_only für Dry-Run, accept_customer_match_terms nur bei TERMS_AND_CONDITIONS_NOT_SIGNED und ausdrücklicher Bestätigung).

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

ads_upload_image_assetGoogle Ads: Upload image assetAInspect

Bild von einer öffentlichen URL als wiederverwendbares Image-Asset anlegen (PNG/JPG, max. 5 MB). name muss kontoweit eindeutig sein. Mindestgrößen für PMax: Querformat 1,91:1 mind. 600×314 (MARKETING_IMAGE), Quadrat 1:1 mind. 300×300 (SQUARE_MARKETING_IMAGE), Logo 1:1 mind. 128×128 (LOGO) — werden hier nicht geprüft; zu kleine Bilder scheitern erst beim Verknüpfen. Die URL muss http(s) und öffentlich erreichbar sein (interne Hosts werden abgelehnt). Antwort: asset_id; Download-Fehler als {error, message}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
image_urlYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, it discloses important behavior: the URL must be public HTTP(S), internal hosts are rejected, dimensions are not validated at upload time, and too-small images fail only during linking. It also states the response shape and error behavior, which is valuable 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.

Conciseness4/5

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

The description is front-loaded with the core action and then adds constraints in a logical order. It is somewhat dense and long, but nearly every detail serves correct invocation, so there is little wasted content.

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?

It covers required parameters, optional workspace behavior, validation limits, URL restrictions, error responses, and downstream linking implications. With an output schema present, the description is complete enough for an agent to invoke the tool correctly.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining all three parameters: image_url requires a public HTTP(S) URL, name must be account-wide unique, and workspace is an optional slug when only one workspace exists. It also adds format, size, and PMax dimension constraints beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: create a reusable image asset from a public URL, with formats and size limits. It clearly identifies this as the image-upload tool, though it does not explicitly name sibling alternatives such as text or video asset creation.

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 provides clear usage context by specifying image formats, maximum size, unique naming, public URL requirements, and PMax minimum dimensions. It does not explicitly say when to use this tool instead of related asset-creation or linking tools, so alternatives are left implicit.

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

ads_upload_video_assetGoogle Ads: Upload video assetAInspect

YouTube-Video als Video-Asset registrieren (URL oder 11-stellige ID) — danach via ads_add_asset_group_assets mit field_type YOUTUBE_VIDEO nutzbar. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
workspaceNo
youtube_urlYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the mutation profile is covered. The description adds genuine context by clarifying this registers an existing external YouTube video rather than uploading bytes, and it names the follow-up tool needed to actually use the asset. It says nothing about idempotency or what happens if the same video is registered twice, which matters for a create-style call.

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?

Two compact sentences: the action and its input formats come first, then the downstream dependency, then the workspace clarification. No filler. Slightly dense with the German parenthetical, but every clause carries information.

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

Completeness4/5

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

An output schema exists, so return values need not be explained. The description covers purpose, accepted input formats, follow-up usage, and the workspace optionality rule. The remaining gap is the undocumented 'name' parameter and duplicate-handling behavior, which is minor but real for a create tool.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry the load. It does well for two params: youtube_url accepts a URL or an 11-character ID (format detail absent from the schema), and workspace is a customer-workspace slug that is optional when only one workspace exists. The 'name' parameter is never mentioned in either the schema or the description, leaving one of three params undocumented.

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?

States a specific verb and resource: register a YouTube video as a video asset, accepting either a URL or an 11-character ID. That is a clear, distinguishable action from the sibling ads_upload_image_asset. It stops short of explicitly differentiating against the other upload/asset tools, so it lands at 4 rather than 5.

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?

Gives a concrete downstream condition: the asset becomes usable via ads_add_asset_group_assets with field_type YOUTUBE_VIDEO. It also states that workspace is optional when only one workspace exists. There is no explicit when-not guidance (e.g. image vs video, or duplicate registration), which keeps it below a 5.

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

anomaly_checkAnomaly checkA
Read-only
Inspect

Anomalie-Check der letzten N Tage über alle verbundenen Quellen des Workspace: Google Ads, GA4, Search Console und (nur mit include_clarity=True) Clarity — läuft auch ohne Google-Ads-Konto. Rückgabe: findings[{severity critical|warn|info, check, source google_ads|ga4|search_console|clarity, message}], ok, daily (Google-Ads- Tagesreihe [{date, cost_eur, clicks, conversions}]; [] ohne Google Ads), sources{: {status checked|not_connected|not_permitted|skipped|error, days_with_data, last_data_date, daily, note, …}}. ok = kein warn-/critical-Finding UND mindestens eine Quelle checked (info-Findings lassen ok unberührt). Keine Quelle verbunden → {error: no_sources, hint}. Zugänge mit eingeschränkten Datenquellen bekommen nur freigeschaltete Quellen ausgewertet (übrige: not_permitted). Fällt eine Quelle aus (API-Fehler, Verbindung abgelaufen, unerwarteter Fehler), laufen die anderen weiter: sources..status=error mit Fehler-Dict der Quelle plus Finding sources_unavailable (warn) — nie ein Fehler-Dict fürs ganze Tool, solange eine Quelle verbunden ist. Google Ads (Fenster bis gestern, heute nicht enthalten): conversions_zero (≥3 Tage mit Kosten seit der letzten Conversion; Tage ohne Kosten unterbrechen die Serie nicht, critical), cost_spike (gestern >2,5× Ø der Vortage), cost_drop_to_zero (gestern 0 trotz sonst täglicher Ausgaben), clicks_no_conversions (≥50 Klicks, 0 Conversions), ctr_drop (CTR letzte 3 Tage <50 % der Vorperiode), ads_no_data (info: keine Tageszeile). Conversions = primäre Aktionen — Konten mit nur sekundären Aktionen lösen conversions_zero aus (ads_conversion_performance). GA4 (sessions + keyEvents je Tag, Fenster bis gestern; GA4 liefert keine Zeilen für Tage ohne Sitzungen): sessions_drop_to_zero (Kalender-Gestern ohne Sitzungen, obwohl an mehr als der Hälfte der Tage davor Sitzungen liefen — warn, wenn nur gestern fehlt: GA4 verarbeitet bis zu 24–48 h nach, morgen erneut prüfen; critical ab 2 Tagen Lücke oder bei ausdrücklich 0 Sitzungen), sessions_drop (Ø letzte 3 Datentage <50 % der Datentage davor, erst ab Ø 5 Sitzungen/Tag; entfällt neben sessions_drop_to_zero), key_events_zero (≥3 Datentage in Folge Sitzungen ohne Key Event, davor gab es welche), key_events_none (info: im ganzen Fenster keine Key Events), sessions_spike (info: letzter Datentag >2,5× Ø), ga4_no_data (keine Sitzungen im Fenster). Findings nennen das Datum bzw. den letzten Datentag. Search Console (clicks + impressions je Datentag; Daten kommen 2–3 Tage verzögert, Fenster days+3; fehlende letzte Tage sind NICHT 0 und werden nicht bewertet, nur vorhandene Datentage): sc_clicks_drop / sc_impressions_drop (Ø letzte 3 Datentage <50 % der Vorperiode; Impressionen = Indexierungs-/Sichtbarkeitsproblem), sc_no_recent_data (letzter Datentag >5 Tage her oder keine Daten). „Gestern" ist bei Google Ads und GA4-sessions_drop_to_zero das Kalender-Gestern (fehlende Tage = 0 — morgens kann das der noch unverarbeitete Vortag sein); alle übrigen GA4- und Search-Console-Checks rechnen mit Datentagen, der letzte Datentag steht im Finding. Clarity (nur include_clarity=True, weil Clarity 10 Aufrufe je Projekt und Tag erlaubt; letzte 72 h, unabhängig von days): info-Findings js_errors_high (>5 % der Sitzungen mit JavaScript-Fehler), dead_clicks_high (>20 %), rage_clicks_high (>5 %) — Heuristik-Schwellen; warn-Findings clarity_no_data (keine einzige Sitzung in 72 h: Snippet prüfen) und clarity_metrics_unreadable (Kennzahl ohne lesbaren Anteil, steht in unreadable_metrics — nichts gilt still als 0). sources.clarity.metrics zeigt je Kennzahl Anteil (_pct), betroffene Sitzungen (_sessions) und Vorkommen (_count). Dieses Tool bewertet nur; Gesamtzahlen liefern ads_campaign_performance, ga4_report und sc_performance(dimensions=[]). days: Fensterlänge in Tagen (Default 14; Mindestlänge für 3-Tage-Vergleiche: 6). include_clarity: Clarity-Abfrage einschließen (verbraucht 1 der 10 Tagesaufrufe). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo
include_clarityNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say readOnly/openWorld; the description goes far beyond by disclosing partial-failure semantics (per-source status=error plus a sources_unavailable warning, never a whole-tool error while one source is connected), permission-scoped sources reporting not_permitted, and the no-sources error shape. It also defines exactly when `ok` is true (no warn/critical AND at least one source checked, info findings neutral).

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

Conciseness3/5

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

The purpose and return shape are front-loaded, but the body is a dense multi-hundred-word run-on without headings or line breaks, cataloguing every individual check and threshold. Much of it is genuinely useful for interpreting findings, but the volume and lack of structure make it hard to scan.

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?

Despite an output schema existing, the description covers the return contract (findings fields, ok, daily, per-source status enum incl. not_connected/not_permitted/skipped/error), time-window caveats (lagging Search Console data, GA4 24–48h processing), and the evaluation thresholds. Nothing an agent needs in order to call and interpret it is missing.

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

Parameters5/5

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

Schema coverage is 0% and the schema carries only types/defaults, yet the description documents all three parameters: days (default 14, minimum 6 for the 3-day comparisons), include_clarity (costs one of ten daily Clarity calls), and workspace (slug, optional when only one workspace exists). This fully compensates for the missing 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?

States a precise verb+resource: an anomaly check over the last N days across all connected workspace sources (Google Ads, GA4, Search Console, optionally Clarity), including the notable case that it works without a Google Ads account. It explicitly distinguishes itself from siblings: "Dieses Tool bewertet nur; Gesamtzahlen liefern ads_campaign_performance, ga4_report und sc_performance(dimensions=[])."

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?

Names the alternatives (ads_campaign_performance, ga4_report, sc_performance) and the condition separating them (raw totals vs. evaluation), and explains when to set include_clarity (rate-limited budget of 10 calls/project/day). It also gives the minimum window needed for 3-day comparisons (days ≥ 6), which is real usage guidance.

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

bing_crawl_issuesBing Webmaster: Crawl issuesB
Read-only
Inspect

URLs, bei denen Bingbot Probleme hatte: url, http_code, issues (code_301, code_302, code_4xx, code_5xx, blocked_by_robots_txt, contains_malware, important_url_blocked_by_robots_txt, dns_errors, timeout_errors), inbound_links (wie viele Links auf die kaputte URL zeigen — hoch = zuerst beheben). by_issue zählt je Problemart. limit: max. Zeilen (Standard 200). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

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 and openWorldHint=true, so the safety profile is covered. The description adds the default row cap (200) and the workspace-optional rule, but says nothing about ordering, whether results are per-site or per-workspace, rate limits, or how the issue list is aggregated in by_issue.

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

Conciseness3/5

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

It is front-loaded with the resource definition and the prioritization hint, which earns its place. However, the long enumeration of issue codes duplicates what the existing output schema already provides, making the block denser than necessary; the German text also sits oddly against otherwise English tooling.

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 two-parameter, read-only report with an output schema present, most fundamentals are covered. The notable gaps are which site/domain is being reported on (only workspace is discussed) and whether the limit truncates silently or reports a total, which matters for an agent deciding how many calls to make.

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 0%, so the description carries the burden and largely does: it states limit is the maximum number of rows with a default of 200, and that workspace is an optional customer-workspace slug when only one workspace exists. Both parameters get meaning the bare schema lacks; only the valid range/ceiling for limit is unstated.

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 identifies a specific resource: URLs on which Bingbot encountered problems, plus the exact issue categories returned (4xx, 5xx, robots-blocked, malware, DNS, timeout). That is far more concrete than a restatement of the name. It never names a sibling, though, so the boundary against bing_crawl_stats or bing_url_info must be inferred.

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?

There is no explicit when-to-use or when-not-to-use statement and no alternative is named. The one actionable cue is 'inbound_links ... hoch = zuerst beheben', which implies a prioritization workflow but leaves the choice against sibling tools (bing_crawl_stats, bing_url_info, dfs_onpage_crawl) to the agent.

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

bing_crawl_statsBing Webmaster: Crawl statsA
Read-only
Inspect

Wie Bingbot die Website crawlt, je Tag: crawled_pages, in_index (Seiten im Bing-Index), crawl_errors, inbound_links, HTTP-Codes (code_2xx, code_301, code_302, code_4xx, code_5xx, other_codes), blocked_by_robots_txt, connection_timeout, dns_failures, contains_malware. latest = jüngster Tag. days: die letzten N Tage (Standard 30); date_from/date_to ('YYYY-MM-DD') gehen vor. Einzelne fehlerhafte URLs: bing_crawl_issues. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
date_toNo
date_fromNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered; the description adds real context on top: 'latest = jüngster Tag', the 30-day default, the precedence of explicit date bounds over days, and that workspace is optional when only one workspace exists. It omits nothing critical, though it says nothing about rate limits or data freshness lag beyond 'latest'.

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?

Front-loaded with the core purpose, then parameters, then the alternative tool – a sensible order with no filler sentences. The long metric enumeration is somewhat redundant given an output schema exists, but it doubles as a signal of what the report covers.

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

Completeness4/5

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

For a read-only reporting tool with four optional parameters, the description covers scope, time-window semantics, workspace scoping, and the alternative tool for a neighbouring need. With an output schema present, return-shape explanation is unnecessary, so what remains missing is minor.

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 0%, so the description carries the full burden and mostly does: it defines days as 'die letzten N Tage (Standard 30)', gives the 'YYYY-MM-DD' format and precedence rule for date_from/date_to, and explains workspace as the client slug that is optional for single-workspace accounts. All four parameters gain meaning beyond the bare schema types.

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

Purpose5/5

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

States a specific verb and resource ('Wie Bingbot die Website crawlt, je Tag') and enumerates the exact per-day metrics returned, so an agent knows precisely what data this yields. It also names the sibling bing_crawl_issues for a related but distinct need, separating the two without opening either schema.

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?

Gives concrete selection guidance: use days for the last N days, but date_from/date_to take precedence, and route to bing_crawl_issues for individual faulty URLs. It does not contrast with adjacent report tools like bing_traffic or bing_top_pages, so the routing picture is clear but not exhaustive.

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

bing_keyword_researchBing Webmaster: Keyword researchA
Read-only
Inspect

Suchvolumen aus Bing (kostenlos, ohne DataForSEO): Impressionen eines Keywords in der Bing-Suche. Ohne related: Verlauf der letzten ~6 Monate (history je Woche: impressions = genau dieses Keyword, broad_impressions = inkl. Varianten; Wochen ohne Suchen fehlen) plus total_impressions. related=true: verwandte Keywords mit impressions/broad_impressions über die letzten days Tage, nach Volumen sortiert. country: Ländercode klein (at, de, ch, us …); language: z. B. de-AT, de-DE, en-US. Bing-Volumen ist deutlich kleiner als Google-Volumen — für Größenordnungen und Vergleiche zwischen Keywords nutzen, nicht als Google-Ersatz. Österreich ist in Bing sehr klein (oft 0–5 Impressionen im halben Jahr); für deutsch- sprachige Keywords country='de', language='de-DE' als Orientierung nehmen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
countryNoat
keywordYes
relatedNo
languageNode-AT
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuine behavioral context beyond that: weekly history granularity, weeks without searches are missing, related results are sorted by volume, and the data is often sparse. It 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 purpose and mode distinction are front-loaded, followed by parameter hints and regional caveats. It is fairly long but each clause adds actionable detail; no sentence is pure 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?

With an output schema present, return-shape details are not required, and annotations cover safety. The description supplies the data-source quirks (missing weeks, small volumes) and regional defaults that an agent needs to call this correctly, making it nearly 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 description coverage is 0%, so the description must carry the parameter burden, and it largely does: it explains country codes, language tags, related mode, the workspace slug, and how days applies to related results. The only mild gap is whether days also affects the history mode, which reads as fixed at ~6 months.

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

Purpose4/5

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

The description states a specific verb (keyword research) and resource (Bing search impressions for a keyword) and explains both modes: history of the last ~6 months and related-keyword volume. It distinguishes itself from DataForSEO and Google volume, though it does not explicitly name the sibling dfs_keyword_volume as the 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?

It gives explicit usage guidance: use for magnitude and comparison between keywords, not as a Google replacement; for German-language keywords prefer country='de', language='de-DE' because Austria is tiny on Bing. It also signals that this is the free, non-DataForSEO option, effectively routing the agent among alternatives.

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

bing_list_sitemapsBing Webmaster: List sitemapsB
Read-only
Inspect

Bei Bing eingereichte Sitemaps und Feeds der Website: url, type, status, submitted, last_crawled, url_count. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile and external-network dependency are covered structurally; the description does not contradict them. It adds only mild scope detail (that feeds as well as sitemaps are included and that results are per-website), but says nothing about pagination, limits, or what happens when no sitemaps exist.

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?

Two compact lines with the purpose front-loaded and the parameter note second; nothing is padded. The telegraphic style (bare field list, no verb in the first clause) slightly reduces readability but wastes no tokens.

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?

An output schema exists, so return values need not be explained, and the single parameter is documented. The remaining gap is routing: with many adjacent Bing/Search Console sitemap and site tools, an agent gets no signal about which one to pick for viewing versus submitting versus removing sitemaps.

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 0%, so the description must carry the burden, and it does: it identifies the parameter as a customer workspace slug and states it is optional when only one workspace exists. That gives format and a default condition the bare schema lacks, though it omits how to discover the slug (e.g., list_workspaces).

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

Purpose4/5

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

The description names the resource precisely (sitemaps and feeds submitted to Bing for the site) and even enumerates the visible fields (url, type, status, submitted, last_crawled, url_count). It does not explicitly distinguish itself from siblings such as sc_list_sitemaps (Search Console) or bing_submit_sitemap/bing_remove_sitemap, leaving that separation to the tool name.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusion criteria, and no pointer to the obvious alternatives (bing_submit_sitemap to add a sitemap, sc_list_sitemaps for the Google equivalent). The only conditional statement concerns the workspace parameter, not tool selection.

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

bing_list_sitesBing Webmaster: List sitesA
Read-only
Inspect

Websites des verbundenen Bing-Webmaster-Kontos: site_url, verified (nur bestätigte Websites liefern Daten), selected (die im Workspace gewählte). Guter erster Aufruf, wenn ein anderes bing_*-Tool 'site_not_authorized' meldet. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: only verified sites return data, and the selected flag reflects the workspace choice — both non-obvious facts an agent must know before passing site identifiers to other bing_* tools.

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?

Three dense sentences with no filler, and the field semantics are front-loaded ahead of the recovery hint. The telegraphic 'site_url, verified (...)' style is efficient but slightly terse 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?

An output schema exists, so return-value explanation is not required, yet the description still prepares the agent for the verified/selected fields. For a zero-required-parameter read tool, nothing essential is missing; only the workspace-slug format and multi-workspace ambiguity are left implicit.

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 0%, so the description carries the full burden, and it does explain the single parameter: workspace is the customer workspace slug and is optional when only one workspace exists. That is exactly the missing semantic. It stops short of 5 only because the format of the slug is not illustrated.

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?

Names the concrete resource (the connected Bing Webmaster account's websites) and enumerates the returned fields (site_url, verified, selected), so the agent knows exactly what it retrieves. The verb 'list' is inherited from the title rather than restated, but the noun phrase plus field list makes the operation unambiguous against the many ads_*/ga4_* list tools.

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

Usage Guidelines4/5

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

Gives an explicit trigger condition: a good first call when another bing_* tool returns 'site_not_authorized'. That routes the agent strongly. It does not name a specific alternative or a when-not case, which keeps it 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.

bing_remove_sitemapBing Webmaster: Remove sitemapA
Destructive
Inspect

Sitemap aus Bing Webmaster Tools entfernen und zurücklesen (verified = steht danach nicht mehr in bing_list_sitemaps). Die Seiten bleiben im Index. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
sitemap_urlYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/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 is not carrying the safety burden alone. It still adds real value by disclosing that the tool reads back the result ('verified = steht danach nicht mehr in bing_list_sitemaps') and that URLs stay in the index, which is exactly the non-obvious side effect an agent needs.

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?

Three short sentences with the action and verification behavior front-loaded and the parameter note last. Little waste, though the parenthetical aside breaks the flow slightly.

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 output schema exists, so return values need no explanation, and the description covers side effects and the optional workspace. It omits what happens on failure (sitemap not found) and whether the sitemap must already exist, which matters for a destructive tool with required params.

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 0%, so the description must carry parameter meaning. It documents the workspace parameter well (slug, optional when only one workspace exists) but says nothing about sitemap_url's expected format, beyond the self-explanatory name and the fact that it identifies the sitemap to remove.

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 gives a specific verb and resource (remove sitemap from Bing Webmaster Tools) and explicitly names the sibling bing_list_sitemaps as the way to verify removal. An agent can distinguish this from bing_submit_sitemap and bing_list_sitemaps without opening either schema.

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?

'Die Seiten bleiben im Index' implies this is purely a sitemap-registration removal, not a deindexing action, which helps set expectations. However, it never states when an agent should choose this over bing_submit_sitemap or what precondition must hold (the sitemap must already be submitted). Usage is implied rather than spelled out.

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

bing_submit_sitemapBing Webmaster: Submit sitemapAInspect

Sitemap bei Bing einreichen und zurücklesen (verified = steht danach in bing_list_sitemaps). sitemap_url: vollständige URL auf der Workspace-Website, z. B. https://example.at/sitemap.xml. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
sitemap_urlYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, so the mutation/external-call profile is known. The description adds genuine value by disclosing that propagation is asynchronous and confirmable via bing_list_sitemaps. It says nothing about required Bing verification/API-key preconditions or failure modes, which would matter for a remote submission tool.

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?

Three compact clauses with no filler; the action and its verification path come first, then the two parameter explanations. Slight awkwardness from the parenthetical nesting, but nothing is wasted.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the description instead covers the two parameters and the post-condition. For a two-parameter mutation tool this is nearly complete; the only gap is missing site-verification preconditions.

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 0%, so the description carries the burden and does so: sitemap_url is defined as a full URL on the workspace website with a concrete example, and workspace is defined as the customer slug that is optional when only one workspace exists. Optionality and format are both clarified beyond the bare schema types.

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?

States a specific verb and resource (submit a sitemap to Bing) and immediately explains the read-back consequence, which differentiates it from sibling bing_list_sitemaps and bing_remove_sitemap. It does not explicitly contrast with bing_submit_urls, but the resource (sitemap vs URL) is 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?

Usage is implied through the verification note ('verified = steht danach in bing_list_sitemaps'), which gives a workflow hint about how to confirm success. There is no explicit when-not guidance, no mention of prerequisites such as site verification, and no routing advice toward sc_submit_sitemap or bing_submit_urls.

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

bing_submit_urlsBing Webmaster: Submit urlsAInspect

URLs bei Bing zur (Neu-)Indexierung einreichen — über das Bing-Konto, mit Tageskontingent. Prüft vorher das Kontingent und meldet quota_before/ quota_after {daily, monthly}; reicht es nicht, wird nichts eingereicht (quota_exceeded). Alle URLs müssen zur Workspace-Website gehören, max. 500. Ohne Kontingent und ohne Bing-Konto geht site_indexnow_submit (IndexNow) — das erreicht Bing ebenfalls, erscheint aber nicht unter „URL-Übermittlung“ in Bing Webmaster Tools. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlsYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false / openWorldHint=true / destructiveHint=false; the description adds the important behavior that the quota is checked first and that nothing is submitted on quota_exceeded — atomicity an agent must know about. It also discloses the quota_before/quota_after reporting, though that partly duplicates the output schema.

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

Conciseness4/5

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

Front-loaded with the action and quota mechanism, then constraints, then the alternative. The IndexNow digression is longer than strictly necessary but does carry decision-relevant information, so little is wasted.

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 2-parameter, open-world write tool with an output schema, the description covers prerequisites, quota behavior, limits, and the fallback path. It stops short of stating what account/permission setup is required (e.g. how the Bing account is linked to the workspace) or what happens to invalid URLs within the batch.

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 0%, so the description must compensate, and it does: it constrains 'urls' (must belong to the workspace website, max 500) and explains 'workspace' (customer workspace slug, optional when only one workspace exists). It does not specify URL format (absolute vs. relative) or duplicate handling, so not a 5.

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

Purpose5/5

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

States a specific verb and resource ('URLs bei Bing zur (Neu-)Indexierung einreichen') and immediately qualifies the mechanism (via Bing account, with daily quota). It is clearly distinguishable from bing_submit_sitemap and from site_indexnow_submit, which it names explicitly.

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?

Gives an explicit alternative with the exact condition that selects it: 'Ohne Kontingent und ohne Bing-Konto geht site_indexnow_submit (IndexNow)', including the trade-off (won't appear under 'URL-Übermittlung' in Bing Webmaster Tools). It also states hard preconditions (URLs must belong to the workspace site, max 500).

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

bing_top_pagesBing Webmaster: Top pagesA
Read-only
Inspect

Top-Seiten der Website in der Bing-Suche über den Zeitraum zusammengefasst: page, clicks, impressions, ctr_pct, avg_position, avg_click_position, sortiert nach Klicks. Gesamtzahlen der Website: bing_traffic. query: optional nur die Seiten, die für diese Suchanfrage erschienen. limit: max. Zeilen (Standard 50, höchstens 1000). days: die letzten N Tage bis heute (Standard 90); date_from/date_to ('YYYY-MM-DD', inklusiv) gehen vor, max. 365 Tage. Bing liefert die Suchdaten als WOCHENWERTE (eine Zeile je Woche, Feld date = Wochenstempel) — der Zeitraum greift auf ganze Wochen, kurze Zeiträume unter 7 Tagen sind oft leer. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
queryNo
date_toNo
date_fromNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld annotations by disclosing the non-obvious weekly aggregation model (one row per week, date = week stamp), that the range snaps to whole weeks, that periods under 7 days are often empty, and the 365-day/1000-row ceilings. These are exactly the traits that cause wrong calls if unknown.

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?

Front-loads what the tool returns before the parameter notes, and each clause carries information. It is dense (one compressed paragraph) with no wasted sentences, though the field enumeration partially duplicates what the output schema already provides.

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?

An output schema exists, so return values are covered, and the description still adds the weekly-granularity caveat that shapes interpretation of results. For a read-only analytics call with zero required params, nothing an agent needs to invoke or read the result correctly is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description fully carries the burden and does: defaults and caps for limit (50/1000) and days (90/365), the inclusive 'YYYY-MM-DD' format and precedence for date_from/date_to, the filtering meaning of query, and the workspace slug behavior when only one workspace exists. All six parameters gain meaning beyond the bare schema types.

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?

Names a specific resource and scope ('Top-Seiten der Website in der Bing-Suche über den Zeitraum zusammengefasst') and enumerates the returned fields (clicks, impressions, ctr_pct, avg_position), plus the sort order. It explicitly contrasts itself with bing_traffic for site-wide totals, so an agent can separate it from that sibling without opening a schema.

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?

Gives explicit routing to bing_traffic for site totals and explains when the query parameter narrows results ('nur die Seiten, die für diese Suchanfrage erschienen'). It also documents the precedence of date_from/date_to over days. No exclusion against bing_top_queries or a statement of when page-level data is the wrong choice, 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.

bing_top_queriesBing Webmaster: Top queriesA
Read-only
Inspect

Top-Suchanfragen der Website in Bing über den Zeitraum zusammengefasst: query, clicks, impressions, ctr_pct, avg_position (nach Impressionen gewichtet) und avg_click_position, sortiert nach Klicks. row_count = Anzahl aller Suchanfragen, total_listed = Summe der gelieferten Zeilen (NICHT die Website-Summe — die liefert bing_traffic). page: optional nur die Suchanfragen, über die diese URL gefunden wurde. limit: max. Zeilen (Standard 50, höchstens 1000). days: die letzten N Tage bis heute (Standard 90); date_from/date_to ('YYYY-MM-DD', inklusiv) gehen vor, max. 365 Tage. Bing liefert die Suchdaten als WOCHENWERTE (eine Zeile je Woche, Feld date = Wochenstempel) — der Zeitraum greift auf ganze Wochen, kurze Zeiträume unter 7 Tagen sind oft leer. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
pageNo
limitNo
date_toNo
date_fromNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, it discloses a non-obvious behavioral trait: Bing returns weekly-granularity rows, the range snaps to whole weeks, and sub-7-day windows are often empty. This materially affects invocation and is not derivable from structured fields.

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?

Dense but front-loaded with the returned fields and ordering, then parameters in a logical order. Every sentence carries information; slightly long, but little waste given the parameter documentation it must supply.

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?

Even though an output schema exists, the description enumerates the returned columns and notes row_count vs total_listed semantics, plus all parameter behavior. Nothing an agent needs to call it correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries full burden and does so: days (default 90), limit (default 50, max 1000), date_from/date_to with YYYY-MM-DD inclusive format and 365-day cap plus precedence over days, page URL scoping, and workspace optionality. Every one of the 6 parameters is given meaning beyond the bare 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?

States a specific verb+resource (top search queries for the website in Bing) with an explicit metric list and sorting, and explicitly distinguishes itself from bing_traffic by noting row_count is not the website total. An agent can tell it apart from bing_top_pages and bing_traffic without opening either schema.

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?

Gives clear context for parameters (page filters to queries that surfaced this URL; short ranges under 7 days often empty due to weekly data) and routes the agent to bing_traffic for site totals. Lacks exhaustive when-to-use-vs-siblings guidance for bing_top_pages, but the primary alternative is named.

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

bing_trafficBing Webmaster: TrafficA
Read-only
Inspect

Klicks und Impressionen der Website in der Bing-Suche im Zeitverlauf (rows je Datum) plus Summe (total mit ctr_pct). Das ist der Weg zu den KORREKTEN Gesamtzahlen — die Summe über bing_top_queries ist kleiner, weil Bing nur die Top-Suchanfragen einzeln liefert. days: die letzten N Tage bis heute (Standard 90); date_from/date_to ('YYYY-MM-DD', inklusiv) gehen vor, max. 365 Tage. Bing liefert die Suchdaten als WOCHENWERTE (eine Zeile je Woche, Feld date = Wochenstempel) — der Zeitraum greift auf ganze Wochen, kurze Zeiträume unter 7 Tagen sind oft leer. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
date_toNo
date_fromNo
workspaceNo

Output Schema

NameRequiredDescription

No output 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 and openWorldHint, so safety is covered. The description adds non-obvious behavior beyond that: Bing returns weekly aggregates stamped with a week date, ranges snap to whole weeks, and short windows come back empty — a real trap an agent would otherwise fall into. Minor gap: no note on pagination or latency.

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?

Front-loaded with the returned data shape, then parameter guidance, then the weekly caveat — a sensible order. It is dense but nearly every clause adds operational value; the capitalized 'KORREKTEN' emphasis is slightly informal but harmless.

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

Completeness5/5

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

With an output schema present, the description needn't detail return fields, yet it still sketches rows/total/ctr_pct. Combined with the date-range and weekly-granularity caveats, an agent can call this correctly on the first attempt.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: days default 90, date_from/date_to as inclusive YYYY-MM-DD with precedence over days and a 365-day max, and workspace as an optional slug when only one workspace exists. All four parameters are explained with semantics the schema lacks.

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

Purpose5/5

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

The description names the specific metrics (clicks, impressions over time), the row grain (one row per date), and the totals row with ctr_pct. It explicitly contrasts itself with the sibling bing_top_queries, explaining why this tool yields the correct aggregate numbers.

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 states when to use this tool rather than bing_top_queries ('die Summe über bing_top_queries ist kleiner'), plus practical guardrails: weekly aggregation, sub-7-day ranges often empty, date_from/date_to overriding days, and the 365-day cap. This is exactly the routing information an agent needs.

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

bing_url_infoBing Webmaster: URL infoA
Read-only
Inspect

Index-Status einer einzelnen URL in Bing: http_status beim letzten Crawl, discovered, last_crawled (fehlt = nie gecrawlt), document_size_bytes, anchor_count, child_url_count; traffic {clicks, impressions} falls vorhanden. url: vollständige URL auf der Workspace-Website. Nicht indexiert oder veraltet: bing_submit_urls. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

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 openWorldHint=true, so safety is covered; the description adds genuinely non-obvious behavior: a missing last_crawled means the URL was never crawled, and traffic metrics are only present if available. It does not say what happens for a URL outside the workspace site or how errors surface, which keeps it below 5.

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

Conciseness5/5

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

Front-loaded with the core resource, then field semantics, then the sibling redirect, then parameter notes. It is dense but every clause carries information an agent needs for selection; nothing is filler prose.

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?

An output schema exists, so the mid-sentence enumeration of returned fields is partly redundant, and the description is otherwise complete for a two-parameter read tool: it covers the resource, the fallback action, and both parameters. The only gap is edge-case behavior for unknown/out-of-scope URLs.

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 0%, so the description carries the full burden and largely does: url is scoped to a full URL on the workspace website, and workspace is the client slug, optional when the account has a single workspace. It stops short of specifying URL format constraints (scheme, trailing slash) or the behavior when workspace is omitted and multiple workspaces exist.

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

Purpose5/5

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

The description states a precise verb+resource: it returns Bing index status for one specific URL, and it enumerates the exact signals returned (crawl status, last_crawled, anchor_count, traffic). It also explicitly separates itself from bing_submit_urls, so the agent can distinguish indexed-status reading from (re)submission without opening either schema.

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 names a concrete alternative and the condition that selects it: 'Nicht indexiert oder veraltet: bing_submit_urls.' That is real routing guidance rather than implication. What is missing is the reverse framing (when the agent should prefer this over bing_crawl_issues, bing_top_pages, or sc_url_inspection for the Google equivalent).

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

budget_pacingBudget pacingA
Read-only
Inspect

Budget-Pacing für den laufenden Monat: Ausgaben vs. erwartete Ausgaben pro Kampagne und gesamt, inkl. Monatsend-Projektion. Nur Google Ads. Meta: Budgets via meta_list_campaigns/meta_list_adsets, Ausgaben via meta_campaign_performance(daily=True) oder totals_only=True. Nur aktuell AKTIVE Kampagnen — pausierte fehlen in Spend und Totals (Gesamt- Monatsausgabe über ads_campaign_performance mit passendem days). Monat bis heute inkl. angebrochenem Tag; expected = Tagesbudget × Kalendertag; geteilte Budgets werden je Kampagne gezählt; Projektion linear. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses that only currently ACTIVE campaigns are counted, that paused campaigns silently drop out of both spend and totals, the workaround for getting the true monthly total, that the current partial day is included, that shared budgets are counted once per campaign, and that projection is linear. These are exactly the caveats an agent needs to avoid misreporting numbers.

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?

Front-loaded with the purpose, and nearly every clause carries operational information (definitions of expected, projection method, active-only caveat). It is dense and somewhat run-on, mixing Meta routing instructions into a Google Ads tool, which makes it harder to parse than a cleaner bulleted structure would be, but little is wasted.

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?

An output schema exists, so return formatting needn't be described. The description covers the calculation definitions, the data-completeness caveat, the cross-platform escape hatches, and the optional parameter — everything needed to call and interpret this 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?

Schema coverage is 0%, so the description must carry the burden — and it does, explaining that workspace is the customer workspace slug and that it may be omitted when only one workspace exists. That is the key semantic the bare schema lacks; only the accepted slug format is left implicit.

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

Purpose5/5

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

States a specific deliverable (budget pacing for the current month), the exact comparison it produces (spend vs. expected spend per campaign and in total, plus end-of-month projection), and the platform scope (Google Ads only). An agent can tell this apart from raw performance tools like ads_campaign_performance without opening any schema.

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 scopes usage to Google Ads and routes Meta users to concrete alternatives (meta_list_campaigns/meta_list_adsets for budgets, meta_campaign_performance with daily=True or totals_only=True for spend). It also warns that paused campaigns are excluded and points to ads_campaign_performance for full monthly totals. The only gap is that it never contrasts itself with the sibling ads_budget_status, which an agent could easily confuse it with.

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

clarity_get_insightsClarity: Get insightsA
Read-only
Inspect

Aggregierte Clarity-Insights (Sessions, Scroll Depth, Rage Clicks, ...) der letzten 1-3 Tage. Optional mit bis zu 3 Dimensionen: Browser, Device, OS, Country, Page, Source, Medium, Campaign. Achtung: Clarity erlaubt max 10 Requests/Tag pro Projekt. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
num_daysNo
workspaceNo
dimensionsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, so the description's job is to add operational context – and it does: a hard rate limit (max 10 requests/day per project), the limited retroactive data window (1-3 days), and a cap of 3 dimensions. What is missing is anything about how the aggregation is shaped or what happens when the quota is exhausted.

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?

Four short sentences, each earning its place: what the tool returns, which dimensions are allowed, the quota constraint, and the workspace parameter semantics. The rate-limit warning is appropriately front-and-center rather than buried.

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?

An output schema exists, so return shapes need not be described. Combined with the rate limit, the data window, and full parameter coverage, the agent has everything needed to call it correctly; only minor points such as default behavior for `num_days` are unstated.

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% schema description coverage the description has to carry the whole load, and it largely does: it documents the day window (1-3), the maximum of three dimensions with the exact allowed dimension names, and the workspace slug with its optional-when-single-workspace rule. Only the `num_days` default and the array item validation are left implicit.

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

Purpose4/5

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

The description names a specific verb and resource ('Aggregierte Clarity-Insights') and enumerates the metrics involved (Sessions, Scroll Depth, Rage Clicks), so the agent knows exactly what data it retrieves. It does not explicitly contrast itself with adjacent analytics tools such as ga4_report, leaving the purpose clear but not fully differentiated.

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?

It implies usage through the 1-3 day window and the optional dimension breakdown, and warns about the 10 requests/day cap, which is real guidance for calling it. There is no explicit statement of when to prefer this over GA4 or other analytics siblings, so the usage is only implied.

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

dfs_competitors_domainDataForSEO: Competitors domainA
Read-only
Inspect

Domains mit den meisten gemeinsamen organischen Keywords — SEO-Competitors ueber tatsaechliche Ranking-Ueberschneidung. location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
domainYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real behavioral value beyond that: errors return as a single-element list with named error types (api_error/task_error, dfs_timeout, dfs_unreachable) and the agent is told to check for 'error' before evaluating results. That is exactly the kind of failure-mode context annotations cannot carry.

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?

Four compact lines: purpose first, then parameter conventions, then error handling, then the workspace caveat. Nothing is redundant, and the most important sentence leads.

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

Completeness4/5

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

With an output schema present, return values need not be re-explained, and the error-handling line covers the main runtime failure mode. The gaps are minor but real: no hint about what 'limit' caps or whether results are ranked, which an agent would want when sizing a request.

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 0%, so the description must compensate. It does explain that location/language default from the workspace and follow the dfs_keyword_volume format, and that workspace is a client slug that is optional with a single workspace. But 'limit' (default 20) is never mentioned, and the cross-reference to another tool's format adds indirection rather than concrete syntax.

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?

States a specific result: domains sharing the most organic keywords with the input domain, based on actual ranking overlap. That is much clearer than the name alone. It does not, however, distinguish this from closely related siblings like dfs_domain_intersection or dfs_backlink_competitors, so an agent must still guess which one to pick.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no named alternative. The only conditional hint is that workspace is optional when only one workspace exists, which is a parameter note rather than usage routing. The agent is left to infer that this is the 'find SEO competitors' tool from the purpose line alone.

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

dfs_content_parsingDataForSEO: Content parsingA
Read-only
Inspect

Strukturierter Seiteninhalt (geparstes Markup statt Roh-HTML): Ueberschriften, Fliesstext-Absaetze, Link-Anzahl. Rueckgabe: headings[]{level, text}, paragraphs[], links_count, title (= erste erkannte Ueberschrift, NICHT das -Tag — dafuer dfs_onpage_instant). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds genuine behavioral context beyond that: the exact return shape and the non-obvious gotcha that 'title' is the first detected heading, not the HTML <title>. Missing are auth/rate-limit or failure-mode notes, which keeps it off a 5.

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

Conciseness4/5

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

Front-loaded with the core distinction (parsed markup vs raw HTML) before the return details, and every clause carries information. The long parenthetical about the title field makes one sentence dense and slightly harder to scan, but nothing is wasted.

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?

An output schema exists, so restating return fields is partly redundant, but the clarification of the ambiguous 'title' field is exactly the kind of thing a schema cannot convey. With only two params, readOnly/openWorld annotations, and this level of detail, an agent has enough to invoke it correctly; only the required 'url' semantics are unaddressed.

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 0%, so the description must carry parameter meaning. It does explain 'workspace' well ('Slug des Kunden-Workspace, optional bei nur einem Workspace'), but 'url' is left completely undocumented despite being the required parameter — no format, absolute-URL, or scope hints.

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

Purpose5/5

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

States a specific verb+resource ('Strukturierter Seiteninhalt ... geparstes Markup statt Roh-HTML') and enumerates what is extracted (headings, paragraphs, links_count). It explicitly differentiates from siblings dfs_raw_html and dfs_onpage_instant, so an agent can pick it without opening another schema.

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?

Names the alternative for one concrete case: 'title ... NICHT das <title>-Tag — dafuer dfs_onpage_instant'. That is a real routing instruction, but it only covers the title-tag case and gives no guidance on when to choose this over dfs_raw_html or dfs_onpage_crawl.

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

dfs_domain_intersectionDataForSEO: Domain intersectionA
Read-only
Inspect

Keyword-Ueberschneidung zweier Domains. intersections=False = Gap-Modus: Keywords, fuer die domain2 rankt, domain1 nicht. location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
domain1Yes
domain2Yes
languageNo
locationNo
workspaceNo
intersectionsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description's added value is the error contract: failures arrive as a one-element list with api_error/task_error, dfs_timeout, dfs_unreachable, and must be checked before evaluation. That is non-obvious behavior an agent would otherwise miss, though rate limits or result ordering are not mentioned.

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?

Front-loaded with the purpose, then mode semantics, then parameter defaults, then the error contract — a sensible ordering with no filler. The telegraphic, parameter-name-first phrasing is dense but each sentence carries information.

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

Completeness4/5

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

With a dedicated output schema, return values need not be described, and the error-shape disclosure plus workspace fallback rules cover the main stumbles for a 7-parameter, open-world read tool. The only real hole is the undocumented `limit` parameter.

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 0%, so the description must carry parameter meaning, and it covers the non-obvious ones: the `intersections` mode switch, workspace defaults for location/language, and the optional workspace slug. It says nothing about `limit` or about expected formats for domain1/domain2, leaving half the surface to inference.

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

Purpose4/5

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

The description names the specific operation (keyword overlap of two domains) and even explains the dual mode via `intersections`. It does not contrast itself with nearby siblings such as dfs_competitors_domain or dfs_keyword_ideas_for_domain, so an agent cannot rule those out from the text alone.

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 `intersections=False` gap-mode explanation gives real usage context, and the fallback rules for location/language (workspace default, format as in dfs_keyword_volume) are helpful. However there is no explicit guidance on when to prefer this tool over competing domain/keyword tools, so usage is only implied.

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

dfs_domain_technologiesDataForSEO: Domain technologiesA
Read-only
Inspect

Technologien auf der Domain: CMS, Analytics, Tag-Manager, Ad-Pixel, Payment, ... (flach als {Kategorie: [Namen]}). Relevant fuer Tracking-Audits (fehlendes GA4/GTM). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
domainYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful shape information (flat category→names map) but says nothing about cost/credit consumption — notable for a DataForSEO-backed call — nor about latency or whether results come from a cached index versus a live fetch. Adds some value, leaves real gaps.

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?

Three short lines with zero filler: what it returns, what it's for, and the one non-obvious parameter. Front-loaded with the resource. The telegraphic, ellipsis-heavy style is terse to the point of being slightly clipped, but nothing is wasted.

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?

An output schema exists so return values needn't be re-explained, and the read-only annotation covers safety. What's missing is the operational context an agent needs to call this wisely: whether the lookup costs DataForSEO credits, and how it differs from the GTM/WordPress tracking tools that also report tag presence.

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 0%, so the description must carry the burden — and it does explain 'workspace' as the customer-workspace slug, optional when only one workspace exists, which is exactly the ambiguity an agent would hit. 'domain' is left implicit but is self-evident from the tool's purpose. This is meaningful compensation for one of two parameters.

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?

States the resource concretely: the technologies detected on a domain, enumerated by category (CMS, Analytics, Tag-Manager, Ad-Pixel, Payment), plus the flat {Kategorie: [Namen]} result shape. It is clearly the only technology-detection tool among the siblings (which are crawl, backlink, keyword, ads, GTM, etc.), so an agent can distinguish it without opening the schema, though it never names a sibling for contrast.

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?

'Relevant fuer Tracking-Audits (fehlendes GA4/GTM)' gives one concrete use case, which implies when to reach for it, but there is no when-not guidance and no alternative tool named (e.g. gtm_container_info or wp_tracking_status for verified tag presence rather than detected scripts). Usage is inferable rather than prescribed.

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

dfs_google_ads_advertisersDataForSEO: Google ads advertisersA
Read-only
Inspect

Werbetreibende, die laut Google Ads Transparency Center fuer dieses Keyword Anzeigen schalten — Wettbewerbs-Ueberblick jenseits der aktuell aktiven SERP-Anzeigen. location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
keywordYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=true. The description adds useful behavioral context beyond that: location/language default from the workspace, workspace is optional when only one exists, and errors are returned as a one-element list that must be checked before evaluation.

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 front-loaded with the core purpose and then moves to defaults, error handling, and workspace semantics. It is somewhat dense, but each clause contributes operational information.

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

Completeness4/5

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

An output schema exists, so return values need not be explained. The description covers the required keyword, default location/language behavior, workspace selection, and error shape, leaving only minor format details implicit through the dfs_keyword_volume reference.

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 0%, so the description carries the burden. It explains all four parameters at a practical level: keyword scope, location/language defaults and format reference via dfs_keyword_volume, and workspace as an optional customer slug.

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

Purpose5/5

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

The description states a specific resource and source: advertisers running ads for a keyword according to the Google Ads Transparency Center. It also distinguishes the scope from 'aktuell aktiven SERP-Anzeigen', so an agent can tell this is a competitive transparency lookup rather than an active-SERP ad query.

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 first sentence gives a clear usage context: competitive overview beyond currently active SERP ads. It does not explicitly name the alternative sibling or say when not to use this tool, but the intended use case is clear.

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

dfs_historical_rank_overviewDataForSEO: Historical rank overviewA
Read-only
Inspect

Monatlicher organischer Sichtbarkeits-Verlauf einer Domain (Keyword-Anzahl, ETV, Positions-Buckets top3/top10) — zeigt Trend-Bruch nach Relaunch/Google-Update. location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
domainYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Goes well beyond the readOnly/openWorld annotations by documenting error semantics: failures arrive as a single-element list with api_error/task_error, dfs_timeout or dfs_unreachable, and must be checked before evaluating. It also discloses that location/language default from the workspace and that output format mirrors dfs_keyword_volume; cost/latency/task-polling behavior is not covered.

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?

Front-loads the purpose and metrics, then parameters, then the error contract — a sensible order with little waste. The formatting is terse note-style, which is dense but each line carries distinct information.

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

Completeness4/5

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

An output schema exists, so return values need not be spelled out, and the description still names the key metrics. Together with the error-handling and workspace-default notes, an agent has enough to call it correctly; only cost/timeout expectations for this paid external API are missing.

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 0%, so the description must carry the burden, and it does for three of four parameters: location/language default from the workspace, and workspace is a customer slug that may be omitted when only one workspace exists. Only 'domain' is left implicit, which is self-evident.

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?

Names a concrete resource and scope: the monthly organic visibility history of a domain, including keyword count, ETV and top3/top10 position buckets. This clearly separates it from one-shot ranking siblings like dfs_keyword_rankings or dfs_competitors_domain, though no sibling is named explicitly.

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?

Gives a clear use case — surfacing trend breaks after a relaunch or Google update — which tells the agent when this tool is the right pick. It stops short of stating exclusions or naming the alternative to use for other visibility questions.

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

dfs_keyword_ideas_for_domainDataForSEO: Keyword ideas for domainA
Read-only
Inspect

Welche Keywords koennte die Domain targeten (basierend auf Inhalten + Ranking-Historie)? location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
domainYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnly/openWorld, so the bar is lower, and the description adds real value beyond them: errors arrive as a single-element list with typed codes (api_error/task_error, dfs_timeout, dfs_unreachable) and must be checked before evaluation. It also discloses that location/language default from the workspace and that workspace is optional when only one exists. It says nothing about pagination or result volume, though an output schema exists.

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 purpose question is front-loaded, followed by tightly packed notes on locale defaults, error shape, and workspace scope. Every line carries information an agent needs; there is no filler. The mixed German/English is terse rather than verbose.

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, open-world lookup with an output schema, the description supplies the pieces an agent can't get from structured fields: locale inheritance, error-shape handling, and workspace scoping. The only material gap is the undocumented 'limit' parameter and any guidance on result size.

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 0%, so the description carries the burden. It explains location/language defaults and the workspace slug's optionality, and the domain parameter is self-evident from the name. However, the 'limit' parameter (default 50) is never mentioned, and neither is any format detail for location/language beyond a pointer to another tool.

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

Purpose4/5

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

The description states a specific analytical purpose: which keywords a domain could target, based on content plus ranking history. A verb-ish framing plus the method behind the result identifies it clearly against adjacent dfs tools. It stops short of naming the closest siblings (dfs_keyword_suggestions, dfs_related_keywords, dfs_keyword_overview), so the differentiation is inferential rather than explicit.

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

Usage Guidelines3/5

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

Usage is implied by the 'based on content + ranking history' framing, and 'Format wie bei dfs_keyword_volume' gives a useful cross-reference for output shape. But there is no explicit statement of when to prefer this over sibling keyword-research tools, and no exclusion criteria. It also gives a good operational guideline: check for 'error' before evaluating results.

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

dfs_keyword_overviewDataForSEO: Keyword overviewA
Read-only
Inspect

Volumen, CPC, Difficulty, Search-Intent + 12-Monats-Trend fuer eine Keyword-Liste (max 700). location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
keywordsYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the read-only and open-world profile, and the description adds genuinely useful behavior: the 700-keyword ceiling, workspace-defaulted location/language, and a precise error contract (single-element list with api_error/task_error, dfs_timeout, dfs_unreachable) that the agent must check before parsing. It stops short of mentioning cost, rate limits, or latency for what is an external paid API.

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?

Four short lines, each carrying distinct information: outputs and cap first, then defaults, then the error contract, then the workspace caveat. Nothing is redundant and the most important constraint 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?

With an output schema present, return values need not be described, and the remaining gaps an agent would hit — batch limits, defaults, error shapes, workspace optionality — are all covered. Only the location/language encoding and any cost/latency expectation are left implicit.

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 0%, so the description is the only source of parameter meaning — and it covers all four: keywords as a list with a 700-item cap, location/language inheriting workspace defaults, and workspace being optional when only one workspace exists. The location/language value format is offloaded to a sibling reference rather than spelled out, which keeps it from a 5.

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

Purpose4/5

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

The description names the exact metrics returned (volume, CPC, difficulty, search intent, 12-month trend) plus the input shape (keyword list, max 700), which is a clear verb+resource statement. It does not explicitly differentiate itself from dfs_keyword_volume or dfs_keyword_trends beyond referencing the former's output format.

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

Usage Guidelines2/5

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

There is no statement of when to choose this over dfs_keyword_volume, dfs_keyword_trends, or dfs_keyword_suggestions, all of which live in the same family. The only implicit guidance is the 700-keyword cap and the note that location/language default from the workspace, neither of which tells the agent when this tool is the right pick.

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

dfs_keyword_rankingsDataForSEO: Keyword rankingsA
Read-only
Inspect

Fuer welche Keywords rankt die Domain aktuell? (DataForSEO Labs) location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
domainYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds something the annotations cannot: failures arrive as a single-element list [{error,...}] with concrete error codes (api_error/task_error, dfs_timeout, dfs_unreachable) and an instruction to check for 'error' before evaluating results — genuinely useful runtime behavior.

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?

Front-loaded with the core question, followed by three terse operational notes; no filler. The telegraphic, abbreviation-heavy German style is efficient though slightly harder to parse ('pruefen' instead of 'prüfen').

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?

An output schema exists, so return values need not be described, and the error envelope plus workspace handling fill the main behavioral gaps. What remains missing for a 5-parameter read tool is any hint about result volume/pagination (limit) or how this differs from the historical rank sibling.

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 0%, so the description must carry parameter meaning. It explains workspace semantics (optional with a single workspace) and where location/language defaults come from, but says nothing about limit (max rows?) and explicitly punts the location/language format to dfs_keyword_volume instead of spelling it out.

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 opening question 'Fuer welche Keywords rankt die Domain aktuell?' is a specific verb+resource statement that tells an agent exactly what data comes back (current organic keyword rankings for a domain, DataForSEO Labs source). It does not, however, distinguish itself from nearby siblings such as dfs_historical_rank_overview or dfs_keyword_overview, leaving the boundary to be inferred.

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?

Some operational context is given: workspace is optional when only one workspace exists, and location/language default from the workspace. But there is no statement of when to prefer this over dfs_historical_rank_overview or dfs_serp_google_organic, and the 'Format wie bei dfs_keyword_volume' note is about parameter syntax rather than tool selection.

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

dfs_keyword_suggestionsDataForSEO: Keyword suggestionsA
Read-only
Inspect

Long-Tail-Keyword-Vorschlaege, die den Seed als Teilstring enthalten (breiter als dfs_related_keywords). location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
languageNo
locationNo
workspaceNo
seed_keywordYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered; the description goes beyond them by disclosing the error envelope (single-element list with api_error/task_error/dfs_timeout/dfs_unreachable) and instructing a pre-check for 'error'. That is exactly the kind of failure-mode context structured fields do not carry. It does not state rate limits, cost, or freshness of the SEO data, so it is not exhaustive.

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?

Front-loaded with the core semantics and then terse per-topic lines (location/language, errors, workspace) with no filler. The dense German telegraphic style packs a lot into few words, though the mid-sentence error-tuple enumeration slows reading slightly.

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?

An output schema exists, so return-value explanation is not required, and the description still adds the practically important failure shape. With 5 optional-ish parameters and only the limit left unaddressed, an agent has enough to call this correctly; covering limit's effect on result count would close the remaining gap.

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

Parameters3/5

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

Schema description coverage is 0%, so the description bears the full burden: it explains workspace (optional when only one workspace) and that location/language default from the workspace with the same format as dfs_keyword_volume. However, 'limit' (default 50) is never mentioned, and the location/language format is deferred to another tool's documentation rather than stated, leaving gaps for a 5-parameter tool.

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

Purpose5/5

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

States a specific resource and result set (long-tail keyword suggestions containing the seed as a substring) and immediately differentiates from the closest sibling by noting it is broader than dfs_related_keywords. An agent can distinguish this from the other dfs_keyword_* tools without opening a schema.

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 parenthetical 'breiter als dfs_related_keywords' gives a concrete selection criterion against the nearest alternative, and the error-checking instruction tells the caller how to handle results. It stops short of naming the case where the narrower sibling is preferred, so the routing guidance is directional rather than bilateral.

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

dfs_keyword_volumeDataForSEO: Keyword volumeA
Read-only
Inspect

Search Volume + CPC fuer eine Keyword-Liste (max 1000). Google Ads Daten. location/language: Default aus dem Workspace (Standard Austria/de); location als DataForSEO-Ortsname ('Austria' oder 'Salzburg,Salzburg,Austria'; Laendercode/ deutscher Name wie 'AT', 'Österreich', 'Deutschland', 'CH' geht auch), language als ISO-Code ('de', 'en') oder Sprachname ('German', 'Deutsch'); unbekannte Sprache -> Fehler invalid_language ohne Kosten. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
keywordsYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses the error envelope (a single-element list of {error, ...} with api_error/task_error, dfs_timeout, dfs_unreachable), instructs checking for 'error' before processing results, and notes that an unknown language fails as invalid_language without incurring cost. That cost and failure-mode disclosure is genuinely valuable. Minor remaining gap (no latency/rate-limit or per-request billing details) keeps it from a 5.

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

Conciseness4/5

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

Front-loaded with the core purpose and cap in the first line, then defaults, then error handling. Dense but every clause carries operational information. The mixed German/English phrasing and parenthetical asides add a little friction but don't waste space.

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 4-parameter read-only lookup with an output schema present, the description covers what the agent cannot infer: input bounds, default resolution, accepted value formats, and error shapes to screen for. Nothing needed to call it correctly is missing.

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

Parameters5/5

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

Critical, because schema description coverage is 0%. The description fully compensates: keywords is capped at 1000 items; location accepts DataForSEO location names, 'City,Region,Country' forms, ISO codes, and German country names; language accepts ISO codes or language names with a defined failure mode; workspace is a slug that is optional when only one workspace exists.

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?

Names a specific verb+resource: Search Volume and CPC for a keyword list (max 1000), sourced from Google Ads data. An agent can tell this is a bulk metrics lookup rather than research/ideas. It doesn't name sibling alternatives such as dfs_keyword_overview or dfs_keyword_suggestions to draw the boundary, which keeps it from a 5.

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

Usage Guidelines3/5

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

Usage is implied by the input shape (a keyword list in, metrics out) and the 1000-keyword cap clarifies the batch scenario, but there is no explicit 'use this instead of X when Y' guidance among the many dfs_keyword_* siblings. Defaults for location/language from the workspace is useful context but is parameter behavior, not when-to-use guidance.

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

dfs_lighthouse_liveDataForSEO: Lighthouse liveA
Read-only
Inspect

Vollständiger Google-Lighthouse-Audit (Performance, Accessibility, Best Practices, SEO). strategy: 'desktop' oder 'mobile'. Rückgabe: scores{performance, accessibility, best_practices, seo} (0–100), lcp_ms, cls, inp_ms.

LANGSAM: rendert die Seite komplett, dauert typisch 10–35 s. Sparsam und nur EINZELN einsetzen (nicht in Schleifen / nicht parallel für viele URLs), und dem Nutzer die Wartezeit ankündigen. Für Core Web Vitals (LCP/CLS/INP) und Performance-Score ist dies das einzige Tool; nur für Title/Meta/H1/Wortzahl/ OnPage-Score stattdessen dfs_onpage_instant (~1 s) nutzen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlYes
strategyNodesktop
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare readOnlyHint/openWorldHint; the description adds the operationally critical facts: full page render, typical 10–35 s latency, must be run serially, and the user should be told about the wait. These are exactly the behavioral traits an agent needs and that no structured field conveys.

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?

Front-loaded with what it does and returns, then latency warning, then the sibling routing rule, then the parameter note — a sensible priority order. Slightly dense in the middle, but no sentence is filler.

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 slow, open-world audit tool it covers purpose, latency risk, correct call pattern, alternative tool, and all parameters; the return fields are additionally previewed even though an output schema exists, so nothing operational is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the burden and does: it enumerates the valid values for strategy ('desktop' oder 'mobile') and explains workspace semantics (customer workspace slug, optional when only one workspace). Only url is left to self-evidence.

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

Purpose5/5

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

States a specific verb+resource (full Google Lighthouse audit) plus exactly which categories are covered (Performance, Accessibility, Best Practices, SEO). It explicitly contrasts itself with dfs_onpage_instant, so an agent can pick between them without opening a schema.

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?

Gives explicit when-to-use ('the only tool for Core Web Vitals and performance score'), when-not-to-use ('not in loops, not in parallel for many URLs'), and the named alternative for other jobs (dfs_onpage_instant, ~1 s). Nothing is left to inference.

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

dfs_llm_mentionsDataForSEO: LLM mentionsA
Read-only
Inspect

Wo/wie werden diese Keywords in KI-Antworten erwaehnt bzw. zitiert? platform: 'google' (Google AI Overview, Default) oder 'chat_gpt' — ein Call deckt genau eine Plattform ab; fuer beide zweimal aufrufen. Bei 'chat_gpt' liefert DataForSEO nur Daten fuer United States/Englisch, location/language werden dann automatisch auf 'United States'/'en' gesetzt (uebergebene Werte werden ignoriert). Max 10 Keywords pro Call. Pay-as-you-go (normaler DataForSEO-Zugang); bei 40204 strukturierter Hinweis statt Rohfehler. Rueckgabe: max. limit Zeilen, eine Zeile je (Prompt, Quelle): type='citation' mit url/domain/snippet, type='mention' (erwaehnt, aber ohne Link) mit url=None. location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable, invalid_platform) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
keywordsYes
languageNo
locationNo
platformNogoogle
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint, and the description goes well beyond that: chat_gpt data is US/English only and passed location/language values are silently ignored, payloads are capped at 10 keywords, billing is pay-as-you-go, and errors arrive as a one-element list [{error,...}] with named codes (api_error/task_error, dfs_timeout, dfs_unreachable, invalid_platform) that must be checked before evaluation. That is precisely the silent-override and failure-mode information an agent needs.

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?

No filler sentences — purpose, platform constraint, caps, billing, return shape, error handling, workspace — and the purpose question is front-loaded. It is however a dense block of transliterated German with several constraints stacked into one paragraph, which costs some scannability even though nothing is wasted.

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

Completeness5/5

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

For a read-only, open-world DataForSEO call with 6 undocumented parameters, the description covers cost, platform limits, parameter defaults, row-level return semantics and the error envelope — enough to invoke it correctly and to post-process the result. An output schema exists, so the fact that return values are only sketched rather than fully enumerated is not a gap.

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

Parameters5/5

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

Schema coverage is 0%, so the description must carry the burden and it does: 'limit' is explained as the max row count of the response, 'keywords' as capped at 10 per call, 'platform' as google (default, AI Overview) or chat_gpt with its US/English restriction, 'location'/'language' default to the workspace and follow dfs_keyword_volume's format, and 'workspace' is optional when only one workspace exists. Every one of the six parameters gets meaning the schema does not provide.

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 opening line gives a specific verb+resource combination ('Wo/wie werden diese Keywords in KI-Antworten erwaehnt bzw. zitiert?') and the return-format sentence pins down the unit of output (one row per prompt/source, citation vs mention). It is clearly distinguishable from generic SERP or keyword tools, though it never names the adjacent dfs_llm_mentions_metrics or dfs_llm_responses tools, so sibling disambiguation is left implicit.

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?

Explicit operational guidance: one call covers exactly one platform, so call twice for both; 'chat_gpt' is limited to United States/English with location/language auto-forced; max 10 keywords per call; pay-as-you-go with a structured hint on error 40204. It does not state when to prefer this over dfs_llm_mentions_metrics/dfs_llm_top_domains, which keeps it out of 5 territory.

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

dfs_llm_mentions_metricsDataForSEO: LLM mentions metricsA
Read-only
Inspect

Aggregierte KI-Erwaehnungs-Metriken fuer eine Keyword-Liste (max 10). platform: 'google' (Google AI Overview, Default) oder 'chat_gpt' — ein Call deckt genau eine Plattform ab; fuer beide zweimal aufrufen. Bei 'chat_gpt' liefert DataForSEO nur Daten fuer United States/Englisch, location/language werden dann automatisch auf 'United States'/'en' gesetzt (uebergebene Werte werden ignoriert). Rueckgabe: mentions_total, mentions_by_engine, citations_total (Summe der Mentions ueber die Quell-Domains), share_of_voice_by_engine (lokal berechnet: Anteil der Engine an allen Mentions, keine DataForSEO-Kennzahl — bei einer Plattform pro Call immer 1.0), top_source_domains. Pay-as-you-go (normaler DataForSEO-Zugang). location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als {error, ...} (api_error/task_error, dfs_timeout, dfs_unreachable, invalid_platform) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
keywordsYes
languageNo
locationNo
platformNogoogle
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, it discloses pay-as-you-go cost, the special chat_gpt US/English limitation, the fact that location/language are overridden for chat_gpt, locally calculated share_of_voice semantics, and expected error shapes. These details materially help an agent anticipate behavior.

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 dense but front-loads the core purpose and then adds only operationally relevant details. Despite its length, each sentence contributes useful context about platform behavior, return fields, parameter defaults, or error handling.

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?

Although an output schema exists, the description still explains the key return fields and the important locally calculated share_of_voice caveat. Combined with error handling guidance and parameter behavior, it is complete enough for an agent to call and interpret the tool correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, and it does: keywords are capped at 10, platform accepts google or chat_gpt with platform-specific behavior, location/language default from the workspace and follow dfs_keyword_volume format, and workspace is optional when only one workspace exists.

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

Purpose4/5

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

The description states a specific resource and operation: aggregated AI mention metrics for a keyword list capped at 10. It makes the tool understandable on its own, but it does not explicitly name sibling tools such as dfs_llm_mentions or dfs_llm_top_domains to sharpen differentiation.

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 gives clear operational guidance for the platform parameter: one call covers exactly one platform, and both platforms require two calls. It also notes the 10-keyword limit, but it does not explicitly describe when to use this metrics tool instead of a sibling mentions tool.

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

dfs_llm_responsesDataForSEO: LLM responsesA
Read-only
Inspect

Stellt einen Prompt direkt an ein LLM (ueber DataForSEO) und liefert den Antworttext zurueck. model: 'chatgpt' | 'claude' | 'gemini' | 'perplexity' — je Provider ein festes Modell (chatgpt=gpt-4o-mini, claude=claude-3-5-haiku, gemini=gemini-2.5-flash, perplexity=sonar; nicht waehlbar), im Bericht das konkrete Modell nennen. web_search: True schaltet die Websuche des Modells ein (hoehere Kosten); nur dann liefert die API zitierte Quellen. Default False = Antwort aus dem Modellwissen. Bei model='perplexity' wird web_search ignoriert — sonar sucht immer. Rueckgabe: model (Alias), prompt, answer_text, citations[]{url, domain, title}. citations sind nur mit web_search=True oder bei model='perplexity' zu erwarten; ohne Websuche bleibt die Liste bei chatgpt/claude/gemini immer leer — eine leere Liste ist dann kein Beleg fuer fehlende Sichtbarkeit. Auch mit Websuche koennen citations leer sein. Prompt max 500 Zeichen. Pay-as-you-go (normaler DataForSEO-Zugang). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
modelNochatgpt
promptYes
workspaceNo
web_searchNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the readOnly/openWorld annotations by disclosing cost behavior (pay-as-you-go, higher cost with web_search), a hard prompt limit of 500 characters, the fixed-model mapping per provider, and the perplexity override where web_search is ignored. It also warns that empty citations are expected without web search and must not be read as proof of missing visibility, which prevents a serious misinterpretation.

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?

Front-loaded with the core action, then layered by parameter and caveat; nearly every sentence adds operational value. It is somewhat dense in a single block, and the instruction to name the concrete model in the report is agent-guidance rather than tool semantics, but nothing is truly wasted.

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?

Covers what an agent needs to call it correctly: purpose, all four parameters, cost model, prompt length cap, provider quirks, and how to interpret citations. The return-field list duplicates the existing output schema, but that redundancy is harmless given how caveat-heavy the citation behavior is.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does so: model gets enum values plus the concrete underlying model per alias, prompt gets a 500-character limit, web_search gets default and cost semantics plus the perplexity exception, and workspace gets the slug meaning and its optionality condition.

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?

Names a specific verb and resource: it sends a prompt directly to an LLM via DataForSEO and returns the answer text. That clearly separates it from the metric-style LLM siblings (dfs_llm_mentions, dfs_llm_top_domains), though those siblings are never named as alternatives.

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

Usage Guidelines3/5

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

Usage guidance exists but is parameter-level rather than tool-level: web_search=True is indicated when cited sources matter, and workspace is described as optional with a single workspace. There is no explicit statement of when to use this tool versus dfs_llm_mentions or dfs_llm_mentions_metrics for visibility analysis.

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

dfs_llm_top_domainsDataForSEO: LLM top domainsA
Read-only
Inspect

Domains, die bei diesen Keywords am haeufigsten als Quelle in KI-Antworten zitiert werden (max 10 Keywords, limit intern auf max. 10 gedeckelt) — speist die Off-Site-Ziel-Liste im GEO-Audit. platform: 'google' (Google AI Overview, Default) oder 'chat_gpt' — ein Call deckt genau eine Plattform ab; fuer beide zweimal aufrufen. Bei 'chat_gpt' liefert DataForSEO nur Daten fuer United States/Englisch, location/language werden dann automatisch auf 'United States'/'en' gesetzt (uebergebene Werte werden ignoriert). Pay-as-you-go (normaler DataForSEO-Zugang). location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable, invalid_platform) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
keywordsYes
languageNo
locationNo
platformNogoogle
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare readOnly/openWorld, yet the description discloses rate/size caps (max 10 keywords, limit capped at 10), platform-specific data restrictions, silent overriding of location/language for chat_gpt, pay-as-you-go billing, and a full error envelope with named error codes (api_error, dfs_timeout, dfs_unreachable, invalid_platform) plus the instruction to check for 'error' before evaluating. That is substantial context beyond the annotations and consistent with readOnlyHint=true.

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?

Dense but front-loaded: what it returns, then platform behavior, then defaults, then error handling. Every line carries information, though the telegraphic line-broken style and mixed German/English key names add parsing friction for a mostly-English tool surface.

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 6-param, one-required-param read tool with an output schema, the description covers the gaps the schema cannot: platform semantics, per-platform data limits, defaults sourcing, billing model, and error shape. Return values are legitimately delegated to the output schema.

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

Parameters4/5

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

Schema coverage is 0% across 6 params, so the description must carry it — and it largely does: platform values and their behavior, location/language defaults plus a format pointer to dfs_keyword_volume, workspace's optionality when only one exists, and the 10-keyword input cap. It misses the `limit` discrepancy (schema default 20 vs. 'internally capped at 10'), which is exactly the kind of collision an agent needs resolved.

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?

States a concrete resource and outcome: the domains most frequently cited as sources in AI answers for a given keyword set, and ties it to a downstream use (the off-site target list in the GEO audit). The verb is implied rather than stated, and no sibling (e.g. dfs_llm_mentions, dfs_llm_responses, dfs_llm_mentions_metrics) is named for contrast, so it stops short of a 5.

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

Usage Guidelines4/5

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

Gives actionable routing rules: one call covers exactly one platform, so call twice for both, and 'chat_gpt' is restricted to US/English. It also caps keyword input at 10. What it lacks is explicit when-not guidance relative to the adjacent dfs_llm_* siblings, which an agent choosing between them would want.

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

dfs_onpage_crawlDataForSEO: On-page crawlAInspect

Startet einen asynchronen OnPage-Crawl einer Domain (max 1000 Seiten). Kosten fallen pro gecrawlter Seite auf dem DataForSEO-Konto des Kunden an — max_crawl_pages (Pflicht, kein Default) bewusst klein waehlen (z. B. 100). Crawl ohne JavaScript- Rendering (bei JS-Frontends fehlen nachgeladene Inhalte; einzelne Seiten gerendert prueft dfs_lighthouse_live). Liefert nur die task_id; Ergebnisse separat mit dfs_onpage_crawl_results abrufen (Minuten). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
targetYes
workspaceNo
max_crawl_pagesYes
respect_sitemapNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the cost model (per crawled page billed to the customer's DataForSEO account), the async/non-blocking nature, the max page cap, and that only a task_id is returned. These are exactly the operational traits an agent needs before invoking a costly, open-world task.

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?

Front-loaded with the core action and cost warning, then limitations, then retrieval path. Dense but largely waste-free; the workspace note is tacked on at the end rather than integrated, which is a minor structural blemish.

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?

An output schema exists, yet the description still usefully states that only a task_id comes back. For a 4-parameter async tool this is nearly complete; the missing pieces are the semantics of target (URL vs bare domain) and of respect_sitemap.

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 0%, so the description must carry the load. It explains max_crawl_pages well (required, no default, cost implication, suggested small value) and workspace (optional for single-workspace accounts), but says nothing about respect_sitemap and only implies that target is the domain. Roughly half the parameters are covered.

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

Purpose5/5

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

The description names a specific verb and resource ('Startet einen asynchronen OnPage-Crawl einer Domain') and adds scope (max 1000 pages). It also distinguishes itself from siblings by stating it only returns a task_id and pointing to dfs_onpage_crawl_results for results.

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

Usage Guidelines5/5

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

It gives explicit when-to-use context, an explicit limitation (no JS rendering, so JS frontends lose content) and names the alternative (dfs_lighthouse_live) for rendered page checks. It also states the follow-up retrieval tool and the expected delay in minutes.

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

dfs_onpage_crawl_resultsDataForSEO: On-page crawl resultsA
Read-only
Inspect

Ergebnisse eines mit dfs_onpage_crawl gestarteten Crawls. section: 'summary' | 'pages' | 'links' | 'redirect_chains' | 'non_indexable' | 'duplicate_content' | 'duplicate_tags' | 'microdata'. 'duplicate_content'/'microdata' brauchen zusaetzlich url (Seite aus 'pages'), 'duplicate_tags' braucht tag_type ('duplicate_title'|'duplicate_description'). Solange der Crawl laeuft: Fortschritt statt Ergebnis. task_id genau wie von dfs_onpage_crawl geliefert (Buchstaben, Ziffern, _ und -), sonst Fehler invalid_task_id. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlNo
limitNo
sectionNosummary
task_idYes
tag_typeNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint; the description adds real behavioral context beyond that — while the crawl is still running you get progress instead of results, and a malformed task_id yields an explicit invalid_task_id error. Pagination via `limit` is not described, which keeps it below 5.

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?

Dense and front-loaded — purpose first, then section routing, then runtime behavior, then task_id/workspace notes. It is a semicolon-chained run-on that takes a second read, but essentially no sentence is wasted.

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

Completeness4/5

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

With an output schema available, return values need no explanation, and the description covers the preconditions, section semantics, and error mode an agent needs. The one remaining gap is what `limit` controls and whether results are paginated.

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 0% and section has no enum in the schema, so the description carries the load and does it well: it enumerates all eight section values, states the conditional url/tag_type requirements, and pins the task_id character set. Only `limit` is left undocumented, so it is strong but not exhaustive.

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

Purpose5/5

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

States a specific verb+resource: it returns the results of a crawl previously started with dfs_onpage_crawl, which immediately distinguishes it from dfs_onpage_crawl (starts a crawl) and dfs_onpage_instant (single-page, no task). The set of retrievable sections is named up front, so the agent knows the shape of what it can get back.

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?

Clearly tells the agent it must first run dfs_onpage_crawl and pass the resulting task_id, and gives conditional routing between sections ('duplicate_content'/'microdata' need `url`, 'duplicate_tags' needs `tag_type`). It does not explicitly contrast with dfs_onpage_instant or say when a section is the wrong choice for a given question, so it falls 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.

dfs_onpage_instantDataForSEO: On-page instantA
Read-only
Inspect

Schneller Live-On-Page-Audit (~1 s): Title, Meta, H1, Word Count, OnPage-Score, Issues. Erste Wahl für schnelle Seiten-Checks. Rückgabe: url, status_code, fetched_at (Abrufzeitpunkt, UTC-Zeitstempel), title, description, canonical, h1_count, word_count, checks_failed, onpage_score, page_timing_ms. checks_failed = fehlgeschlagene DataForSEO-Checks (z. B. no_title, no_h1_tag, no_description, duplicate_title_tag, high_loading_time, is_broken); Positivflags wie has_html_doctype oder is_https zählen nicht als Fehler. page_timing_ms enthält Ladezeiten in Millisekunden (time_to_interactive, dom_complete, largest_contentful_paint, first_input_delay, duration_time, ...) oder null, wenn DataForSEO keine Timing-Daten liefert. Keine Core Web Vitals und kein Performance-Score — dafür dfs_lighthouse_live (10–35 s). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, yet the description still adds real context: ~1 s latency, the full return field list, null behavior for page_timing_ms, and what does and does not count as a failed check. Auth, rate limits, and error behavior are not covered, so not a 5.

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

Conciseness4/5

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

Front-loaded with purpose and speed, then return fields, then the sibling exclusion. The long enumeration of page_timing_ms subfields is the only slightly padded section, but each line still carries information.

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

Completeness4/5

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

Even though an output schema exists, the description supplies the semantics an agent needs (checks_failed meaning, positive flags excluded, timing null case, latency expectation). Little is missing for correct invocation; only auth/error handling is absent.

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 0%, so the description must carry the burden; it explains that workspace is a client slug and is optional when only one workspace exists. 'url' is left implicit, but its meaning is self-evident from the audit context.

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

Purpose5/5

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

States a specific verb and resource ('Schneller Live-On-Page-Audit ~1 s') plus the exact signals it returns (Title, Meta, H1, Word Count, OnPage-Score, Issues). It clearly distinguishes itself from dfs_lighthouse_live and dfs_onpage_crawl by speed and scope.

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?

'Erste Wahl für schnelle Seiten-Checks' states when to pick it, and 'Keine Core Web Vitals und kein Performance-Score — dafür dfs_lighthouse_live' names the sibling to use instead with the condition that selects it. The workspace note clarifies the optional parameter's situation.

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

dfs_raw_htmlDataForSEO: Raw HTMLA
Read-only
Inspect

Rohes HTML einer URL (fuer JSON-LD-/Markup-Checks im Quelltext). Zweistufig ueber die DataForSEO-API; HTML wird auf max_bytes (UTF-8-Bytes) gekuerzt. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlYes
max_bytesNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds genuinely useful behavior: the call runs two-stage via the DataForSEO API (implying latency/external dependency) and the returned HTML is truncated to max_bytes in UTF-8 bytes. It doesn't mention failure behavior for unreachable URLs, but the added context is well beyond 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?

Three short sentences, purpose front-loaded, with the truncation and workspace caveats following. Nothing is redundant, though the phrasing is dense German and could be marginally tighter.

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?

An output schema exists so return values need no explanation, and the annotations cover the safety profile. For a simple 3-parameter read tool, what's given is nearly sufficient; only explicit sibling routing is missing.

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 0%, so the description must carry the load — and it explains max_bytes as a UTF-8 byte truncation limit and workspace as a customer-workspace slug that is optional when only one workspace exists. Only 'url' is left self-explanatory, which is reasonable.

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?

States a specific verb+resource ('Rohes HTML einer URL') plus a concrete use case (JSON-LD-/Markup-Checks im Quelltext), which separates it from parsing/crawl siblings like dfs_content_parsing or dfs_onpage_instant. It never names those alternatives explicitly, so differentiation is implicit rather than stated.

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 parenthetical use case implies when this tool is appropriate, and the workspace note covers a setup precondition. There is no explicit 'use X instead when...' routing or statement of when this tool is the wrong choice versus other DataForSEO endpoints.

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

dfs_reviewsDataForSEO: ReviewsA
Read-only
Inspect

Bewertungen von Trustpilot oder Google Business Profile. platform: 'trustpilot' (target = Domain) | 'google' (target = Keyword/Business-Name, + location). Task-basiert: ohne task_id wird ein neuer Task gestartet und bis zu 3x im 5s-Abstand gepollt; noch nicht fertig -> {status: 'pending', task_id} zurueck, damit erneut aufrufen. Mit vorhandener task_id: einzelner Abruf ohne Polling (task_id genau wie geliefert, sonst Fehler invalid_task_id). location/language (nur platform='google'): Default aus dem Workspace (Standard Austria/de); location als DataForSEO-Ortsname ('Austria' oder 'Salzburg,Salzburg,Austria'; auch 'AT', 'Österreich', 'Deutschland', 'CH'), language als ISO-Code ('de', 'en') oder Sprachname ('German', 'Deutsch'); unbekannte Sprache -> Fehler invalid_language ohne Kosten. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
depthNo
targetYes
task_idNo
languageNo
locationNo
platformYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

The description adds significant behavior beyond annotations: polling up to 3 times at 5-second intervals, pending status return shape, exact task_id requirements, default location/language from the workspace, accepted location/language formats, and invalid_language failing without cost. These details materially help an agent invoke and recover from the tool correctly.

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 dense but front-loaded: purpose and platform routing come first, followed by task/polling behavior, then location/language details and workspace. Every segment adds operational value despite the length.

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 7-parameter asynchronous tool with an output schema, it covers nearly everything needed to call correctly: async flow, error cases, defaults, and platform-specific parameters. The main remaining gap is that depth is undocumented, and sibling differentiation from gbp_reviews is absent.

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 0%, so the description carries the burden. It explains platform, target, task_id, location, language, and workspace semantics in detail, including platform-dependent meaning and accepted formats, but it never mentions the depth parameter.

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

Purpose4/5

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

The description states a specific resource and operation: retrieve reviews from Trustpilot or Google Business Profile, with platform-dependent target semantics. It is clear what the tool returns, but it does not explicitly differentiate itself from the sibling gbp_reviews tool for Google Business Profile reviews.

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 gives clear operational usage: omit task_id to start and poll a new task, or pass an existing task_id for a single fetch. It also specifies that location/language apply only to platform='google'. However, it does not name alternatives or state when to use this over gbp_reviews.

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

dfs_serp_bing_organicDataForSEO: SERP Bing organicA
Read-only
Inspect

Bing-organische SERP fuer ein Keyword (gleiche Feldstruktur wie dfs_serp_google_organic- organic-Liste) — deckt fehlende Bing-Praesenz auf (Bing speist Copilot/ChatGPT-Suche). location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
depthNo
keywordYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavior beyond them: failures arrive as a single-element list with api_error/task_error, dfs_timeout, dfs_unreachable, and the caller must check for 'error' before evaluating. It leaves out cost/rate-limit or depth semantics, so it is strong but not exhaustive.

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?

Four compact lines, front-loaded with what the tool returns and how it differs from the Google sibling, followed by defaults and the error contract. Some parenthetical asides (the dfs_keyword_volume format reference) are slightly compressed, but nothing is wasted.

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?

An output schema exists, so return values need not be described, and the read-only/open-world nature is covered by annotations. The error-shape guidance is exactly the kind of operational detail an agent needs. The only material gap is the undocumented 'depth' parameter.

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 0%, so the description carries the burden and partially meets it: it explains that location/language default from the workspace and that workspace is optional when only one exists. It never explains the 'depth' parameter (how many results), leaving one of five parameters undocumented in both schema and description.

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

Purpose5/5

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

States a specific verb+resource: fetch the Bing organic SERP for a keyword, and explicitly anchors it to the sibling dfs_serp_google_organic with an identical field structure. An agent can distinguish it from the Google equivalent and from dfs_keyword_volume without opening either schema.

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?

Gives a concrete reason to reach for this tool (cover missing Bing presence, since Bing feeds Copilot/ChatGPT search) and implicitly routes Google queries to dfs_serp_google_organic. It does not spell out explicit exclusions or limits on when not to use it, so it stops short of a full when/when-not statement.

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

dfs_serp_google_adsDataForSEO: SERP Google adsA
Read-only
Inspect

Paid Ads die aktuell auf dem Keyword in Google SERP geschaltet sind (Momentaufnahme eines Desktop-Abrufs: Titel, Beschreibung, Ziel-URL, Position, Sitelinks). Leere Liste = bei diesem Abruf keine Anzeigen ausgespielt; wer grundsaetzlich auf das Thema wirbt, zeigt dfs_google_ads_advertisers. location/language: Default aus dem Workspace; Format wie bei dfs_keyword_volume. Fehler kommen als Ein-Element-Liste [{error, ...}] (api_error/task_error, dfs_timeout, dfs_unreachable) — vor der Auswertung auf 'error' pruefen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
keywordYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered; beyond that the description discloses the empty-result semantics and, importantly, that failures arrive as a single-element list containing an 'error' key (api_error/task_error, dfs_timeout, dfs_unreachable) which must be checked before evaluation. That error-channel warning is genuinely non-obvious behavior an agent would otherwise mishandle.

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 opening sentence front-loads what is returned and the parenthetical enumerates the fields compactly; the empty-list rule, parameter defaults and error contract follow in tight parenthetical clauses. It is dense but nearly every clause carries operational information, with only the field enumeration overlapping the output schema.

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 four-parameter read tool with an output schema, an agent has what it needs: scope, snapshot limitation, empty-result meaning, sibling alternative, parameter defaults and the error shape to check for. The only shortfall is the deferred location/language format reference, which leaves a small ambiguity unresolved within this definition.

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 0%, so the description must carry the parameters, and it does cover most of them: location and language fall back to the workspace default and follow the dfs_keyword_volume format, while workspace is a customer slug that becomes optional when only one workspace exists. The compensation is decent but not complete — the 'format as in dfs_keyword_volume' pointer defers the actual format to another tool rather than stating it.

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

Purpose5/5

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

The description states a specific verb and resource: it returns the paid ads currently showing on a keyword in the Google SERP, and explicitly frames the result as a desktop snapshot (titles, descriptions, target URLs, positions, sitelinks). It also pre-empts a likely confusion by naming the sibling dfs_google_ads_advertisers for the different question of who advertises on the topic at all.

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

Usage Guidelines4/5

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

It explicitly says an empty list means no ads were served for this particular fetch, and routes the agent to dfs_google_ads_advertisers when the question is about general topic advertisers — a clear when-to-use-this-vs-that rule. The one gap is that it never contrasts itself with the organic SERP sibling (dfs_serp_google_organic), which an agent could plausibly reach for instead.

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

dfs_serp_google_organicDataForSEO: SERP Google organicA
Read-only
Inspect

Google-SERP fuer ein Keyword: organische Ergebnisse + SERP-Features (AI Overview, People-Also-Ask, Local Pack, ...). location/language: Default aus dem Workspace (Standard Austria/de); location als DataForSEO-Ortsname ('Austria' oder 'Salzburg,Salzburg,Austria'; Laendercode/ deutscher Name wie 'AT', 'Österreich', 'Deutschland', 'CH' geht auch), language als ISO-Code ('de', 'en') oder Sprachname ('German', 'Deutsch'); unbekannte Sprache -> Fehler invalid_language ohne Kosten. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
depthNo
keywordYes
languageNo
locationNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds genuinely useful behavior — unknown language fails fast with invalid_language and incurs no cost — but says nothing about per-call cost/credits, caching, or async/queueing behavior for a paid SERP API call.

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 purpose is front-loaded in the first line, followed by grouped parameter notes with no filler. It is dense but every sentence conveys a decision-relevant fact; only the missing depth note is an omission rather than bloat.

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?

An output schema exists, so return values need no explanation, and annotations cover the read-only/open-world profile. The only material gap is the undocumented depth parameter for a tool whose result volume and cost scale with it.

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 0%, so the description must carry the load. It does well for location (accepts 'Austria', 'Salzburg,Salzburg,Austria', 'AT', 'Österreich') and language (ISO code or name), and explains workspace optionality — all beyond the bare string types. However, the depth parameter (default 20) is never mentioned, leaving result-size control undocumented.

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 gives a specific verb+resource: Google SERP for one keyword, returning organic results plus SERP features (AI Overview, People-Also-Ask, Local Pack). 'Google' + 'organische Ergebnisse' implicitly separates it from dfs_serp_bing_organic and dfs_serp_google_ads, but no sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is only implied through the parameter guidance (defaults come from the workspace, workspace slug optional when there is a single workspace). It never states when to pick this over dfs_serp_bing_organic, dfs_serp_google_ads, or dfs_keyword_rankings, and gives no cost or freshness caveats.

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

ga4_archive_custom_dimensionGA4: Archive custom dimensionA
Destructive
Inspect

GA4 Custom Dimension archivieren. dimension_name akzeptiert die reine ID oder den vollen Ressourcen-Pfad. property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
property_idYes
dimension_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is known. The description adds that other properties are rejected and that workspace is optional for single-workspace setups, but it does not describe what archiving does to the dimension or whether it is reversible.

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 short, front-loaded with the action, and every sentence adds useful invocation context. There is no redundant restatement of the title or schema.

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 destructive GA4 mutation with annotations and an output schema, the description covers the key parameter semantics and workspace/property constraints. A note on the practical effect or reversibility of archiving would complete it, but most invocation-critical information is present.

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 0%, so the description must carry the load; it documents all three parameters meaningfully. It explains that dimension_name accepts either a bare ID or a full resource path, that property_id must be the workspace's GA4 property, and that workspace is optional when only one exists.

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

Purpose4/5

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

The description clearly states a specific action and resource: 'GA4 Custom Dimension archivieren.' This distinguishes it from create/list siblings by action, though it does not explicitly name an alternative tool.

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

Usage Guidelines2/5

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

The description gives useful parameter constraints, such as property_id needing to belong to the workspace, but it does not explain when to use this archive operation versus alternatives like ga4_list_custom_dimensions or ga4_create_custom_dimension.

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

ga4_archive_custom_metricGA4: Archive custom metricA
Destructive
Inspect

GA4 Custom Metric archivieren. metric_name akzeptiert die reine ID oder den vollen Ressourcen-Pfad. property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
metric_nameYes
property_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds the useful validation rule that a foreign property_id is rejected, but does not disclose whether archiving is reversible, what happens to historical report data, or any permission requirements beyond annotation hints.

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 tight sentences, purpose front-loaded, each subsequent sentence covering a distinct parameter concern with 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 destructive 3-param tool with an output schema, the definition covers purpose, parameter meaning, and validation constraints. The only meaningful gap is an explicit note on irreversibility/what archiving removes, which matters given destructiveHint=true.

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% schema description coverage, the description carries the parameter burden and does so for all three: metric_name accepts either the bare ID or full resource path, property_id is tied to the workspace property, and workspace is optional for single-workspace customers. It stops short of a concrete property_id format example, which keeps it from a 5.

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

Purpose5/5

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

States a specific verb (archivieren) and resource (GA4 Custom Metric), which cleanly separates it from siblings like ga4_create_custom_metric, ga4_list_custom_metrics, and ga4_archive_custom_dimension. An agent can identify the operation without opening the schema.

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?

Provides prerequisites (property_id must belong to the workspace; others are rejected; workspace is optional with a single workspace), but does not explicitly say when to choose archive over other lifecycle operations (e.g., delete vs. archive) or name alternatives. Usage is implied rather than directed.

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

ga4_conversionsGA4: ConversionsA
Read-only
Inspect

Conversion Events (Key Events) mit Count + Value je eventName. Zeitraum: letzte N Tage inkl. heute. Max. limit Zeilen (höchstens 500) — die Zeilensumme ist nicht die Gesamtzahl; Gesamtwerte über ga4_report mit metrics=['keyEvents'] und dimensions=[]. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld, so the description focuses on what those don't cover: the window includes today, limit is capped at 500, and the returned row sum is not the grand total because of truncation. That truncation warning is genuinely valuable and hard to infer elsewhere; missing is any statement of sorting or ordering of rows.

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?

Front-loaded with the result shape, then the time window, then the truncation caveat, then the workspace note — each sentence carries new information. The phrasing is compressed to the point of terseness (telegraphic German), but nothing is redundant.

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?

An output schema exists, so return values need not be spelled out, and the description covers the window, truncation behavior, and the fallback for totals. The only real gap is which sibling to prefer for configured-vs-performed key events, plus row ordering.

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 0%, so the description must carry the load and largely does: it defines the days window semantically, gives the 500 hard cap on limit, and explains workspace as a slug that may be omitted when only one workspace exists. It omits the default values (7, 50/null) that the schema declares, and gives no units or format examples for workspace.

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?

States the concrete output shape: conversion/key events with count and value per eventName. An agent can tell this apart from the config-oriented ga4_list_key_events. The verb itself is implied rather than stated (no explicit 'list/retrieve'), which keeps it just short of a 5.

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

Usage Guidelines4/5

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

Explicitly routes the agent to ga4_report with metrics=['keyEvents'] and dimensions=[] when overall totals are wanted, which is the key distinction. It does not, however, contrast against ga4_list_key_events or explain when this tool is preferable to a generic ga4_report call.

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

ga4_create_custom_dimensionGA4: Create custom dimensionAInspect

GA4 Custom Dimension anlegen. scope: EVENT, USER oder ITEM. property_id: die GA4-Property des Workspace (andere werden abgelehnt). In Reports erst nach 24-48 h verfügbar (ein sofortiger ga4_report liefert leere Zeilen); Abfrage in ga4_report als 'customEvent:<parameter_name>', 'customUser:<parameter_name>' bzw. 'customItem:<parameter_name>' je nach scope. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
scopeNoEVENT
workspaceNo
descriptionNo
property_idYes
display_nameYes
parameter_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so mutation semantics are covered; the description instead contributes the non-obvious facts: property_id values outside the workspace are rejected, and propagation into reporting takes 24-48h. It also gives the exact query syntax in ga4_report, which is genuinely useful cross-tool behavioral context.

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

Conciseness4/5

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

The creation statement is front-loaded, then parameter notes, then the reporting caveat. The sentence about immediate ga4_report returning empty rows and the query format is long but carries high-value information, so it earns its place; only the property_id parenthetical is slightly redundant.

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?

An output schema exists, so return values need no explanation, and the description covers the two things an agent could get wrong: which property is allowed and why reports appear empty right after creation. The remaining gap is the undocumented display_name/parameter_name semantics on a 6-parameter creation 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 0%, so the description must carry the load. It explains scope (listing the values absent from the schema), property_id (workspace-constrained, rejected otherwise), and workspace (optional when only one exists), but leaves display_name, parameter_name, and description unexplained — including the required parameter_name, whose relationship to the query syntax is only indirectly implied.

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 opens with a specific verb and resource ('GA4 Custom Dimension anlegen') that unambiguously separates it from ga4_create_custom_metric and ga4_create_key_event. It does not explicitly name the sibling to avoid, but the compound noun 'Custom Dimension' makes the distinction self-evident.

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 names the allowed scope values (EVENT, USER, ITEM) and warns that reports will show empty rows for 24-48h, which tells the agent both how to use it and what to expect immediately after. What is missing is an explicit statement of when not to use it (e.g., custom metrics, audiences).

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

ga4_create_custom_metricGA4: Create custom metricAInspect

GA4 Custom Metric anlegen. measurement_unit: STANDARD, CURRENCY, SECONDS, MINUTES, HOURS, MILLISECONDS, METERS, KILOMETERS, FEET, MILES. scope: nur EVENT. restricted_metric_types: Liste aus COST_DATA und/oder REVENUE_DATA (Zugriffsbeschränkung der Metrik) — bei CURRENCY Pflicht; fehlt sie, kommt {'error': 'restricted_metric_types_required'} zurück, ohne die API aufzurufen. Antwort: name, parameter_name, display_name, measurement_unit, scope, restricted_metric_types. property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
scopeNoEVENT
workspaceNo
descriptionNo
property_idYes
display_nameYes
parameter_nameYes
measurement_unitNoSTANDARD
restricted_metric_typesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the annotations by documenting a validation path that fails locally without hitting the API ({'error': 'restricted_metric_types_required'}), the fixed EVENT scope restriction, and the property/workspace rejection rule. That is exactly the kind of failure-mode disclosure annotations (readOnly=false, destructive=false) cannot carry.

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?

Front-loaded with the action, then constraints, then response shape – a sensible order. The long measurement_unit enumeration is costly but functional; a few lines are telegraphic rather than wasteful.

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 an 8-parameter mutating tool with annotations and an output schema, the description covers the highest-risk input (restricted_metric_types), scope limits, and tenancy rules. Remaining gaps – naming conventions for parameter_name, duplicate-name behavior, reversibility – are secondary since return values are covered by the output schema.

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

Parameters4/5

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

With 0% schema description coverage the description does real work: it enumerates allowed measurement_unit values, constrains scope to EVENT, defines the restricted_metric_types contents and its conditional requirement, and explains property_id and the optional workspace slug. It leaves parameter_name/display_name/description conventions unexplained, so not fully compensating.

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 opening line 'GA4 Custom Metric anlegen' states a specific verb + resource, which clearly separates it from siblings such as ga4_list_custom_metrics or ga4_archive_custom_metric. It does not explicitly name an alternative, but the resource specificity makes the intent unambiguous.

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?

Gives concrete preconditions: property_id must belong to the workspace (others rejected), scope may only be EVENT, and restricted_metric_types is mandatory for CURRENCY. It does not state when to prefer list/archive siblings over creating, but the usage context is clear enough to act on.

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

ga4_create_data_streamGA4: Create data streamBInspect

Web-Datenstream für eine GA4 Property anlegen. Gibt die G- Measurement-ID zurück (z.B. für einen GTM GA4-Config-Tag). property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
site_urlYes
workspaceNo
property_idYes
display_nameNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true); the description goes beyond them by disclosing the returned G- measurement ID, the intended downstream use (GTM GA4 config tag), and the rejection behavior for foreign properties. It stops short of stating what happens if a stream for the same site_url already exists.

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?

Front-loaded with the action and the return value, then per-parameter notes in short labeled lines. No filler, though the per-parameter block could be extended to the two missing params at minimal cost.

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?

An output schema exists, so return-format detail is not required, and creation semantics are adequately framed. The incomplete parameter documentation (2 of 4 params, including a required one) leaves the definition short of what an agent needs to call it reliably.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden, yet it only explains property_id and workspace. The required parameter site_url and the optional display_name are left completely undefined, which is a real risk for a required input.

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?

States a specific verb and resource ('Web-Datenstream für eine GA4 Property anlegen') plus the outcome (G- measurement ID). It is distinguishable from the sibling ga4_list_data_streams, though the description never names the sibling or the read counterpart explicitly.

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?

Provides useful preconditions rather than use-case routing: the property must belong to the workspace ('andere werden abgelehnt') and the workspace param is optional when only one exists. It never says when to choose this over alternative ways of setting up tracking (e.g. GTM, ga4_create_property).

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

ga4_create_key_eventGA4: Create key eventAInspect

GA4 Key Event (Conversion) anlegen. counting_method: ONCE_PER_EVENT oder ONCE_PER_SESSION. property_id: die GA4-Property des Workspace (andere werden abgelehnt). Antwort: name (= Key-Event-ID properties//keyEvents/, für ga4_delete_key_event aufbewahren), event_name, counting_method. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
event_nameYes
property_idYes
counting_methodNoONCE_PER_EVENT

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate this is a non-destructive, open-world write operation. The description adds useful behavior: non-workspace property IDs are rejected, counting_method accepts two values, and the returned key-event ID must be retained for deletion. It does not discuss authorization or duplicate behavior, but the annotation baseline lowers that burden.

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 purpose is front-loaded and the details about counting_method, property_id, workspace, and returned ID each carry useful information. The response-field list is slightly dense but contains no obvious 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?

An output schema exists, so return values need not be fully explained, though the description adds useful guidance to preserve the returned key-event ID. With 0% schema description coverage, the missing explanation of event_name and any duplicate/key-event creation behavior keeps it short of fully complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It explains property_id constraints, counting_method values, workspace optionality, and the returned name, but it does not explain the required event_name parameter beyond its field name.

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

Purpose5/5

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

States a specific verb ('anlegen') and resource ('GA4 Key Event (Conversion)'), making the tool's purpose immediately clear. It also distinguishes the resource from the deletion sibling by explaining that the returned name should be kept for ga4_delete_key_event.

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 key prerequisites: property_id must be the workspace's GA4 property or it is rejected, and workspace is optional only when a single workspace exists. It names ga4_delete_key_event as a follow-up but does not explicitly compare with ga4_list_key_events or state when not to create a key event.

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

ga4_create_propertyGA4: Create propertyAInspect

Neue GA4 Property in einem Analytics-Account anlegen. account_id: Feld account_id von ga4_list_properties; auch 'accounts/' wird akzeptiert (Präfix wird entfernt). Die neue Property ist noch nicht die Property des Workspace: vor ga4_create_data_stream (und allen ga4_*-Tools mit property_id) zuerst workspace_configure_source(source='ga4', ids={'property_id': }) aufrufen — sonst wird die property_id als workspace-fremd abgelehnt. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
time_zoneNoEurope/Vienna
workspaceNo
account_idYes
display_nameYes
currency_codeNoEUR
industry_categoryNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) the description discloses a non-obvious side effect: the newly created property is NOT the workspace's active property and downstream calls will fail with a foreign-property rejection until configured. It does not cover error cases such as duplicate display names, permission requirements on the account, or quota behavior for this external write.

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?

Front-loaded with the action, then the account_id format, then the critical workspace caveat — the ordering mirrors the calling order. It is slightly run-on and mixes several instructions into one block, but every clause conveys actionable information.

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

Completeness4/5

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

For a 6-parameter mutation tool with annotations covering the safety profile and an output schema covering returns, the description supplies the key missing context: input format normalization and the mandatory post-create workspace binding. Only the optional styling parameters (time_zone, currency_code, industry_category) go unexplained.

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 0%, so the description carries the burden; it documents 2 of 6 parameters with real added meaning — account_id accepts both bare IDs and 'accounts/<id>' (prefix stripped) and workspace is a customer slug that is optional when only one workspace exists. display_name, time_zone, currency_code and industry_category are never mentioned, leaving half the surface to inference.

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

Purpose5/5

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

States a specific verb and resource ('Neue GA4 Property in einem Analytics-Account anlegen') and situates it against siblings: ga4_list_properties as the source of account_id, ga4_create_data_stream as a downstream consumer. An agent can distinguish it from ga4_update_property without opening the schema.

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?

Gives explicit prerequisite sequencing: after creating, the property must be bound via workspace_configure_source(source='ga4', ids={'property_id': ...}) before any property_id-based ga4_* tool will accept it. It also explains where account_id comes from and that the 'accounts/<id>' prefix is tolerated, so invocation order is unambiguous.

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

ga4_data_retentionGA4: Data retentionA
Destructive
Inspect

Event-Datenaufbewahrung einer Property lesen/setzen. action: get | set. event_data_retention: TWO_MONTHS / FOURTEEN_MONTHS (GA360 auch TWENTY_SIX_/THIRTY_EIGHT_/FIFTY_MONTHS). reset_on_new_activity: bool. property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
actionYes
workspaceNo
property_idYes
event_data_retentionNo
reset_on_new_activityNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the description's added context is what counts here: it discloses the get/set split, the workspace-scoping rule that rejects foreign properties, and the GA360-only retention tiers. It still doesn't warn that shortening retention is irreversible or what permissions are required for 'set', which is the main behavioral gap for a destructive operation.

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

Conciseness4/5

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

Purpose is front-loaded in one sentence, then each parameter is documented in a compact fragment with no filler. The telegraphic, semi-colon style is efficient, though the fragment 'bool' is too terse to be useful and the switch to German text within an otherwise English catalog slightly slows parsing.

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?

An output schema exists, so return values need no explanation, and every parameter plus the workspace/property scoping constraint is covered. What remains missing for a destructive, open-world mutation is the side-effect profile of 'set' — whether retention changes are permanent and whether reset_on_new_activity alters historical data.

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 0%, so the description carries the full burden and mostly does: it enumerates all valid action and event_data_retention values (including GA360-only ones the schema lacks, since there are no enums), explains property_id scoping, and clarifies that workspace is optional when only one exists. 'reset_on_new_activity: bool' merely restates the type, leaving its operational meaning undefined.

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 first sentence names a specific verb pair and resource: reading/setting event data retention for a GA4 property. It is distinguishable from siblings like ga4_update_property or ga4_list_properties by the retention focus, but it never names an alternative to route against, so differentiation is inferred rather than stated.

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?

'action: get | set' implies read-versus-write usage, and the note that other properties 'werden abgelehnt' gives one hard precondition. There is no explicit when-to-use / when-not guidance and no mention of ga4_update_property as the tool for other property settings, so the agent must infer the boundary.

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

ga4_delete_key_eventGA4: Delete key eventA
Destructive
Inspect

GA4 Key Event (Conversion) löschen. property_id: die GA4-Property des Workspace (andere werden abgelehnt). key_event_name: numerische Key-Event-ID, voller Pfad properties//keyEvents/ (beides aus ga4_list_key_events bzw. Feld name von ga4_create_key_event) oder der Event-Name (z.B. 'purchase'), der dann automatisch zur ID aufgelöst wird. Ist der Event-Name unbekannt, kommt {'error': 'not_found'} mit den vorhandenen Key Events; passt er auf mehrere, {'error': 'ambiguous_key_event', 'candidates': [...]} — dann key_event_id eines Kandidaten angeben. Standard-Key-Events (z.B. purchase, in ga4_list_key_events deletable=false) lehnt GA4 ab: dann {'error': 'not_deletable'} mit hint. Antwort: deleted (Ressourcenname). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
property_idYes
key_event_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

The destructive annotation already signals deletion, and the description adds valuable behavior beyond that: automatic resolution of event names to IDs, not_found and ambiguous_key_event error shapes, rejection of standard key events with not_deletable, and the returned 'deleted' resource name. It does not discuss irreversibility or permissions, but it provides substantial behavioral detail.

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 front-loaded with the delete action and then documents parameters and error behavior. It is somewhat dense and includes multiple inline error examples, but for a destructive tool with complex name resolution the length is largely justified.

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

Completeness5/5

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

Given the destructive operation, zero schema description coverage, and complex key-event resolution, the description covers the essential inputs, validation failures, and result. An output schema exists, so it does not need to explain return structure in full.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry the full burden and does: property_id is tied to the workspace, key_event_name accepts a numeric ID, full path, or event name with auto-resolution, and workspace is optional when only one workspace exists. It also explains candidate key_event_id usage for ambiguous names.

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

Purpose5/5

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

The description states a specific verb ('löschen') and resource ('GA4 Key Event (Conversion)') and makes clear the operation targets a GA4 property. It is readily distinguishable from siblings such as ga4_create_key_event and ga4_list_key_events.

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

Usage Guidelines4/5

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

The description gives clear operational context: property_id must belong to the workspace, key_event_name can come from ga4_list_key_events or ga4_create_key_event, and standard key events cannot be deleted. It does not explicitly route the agent to alternatives for other operations, but the usage context is strong.

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

ga4_enhanced_measurementGA4: Enhanced measurementA
Destructive
Inspect

Enhanced-Measurement eines Web-Datenstreams lesen/setzen (Scroll, Outbound, interne Suche, Video, Datei-Downloads, Seitenwechsel, Formular-Interaktionen). action: get | set. settings = Dict von Bool-Flags (z.B. {'scrollsEnabled': true}). streamEnabled ist der Hauptschalter: steht er auf false, misst keine Unterfunktion, auch wenn sie true ist. get liefert alle Flags als true/false. pageChangesEnabled nicht einschalten, wenn die Seite Seitenwechsel schon selbst als page_view meldet (sonst doppelt gezaehlt). data_stream_id aus ga4_list_data_streams. property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
actionYes
settingsNo
workspaceNo
property_idYes
data_stream_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Goes well beyond the destructiveHint=true annotation by explaining the mechanism: streamEnabled is a master switch that nullifies all sub-flags, and pageChangesEnabled can double-count page views. These are exactly the destructive side effects an agent needs before calling set. It stops short of describing failure modes or confirmation requirements for the write path.

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?

Front-loads purpose, then action syntax, then the settings shape, then constraints and warnings — a sensible order with little filler. The parenthetical feature list and the multi-sentence constraint block make it denser than strictly necessary, but nothing is redundant.

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?

An output schema exists, so return values need only light framing, and 'get liefert alle Flags als true/false' suffices. For a destructive write tool it covers prerequisites, the master-switch pitfall, and the double-counting hazard; the remaining gap is an authoritative list of allowed settings keys, which matters because settings is an unconstrained free-form object.

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

Parameters5/5

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

With 0% schema description coverage it documents all five parameters: action semantics (get|set), settings as a bool-flag dict with an example, data_stream_id provenance, property_id constraint, and workspace optionality. The only shortfall is that flag key names are given by German label and two examples rather than an exhaustive key list.

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?

States a concrete verb pair (lesen/setzen) and a concrete resource (Enhanced-Measurement eines Web-Datenstreams), then enumerates the sub-features covered (Scroll, Outbound, interne Suche, Video, Downloads, Seitenwechsel, Formulare). It is clearly distinct from ga4_list_data_streams / ga4_create_data_stream, though it signals that relationship only indirectly via 'data_stream_id aus ga4_list_data_streams'.

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?

Gives real selection guidance: action is get or set, data_stream_id must come from ga4_list_data_streams, property_id must be the workspace's own property (others are rejected), and workspace is optional when only one exists. It even names a when-NOT condition (don't enable pageChangesEnabled if page_view is already sent), but offers no alternative-tool routing beyond the ID source.

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

ga4_list_custom_dimensionsGA4: List custom dimensionsA
Read-only
Inspect

Custom Dimensions einer GA4 Property auflisten (Name, Parameter, Scope). property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
property_idYes

Output Schema

NameRequiredDescription
resultYes

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 openWorldHint=true, so safety is covered. The description adds a genuine behavioral rule not present in structured data: a property_id outside the workspace is rejected, and the workspace parameter is only optional when a single workspace exists.

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

Conciseness5/5

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

One line of purpose followed by two dense parameter clauses; front-loaded, no filler, every sentence carries information an agent needs.

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?

An output schema exists so return values needn't be explained, and both parameters plus the workspace/property constraint are covered. Minor gaps (ordering, pagination/limits for large dimension lists) are not addressed but are unlikely to block a correct call.

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 0%, so the description carries the full burden and does so for both parameters: property_id is scoped to the workspace's own property (others rejected) and workspace is the customer slug, optional with exactly one workspace. It lacks format hints (e.g. 'properties/123456'), which keeps it short of a 5.

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?

States a specific verb+resource: list custom dimensions of a GA4 property, and even names the returned fields (Name, Parameter, Scope). It does not distinguish itself from the near-identical sibling ga4_list_custom_metrics or from ga4_create_custom_dimension / ga4_archive_custom_dimension.

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

Usage Guidelines3/5

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

Usage is implied by the read-only listing verb plus the constraint that the property_id must belong to the caller's workspace (others are rejected), which is useful. However it never states when to choose this over ga4_list_custom_metrics or when this is not appropriate.

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

ga4_list_custom_metricsGA4: List custom metricsA
Read-only
Inspect

Custom Metrics einer GA4 Property auflisten (Name, Parameter, Einheit, Scope). property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
property_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds one useful behavioral fact – foreign property IDs are rejected – but says nothing about pagination, empty results, or rate limits, so it only modestly exceeds the annotation baseline.

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 short lines: purpose first, then one line per parameter, zero filler. Every sentence carries information an agent needs.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and both parameters plus the safety profile are covered. Only minor gaps remain (property_id format, list-size/pagination behavior), which are not blocking for a simple read 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 0%, so the description must carry the burden, and it does: property_id is defined as the workspace's GA4 property with a rejection rule, and workspace is defined as the customer-workspace slug with an optionality condition. It only omits the expected string format for property_id (e.g. 'properties/123').

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

Purpose5/5

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

States a specific verb (auflisten) and resource (Custom Metrics of a GA4 property) and even enumerates the returned fields (Name, Parameter, Einheit, Scope). This clearly distinguishes it from ga4_list_custom_dimensions, ga4_create_custom_metric and ga4_archive_custom_metric.

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 a real constraint (property_id must belong to the workspace, other properties are rejected) and notes workspace is optional when only one exists. However, it never says explicitly when to reach for this tool versus the sibling list/create/archive tools, so usage is only implied.

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

ga4_list_data_streamsGA4: List data streamsA
Read-only
Inspect

Bestehende Datenstreams einer GA4 Property auflisten (Web/Android/iOS) inkl. Measurement-ID (G-…) bzw. App-Kennungen. property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
property_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Die Annotationen (readOnlyHint=true, openWorldHint=true) decken das Sicherheitsprofil bereits ab; die Beschreibung ergänzt echten Mehrwert mit dem Ablehnungsverhalten bei fremden Properties und dem Hinweis, dass Measurement-IDs (G-…) bzw. App-Kennungen zurückkommen. Angaben zu Berechtigungen, Paginierung oder Rate Limits fehlen, sind bei einem reinen Lese-Tool aber nachrangig.

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?

Drei kurze, front-loaded Zeilen: erst Zweck und Rückgabewerte, dann die Parameterhinweise. Kein Satz ist redundant, jede Zeile trägt eine eigene Information.

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

Completeness4/5

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

Für ein einfaches Lese-Tool mit nur zwei Parametern und vorhandenem Output-Schema ist das Wesentliche abgedeckt: Zweck, Property-Bindung, Workspace-Auflösung und Rückgabeinhalt. Details wie Sortierung, Paginierung oder Umfang (alle Stream-Typen standardmäßig?) fehlen, sind aber angesichts des Output-Schemas verschmerzbar.

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?

Bei 0 % Schema-Beschreibungsabdeckung trägt die Beschreibung die volle Last und erklärt beide Parameter inhaltlich: property_id als Property des Workspace mit Ablehnungsregel, workspace als Kunden-Slug mit Optionalitätsbedingung. Das konkrete Format von property_id (z. B. numerische ID vs. "properties/123") bleibt offen.

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?

Klare Verknüpfung aus Verb ("auflisten") und Ressource ("Datenstreams einer GA4 Property"), inklusive der abgedeckten Stream-Typen (Web/Android/iOS) und der zurückgegebenen Kennungen. Eine explizite Abgrenzung zu Nachbartools wie ga4_create_data_stream oder ga4_list_properties fehlt jedoch, sodass der Agent die Auswahl nicht aus dem Text ableiten kann.

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?

Es wird eine Nutzungsbedingung genannt (property_id muss zur Workspace-Property gehören, andere werden abgelehnt) und die Optionalität von workspace bei nur einem Workspace erklärt. Eine Aussage, wann stattdessen ein Alternativtool (z. B. ga4_create_data_stream oder ga4_list_properties) zu verwenden ist, fehlt vollständig – die Nutzungshinweise bleiben implizit.

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

ga4_list_key_eventsGA4: List key eventsA
Read-only
Inspect

Konfigurierte GA4 Key Events (Conversions) mit Zählmethode und Event-Counts der letzten N Tage (inkl. heute) — zeigt, ob die Events tatsächlich feuern. count_d ist der rohe eventCount (jedes Feuern, unabhängig von counting_method); Key-Event-Zahlen nach Zählmethode liefert ga4_report mit Metrik keyEvents. firing basiert auf den 500 häufigsten Event-Namen des Zeitraums — bei sehr vielen unterschiedlichen Events kann ein selten feuerndes Key Event fälschlich als nicht feuernd erscheinen. Je Zeile: key_event_id (numerisch) und name (properties//keyEvents/) — beides für ga4_delete_key_event geeignet — sowie event_name, counting_method, create_time, count_d, firing und deletable (false bei Standard-Key-Events wie purchase — die lehnt ga4_delete_key_event ab). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Well beyond the readOnlyHint annotation, it discloses that count_<N>d is the raw eventCount independent of counting_method, that the firing flag is derived from only the top 500 event names (so rare key events can be falsely shown as not firing), and that standard key events are non-deletable and will be rejected by ga4_delete_key_event. These are exactly the caveats that prevent misreading results.

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?

Purpose is front-loaded in the first sentence, followed by the disambiguation and then the row-level semantics. It is a dense single block and slightly long, but each clause (counting method, top-500 caveat, deletable flag, workspace) carries information an agent needs.

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?

Covers the read-only, open-world nature of the call, the meaning of each returned column, and the deletion caveat, which is complete for a two-parameter read tool that has an output schema. Minor overlap with the output schema in listing row fields, but nothing essential is missing.

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 0%, so the description must carry the load: it explains that N days means the last N days including today, and that workspace is the customer-workspace slug and optional when only one workspace exists. It does not mention the default of 30 for days, which the schema supplies but a reader of the prose alone would not know.

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

Purpose5/5

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

States a specific verb and resource: configured GA4 key events (conversions) together with counting method and event counts over the last N days, plus the explicit intent 'shows whether the events actually fire'. It also distinguishes itself from the sibling ga4_report ('Key-Event-Zahlen nach Zählmethode liefert ga4_report mit Metrik keyEvents'), so an agent can pick the right tool without opening either schema.

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 routes the agent: use ga4_report with metric keyEvents when counting-method-adjusted key-event numbers are wanted, and this tool when raw firing behaviour per event is needed. It also names ga4_delete_key_event as the consumer context and explains which of the returned identifiers are suitable for it, including the deletable=false exclusion for standard events like purchase.

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

ga4_list_propertiesGA4: List propertiesA
Read-only
Inspect

Alle GA4 Properties der verbundenen Google-Verbindung (über alle Accounts). Je Zeile: account ('accounts/'), account_id (nackte ID, für ga4_create_property), account_name, property_id und display_name. Reine Discovery-Liste: Die ga4_*-Tools arbeiten nur mit der im Workspace konfigurierten Property — für eine andere den passenden Workspace angeben oder sie per workspace_configure_source(source='ga4') zuweisen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds meaningful context beyond them: it lists properties across all accounts, describes the row shape, and clarifies the workspace-configuration dependency. It does not mention pagination, rate limits, or failure behavior, which keeps it from a 5.

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

Conciseness4/5

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

The description is front-loaded with purpose and scope, then moves to usage and parameter meaning. The per-row field enumeration is somewhat redundant with the output schema, though the note that account_id is the bare ID for ga4_create_property earns its place.

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

Completeness5/5

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

For a low-complexity discovery tool with one optional parameter, annotations, and an output schema, the description is complete: it covers scope, returned fields, workspace semantics, and how to work with a non-configured property.

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 0%, so the description carries the burden for the single workspace parameter. It defines workspace as the customer workspace slug and notes it is optional when only one workspace exists, but it could go further by naming list_workspaces or explaining the multi-workspace omission case explicitly.

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

Purpose5/5

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

States a specific resource and scope: all GA4 properties of the connected Google connection across all accounts, with per-row output fields. It also distinguishes itself from other ga4_* tools by calling itself a 'Reine Discovery-Liste' that is not limited to the workspace-configured property.

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 says to use this as a discovery list and explains that other ga4_* tools work only with the workspace-configured property. It then gives the alternative path: specify the matching workspace or assign one via workspace_configure_source(source='ga4').

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

ga4_manage_audiencesGA4: Manage audiencesA
Destructive
Inspect

GA4-Audiences (Remarketing, nach Google Ads exportierbar). action: list | create. property_id: die GA4-Property des Workspace (andere werden abgelehnt). create braucht 'definition' (Audience-Body nach API-Schema): displayName, description, membershipDurationDays (max. 540), filterClauses [{clauseType: INCLUDE|EXCLUDE, simpleFilter|sequenceFilter}], optional eventTrigger. validate_only gibt den Body zurück, ohne zu schreiben — und ohne Prüfung (die API kennt kein validate_only; 'validated' in der Antwort bedeutet keine Prüfung); Fehler zeigen sich erst beim echten create. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
actionYes
workspaceNo
definitionNo
property_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the write risk is covered; the description goes beyond that with a genuinely non-obvious caveat: validate_only returns the body without writing and without any validation ('validated' in the response does not mean checked, errors surface only on the real create). It also notes the 540-day cap and cross-workspace rejection. It does not state permission requirements or whether the action set is limited to list|create with no update/delete path.

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?

Front-loaded with purpose and action values, then parameters, then the validate_only caveat, with almost no filler. The validate_only sentence is long and parenthetical-heavy, and the mixed German/English phrasing slightly slows parsing, but every clause adds information.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the definition body plus scoping rules are fully covered. The remaining gap is the mutation surface: with destructiveHint=true, it would help to state explicitly that this tool cannot update or delete audiences and what a failed create leaves behind. Broadly complete for a 5-param tool at 0% schema coverage.

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

Parameters5/5

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

Schema description coverage is 0% and there are no enums, so the description carries the entire burden and does: it enumerates action values, explains property_id scoping, spells out the definition body fields (displayName, description, membershipDurationDays max 540, filterClauses with clauseType INCLUDE|EXCLUDE and simpleFilter|sequenceFilter, optional eventTrigger), defines validate_only, and explains the workspace slug fallback. No parameter is left undocumented.

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?

Opens with a specific resource ("GA4-Audiences") and qualifies it as remarketing audiences exportable to Google Ads, and the first body line names the two operations (list | create). An agent immediately knows this reads and creates GA4 audience definitions, which no sibling does. It does not explicitly contrast with the ads_/meta_/linkedin_list_audiences siblings, but the GA4 scoping is sufficient to separate them.

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

Usage Guidelines3/5

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

Gives real preconditions: property_id must belong to the workspace (others are rejected), workspace is optional when only one exists, and create requires 'definition'. However, it never frames when to pick list versus create or when this tool is the right choice versus non-GA4 audience tools. Usage is implied by the action values rather than stated as guidance.

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

ga4_realtime_usersGA4: Realtime usersB
Read-only
Inspect

Aktive User gerade jetzt (letzten 30 Minuten). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds the meaningful behavioral detail that the data window is 30 minutes, but says nothing about freshness/lag or aggregation, and an output schema covers return values.

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?

Two short lines, with the core meaning ('active users right now, last 30 minutes') front-loaded. The parameter note is tacked onto the same description rather than separated, but nothing is wasted.

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?

Adequate for a single-parameter read-only metric tool with annotations and an output schema. Still missing: whether results are broken down by dimension, and any pointer to list_workspaces for resolving the slug.

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 0%, so the description must carry the parameter, and it does partially: it identifies workspace as a customer workspace slug that is optional when only one workspace exists. It does not say how to discover valid slugs or what error occurs on an invalid/multi-workspace omission.

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?

States the resource (active users) and the exact time window (last 30 minutes), which is the key trait separating it from historical siblings like ga4_report and ga4_top_pages. It stops short of naming the sibling it differs from, so the differentiation is implied rather than explicit.

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 statement of when to use this versus ga4_report or ga4_traffic_sources, and no prerequisites or exclusions. The realtime framing hints at live-monitoring use, but that is inference rather than guidance.

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

ga4_reportGA4: ReportA
Read-only
Inspect

GA4 Custom Report über die GA4-Property des Workspace. Metrics: sessions, screenPageViews, activeUsers, keyEvents (ehem. conversions), totalRevenue, ... Dimensions: pagePath, deviceCategory, country, sessionSource, isKeyEvent, ... days: letzte N Tage inkl. heute (unvollständiger Tag). start_date/end_date ('YYYY-MM-DD') nur gemeinsam angeben, dann überschreiben sie days. limit max. 500. Gesamtzahlen: dimensions=[] liefert eine Summenzeile — Summen über Dimensionszeilen sind wegen limit und Thresholding keine Gesamtwerte. dimension_filter: {'field','value','match_type'?} (EXACT/CONTAINS/BEGINS_WITH/ENDS_WITH/FULL_REGEXP) oder Liste solcher Dicts (UND). order_by: Metrik-/Dimensionsname (order_desc steuert die Richtung). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
metricsYes
end_dateNo
order_byNo
workspaceNo
dimensionsYes
order_descNo
start_dateNo
dimension_filterNo

Output Schema

NameRequiredDescription
resultYes

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 openWorldHint=true, so the safety profile is covered; the description then adds non-obvious behavioral caveats: 'days' includes today as an incomplete day, limit is capped at 500, and summing dimension rows does NOT yield totals because of limit and thresholding. These gotchas are exactly what the annotations cannot express. It stops short of describing the response shape, though an output schema exists.

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?

Dense, telegraphic and front-loaded — scope first, then metrics/dimensions, then date semantics, then limit/filter/order/workspace. Almost every clause carries information, though the run-on '...' style and mixed German/English phrasing make it slightly harder to scan than a structured list would be.

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 10-parameter tool with no schema documentation and no annotations covering behavior, the description supplies date semantics, limit ceiling, totals trap, filter grammar, ordering, and workspace scoping. Combined with an existing output schema (so return values need not be explained), an agent has enough to call this 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?

Schema description coverage is 0%, so the description carries the full burden, and it largely does: days, start_date/end_date override semantics, limit max, dimension_filter dict shape with all match_type values, order_by/order_desc, and workspace slug are all explained. What is missing is the closed set of legal metric and dimension names (only examples plus '...'), which matters most for an agent building a query against a 0%-coverage schema.

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

Purpose4/5

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

States a specific verb+resource: a custom GA4 report run against the workspace's GA4 property, with example metrics and dimensions that make the output shape concrete. It does not, however, distinguish itself from the many more specific GA4 reporting siblings (ga4_top_pages, ga4_traffic_sources, ga4_conversions, ga4_realtime_users), so an agent still has to infer when the generic report is preferable.

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?

There is rich operational guidance (days vs. start_date/end_date, limit cap, totals via dimensions=[], filter syntax), but it is all intra-parameter usage rather than tool selection. No sentence says when to reach for ga4_report instead of ga4_top_pages or ga4_conversions, which is the main ambiguity given the sibling set.

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

ga4_top_pagesGA4: Top pagesA
Read-only
Inspect

Meistbesuchte Seiten: pagePath x screenPageViews, sessions, engagementRate. Zeitraum: letzte N Tage inkl. heute. Max. limit Zeilen (höchstens 500) — die Zeilensumme ist nicht die Gesamtzahl; Gesamtwerte über ga4_report mit dimensions=[]. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=true, openWorldHint=true), yet the description still adds real behavioral facts: the window includes today, limit is capped at 500, the row count is not the site total, and workspace may be omitted for single-workspace accounts. This is exactly the kind of constraint an agent needs beyond 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?

Four compact, front-loaded clauses — metrics first, then time window, then row-limit caveat, then workspace note. Every sentence carries information; the density is high but nothing is redundant.

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

Completeness5/5

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

With an output schema present, return structure need not be described, and the remaining hazards an agent faces — time window definition, row-limit semantics, grain of aggregation, workspace selection, and the aggregation escape hatch — are all covered.

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 0%, so the description carries the full burden and does so for all three parameters: days is defined as the last-N-days window including today, limit is bounded at 500, and workspace is a customer slug that is optional when only one workspace exists. Only the interaction between limit and the default of 20 is left implicit.

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?

Names the exact resource (pagePath) and the metrics returned (screenPageViews, sessions, engagementRate), so an agent knows precisely what report this produces. It also points to ga4_report for aggregate totals, which differentiates it from that sibling, though it does not distinguish itself from other top-N style tools (sc_top_pages, bing_top_pages).

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?

Gives an explicit routing rule: this tool returns a limited row set, and totals must be obtained via ga4_report with dimensions=[]. The default time window (last N days including today) is stated. Missing is guidance on when to prefer GA4 vs. Search Console or Bing top-pages tools, but within the GA4 family the usage context is clear.

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

ga4_traffic_sourcesGA4: Traffic sourcesA
Read-only
Inspect

Traffic-Quellen: sessionSource/sessionMedium x sessions, newUsers, engagedSessions. Zeitraum: letzte N Tage inkl. heute. Max. limit Zeilen (höchstens 500) — die Zeilensumme ist nicht die Gesamtzahl; Gesamtwerte über ga4_report mit dimensions=[]. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered; the description adds real context beyond that: the 500-row hard cap, the warning that the row sum is NOT the overall total, and that the time window includes today. It does not mention sampling, data lag, or continuity/attribution thresholds, which is why it is not a 5.

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

Conciseness4/5

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

Very dense for three sentences: resource, time window, row-limit caveat and workspace note are all front-loaded with no filler. The em-dash-clause structure is slightly telegraphic and mixes German prose into English tooling, but nothing is wasted.

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?

An output schema exists, so return values need no explanation, and the description covers the aggregation caveat and the workspace scoping that an agent would otherwise get wrong. The only gap is the absence of stated defaults and any note on data freshness or row ordering.

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 0%, so the description carries the burden and does so for all three parameters: days is the last N days including today, limit is a row cap of at most 500, and workspace is a customer slug that is optional when only one workspace exists. It omits the actual defaults (7 and 50) and value types, which keeps it below a 5.

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 exact resource (Traffic-Quellen), the dimensions used (sessionSource/sessionMedium) and the metrics returned (sessions, newUsers, engagedSessions). This distinguishes it immediately from ga4_top_pages, ga4_conversions and the generic ga4_report without needing to open any schema.

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 routes the agent to ga4_report with dimensions=[] when totals rather than per-source rows are needed, which is the main selection decision for this tool. It does not, however, contrast itself with nearby siblings such as ga4_top_pages or ga4_conversions, so the guidance is clear but not exhaustive.

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

ga4_update_propertyGA4: Update propertyB
Destructive
Inspect

GA4 Property-Stammdaten ändern (Name, Zeitzone, Währung) — nur die angegebenen Felder werden geändert, mindestens eines angeben. property_id: die GA4-Property des Workspace (andere werden abgelehnt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
time_zoneNo
workspaceNo
property_idYes
display_nameNo
currency_codeNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true; the description adds genuinely new context by promising a partial update (untouched fields preserved) and by noting that foreign property_ids are rejected. It does not say whether changes are reversible, what permissions are required, or whether confirmation is expected for a destructive call.

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?

Front-loaded with the action and the partial-update rule, then compact per-parameter notes with no filler. It is efficient, though the language mismatch with the surrounding English tool ecosystem slightly reduces scannability.

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?

A destructive, open-world mutation with an output schema present, so return values need not be described. The description covers the mutation semantics and ID validation but leaves the agent without permission/irreversibility context needed to invoke a destructive write confidently.

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 0%, so the description carries the burden and it does address all five parameters at a conceptual level (property_id scoping, optional workspace slug, and the three editable fields). But it omits the format conventions an agent would most likely get wrong — IANA time zone strings and ISO currency codes — so compensation is only partial.

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?

States a specific verb plus resource ('GA4 Property-Stammdaten ändern') and enumerates the mutable fields (Name, Zeitzone, Währung), so it is clearly distinguished from ga4_create_property or ga4_list_properties. It stops short of naming a sibling explicitly, which keeps it from a 5.

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

Usage Guidelines3/5

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

Useful operational rules are given: only supplied fields are changed and at least one must be supplied, plus property_id must belong to the workspace or it is rejected. However there is no explicit statement of when to prefer this over related tools (e.g. create vs. update) or any prerequisite/confirmation guidance.

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

gbp_create_postBusiness Profile: Create postAInspect

Neuen Local Post veröffentlichen (STANDARD/EVENT/OFFER). Achtung: veröffentlicht sofort öffentlich sichtbaren Content im Business-Profil — nur nach Bestätigung ausführen. Die Sprache des Posts ist fest 'de'. topic_type: STANDARD | EVENT | OFFER. Bei EVENT/OFFER sind event_title, event_start, event_end ('YYYY-MM-DD') Pflicht. OFFER: nur Titel + Zeitraum, keine Coupon-/Einlöse-/Bedingungsfelder. cta_type: BOOK | ORDER | SHOP | LEARN_MORE | SIGN_UP | CALL — außer bei CALL ist cta_url Pflicht. media_url: optionales Foto (Quell-URL). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
cta_urlNo
summaryYes
cta_typeNo
event_endNo
media_urlNo
workspaceNo
topic_typeNoSTANDARD
event_startNo
event_titleNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, but the description adds the critical consequence the annotations omit: the content becomes immediately publicly visible and therefore requires confirmation. It also fixes the post language to 'de', a behavioral constraint not expressible in the schema. It doesn't cover failure modes or whether the post can later be modified.

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?

Dense and front-loaded: the safety warning sits right after the one-line purpose, then per-parameter rules in telegraphic form. Every line carries information, though the compressed bullet style makes it slightly harder to parse than a fully structured format would.

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?

An output schema exists, so return values need not be described, and the mutation's public-exposure risk plus conditional field rules are covered. Remaining holes are the meaning of the required 'summary' field and what happens to the post afterwards (edit/delete via gbp_delete_post), which an agent would still have to infer.

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% schema description coverage this description carries the full burden and mostly does: it defines topic_type values, the conditional EVENT/OFFER requirements (event_title, event_start, event_end with 'YYYY-MM-DD'), the OFFER limitation, cta_type values plus the cta_url requirement except for CALL, media_url, and workspace slug semantics. The one required parameter, 'summary' (the post body), is never explained, which is a notable gap for the only mandatory field.

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

Purpose5/5

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

States a specific verb + resource ('Neuen Local Post veröffentlichen') and immediately scopes the variants (STANDARD/EVENT/OFFER) and the platform (Business-Profil). The name-plus-description combination makes it clearly distinct from gbp_list_posts, gbp_delete_post and from the WordPress sibling wp_create_post.

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?

Gives a real gating rule: it publishes immediately visible public content, so it should only run after explicit confirmation – a genuine usage condition an agent can act on. It doesn't name an alternative tool or when-not-to-use in terms of siblings (e.g. that OFFER fields for coupons don't exist), so it stops short of explicit routing.

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

gbp_delete_mediaBusiness Profile: Delete mediaA
Destructive
Inspect

Löscht ein hochgeladenes Foto/Medium. media_id: die ID aus gbp_list_media (nur Buchstaben, Ziffern, _ und -) — sonst {"error":"invalid_media_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
media_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is known. The description adds real value beyond that by documenting the accepted media_id charset and the exact failure response ({"error":"invalid_media_id"}), but it does not state that the deletion is permanent/irreversible or what happens on a missing ID, which is the main behavioral question for a destructive op.

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?

Two dense sentences with the action front-loaded and the parameter notes following; no filler. The inline JSON error string is slightly noisy but is informative rather than redundant.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and both parameters are covered. The only meaningful gap for a destructive tool is an explicit permanence/no-undo statement, which the description leaves to the annotation alone.

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 0%, so the description carries the full burden and largely does: media_id gets its source (gbp_list_media), an allowed-character constraint and an error outcome; workspace gets a meaning (customer workspace slug) and an optionality rule (only needed when more than one workspace exists). Only the exact slug format/where to obtain it is left implicit.

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?

States a specific verb and object ('Löscht ein hochgeladenes Foto/Medium'), which unambiguously identifies a deletion of an uploaded media asset and implicitly separates it from gbp_upload_media/gbp_list_media. It does not explicitly name the sibling alternatives, but the resource scope leaves little 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 points the agent to gbp_list_media as the source of media_id, which is a genuine prerequisite hint. However, it never states when deletion is appropriate versus alternatives, nor any exclusion (e.g. that the media is permanently removed and cannot be restored, or whether posts referencing the media are affected).

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

gbp_delete_postBusiness Profile: Delete postA
Destructive
Inspect

Löscht einen Local Post. post_id: die ID aus gbp_list_posts (nur Buchstaben, Ziffern, _ und -; kein Ressourcenname) — sonst {"error":"invalid_post_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
post_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true, so the safety profile is covered. The description usefully adds the invalid-id error shape and the id format constraint, but says nothing about irreversibility or permissions beyond what annotations carry.

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 compact clauses with the action first, then the required parameter's origin and constraints, then the optional parameter; every sentence carries distinct information and nothing is padded.

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?

An output schema exists, so return values need not be explained, and both parameters are adequately documented despite zero schema coverage. The only omission is an explicit statement that deletion is irreversible, which matters for a destructive 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?

Schema description coverage is 0%, so the description must compensate, and it largely does: post_id is defined as the id from gbp_list_posts with an explicit character constraint and the caveat that it is not a resource name, and workspace is defined as a customer workspace slug. Minor gap is that the workspace slug format itself is not exemplified.

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

Purpose5/5

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

States a specific verb and resource ("Löscht einen Local Post") and ties it to the sibling that produces the identifier (gbp_list_posts), so the agent can distinguish it from gbp_create_post/gbp_list_posts without opening a schema.

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?

Explains where post_id comes from (gbp_list_posts) and that workspace is optional when only one workspace exists, giving clear operational context. It does not explicitly state when not to use it or name an alternative delete path, so not a 5.

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

gbp_delete_replyBusiness Profile: Delete replyA
Destructive
Inspect

Löscht die Antwort auf eine Rezension (Review gilt danach wieder als unbeantwortet — z.B. um eine fehlerhafte Antwort zu korrigieren). review_id: die ID aus gbp_reviews (nur Buchstaben, Ziffern, _ und -) — sonst {"error":"invalid_review_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
review_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/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 safety profile is covered. The description adds real context beyond them: the side effect that the review reverts to unanswered, and the exact error payload for a malformed review_id.

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?

Front-loaded with the action and its consequence, then parameters in compact colon-delimited lines. No filler, though the line-broken layout is slightly less scannable than a single tight paragraph.

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?

An output schema exists, so return values need no explanation, and the description covers the mutation's effect, ID validation and workspace scoping. Only the no-existing-reply case is left unstated, a minor gap for a 2-parameter destructive delete.

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 0%, so the description carries the burden and largely does: it constrains review_id to letters, digits, underscore and hyphen, names its source tool (gbp_reviews), and explains workspace optionality when only one workspace exists. It omits what happens if the review has no reply, but both parameters gain meaning absent from the bare schema.

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

Purpose4/5

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

States a specific verb and resource ('Löscht die Antwort auf eine Rezension') plus the observable outcome (the review becomes unanswered again). It does not name gbp_reply_review as the counterpart, so sibling differentiation is only implicit, but an agent can tell this is the removal operation.

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?

Gives a concrete when-to-use motive ('z.B. um eine fehlerhafte Antwort zu korrigieren'), which is exactly the scenario that selects this tool. It stops short of explicitly routing to gbp_reply_review for the follow-up write, and there are no stated preconditions.

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

gbp_get_profileBusiness Profile: Get profileA
Read-only
Inspect

Vollständiges Business-Profil: Stammdaten, Beschreibung, alle Kategorien, Öffnungszeiten, Einzugsgebiet, Öffnungsstatus und Attribute. Sonderöffnungszeiten nur als Anzahl (special_hours_count), nicht die Perioden. attributes: je Attribut id plus alle Wertfelder — values (Enum/Bool), uriValues (URL-Attribute wie url_linkedin) und repeatedEnumValue (Mehrfachauswahl mit setValues/unsetValues); gleiche Struktur wie gbp_update_attributes(action="get"). Schlägt die Attribut-Abfrage fehl, ist attributes=[]. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only/open-world safety, so the bar is lower, yet the description adds real behavioral context: special hours are returned only as special_hours_count (not periods), attribute lookups degrade to attributes=[] on failure, and workspace is optional when only one workspace exists. These are non-obvious traits an agent could not derive from the schema or 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 content is front-loaded with the resource summary and then the notable edge behaviors. It is dense but every sentence (special hours count, attributes fallback, workspace optionality) carries decision-relevant information; the detailed attribute-structure sentence is somewhat redundant given the output schema but still aids interpretation.

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

Completeness4/5

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

With an output schema present, return-value explanation is not strictly required, yet the description still clarifies the shape of the tricky parts (attributes fields, special-hours count). Combined with the single optional workspace parameter being explained, an agent has everything needed to call and interpret it 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?

Schema coverage is 0% for the single parameter, so the description must compensate — and it does, explaining that workspace is the customer workspace slug and is optional when only one workspace exists. That fully covers the only parameter and resolves the default=null ambiguity left by the schema.

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

Purpose4/5

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

The description opens with a specific verb+resource framing ("Vollständiges Business-Profil") and enumerates exactly what the profile contains: Stammdaten, Beschreibung, Kategorien, Öffnungszeiten, Einzugsgebiet, Öffnungsstatus, Attribute. It is clearly a full-profile read. It does not, however, distinguish itself from siblings like gbp_location_info or gbp_list_locations, which an agent could plausibly confuse it with.

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

Usage Guidelines3/5

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

Usage is only implied — an agent infers 'call this to get the profile' — with no explicit when-to-use/when-not or alternative routing. The one useful hint is the cross-reference to gbp_update_attributes(action="get") for identical attribute structure, but that is a data-format note, not a selection guideline.

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

gbp_list_locationsBusiness Profile: List locationsA
Read-only
Inspect

Alle Business-Profile-Standorte, auf die das verbundene Google-Konto Zugriff hat — paginiert vollständig über Accounts und Standorte (kein stilles Abschneiden). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations provide readOnlyHint and openWorldHint, so the bar is lower. The description still adds real value by disclosing that results are fully paginated across accounts and locations with 'no silent truncation' — context an agent otherwise couldn't infer.

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?

Two compact sentences with the core capability front-loaded, followed by the workspace note. Little waste; appropriately sized for a simple list tool.

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?

An output schema exists so return values needn't be explained, and the simple one-param surface is adequately covered. The pagination note plus param explanation make it complete for calling correctly, short of explicit sibling routing.

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% schema coverage, the description carries the burden and does so for the single param: it identifies workspace as a customer-workspace slug and notes it is optional when only one workspace exists. That meaning is not in the schema.

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

Purpose4/5

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

A clear verb+resource ('Alle Business-Profile-Standorte' / 'list locations') with explicit scope: all locations the connected account can access. It doesn't distinguish itself from siblings like gbp_location_info or gbp_get_profile, but the purpose itself is 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?

Usage is implied for enumerating/looking up locations, and the optionality of workspace is noted. However, there is no explicit when-to-use vs alternatives (e.g. gbp_location_info for a single location) nor any exclusions.

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

gbp_list_mediaBusiness Profile: List mediaB
Read-only
Inspect

Hochgeladene Fotos/Medien des Standorts. page_token: Fortsetzung einer vorherigen Seite (aus next_page_token). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo
page_tokenNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real value by explaining that page_token continues a previous page obtained from next_page_token, and that workspace can be omitted for single-workspace accounts. It does not say anything about ordering, result size, or which location is used — notable since 'des Standorts' implies a location that is not a parameter.

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?

Three short lines, front-loaded with what the tool returns, then the two parameters that need explanation. Telegraphic fragments rather than full sentences, and the missing limit mention means it is lean but not fully economical.

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?

An output schema exists, so return values need not be described. However, the description references a location ('Standorts') with no corresponding parameter in the schema, leaving ambiguity about how the location is bound, and limit stays unexplained for a paginated list call.

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 0%, so the description must carry the parameters, and it explains two of three: page_token's provenance from next_page_token and workspace's optionality. The limit parameter is never mentioned, so coverage is incomplete at 2/3.

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 fragment 'Hochgeladene Fotos/Medien des Standorts' identifies the resource (uploaded photos/media for a location) precisely enough that an agent knows what comes back. No explicit verb is given, but the pairing with the name gbp_list_media and the absence of any create/delete semantics separates it from gbp_upload_media and gbp_delete_media.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus gbp_upload_media, gbp_delete_media, or the other GBP read tools, and no prerequisites. The only guidance given is parameter-level (workspace optional when there is a single workspace).

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

gbp_list_postsBusiness Profile: List postsA
Read-only
Inspect

Local Posts des Standorts (Update/Angebot/Veranstaltung) mit Status und CTA. page_token: Fortsetzung einer vorherigen Seite (aus next_page_token). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo
page_tokenNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuine context beyond that: pagination continuation via page_token (from next_page_token) and the single-workspace fallback for the workspace slug. It says nothing about ordering, page sizes, or empty-result behavior.

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?

Three short lines with the resource statement front-loaded followed by per-parameter notes; nothing is padded. The inline parameter glossary is a slight departure from prose form but is efficient and easy to scan.

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 an output schema present, return values need not be described, and annotations cover the read-only nature, so the remaining burden is mostly parameter and paging guidance, which is largely met. The undocumented limit parameter and the absence of any note on result ordering or page size keep it from being fully 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 description coverage is 0%, so the description must carry the parameter burden, and it documents two of three: page_token is explained as continuation from next_page_token, and workspace as a customer slug that is optional with a single workspace. Only limit (default 20) is left undocumented, a minor gap for an otherwise obvious parameter.

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?

States a specific verb implied by the tool and a concrete resource: 'Local Posts des Standorts' with the post types (Update/Angebot/Veranstaltung) and the fields returned (Status, CTA). This clearly separates it from gbp_create_post and gbp_delete_post by name and content, though it never explicitly contrasts with them.

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

Usage Guidelines3/5

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

Usage is only implied by the listing nature of the description; there is no explicit 'use this when...' or exclusion of alternatives such as gbp_get_profile or gbp_performance. The one real usage rule given is that workspace is optional when the account has a single workspace, which is useful but narrow.

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

gbp_local_rankBusiness Profile: Local rankA
Read-only
Inspect

Tatsächliche Position im Google-Maps/Local-Pack für keyword + Standort (über DataForSEO — die GBP-API liefert das nicht). Stärkster Local-SEO-Beleg. business_name: wird als Teilstring (case-insensitiv) im Eintragstitel gesucht — bei found=false mit kürzerem Namen erneut prüfen. location/language: Default aus dem Workspace (Standard Austria/de, also Landesebene) — für ein Local-Ranking location auf Ortsebene setzen ('Salzburg,Salzburg,Austria') oder den Ort ins Keyword nehmen (Land auch als 'AT', 'Österreich', 'Deutschland', 'CH'); language als ISO-Code ('de') oder Name ('German'), unbekannte Sprache -> Fehler invalid_language ohne Kosten. Rückgabe: found, top_position, positions[]{rank, title, rating, reviews, address, domain}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
depthNo
keywordYes
languageNo
locationNo
workspaceNo
business_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial context beyond the readOnly/openWorld annotations: the data source is DataForSEO, workspace defaults are country-level (Austria/de) unless overridden, and an unknown language yields an invalid_language error with no cost. This is exactly the kind of behavior an agent needs before spending a call.

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?

Front-loads what the tool returns and why it matters, then details parameters. It is dense with parenthetical caveats and runs long, but nearly every sentence adds actionable information rather than filler.

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

Completeness5/5

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

For a read-only lookup with an output schema, the description covers source, defaults, error semantics, matching behavior, and the return shape (found, top_position, positions[]). An agent has everything needed to call it 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?

Schema coverage is 0%, so the description carries the load, and it does so for business_name (case-insensitive substring match), location (city-level format and country aliases), language (ISO code or name, error behavior), and workspace (optional when single). Keyword is self-explanatory, but depth is left undocumented, which is the notable gap.

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

Purpose5/5

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

States a specific verb and resource: the actual position in Google Maps/Local Pack for keyword + location via DataForSEO, and explicitly notes the GBP API doesn't provide this. An agent can distinguish it from siblings like gbp_search_keywords or gbp_local_seo_audit without opening any schema.

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?

Gives clear operational guidance: retry with a shorter business_name if found=false, and set location to city level or put the locality into the keyword for local ranking. It doesn't name a sibling alternative (e.g. for pure keyword research), so it stops short of full when-not/alternative routing, but the context is strong.

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

gbp_local_seo_auditBusiness Profile: Local SEO auditA
Read-only
Inspect

Local-SEO-Audit: scort Profil-Vollständigkeit (Kategorien, Beschreibung, Öffnungszeiten, Attribute, Reviews) UND inhaltliche Punkte (Ort und Kernleistung in der Beschreibung, Beschreibungslänge, HTTPS, Kategorienlimit). Liefert Score + Empfehlungen sowie 'content_for_review' — das Rohmaterial für die qualitative Beurteilung, die bewusst dir überlassen bleibt (siehe 'review_hint'). Darin auch 'name_observations': Auffälligkeiten im Profilnamen als BEOBACHTUNG, nicht als Urteil — ein Ort im Namen ist zulässig, wenn er zum Firmenwortlaut gehört ('Sparkasse Salzburg'). Niemals ungefragt den Namen ändern: das löst eine Google-Prüfung aus und kann das Profil sperren. Review-Signale entfallen (unbewertet), wenn die My-Business-v4-API im Google-Cloud-Projekt nicht freigeschaltet ist. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

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

Annotations only declare read-only and open-world; the description adds real behavioral context on top: the score+recommendations return shape, the meaning of 'name_observations' as observation rather than verdict, the risk that a name change triggers Google review and can suspend the profile, and the degraded mode where review signals go unscored if the My-Business-v4 API is not enabled. Nothing here contradicts readOnlyHint.

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 purpose and the check list are front-loaded, and the later sentences (name-change risk, v4 API caveat, workspace semantics) each earn their place. It is dense and mixes parenthetical tangents with long run-on clauses, but no sentence is pure 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?

An output schema exists, yet the description still interprets the non-obvious fields (content_for_review, review_hint, name_observations) and documents the API-enabled prerequisite. The remaining gap is scope: with only a workspace parameter it never says whether all locations in the workspace are audited or just one.

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 one parameter at 0% schema coverage, the description carries the burden and does: it identifies 'workspace' as the customer workspace slug and states it is optional when only one workspace exists. That fully covers the single param, short of a 5 only because slug format/lookup is not spelled out.

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

Purpose4/5

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

The description names a specific operation (Local-SEO-Audit of the Google Business Profile) and enumerates exactly what is checked: categories, description, hours, attributes, reviews, plus content signals like HTTPS and category limits. That enumeration implicitly separates it from gbp_get_profile and gbp_location_info, though no sibling is named explicitly, which keeps it short of a 5.

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

Usage Guidelines3/5

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

It explains what happens downstream with the output ('content_for_review' is deliberately left for the agent's qualitative judgment, see 'review_hint') and warns never to change the name unprompted. What is missing is when to reach for this tool versus gbp_get_profile or gbp_location_info, and what prerequisites (connected profile, which location) must hold.

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

gbp_location_infoBusiness Profile: Location infoC
Read-only
Inspect

Stammdaten des Business-Profil-Standorts: Name, Adresse, Telefon, Kategorie, Öffnungszeiten. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered, but the description adds little beyond the field list. It never explains how the target location is identified when the only parameter is a workspace slug, nor whether all locations are returned or a single one — a real ambiguity for an external-API read.

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?

Two short lines, front-loaded with what data the tool concerns before the parameter note. No filler; the field enumeration is dense but purposeful.

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?

An output schema exists, so return values need not be explained, and the read-only nature is annotated. What is missing is how a specific location is targeted and how this differs from overlapping GBP siblings, which matters given the large sibling set.

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 0%, so the description must carry the single parameter, and it does: it names 'workspace' as the customer workspace slug and notes it is optional when only one workspace exists. That is meaningfully more than the bare anyOf string schema provides, though it omits format/error behavior.

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

Purpose3/5

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

The description identifies the resource (Business-Profil-Standort master data) and enumerates the fields involved (name, address, phone, category, hours), which orients the agent. But there is no explicit verb and no differentiation from the very similar siblings gbp_get_profile, gbp_list_locations, gbp_manage_hours and gbp_manage_open_info, so an agent cannot confidently tell whether this reads or writes those fields.

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 statement of when to use this tool versus gbp_get_profile or gbp_list_locations, and no preconditions (permissions, whether a location must already be selected). The only conditional text concerns the workspace parameter, not tool selection.

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

gbp_manage_categoriesBusiness Profile: Manage categoriesA
Destructive
Inspect

GBP-Kategorien — stärkster lokaler Relevanz-Hebel. action: search (search_term, matcht Namensanfang) | get | set (primary_category_id + optional additional_category_ids aus 'search'). set ERSETZT die komplette Kategorienliste: ohne additional_category_ids werden vorhandene Zusatzkategorien entfernt — vorher mit get lesen und alle gewünschten IDs mitgeben. Die Antwort spiegelt nur die Eingabe; Ergebnis mit get prüfen. validate_only: Probelauf ohne Schreiben. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
actionYes
workspaceNo
region_codeNoAT
search_termNo
language_codeNode
validate_onlyNo
primary_category_idNo
additional_category_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

This is exactly the context annotations cannot convey: set REPLACES the entire category list, omitting additional_category_ids silently deletes existing ones, and the response only echoes input so the result must be verified with get. That makes the destructiveHint annotation actionable rather than merely present.

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

Conciseness3/5

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

The action dispatch line is well front-loaded, but it opens with a German marketing line ('stärkster lokaler Relevanz-Hebel') that carries no operational value, and the mixed German/English phrasing adds parsing friction for a critical destructive warning.

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?

An output schema exists, so return values needn't be described, and the destructive-replace semantics are fully covered. The gap is the two undocumented locale parameters, which matter for a tool whose search returns localized category names.

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 0%, so the description carries the full burden and does so for six of eight parameters — including the action enum values, which the schema leaves as a bare string. region_code and language_code, both with non-obvious defaults (AT/de), are never explained.

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

Purpose5/5

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

The description names the resource (GBP categories) and enumerates the three concrete operations — search, get, set — with the exact parameters each expects. An agent can distinguish this from siblings like gbp_update_profile or gbp_get_profile purely from the text.

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 gives an explicit read-before-write workflow (read with get, then pass all desired IDs), explains validate_only as a dry run, and clarifies that search matches on name prefix. What's missing is when to use search versus get, and no sibling tool is named as an alternative.

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

gbp_manage_hoursBusiness Profile: Manage hoursA
Destructive
Inspect

Reguläre/Sonderöffnungszeiten setzen (Frische-Signal). regular_hours: [{open_day:MONDAY..SUNDAY, open_time:'HH:MM', close_time:'HH:MM', close_day (optional, für Zeiten über Mitternacht)}] — ERSETZT alle regulären Zeiten, immer alle Tage angeben (bestehende: gbp_get_profile 'hours'). special_hours: [{date:'YYYY-MM-DD', closed:true | open_time, close_time}] — ersetzt ebenfalls alle Sonderzeiten; bestehende Perioden sind über kein Tool lesbar (gbp_get_profile liefert nur die Anzahl). validate_only: Probelauf ohne Schreiben. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
regular_hoursNo
special_hoursNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already flag destructive and open-world behavior, but the description adds crucial specifics: both arrays replace all existing entries, all regular days must be supplied, and validate_only performs a dry run without writing. It also discloses that existing special-hour periods cannot be read through any tool.

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 purpose is front-loaded, followed by dense but relevant parameter notes. It is appropriately sized for a destructive four-parameter tool, though 'Frische-Signal' and some compact parentheticals add minor clutter.

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

Completeness4/5

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

With an output schema covering returns and annotations covering safety, the description is nearly complete for invocation. The main gap is that it does not explicitly state what happens when regular_hours or special_hours are omitted or null, which matters for an optional-parameter replace-all tool.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry the burden and does: it defines all four parameters, including regular_hours fields (open_day, open_time, close_time, optional close_day), special_hours fields (date, closed, open_time/close_time), validate_only, and workspace.

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

Purpose5/5

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

States a specific verb and resource: set regular/special opening hours. It also distinguishes the read path by naming gbp_get_profile 'hours', so the agent can separate this write tool from the profile-read sibling.

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?

Explains the replacement rule and points to gbp_get_profile for existing regular hours, plus notes that existing special periods are not readable via any tool. It lacks an explicit when-not-to-use statement or comparison with other hour-adjacent siblings such as gbp_manage_open_info.

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

gbp_manage_open_infoBusiness Profile: Manage open infoA
Destructive
Inspect

Öffnungsstatus (openInfo) des Standorts lesen/setzen. action: get | set. status (bei set): nur 'OPEN' oder 'CLOSED_TEMPORARILY'. 'CLOSED_PERMANENTLY' wird bewusst abgelehnt (Fehler-Dict) — eine dauerhafte Schließung ist irreversibel und gehört ins Google-Dashboard, nicht in ein MCP-Tool. Nur bewusst und nach Bestätigung setzen — öffentlich sichtbar. validate_only: Probelauf ohne Schreiben. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
actionNoget
statusNo
workspaceNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: explains that CLOSED_PERMANENTLY is deliberately rejected with an error dict because permanent closure is irreversible and belongs in the Google dashboard, warns that changes are publicly visible, and documents validate_only as a dry run. This is exactly the extra context destructiveHint=true alone cannot convey.

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?

Front-loaded with the read/set scope, then per-parameter notes in short lines; no filler. The CLOSED_PERMANENTLY rationale is a full sentence but earns its place as the main safety justification, though the block is slightly dense to parse.

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 dual-mode mutation tool with an output schema present, the description covers both branches, the rejected value and its failure mode, the public-visibility consequence, workspace resolution, and the dry-run escape hatch. Nothing needed to call it correctly is missing.

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

Parameters5/5

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

Schema coverage is 0% with 4 undocumented parameters, so the description carries the full burden — and does: action values, the only two accepted status values, validate_only as a no-write trial run, and workspace as an optional customer slug when only one workspace exists. All four parameters gain meaning absent from 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?

States a specific verb pair and resource: read/set the location's openInfo status, and names the underlying API field so an agent knows exactly which field is touched. This distinguishes it from gbp_manage_hours (hours) and gbp_update_attributes (attributes) without 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?

Explicitly frames the two modes (action: get | set) and adds a strong usage constraint: only set deliberately and after confirmation because the change is publicly visible. It does not name sibling alternatives for other profile fields, so it stops short of a full routing statement.

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

gbp_performanceBusiness Profile: PerformanceA
Read-only
Inspect

Business-Profil-Performance: Impressionen (Maps/Suche), Anrufe, Website-Klicks, Routenanfragen, Nachrichten, Buchungen, Essensbestellungen, Menü-Klicks. Zeitraum: days (rollierendes Fenster bis gestern, heute nie enthalten; Default 30) ODER start_date+end_date ('YYYY-MM-DD', ersetzen days). metrics: Teilmenge von BUSINESS_IMPRESSIONS_{DESKTOP,MOBILE}_{MAPS,SEARCH}, CALL_CLICKS, WEBSITE_CLICKS, BUSINESS_DIRECTION_REQUESTS, BUSINESS_CONVERSATIONS, BUSINESS_BOOKINGS, BUSINESS_FOOD_ORDERS, BUSINESS_FOOD_MENU_CLICKS (Default alle, case-insensitive). Antwort: Summe je Metrik (Schlüssel in Kleinbuchstaben) plus impressions_total (Summe der vier Impression-Metriken) und start_date/end_date. include_time_series: liefert zusätzlich die tägliche Zeitreihe je Metrik statt nur der Summe. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
metricsNo
end_dateNo
workspaceNo
start_dateNo
include_time_seriesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds meaningful behavior beyond that: the rolling window excludes today, the default is 30, metrics defaults to all and is case-insensitive, and the response includes impressions_total plus a lowercase-keyed sum per metric. It doesn't mention rate limits or failure modes, so not a 5.

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

Conciseness4/5

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

It is front-loaded with the resource and metric list, then period rules, then metric filtering, then response shape. The long enumeration of metric token names is dense but necessary; overall it earns its place without much waste.

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 6-parameter reporting tool with an output schema, all decision-relevant information is present: period logic, metric filtering, time-series toggle, and workspace scoping. The description even summarizes the response shape despite the output schema existing.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully compensates: days semantics and default, the exact accepted metric names and case-insensitivity, start_date/end_date format and their precedence over days, include_time_series adding a daily series, and workspace being optional for single-workspace cases — essentially all 6 parameters are documented with 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 names a specific resource (Business Profile performance) and enumerates exact metrics returned: impressions split by Maps/Search, calls, website clicks, direction requests, messages, bookings, food orders, and menu clicks. This clearly distinguishes it from siblings like gbp_local_rank, gbp_reviews, and gbp_search_keywords.

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 gives precise guidance on the two mutually exclusive period modes: days (rolling window to yesterday, default 30) OR start_date+end_date replacing days, and states workspace is optional when only one workspace exists. It doesn't explicitly contrast with sibling GBP tools, so it falls 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.

gbp_reply_reviewBusiness Profile: Reply reviewA
Destructive
Inspect

Auf eine Rezension antworten (erstellt oder ersetzt die bestehende Antwort). comment: max. 4096 Bytes UTF-8 (Umlaute/Emoji zählen mehrfach pro Zeichen). review_id: die ID aus gbp_reviews (nur Buchstaben, Ziffern, _ und -; kein vollständiger Ressourcenname) — sonst {"error":"invalid_review_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
commentYes
review_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true. The description earns credit beyond them by clarifying the replace semantics, the 4096-byte limit with multibyte umlaut/emoji nuance, and the specific error returned for an invalid review_id. Good added context, though no permission/auth details.

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?

Front-loads the action, then lists each parameter with its constraint compactly. Dense but every clause earns its place. The inline error JSON is slightly technical but genuinely useful; overall efficient.

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

Completeness4/5

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

With a present output schema and annotations covering the safety profile, the description need not explain return values. It covers inputs thoroughly and adds error behavior. Only a permissions/auth note and explicit alternative routing are missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden – and it delivers. It documents all three params: comment byte limit with encoding caveat, review_id character set and the 'no full resource name' constraint plus error code, and workspace's optional-when-single condition. This fully compensates for the empty schema.

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

Purpose4/5

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

Stated a specific verb and resource in German: answer a review, creating or replacing the existing reply. The upsert nuance ('ersetzt die bestehende Antwort') distinguishes it from a pure create. It references gbp_reviews as the ID source but does not explicitly contrast with gbp_delete_reply, so not quite a 5.

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

Usage Guidelines3/5

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

It mentions the valid source of review_id (gbp_reviews) and that workspace is optional when only one exists – useful prerequisites. But it never states when NOT to use this tool or points to an alternative like gbp_delete_reply. Usage is implied rather than guided.

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

gbp_reviewsBusiness Profile: ReviewsA
Read-only
Inspect

Rezensionen des Standorts: Durchschnittswertung und Bewertungen inkl. Antworten. Fenster: max. 50 pro Seite (limit>50 wird gedeckelt, page_size_capped im Ergebnis). WARNUNG: Antworten bumpt updateTime — bei order_by="updateTime desc" (Default) springt ein gerade beantwortetes Review an die Spitze. NIE Lesen und Antworten verschränken: erst mit unanswered_only=True + hohem max_pages alle unbeantworteten review_id als Snapshot sammeln, danach erst mit gbp_reply_review antworten. unanswered_only: iteriert Seiten (bis max_pages) und liefert nur unbeantwortete Reviews plus pages_scanned/next_page_token (Fortsetzungspunkt). page_token: Fortsetzung einer vorherigen Seite (aus next_page_token). order_by: 'updateTime desc' (Default) | 'rating' | 'rating desc' — kein createTime, kein asc (andere Werte ergeben invalid_order_by). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
order_byNoupdateTime desc
max_pagesNo
workspaceNo
page_tokenNo
unanswered_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature needs no restating; the description instead adds non-obvious behavior: the 50-per-page cap surfacing as page_size_capped, page iteration up to max_pages with pages_scanned, and the crucial warning that replying bumps updateTime and reorders results. That is real added context beyond the annotations, though it does not cover auth/permission requirements for accessing a location's reviews.

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 resource statement is front-loaded and the highest-risk item (the reply/updateTime warning) is emphasized. It is dense but nearly every clause carries operational information; the only cost is that it reads as a packed block rather than a clearly sectioned list.

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?

An output schema exists, so return values need no explanation, and the description still discloses the two non-obvious result fields (page_size_capped, pages_scanned). For a paginated, filter-based read tool with zero schema documentation, this fills every gap an agent needs to call it correctly.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden and does: limit (capped at 50), order_by (allowed values plus what fails), max_pages (iteration bound), page_token (continuation source), unanswered_only (filtering plus extra return fields), and workspace (optional when a single workspace exists). All six parameters gain meaning absent from 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 first line names a specific resource and scope: reviews of a location, including average rating and replies. It is immediately distinguishable from gbp_reply_review (write) and from gbp_performance (aggregate metrics), so an agent can route without opening a schema.

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?

Gives explicit when/how: use unanswered_only=True with a high max_pages to snapshot unanswered review IDs, then reply via gbp_reply_review afterwards. It also states which order_by values are rejected (invalid_order_by), and that page_token continues from next_page_token — conditions and alternatives are spelled out rather than implied.

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

gbp_search_keywordsBusiness Profile: Search keywordsA
Read-only
Inspect

Suchbegriffe, über die Nutzer das Business-Profil gefunden haben. months: Anzahl der letzten abgeschlossenen Monate (Default 3). impressions ist der Wert über den GESAMTEN Zeitraum, nicht pro Monat — Monatswerte nur mit months=1. limit: Seitengröße (API-Maximum 100); es wird nur die erste Seite geliefert — bei genau limit Einträgen gibt es vermutlich weitere. Low-Volume-Terme werden von Google gebucketet: solche Einträge tragen bucketed=true, ihr impressions-Wert ist dann eine gerundete Obergrenze (real "weniger als"), kein exakter Einzelwert. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
monthsNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint, and the description adds substantial behavioral context beyond them: impressions is a total over the whole period, not per month; only the first page is returned and a result count equal to limit signals more rows exist; low-volume terms are bucketed with a rounded upper bound rather than an exact value. These are exactly the data-interpretation caveats an agent cannot derive from structured fields.

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 purpose statement is front-loaded and the remaining lines are per-parameter notes with no filler. It is dense and line-broken mid-sentence, which slightly hurts scanability, but no sentence is redundant.

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?

An output schema exists, so return values need not be described, and everything else an agent needs is present: what the data represents, the aggregation window, pagination limits, and the bucketing caveat. The only real omission is sibling differentiation, which is a routing concern rather than a completeness gap for invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: months is defined as the number of last completed months with default 3, limit as page size with an API maximum of 100, and workspace as a customer slug that is optional when only one workspace exists. Each parameter gets meaning well beyond its bare integer/string type.

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 opening line names the exact resource: search terms through which users found the Business Profile. It is a noun phrase rather than a verb+resource, but the subject is unambiguous. It does not differentiate from nearby siblings such as gbp_performance or gbp_local_rank, which could plausibly surface similar query data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the months note tells the agent to use months=1 when monthly granularity is needed, and the limit note warns that only the first page is returned. There is no explicit 'use this instead of X' routing against sibling tools, so the agent must infer when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gbp_update_attributesBusiness Profile: Update attributesA
Destructive
Inspect

GBP-Attribute lesen/setzen (URLs wie LinkedIn/Termin, Amenities, Zahlung, Enum-/Mehrfachauswahl-Attribute). action: get | set. attributes als {attribut_id: wert} — String/Liste=URL, Bool=Ja/Nein, {'enum': 'WERT'}=Enum, {'set': […], 'unset': […]}=Mehrfach- auswahl (mind. ein Key), None=Attribut löschen. get zeigt nur gesetzte Attribute; verfügbare IDs sind über dieses Tool nicht abfragbar — unbekannte IDs liefern http_error. validate_only: Probelauf (gibt gebauten Body zurück, ohne zu schreiben). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
actionNoset
workspaceNo
attributesNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and openWorldHint=true; the description goes beyond them by disclosing that a None value deletes an attribute, that validate_only performs a dry run returning the constructed body without writing, and that unknown IDs surface as http_error. It stops short of stating permission/scope requirements or rate limits, but the mutation risk and its mitigation are well covered.

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?

Front-loads the purpose, then proceeds mode-by-mode and parameter-by-parameter with no filler sentences. It is dense and telegraphic in places, and the parenthetical type glossary is compact rather than beautifully structured, but nothing is wasted.

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?

An output schema exists, so return values need not be described here. For a four-parameter tool with zero schema documentation and free-form attribute objects, the description covers modes, value encodings, deletion semantics, dry-run behavior, workspace scoping, and error behavior; only discovery of valid attribute IDs remains an explicit dead end.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does so: it defines the action values, the {attribut_id: wert} mapping shape, and the value encoding for each type (String/Liste=URL, Bool, {'enum': ...}, {'set': [...], 'unset': [...]}, None=delete). validate_only and workspace (optional when a single workspace exists) are also explained.

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?

States a concrete verb+resource pair ('GBP-Attribute lesen/setzen') and scopes it with examples of attribute families (URLs such as LinkedIn/Termin, Amenities, Zahlung, Enum-/Mehrfachauswahl). An agent can distinguish this from gbp_update_profile or gbp_manage_hours by the 'attributes' framing, though no sibling is named explicitly to sharpen the boundary.

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?

Explains the two modes clearly (action: get | set) and gives real usage constraints: get returns only set attributes, available attribute IDs cannot be discovered through this tool, and unknown IDs yield http_error. It lacks explicit routing against sibling tools like gbp_update_profile or gbp_location_info, so it earns a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gbp_update_profileBusiness Profile: Update profileA
Destructive
Inspect

Stammdaten des Business-Profils ändern (nur übergebene Felder). title: Profilname (Name-Compliance beachten — nur echter Firmenname). Nur nach ausdrücklicher Rückfrage ändern: löst eine Google-Prüfung aus, das Profil kann vorübergehend gesperrt werden. description: Profilbeschreibung. website_uri: Website. phone: Telefonnummer. validate_only: True für einen Probelauf (Dry-Run) ohne Schreiben. Hinweis: Attribut-Felder (LinkedIn-/Termin-URL) laufen über gbp_update_attributes. Antwort enthält nur name/title/websiteUri aus der Patch-Antwort; description und phone mit gbp_get_profile zurücklesen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
phoneNo
titleNo
workspaceNo
descriptionNo
website_uriNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, and the description goes beyond them by naming the concrete risk (Google verification, possible temporary suspension for title changes) and by warning that the patch response only returns name/title/websiteUri, so description/phone must be re-read via gbp_get_profile. That is real behavioral context not present in the annotations; it stops short of stating permission requirements or how null fields are treated.

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?

Compact and front-loaded with the operation and partial-update rule, with per-parameter notes and the sibling hint last. The field-by-field colon-separated layout is efficient but slightly telegraphic, which costs a little readability.

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 destructive, open-world mutation with 6 undocumented parameters, the description covers the risky field, the sibling boundary, the dry-run path and even the response limitation despite an output schema existing. Nothing an agent needs to call this safely and correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it does: title, description, website_uri, phone, validate_only and workspace each get meaning, including the constraint that title must be the real company name. The dry-run semantics of validate_only are especially valuable since the schema only shows a boolean default.

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 first sentence gives a specific verb and resource ('Stammdaten des Business-Profils ändern') plus the crucial partial-update semantics ('nur übergebene Felder'). It also distinguishes itself from the closest sibling by routing attribute fields to gbp_update_attributes, so an agent can tell the two update tools apart without opening a schema.

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?

Explicit conditions are given: title changes require prior confirmation because they trigger a Google review and possible temporary suspension; attribute fields must go through gbp_update_attributes instead; validate_only is offered for a dry run. That is when-to-use, when-not-to-use and the named alternative in one place.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gbp_upload_mediaBusiness Profile: Upload mediaAInspect

Foto anhand einer Quell-URL hochladen. Achtung: wird öffentlich sichtbar im Business-Profil angezeigt — nur nach Bestätigung hochladen. category: COVER | PROFILE | LOGO | EXTERIOR | INTERIOR | PRODUCT | AT_WORK | FOOD_AND_DRINK | MENU | COMMON_AREA | ROOMS | TEAMS | ADDITIONAL. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
categoryNoADDITIONAL
workspaceNo
source_urlYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as a non-read-only, open-world, non-destructive operation. The description adds important behavioral context beyond that by warning that the uploaded image becomes publicly visible and should only be uploaded after confirmation.

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 purpose is front-loaded in the first sentence, followed by the essential public-visibility warning and the non-obvious parameter notes. The category list is lengthy but necessary given that the schema does not enumerate those values.

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 public media-upload mutation, the description covers the key visibility and confirmation concerns plus the parameter semantics that the schema lacks. It does not mention authentication, rate limits, or supported media constraints, but the output schema handles return-value information.

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 0%, so the description must carry parameter meaning; it does by listing allowed category values, noting workspace is optional when there is only one workspace, and identifying source_url as the photo source URL. It still does not clarify source URL accessibility requirements or file constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: upload a photo from a source URL. The tool name and description make its upload role clear, but it does not explicitly differentiate itself from siblings such as gbp_list_media or gbp_delete_media.

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 gives a clear usage condition: the media becomes publicly visible in the Business Profile, so it should only be uploaded after confirmation. It does not name alternatives or mention when to inspect existing media first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_container_infoTag Manager: Container infoB
Read-only
Inspect

GTM Container-Metadaten + aktuell gepublishte Live-Version (Name, Tag/Trigger/Variable count). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the useful detail that the result pairs metadata with the published live version and its counts. It does not mention auth requirements or what happens with multiple workspaces beyond the optionality note.

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?

Two short sentences with no filler; the resource/payload is stated first and the parameter note second. Reasonably front-loaded, though it reads as a label plus a param gloss rather than a cohesive explanation.

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?

An output schema exists, so return values needn't be documented, and the sole optional parameter is explained. For a one-param read-only info tool this is largely sufficient; only sibling differentiation is missing.

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 0%, so the description carries the burden, and it does explain the single parameter: workspace is the customer workspace slug and is optional when only one workspace exists. That is meaningful semantic detail the bare schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it returns GTM container metadata plus the currently published live version (with tag/trigger/variable counts), which is more than a title restatement. However, it never says which container it refers to (the schema exposes no container ID) and it does not distinguish itself from siblings like gtm_list_containers or gtm_get_version.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to use this versus the many related GTM tools (gtm_list_containers, gtm_get_version, gtm_workspace_status). The only usage hint is the parenthetical that workspace is optional when there is a single workspace, which is about a parameter, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_create_containerTag Manager: Create containerAInspect

Neuen GTM-Container anlegen (usage_context: web | server | android | ios | amp). Danach mit workspace_configure_source (source='gtm') am Workspace verknüpfen, damit die übrigen gtm_-Tools ihn nutzen. account_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
workspaceNo
account_idYes
usage_contextNoweb

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe mutation profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true); the description adds genuine value on top by disclosing the validation failure mode ("account_id ist rein numerisch, sonst {"error":"invalid_id"}") and the required post-creation linking step. It omits permissions/scope requirements and whether creation is idempotent or rate-limited.

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?

Front-loaded with the core action, then the sequencing instruction, then the parameter caveats — every sentence carries actionable information. The telegraphic parentheses style is dense but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be explained, and the description covers creation, the required wiring step, and the trickiest parameter constraints. What remains missing (required OAuth scopes, whether the container starts unpublished, name uniqueness) is secondary for a create call with a documented response.

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 0%, so the description must carry the burden, and it largely does: it supplies the missing enum for usage_context (web | server | android | ios | amp), the numeric-only constraint on account_id with the exact error shape, and the meaning plus optionality of workspace. Only 'name' is left unexplained, which is self-evident.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ("Neuen GTM-Container anlegen") and immediately scopes it with the allowed usage_context values, which no sibling gtm_ tool offers. It is clearly distinguishable from gtm_list_containers and gtm_create_workspace, and it names the follow-up step that makes the created container usable.

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 gives a concrete workflow prerequisite: after creating, link the container via workspace_configure_source (source='gtm') so the remaining gtm_ tools can use it. It does not mention when not to use it (e.g., checking gtm_list_containers first to avoid duplicates) or alternatives, so it falls short of the explicit when/when-not bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_create_tagTag Manager: Create tagAInspect

Neuen GTM Tag anlegen. Änderungen passieren im GTM-Workspace und sind erst nach gtm_create_version + gtm_publish_version live. Beispiel GA4-Config-Tag: tag_type="googtag", parameters=[{"type": "template", "key": "tagId", "value": "G-XXXXXXX"}], firing_trigger_ids=["2147479553"] (= All Pages). Custom HTML ('html') und eigene Vorlagen ('cvt_…') führen eigenen Code auf der Website aus und gehen nur mit Freigabe im Workspace (sonst error custom_code_disabled) — Google-Vorlagen wie googtag/awct/gaawe immer. workspace_id: GTM-Workspace (aus gtm_list_workspaces). workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
tag_typeYes
workspaceNo
parametersYes
workspace_idYes
firing_trigger_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds real behavior: workspace scoping, the two-step publish lifecycle, and the failure mode custom_code_disabled for custom HTML or templates. It does not restate the annotations; it adds context that the annotations cannot express.

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 front-loaded with the operation, then the lifecycle constraint, then per-parameter notes, and every block is useful. The inline GA4 example is dense and technical, which makes the text heavier to scan, but it is not padding.

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?

This is a mutation tool with annotations and a return schema. The description covers lifecycle, permissions/approval requirements, error cases, and all six parameters, so nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so this description must cover six parameters, and it does: tag_type with a concrete 'googtag' example, parameters with a full template structure, firing_trigger_ids with a numeric example ('All Pages'), workspace_id numeric constraint with the invalid_id error, and workspace as an optional slug. Only 'name' is left implicit, which is self-evident.

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 ('Neuen GTM Tag anlegen') and immediately clarifies the scope: the tag is created inside the GTM workspace, not directly live. Sibling tools gtm_create_version, gtm_publish_version, and gtm_list_workspaces are named, so the agent can distinguish this from neighboring GTM tools without opening the schema.

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 clearly explains the workflow: creating a tag is not enough, and changes only go live after gtm_create_version and gtm_publish_version. It also directs the agent to gtm_list_workspaces to get workspace_id and describes the custom-code restriction that blocks 'html' and 'cvt_…' tag types. It does not explicitly contrast with gtm_update_tag or restate tagging scenarios, 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.

gtm_create_triggerTag Manager: Create triggerAInspect

Neuen GTM Trigger anlegen (trigger_type z.B. pageview, click, customEvent). conditions: optionales Dict, wird in den Trigger-Body gemerged (z.B. {"customEventFilter": [...]} oder {"filter": [...]}). Erst nach gtm_create_version + gtm_publish_version live. workspace_id: GTM-Workspace (aus gtm_list_workspaces). workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
workspaceNo
conditionsNo
trigger_typeYes
workspace_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the deployment lifecycle: the trigger is not live until gtm_create_version and gtm_publish_version are called. It also notes the workspace_id validation failure mode and the optional workspace slug behavior, adding meaningful behavioral context for a creation tool.

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 front-loaded and compact, with each sentence adding practical information about creation, lifecycle, and parameter constraints. It is slightly dense but avoids repetition and wasted text.

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 five-parameter create tool with an output schema and annotations already covering safety, the description is largely complete: it explains the creation workflow, prerequisites for going live, and tricky parameter constraints. It could still be stronger by clarifying usage relative to other GTM creation tools, but no critical invocation detail is missing.

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 0%, so the description must carry parameter meaning. It compensates well by explaining trigger_type examples, conditions merging into the trigger body with example shapes, workspace_id source and numeric constraint, and workspace fallback behavior; only the obvious name parameter is left undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource, 'Neuen GTM Trigger anlegen', and immediately gives the relevant trigger_type examples. This makes clear it creates GTM triggers rather than tags, variables, workspaces, or versions, so it is distinguishable from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides useful context such as workspace_id coming from gtm_list_workspaces and the fact that the trigger only goes live after gtm_create_version and gtm_publish_version. However, it does not explicitly state when to choose this tool over gtm_create_tag or other creation paths, so usage guidance is mostly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_create_variableTag Manager: Create variableAInspect

Neue GTM-Variable im Workspace anlegen (erst nach Version+Publish live). Default variable_type 'v' = Data-Layer-Variable: ohne parameters wird der Data-Layer-Key aus dem Namen abgeleitet ('dlv - foo' → Key 'foo'). Benutzerdefiniertes JavaScript ('jsm') und eigene Vorlagen ('cvt_…') nur mit Freigabe im Workspace (sonst error custom_code_disabled). workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
workspaceNo
parametersNo
workspace_idYes
variable_typeNov

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), it discloses the actual side-effect chain: changes are not live until a version is created and published. It also names two concrete failure modes ('error custom_code_disabled' for jsm/cvt_ types, 'invalid_id' for non-numeric workspace_id) and the implicit-name-derivation behavior, which is exactly the kind of non-obvious conduct an agent cannot get from structured fields.

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 critical constraint (needs version+publish to go live) is front-loaded in the opening parenthetical, and each subsequent sentence adds distinct operational content. It is dense and mixes languages with the English schema, but there is no filler to cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and for a 5-parameter create tool the description covers defaults, ID format, error codes and the publish lifecycle. The main residual gap is the expected structure of `parameters` for non-default variable types, which an agent building a jsm/cvt_ variable would still have to guess.

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 0%, so the description carries the full burden and mostly discharges it: it explains the variable_type domain and its default ('v', with 'jsm' and 'cvt_…' restricted), that workspace_id must be purely numeric, that workspace is an optional customer slug when only one workspace exists, and that omitting parameters derives the data-layer key from name ('dlv - foo' → 'foo'). Only the required `name` field and the shape of `parameters` entries remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Neue GTM-Variable im Workspace anlegen') with the lifecycle scope ('erst nach Version+Publish live'). The resource is unmistakably distinct from sibling tools like gtm_create_tag, gtm_create_trigger and gtm_create_version, so an agent can route on name plus first line alone.

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 when this applies (creating a variable in an existing workspace) and gives a key prerequisite via the publish/version note, but it names no alternatives and never says explicitly when to prefer this over a different variable mechanism. Usage is inferable rather than specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_create_versionTag Manager: Create versionA
Destructive
Inspect

Workspace in eine neue Version snapshotten. Publisht NICHT — extra Schritt via gtm_publish_version. Bei merge_conflict zuerst gtm_sync_workspace. Der Quell-Workspace wird dabei von GTM gelöscht; für Folgeänderungen die zurückgegebene new_workspace_id verwenden (oder gtm_list_workspaces). Rückgabe: version_id, new_workspace_id, tag_count. Fehlerformen (keine Version erstellt): error=merge_conflict | compiler_error | create_version_failed. workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
notesNo
workspaceNo
workspace_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, but the description adds crucial context the agent could not infer: GTM deletes the source workspace, publishing does not occur, the return fields (version_id, new_workspace_id, tag_count), and the exact error enum (merge_conflict | compiler_error | create_version_failed). This is exactly the kind of destructive-side-effect disclosure the dimension rewards.

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?

Dense and front-loaded with the destructive constraint and the publish disclaimer first. Every sentence carries information (returns, errors, ID format), though the density and mixed German/field-name style makes it slightly harder to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a destructive mutation with 0% schema descriptions, the definition covers purpose, side effects, sibling routing, return shape, and error modes. Even though an output schema exists, the inline return summary is correct and nothing an agent needs to call it safely is missing.

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% schema description coverage, the description must compensate and does for the risky fields: workspace_id must be purely numeric (else invalid_id) and workspace is an optional slug used when multiple workspaces exist. It does not explain name or notes semantics, leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Workspace in eine neue Version snapshotten') and immediately disambiguates from publishing, naming gtm_publish_version. An agent can tell exactly what this does and what it does not do without opening any schema.

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 routes alternatives and preconditions: on merge_conflict call gtm_sync_workspace first, publishing is a separate step via gtm_publish_version, and note the source workspace is deleted so follow-ups use new_workspace_id or gtm_list_workspaces. This is close to ideal when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_create_workspaceTag Manager: Create workspaceAInspect

Neuen GTM-Workspace auf Basis der neuesten Container-Version anlegen — Recovery, wenn ein Workspace nicht mehr synchronisierbar ist (Änderungen dort neu aufbauen, dann gtm_create_version). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
workspaceNo
descriptionNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly=false, destructive=false, openWorld=true), so the bar is lower; the description still adds real behavioral context by explaining that the new workspace starts from the latest container version and that changes must be rebuilt manually afterward. Permission/auth requirements and what the returned workspace looks like are not mentioned, but the output schema covers the latter.

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?

Three short lines, front-loaded with the action and its basis, then the recovery rationale, then the parameter note. No filler, though the trailing 'workspace:' note reads like an appended afterthought rather than integrated guidance.

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?

Return values need not be explained since an output schema exists, and the recovery workflow is well covered. However, for a creation tool with 0% schema coverage, leaving the required 'name' and the 'description' field entirely undefined is a real gap an agent cannot resolve from the definition alone.

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 0%, so the description must compensate, and it only partially does: it explains 'workspace' as the client workspace slug that is optional when a single workspace exists. The required 'name' parameter and the 'description' parameter are given no semantic explanation anywhere.

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?

States a specific verb and resource ('Neuen GTM-Workspace ... anlegen') plus the basis for it ('auf Basis der neuesten Container-Version'). It implicitly distinguishes itself from gtm_sync_workspace by framing itself as the recovery path when a workspace is no longer syncable, though the sibling is not named directly.

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?

Gives a concrete when-to-use condition ('Recovery, wenn ein Workspace nicht mehr synchronisierbar ist') and a sequenced next step ('Änderungen dort neu aufbauen, dann gtm_create_version'). It lacks an explicit 'do not use if the workspace is still healthy / use gtm_sync_workspace instead' clause, so the exclusion is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_get_tagTag Manager: Get tagA
Read-only
Inspect

Vollständige Tag-Definition (inkl. Parameter und Trigger-IDs). workspace_id: GTM-Workspace (aus gtm_list_workspaces). workspace_id, tag_id sind rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
tag_idYes
workspaceNo
workspace_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description earns credit for adding concrete behavior: the ID-format requirement and the exact error shape {"error":"invalid_id"} on non-numeric input, plus the workspace-single-tenant optionality. That is real context beyond 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?

Purpose is front-loaded in the first line, followed by compact per-parameter notes. No filler sentences; every line adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers the retrieval scope, the ID-format constraint, error behavior, and workspace optionality. It is sufficient for an agent to call correctly, with only tag_id semantics being thin.

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 0%, so the description must compensate, and it does: it explains all three params — workspace_id sourced from gtm_list_workspaces, the numeric constraint on workspace_id/tag_id, and workspace as an optional customer slug when only one workspace exists. Only tag_id's meaning is left slightly under-specified.

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?

States the specific verb+resource outcome: it returns the complete tag definition including parameters and trigger IDs. This distinguishes it implicitly from gtm_list_tags (summary) and gtm_get_version, though it does not name those siblings directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied ('full tag definition' vs a listing), and it helpfully points to gtm_list_workspaces as the source of workspace_id. But there is no explicit when-to-use/when-not or contrast with gtm_list_tags or gtm_get_version.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_get_versionTag Manager: Get versionA
Read-only
Inspect

Details einer Version inkl. aller Tags, Trigger, Variablen. version_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
version_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds useful behavioral context: version_id must be purely numeric or the API returns an invalid_id error, and workspace is optional when only one workspace exists. It does not discuss response size, pagination, or authentication requirements.

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 three short, front-loaded sentences with no filler. The purpose is stated first, followed by parameter constraints, which is an efficient 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?

An output schema exists, so return values do not need explanation. The description covers the resource, the scope of returned data, and both parameters. It could be slightly more complete by naming when this tool is preferred over sibling retrieval tools, but it is sufficient for correct invocation.

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 0%, so the description carries the full burden and largely succeeds. It explains that version_id must be purely numeric and that workspace is a customer workspace slug, optional when there is only one workspace. It does not explain how to discover workspace slugs, but it gives meaningful semantics for both parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves details of a version, including all tags, triggers, and variables. This is a specific resource and scope, though it does not explicitly distinguish itself from sibling tools like gtm_list_versions or gtm_get_tag.

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 it returns version details and by explaining that workspace is optional when there is only one workspace. However, it does not explicitly say when to use this tool versus gtm_list_versions or other GTM retrieval tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_list_accountsTag Manager: List accountsB
Read-only
Inspect

GTM-Accounts, auf die die Google-Verbindung Zugriff hat — funktioniert auch, bevor im Workspace ein Container konfiguriert ist. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true and openWorldHint=true already declare the safety profile, so the bar is lower. The description adds genuinely non-annotated context — no container prerequisite, and workspace may be omitted in single-workspace setups — but says nothing about error behavior or scope of access beyond 'the Google connection'. Mixed-language text (German) against an English toolset adds minor reading friction.

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?

Two short statements with no filler; the access scope is front-loaded and the parameter note follows. The awkward line break and the untranslated German slightly hurt readability but not length economy.

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?

An output schema exists, so return values need no explanation, and the annotations cover the read-only/open-world profile. For a single optional parameter read tool, what remains — prerequisite absence and slug semantics — is covered; only the multi-workspace omission case and sibling relationships are left implicit.

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 0%, so the description must carry the load: it explains that 'workspace' is the customer workspace slug and that it is optional when only one workspace exists. That is meaningful meaning beyond the bare anyOf string/null schema, though it does not say what happens if it is omitted while multiple workspaces exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource (GTM accounts reachable by the Google connection) but is a noun phrase rather than a verb+resource statement, so the 'list' action comes mostly from the tool name. It does not explicitly differentiate itself from nearby siblings such as gtm_list_containers or gtm_container_info.

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?

Two useful usage hints are given: it works before any container is configured in the workspace, and the workspace slug is optional when only one workspace exists. However, no condition is stated for when to call this instead of gtm_list_containers or how to proceed after listing accounts, leaving the routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_list_containersTag Manager: List containersA
Read-only
Inspect

Container eines GTM-Accounts (account_id aus gtm_list_accounts). account_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
account_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that: the validation failure mode ('account_id ist rein numerisch, sonst {"error":"invalid_id"}') and the workspace optionality rule, letting the agent avoid a predictable error.

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?

Three short lines, front-loaded with the resource and prerequisite, with no filler. The embedded error-string literal is slightly noisy but earns its place by preventing a failure.

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 two-parameter read-only list tool with an output schema, the description covers the prerequisite chain, the validation constraint, and the one optional parameter's semantics. Nothing essential to a correct call is missing.

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 0%, so the description must compensate, and it does: account_id is documented as purely numeric with its source tool, and workspace as the customer workspace slug that is optional when only one exists. It still does not clarify case/slug format edge cases for workspace.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource and scope: containers belonging to a GTM account, keyed by account_id. The list verb is carried by the name/title rather than the description body, and it does not distinguish itself from siblings like gtm_container_info, but an agent can identify the operation.

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 gives concrete prerequisite routing ('account_id aus gtm_list_accounts') and states the condition under which workspace may be omitted ('optional bei nur einem Workspace'). It stops short of naming alternatives such as gtm_container_info vs. gtm_list_workspaces, so no explicit exclusion rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_list_tagsTag Manager: List tagsA
Read-only
Inspect

Tags in einem Workspace. Brauchst workspace_id aus gtm_list_workspaces. workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
workspace_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. Beyond that, the description discloses a concrete failure mode (non-numeric workspace_id yields {"error":"invalid_id"}) and a conditional default (workspace may be omitted when only one workspace exists), which is exactly the kind of behavioral detail annotations cannot express.

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?

Three short clauses, dependency first, then the ID-format constraint, then the optional parameter — well front-loaded with no filler. The telegraphic, mixed German/English register makes it slightly harder to parse than it needs to be, but nothing is wasted.

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?

It is a read-only list operation with an output schema, so return values need no explanation, and the description covers the prerequisite, the ID constraint, and the optional-parameter default. Missing pieces are minor: pagination/result limits and any ordering behavior are unstated.

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 0%, so the description carries the full burden and largely meets it: workspace_id's format constraint (purely numeric) and its source tool are stated, and workspace is explained as a customer-workspace slug that is optional in the single-workspace case. Remaining gap is that the exact slug format/derivation of the slug itself is not given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the noun phrase "Tags in einem Workspace" and never supplies an explicit verb; the listing action is only recoverable from the title "Tag Manager: List tags". It does narrow scope to a workspace and implicitly contrasts with gtm_get_tag, but the purpose statement itself is a fragment rather than a verb+resource claim.

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?

"Brauchst workspace_id aus gtm_list_workspaces" gives a concrete prerequisite path and names a sibling tool, which is real routing value. However, it never states when to prefer this over gtm_get_tag or gtm_list_triggers/gtm_list_variables, and there are no exclusion conditions beyond the single-workspace note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_list_triggersTag Manager: List triggersB
Read-only
Inspect

Trigger in einem Workspace. workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
workspace_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, and an output schema exists, so the safety/return profile is covered elsewhere. The description adds one genuinely useful behavioral fact: a non-numeric workspace_id yields {"error":"invalid_id"}, a concrete failure mode not present in the schema. It says nothing about pagination, permissions, or empty-workspace results.

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 short, front-loaded lines with no filler: scope first, then the hard validation constraint, then the optional parameter. Telegraphic style costs some readability but every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters and an output schema covering return values, the description is close to sufficient — both params and one error case are explained. It is still missing how to discover the workspace/workspace_id, and it is written in German while the surrounding toolset is English, which adds avoidable friction for an agent.

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 0%, so the description must carry the load and largely does: workspace_id is stated to be purely numeric, and workspace is described as the customer-workspace slug that may be omitted when only one workspace exists. It does not say where to obtain either value (e.g. gtm_list_workspaces), which is the remaining gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a noun phrase, "Trigger in einem Workspace", which identifies the resource and its scope (workspace-bound) but never states the operation — the listing verb exists only in the title. Against siblings like gtm_create_trigger and gtm_get_tag the scope hint helps, but an agent gets no explicit 'returns all triggers' statement from the description itself.

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 versus gtm_list_tags, gtm_list_variables, gtm_get_tag, or gtm_workspace_status. The only conditional language ("optional bei nur einem Workspace") concerns a parameter's optionality, not tool selection, so an agent must infer routing from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_list_variablesTag Manager: List variablesB
Read-only
Inspect

User-Defined Variablen in einem Workspace. workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
workspace_idYes

Output Schema

NameRequiredDescription
resultYes

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 and openWorldHint=true, so safety is covered. The description adds genuinely useful behavior: workspace_id must be purely numeric or the API returns {"error":"invalid_id"}, and workspace is optional in the single-workspace case. It does not mention pagination or result size behavior, which matters for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short lines, no filler, with the resource statement front-loaded and the error constraint immediately after the parameter it applies to. Slightly telegraphic rather than fully structured, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained. For a 2-parameter read operation the description covers both parameters and one failure mode, which is close to sufficient; only pagination/size guidance is arguably missing.

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 0%, so the description carries the burden and largely meets it: it explains that workspace_id is numeric-only (with the failure mode) and that workspace is a customer slug that may be omitted when only one workspace exists. Format of the slug and whether workspace_id resolves account/container are not stated.

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?

States the resource precisely: user-defined variables within a workspace, which is distinct from sibling tools like gtm_list_tags, gtm_list_triggers, or gtm_list_workspaces. It omits an explicit verb, relying on the name's 'list', but the object and scope are unambiguous.

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?

Only conditional guidance given is that 'workspace' is optional when there is a single workspace. No statement of when to use this versus gtm_list_tags/gtm_list_triggers or what prerequisites (account/container resolution) must precede the call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_list_versionsTag Manager: List versionsA
Read-only
Inspect

Versions-Header des Containers in API-Reihenfolge, max. limit Einträge (nur erste Seite, keine Sortierung garantiert). Für die aktuelle Live-Version gtm_container_info (live_version_id) nutzen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/openWorldHint annotations, it discloses real behavioral limits: only the first page is returned, no sorting is guaranteed, and results are capped by limit. It does not say what happens with a larger result set or how the container is resolved, but the key caveats an agent needs are present.

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?

Three short clauses, each carrying distinct information (ordering, limit/first-page caveat, alternative tool) plus a parameter note. The awkward line break and noun-phrase opening cost a little readability but nothing is wasted.

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?

An output schema exists, so return values need not be explained, and the annotations cover the safety profile. The remaining gap is that the tool takes no container/account parameter and the description never explains how the target container is determined, which an agent may need to know before calling.

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 0%, so the description must carry the load and it mostly does: limit is explained as the maximum number of entries and workspace as the customer workspace slug that is optional when only one workspace exists. No format examples or bounds are given, but both parameters gain meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource (Versions-Header des Containers) and the ordering semantics (API-Reihenfolge), and explicitly points to gtm_container_info for the live version, which separates it from gtm_get_version. The verb is only implicit in the noun phrase, so it is clear but not maximally sharp.

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 names a concrete alternative and the condition that selects it: use gtm_container_info (live_version_id) when you need the current live version. It does not spell out when to prefer gtm_get_version or gtm_list_workspaces, so coverage of alternatives is partial rather than exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_list_workspacesTag Manager: List workspacesA
Read-only
Inspect

Alle Workspaces des Containers (Default + ggf. Dev-Branches). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds that the result includes Default plus optionally dev branches, which is real added context, but says nothing about permissions, pagination, or how the container is resolved (no container parameter exists).

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?

Two compact sentences, the scope statement front-loaded before the parameter note; nothing is padded. Minor friction from abbreviations like 'ggf.' and the language switch, but 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?

An output schema exists, so return values need no explanation, and the single parameter is explained. The notable gap is that the container being listed is never stated as a parameter or an ambient input, leaving the agent unsure what scoping context the call relies on.

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 0%, so the description must carry the load, and it does: it identifies the parameter as a customer workspace slug and states the condition under which it can be omitted. Only the slug format and valid values remain undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource and scope precisely: all workspaces of the container, including Default and any dev branches. That is enough to distinguish it from gtm_list_containers or gtm_list_accounts, even though the phrasing is a noun phrase rather than an explicit verb and is written in German while the tool names are English.

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?

It gives one concrete usage rule – the workspace slug is optional when only a single workspace exists – which tells the agent how to call it in the common case. It never says when to prefer this over gtm_container_info or gtm_workspace_status, and offers no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_publish_versionTag Manager: Publish versionA
Destructive
Inspect

ACHTUNG: Live-wirksam. Ersetzt die aktuelle Live-Version auf der Kunden-Website. version_id aus gtm_create_version oder gtm_list_versions. Rückgabe: published_version_id; bei error=compiler_error wurde nichts veröffentlicht. Live-Stand danach mit gtm_container_info (live_version_id) prüfen. version_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
version_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint=true annotation, it explains the concrete consequence (replaces the current live version on the customer site), the return value published_version_id, and the important failure semantic that on error=compiler_error nothing was published. That is exactly the operational context annotations cannot convey.

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 live-impact warning is front-loaded and every sentence carries information. It is telegraphic and dense rather than prose, which trades a bit of readability for information density.

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 2-parameter destructive tool with an output schema, the description covers the danger, parameter sourcing, the error case, and the verification path. Nothing an agent needs to call it safely is missing.

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 0%, so the description must carry the load and does: version_id is purely numeric, otherwise {"error":"invalid_id"}, and workspace is a customer workspace slug that is optional when only one workspace exists. Only minor gaps remain (e.g. exact slug format).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (publish a version) and immediately the scope: it replaces the live version on the customer's website. That distinguishes it from gtm_create_version and gtm_list_versions without any schema inspection.

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 routes the agent: version_id comes from gtm_create_version or gtm_list_versions, and the live state can be verified afterwards with gtm_container_info (live_version_id). It also gives the prerequisite for the optional workspace parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_remove_tagTag Manager: Remove tagA
Destructive
Inspect

GTM Tag aus dem Workspace löschen. Erst nach gtm_create_version + gtm_publish_version live. workspace_id: GTM-Workspace (aus gtm_list_workspaces). workspace_id, tag_id sind rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
tag_idYes
workspaceNo
workspace_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/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; the description adds behavior beyond that by clarifying that deletion only affects the workspace draft until a version is created and published, and by specifying the exact error payload ({"error":"invalid_id"}) for malformed IDs. It does not discuss irreversibility, confirmation, or effects on triggers referencing the tag.

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?

Front-loads the action and the publish caveat, then gives compact per-parameter notes. No filler sentences; only the workspace_id/workspace phrasing is a bit muddled.

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 destructive 3-parameter mutation with an output schema, the description covers the draft-vs-live lifecycle, ID formats, and optional scoping. Gaps are minor: no mention of tag deletion cascading to referencing triggers, and no confirmation/irreversibility note.

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 0%, so the description must compensate, and it largely does: it documents workspace_id's origin (gtm_list_workspaces), the numeric-only constraint on workspace_id and tag_id with the resulting error, and that workspace is an optional customer slug when only one workspace exists. The line 'workspace_id: GTM-Workspace' slightly blurs the distinction between the numeric ID and the slug.

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?

States a specific verb and resource ('GTM Tag aus dem Workspace löschen') with scope limited to the workspace, which separates it cleanly from gtm_update_tag and gtm_create_tag. It does not explicitly name sibling alternatives, but the delete semantics are unambiguous.

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?

Explains the publish workflow: the removal only becomes live after gtm_create_version + gtm_publish_version, which is exactly the context an agent needs before calling. It also points to gtm_list_workspaces as the source of workspace_id. It does not state explicit exclusions or alternatives (e.g. when to update instead of remove).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_sync_workspaceTag Manager: Sync workspaceA
Destructive
Inspect

GTM-Workspace mit der neuesten Container-Version synchronisieren — nötig, wenn gtm_create_version mit merge_conflict fehlschlägt. Verbleibende Konflikte werden aufgelistet (Auflösung in der GTM-Oberfläche). workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
workspace_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, and the description adds real behavioral context beyond them: the precondition that produces a need for sync, that unresolved conflicts are returned as a list rather than fixed, and the exact error shape for a malformed id. It stops short of saying what workspace state is overwritten or discarded by the sync — the one thing an agent should warn about given destructiveHint=true.

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?

Front-loaded with the action and the trigger condition, then the conflict behavior, then a compact parameter footnote. Every sentence carries information, though the trailing parameter notes read as a dense addendum rather than being integrated into the flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description covers purpose, trigger, post-conditions, and both parameters. The remaining hole is the data-loss implication of a destructive sync, which an agent would need before invoking it on a workspace with unpublished edits.

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 0%, so the description must compensate and largely does: `workspace_id` is documented as strictly numeric with a named failure mode ({"error":"invalid_id"}), and `workspace` is documented as a customer slug that is optional when only one workspace exists. The slug's expected format/example is still missing, leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (sync the GTM workspace to the latest container version) and immediately ties it to a concrete precondition in a sibling tool (gtm_create_version failing with merge_conflict). An agent can distinguish it from gtm_create_version, gtm_workspace_status and gtm_list_workspaces without opening any schema.

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?

Gives an explicit trigger condition (after a merge_conflict from gtm_create_version) and states the follow-up path (remaining conflicts must be resolved in the GTM UI, not via this tool). It also states the conditional optionality of `workspace` (only needed when multiple workspaces exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_update_tagTag Manager: Update tagA
Destructive
Inspect

GTM Tag ändern (nur angegebene Felder; paused=True pausiert den Tag). parameters und firing_trigger_ids ersetzen jeweils die komplette Liste — zuerst gtm_get_tag holen, Liste anpassen und vollständig zurückgeben. Ergebnis mit gtm_get_tag prüfen (die Antwort nennt nur die geänderten Felder). Änderungen sind erst nach gtm_create_version + gtm_publish_version live. Bei Custom-HTML-/Vorlagen-Tags brauchen parameters und firing_trigger_ids die Freigabe für eigenen Code im Workspace; name und paused gehen immer. workspace_id: GTM-Workspace (aus gtm_list_workspaces). workspace_id, tag_id sind rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
pausedNo
tag_idYes
workspaceNo
parametersNo
workspace_idYes
firing_trigger_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly=false, destructive=true, openWorld=true), the description discloses that parameters and firing_trigger_ids replace the entire list rather than merge, that the response only echoes the changed fields, and that edits are not live until a version is created and published. It also discloses the error contract {"error":"invalid_id"} for non-numeric ids.

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?

Every sentence earns its place — replacement semantics, permissions, publish gating, id format — and the purpose is front-loaded before the operational details. It is a single dense block of prose rather than clearly separated points, which slightly hurts scanability for a seven-parameter tool.

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 7-parameter destructive mutation with 0% schema coverage, the description covers everything an agent needs: field semantics, required read-before-write, permission gating, publish workflow, id validation and downstream verification. Return values are further covered by the existing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the full burden and does explain six of seven parameters: replacement semantics for parameters/firing_trigger_ids, always-safe name/paused, numeric-only workspace_id/tag_id with the failure shape, and workspace as an optional customer slug. It stops short of describing the internal structure of the parameter objects, which the schema leaves as untyped additionalProperties.

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 opening sentence names a specific verb (ändern/update) and resource (GTM Tag) and adds a distinguishing scope qualifier: only explicitly supplied fields are touched, and paused=True pauses the tag. It positions itself within the tag lifecycle by naming gtm_get_tag, gtm_create_version and gtm_publish_version, though it does not explicitly contrast with gtm_create_tag or gtm_remove_tag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit workflow: call gtm_get_tag first, adjust the list, return the complete list, then verify with gtm_get_tag, then go live via gtm_create_version + gtm_publish_version. It also states the precondition that custom-HTML/template tags require code approval in the workspace while name and paused always work, which is exactly the when-can-I-use-this guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_workspace_statusTag Manager: Workspace statusA
Read-only
Inspect

Offene Änderungen + Merge-Konflikte eines GTM-Workspace anzeigen — Diagnose, wenn gtm_create_version/gtm_sync_workspace fehlschlägt. workspace_id ist rein numerisch, sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
workspace_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds behavior beyond that: workspace_id must be purely numeric or the call returns {"error":"invalid_id"}, and the workspace slug is only needed when more than one workspace exists. Return shape is left to the output schema, which is acceptable.

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?

Four short clauses, front-loaded with the purpose, then the diagnostic trigger, then the two parameter facts. Nothing is redundant, though the telegraphic em-dash style is slightly harder to parse than plain sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only two-parameter diagnostic with an output schema and existing annotations, nothing an agent needs in order to call it correctly is missing: purpose, trigger, both parameter semantics, and the invalid-input behavior are all present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does: workspace_id is documented as strictly numeric with the exact failure mode, and workspace is documented as the customer workspace slug that is optional when only one workspace exists. Both parameters gain meaning that the bare schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: show open (unpublished) changes plus merge conflicts of a GTM workspace. It also distinguishes itself from the neighboring gtm_list_workspaces / gtm_sync_workspace by framing the call as a diagnostic, so an agent can tell it apart without opening the schema.

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?

Gives an explicit trigger: use it when gtm_create_version or gtm_sync_workspace fails. That names the alternative tools and the condition that selects this one. It does not state a 'when not to use' case (e.g. plain workspace listing or routine publishing), which keeps it 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.

journal_add_noteJournal: Add noteAInspect

Notiz ins Änderungsjournal des Workspace schreiben — nach jeder Änderung aufrufen. Google Ads bietet seine Notizen-Funktion nicht per API an; dieses Journal ist der Ersatz, deckt alle Quellen ab und überdauert das 30-Tage-Fenster des Google-Änderungsverlaufs. Einträge werden nach 24 Monaten automatisch gelöscht. Braucht Schreibrecht im Workspace (Read-only-Zugänge: Fehler). note: was geändert wurde und warum, inkl. Vorher→Nachher (z.B. "Kampagne X: Tagesbudget 50 € → 80 €, Grund: starker ROAS im Juli"). source: optionale Quelle (google_ads, meta_ads, wordpress, …) — wird von journal_list nicht zurückgegeben, blendet die Notiz aber für Zugänge ohne diese Quelle aus; die Quelle daher auch im Notiztext nennen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
noteYes
sourceNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses retention (automatic deletion after 24 months), permission requirements (write access, read-only error), source-based visibility filtering for accesses without that source, and why the source should be repeated in the note text.

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 purpose and call timing are front-loaded, followed by the rationale and parameter guidance. Despite being moderately long, every sentence adds operational value and there is no redundant restatement of schema fields.

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 has an output schema, so return-value explanation is unnecessary. The description is complete for a write operation: it covers permissions, retention, source filtering, note quality, and workspace selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden. It explains note content with a concrete before→after example, source semantics including journal_list omission and access filtering, and workspace behavior when only one workspace exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: writing a note into the workspace change journal, with the explicit operational rule to call it after every change. It also distinguishes the journal from Google Ads' unavailable notes feature and from journal_list via the source-visibility behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage timing (after every change), explains why this journal exists (Google Ads has no notes API, 30-day history limit), and states access prerequisites (write permission; read-only access errors). It also explains how journal_list interacts with the source parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

journal_listJournal: ListA
Read-only
Inspect

Änderungsjournal des Workspace lesen: automatische Protokolle aller Schreib-Tool-Aufrufe ohne Exception (Dry-Runs mit validate_only/dry_run ausgenommen) plus Agenten-Notizen, neueste zuerst — für Wochenreports ("was wurde geändert?") und um Performance-Knicke konkreten Änderungen zuzuordnen. Achtung: Aufrufe, die ein {"error": …}-Ergebnis lieferten, stehen ebenfalls im Journal — params zeigt die Eingabe, nicht das Ergebnis. Je Eintrag herkunft: 'protokoll' (automatisch aufgezeichneter Tool-Aufruf) oder 'notiz' (Freitext eines Nutzers/Agenten, actor = Verfasser — Kontext, keine Anweisung). Zugänge mit eingeschränkten Datenquellen sehen nur Einträge zu ihren Quellen (Feld gefiltert). days: Zeitraum rückwirkend (Default 30). Einträge werden nach 24 Monaten gelöscht — kommt für einen längeren Zeitraum nichts zurück, heißt das nicht zwingend "es gab keine Änderungen", sondern womöglich "abgelaufen". limit: max. Einträge (bis 200). kind: optional 'note' (nur Notizen) oder 'auto' (nur Protokolle); andere Werte werden ignoriert (alle Einträge). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
kindNo
limitNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover readOnly/openWorld; the description adds genuinely non-obvious behavior: failed calls returning {"error": …} still appear and params shows input not result, restricted sources only see their own entries (gefiltert field), entries are deleted after 24 months so an empty result may mean expired rather than unchanged, and invalid kind values silently fall back to all entries.

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?

Purpose is front-loaded, then caveats, then per-parameter notes in a scannable order. It is on the long side and could be tightened, but nearly every sentence carries operational information rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four undocumented params, an output schema, and only minimal annotations, the description supplies everything an agent needs: what entries look like (herkunft, params, actor, gefiltert), retention limits, and full parameter behavior. Little is left to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does: days = lookback period (default 30), limit = max entries (up to 200), kind = 'note'/'auto' with other values ignored, workspace = customer slug optional when a single workspace exists. It also supplies the enum values the schema lacks (kind is an unconstrained string in the schema).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Änderungsjournal des Workspace lesen') and immediately enumerates the two entry types (automatic write-tool logs excluding dry-runs, plus agent notes), ordered newest first. This is clearly distinguishable from the writing sibling journal_add_note and from any analytics tool.

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?

Gives concrete usage contexts ('für Wochenreports', attributing performance dips to specific changes), which tells the agent when this is the right tool. It does not explicitly name an alternative sibling or state exclusions, so it stops 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.

lemlist_add_leadslemlist: Add leadsAInspect

Leads (Empfänger) zu einer lemlist-Kampagne hinzufügen, max. 100 je Aufruf. leads: je {email und/oder linkedinUrl (mindestens eins), firstName, lastName, companyName, jobTitle, phone, companyDomain, icebreaker, timezone} plus eigene Variablen (Name aus Buchstaben/Ziffern/_, Wert Text oder Zahl) für {{variable}}-Platzhalter. Für LinkedIn-only-Sequenzen reicht linkedinUrl (z. B. aus lemlist_search_people). warnings nennt Leads, denen für E-Mail- bzw. LinkedIn-Schritte der Sequenz die Kennung fehlt — diese Schritte entfallen bei ihnen. deduplicate=True lehnt Leads ab, die schon in einer anderen Kampagne sind. Laufende Kampagnen werden abgelehnt, weil lemlist dort sofort versendet — außer allow_running_campaign=True. Archivierte oder beendete Kampagnen werden immer abgelehnt (error=campaign_closed). Keine kostenpflichtige Anreicherung. Personendaten: nur Leads übergeben, für deren Ansprache eine Rechtsgrundlage besteht; die Lead-Daten werden nicht im Änderungsjournal gespeichert. Rückgabe: added, skipped (index, identifier, reason), leads_total_after, warnings. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
leadsYes
workspaceNo
campaign_idYes
deduplicateNo
validate_onlyNo
allow_running_campaignNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the annotations: 100-lead cap, per-lead warnings when the email or LinkedIn identifier needed for a sequence step is missing, rejection semantics for running/closed campaigns with error=campaign_closed, absence of paid enrichment, and the GDPR note that lead data is not written to the change journal. This is exactly the behavioral context annotations cannot convey.

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?

Front-loaded with purpose and limit, then lead shape, then constraints. It is dense and multi-clause, and the data-protection sentence is more compliance boilerplate than invocation guidance, but nearly every other clause prevents a concrete failure mode.

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 6-parameter mutation tool with an output schema, the definition covers input shape, constraints, error paths, and even summarizes the return payload (added, skipped, leads_total_after, warnings). Only validate_only is left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden and mostly does: it enumerates the lead object fields, the at-least-one-of email/linkedinUrl rule, custom {{variable}} naming constraints, and explains deduplicate, allow_running_campaign and workspace. validate_only is never mentioned, leaving one of six parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Leads zu einer lemlist-Kampagne hinzufügen') plus a hard scope limit ('max. 100 je Aufruf'). It is clearly distinguishable from siblings like lemlist_list_leads or lemlist_search_people, the latter being named as a source of linkedinUrl values.

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?

Gives concrete usage conditions: LinkedIn-only sequences only need linkedinUrl, running campaigns are rejected unless allow_running_campaign=True, archived/closed campaigns always fail, deduplicate=True rejects leads already in another campaign. No explicit routing to an alternative sibling, but the when/when-not rules are unusually complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_add_sequence_steplemlist: Add sequence stepAInspect

Schritt zur Hauptsequenz einer lemlist-Kampagne hinzufügen. type und Felder wie bei lemlist_create_campaign (email, linkedinInvite, linkedinSend, linkedinVisit, manual, phone). position: 1 = erster Schritt; ohne Angabe ans Ende. In laufenden Kampagnen gilt der neue Schritt für die folgenden Sendungen. Rückgabe: step_id, position (tatsächliche Stelle), steps (Sequenz danach), verified (auch die Position geprüft). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
typeYes
delayNo
titleNo
messageNo
subjectNo
positionNo
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation profile is known; the description adds genuinely new traits: that in an active campaign the new step applies to the following sends, and that a 'verified' flag confirms position. The undocumented validate_only parameter is a small gap.

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?

Dense and front-loaded: action first, then type/position semantics, then side effects. The trailing 'Rückgabe: ...' sentence is largely redundant because an output schema exists, which costs it a point but the text remains short and free of 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 9-parameter mutation tool with an output schema, the description covers what the schema cannot: allowed type values, position semantics, workspace scoping and the downstream effect on running campaigns. Missing detail on delay units and validate_only keeps it from being fully 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?

With 0% schema description coverage the description must carry the burden, and it does well: it enumerates the valid type values (email, linkedinInvite, linkedinSend, linkedinVisit, manual, phone), explains position (1 = first, omitted = append) and workspace. It leaves delay, title, message, subject and validate_only uninterpreted.

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?

"Schritt zur Hauptsequenz einer lemlist-Kampagne hinzufügen" states a specific verb (add) and resource (sequence step of a campaign). It is clearly narrower than lemlist_create_campaign, which it references for step fields, but it never contrasts itself with the closely-named sibling lemlist_update_sequence_step.

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?

It gives useful call-time context (position semantics, default append behavior, effect on running campaigns) but no when-to-use rule relative to the obvious alternative: modifying an existing step should go to lemlist_update_sequence_step, and the description never says so. The agent must infer add-vs-update from the verb alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_campaign_performancelemlist: Campaign performanceA
Read-only
Inspect

Outbound-Kennzahlen je lemlist-Kampagne für einen Zeitraum, plus Summe (total). Je Kampagne: messages (sent, not_sent, delivered, bounced, opened, clicked, replied, linkedin_invitations_accepted, meetings_booked), leads (total, launched, reached, opened, interacted, answered, interested, not_interested, unsubscribed, interrupted) und rates_pct: delivery/bounce bezogen auf sent, open/click/reply bezogen auf delivered, leads_* bezogen auf erreichte Leads. Nur Summen, keine Empfängerdaten. campaign_ids: IDs aus lemlist_list_campaigns; ohne Angabe alle Kampagnen außer Entwürfen und archivierten (die 25 neuesten, sonst Hinweis in notes). days: Zeitraum heute−N bis heute; date_from/date_to ('YYYY-MM-DD', Tage in UTC) gehen vor. channel: optional email, linkedin oder others. Werte je Sequenzschritt und A/B-Variante: lemlist_step_performance. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
channelNo
date_toNo
date_fromNo
workspaceNo
campaign_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint/openWorldHint, it discloses two things annotations cannot: the result is aggregates only with no recipient data, and omitting campaign_ids silently scope-limits to the 25 newest non-draft/non-archived campaigns with a hint surfaced in `notes` — a truncation behavior an agent must know about. It also states the rate denominators (sent vs. delivered vs. reached leads), which determines whether the numbers are comparable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Structure is sound — return shape first, then parameters, then the sibling pointer — and the rate-denominator sentence earns its place. However, enumerating roughly twenty metric field names (sent, not_sent, delivered, bounced, ...) duplicates an output schema that already exists and bloats an otherwise dense block.

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?

Six optional parameters, no enums, an output schema, and read-only annotations — the description fills every gap that matters: time-window precedence, channel vocabulary, campaign scoping/truncation, workspace fallback, and the aggregate-only guarantee. Nothing an agent needs before calling is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet all six parameters are explained: days as today−N, date_from/date_to with 'YYYY-MM-DD' format and UTC day semantics plus precedence over days, channel with valid values (email/linkedin/others) that the schema's bare string does not constrain, campaign_ids sourcing and default behavior, and workspace as a slug that is optional for single-workspace accounts.

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 first line names the exact resource and scope: outbound metrics per lemlist campaign for a period, plus a total row. It also distinguishes itself from the sibling lemlist_step_performance (per-step / A-B variants) by name, so an agent can route without opening the schemas.

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 points to lemlist_list_campaigns as the source of campaign_ids and to lemlist_step_performance when per-step or A/B breakdowns are wanted — both explicit alternative routing. It does not state a negative case (e.g. when to prefer list_campaigns alone or a reply-level tool), so it stops short of a full use/don't-use matrix.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_create_campaignlemlist: Create campaignAInspect

Neue lemlist-Kampagne mit Sequenz anlegen. Sie entsteht als Entwurf (status draft) und versendet nichts, bis sie mit lemlist_start_campaign gestartet wird. steps: Liste von Schritten in Reihenfolge, je {type, ...}: email {subject, message, delay} (erste E-Mail braucht subject; spätere ohne subject = Antwort im selben Thread), linkedinInvite {message ≤300 Zeichen, delay}, linkedinSend {message, delay}, linkedinVisit {delay}, manual {title, message, delay}, phone {message, delay}. delay = Tage nach dem vorigen Schritt. message als Klartext (Absätze per Leerzeile) oder HTML; Platzhalter wie {{firstName}} oder {{companyName}} bleiben erhalten. Max. 20 Schritte. sender_user_ids: Absender (user_id aus lemlist_mailbox_health); ohne Absender kann die Kampagne nicht starten. stop_on_email_replied: Sequenz stoppt nach Antwort. Kampagnen lassen sich per API nicht löschen — erst validate_only=True nutzen. Rückgabe: campaign_id, status, steps (mit step_id), senders, verified (Status, Schritte, Absender zurückgelesen); stop_on_email_replied gibt lemlist nicht zurück (not_readable). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
stepsYes
timezoneNoEurope/Vienna
workspaceNo
validate_onlyNo
sender_user_idsNo
stop_on_email_repliedNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: the object is created as a draft and sends nothing, campaigns cannot be deleted through the API (making validate_only the safety valve), and stop_on_email_replied is written but not readable back (not_readable). This is exactly the kind of operational caveat the readOnly/destructive hints cannot convey.

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?

Front-loaded with purpose, then organized by parameter/caveat with labels ('steps:', 'sender_user_ids:', 'Rückgabe:'). Dense but every block carries unique information; the only minor waste is restating return values that the output schema already provides.

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 7-parameter, nested-array creation tool this covers nearly everything an agent needs: step schema, sender prerequisite, validation workflow, non-deletability, and return shape. Remaining gaps are minor (timezone default behavior, rate limits) and the output schema already covers returns.

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 0%, so the description must carry the load, and it does: it documents the nested steps item shape (types email/linkedinInvite/linkedinSend/linkedinVisit/manual/phone, per-type fields, 300-char limit, delay semantics, plaintext vs HTML, placeholder preservation, max 20 steps), plus sender_user_ids, stop_on_email_replied and workspace. Only timezone (and the trivial name) is left undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Neue lemlist-Kampagne mit Sequenz anlegen') and immediately clarifies the resulting state (draft, sends nothing until started). It also names the sibling that advances the lifecycle (lemlist_start_campaign), so the agent can distinguish create from start without opening a schema.

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?

Gives clear preconditions and workflow: senders from lemlist_mailbox_health are required or the campaign cannot start, and validate_only=True should be used first because campaigns cannot be deleted via the API. It does not, however, distinguish this from lemlist_update_campaign or explain when to prefer adding steps to an existing sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_database_filterslemlist: Database filtersA
Read-only
Inspect

Filter der lemlist-Personen-/Firmendatenbank für lemlist_search_people: je Filter filter_id, description, type (select mit festen values, autocomplete mit Freitext) und values. mode: leads (Personen) oder companies. Beispiele: currentTitle, seniority, department, country, region (u. a. DACH), currentCompanyHeadcount, currentCompanySubIndustry. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
modeNoleads
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuinely new behavior: filter types can be select (fixed values) or autocomplete (free text), plus example filter_ids and the DACH region hint, which tells the agent what kinds of filters to expect back.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact block, front-loaded with the tool's identity before field semantics, mode options, examples, and the workspace condition. Every clause carries information; there is no filler or repetition of the title.

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 two-parameter discovery tool with an output schema, this is complete: parameters are explained despite 0% schema coverage, return-field structure is sketched, and the consumer (lemlist_search_people) is named. Nothing an agent needs in order to call it correctly is missing.

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 0%, so the description must carry both parameters — and it does: mode is defined as leads (people) or companies, and workspace is described as a customer workspace slug that is optional when only one workspace exists. That closes nearly all of the schema gap, though it doesn't state what happens if the workspace is ambiguous.

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 identifies a specific resource — the lemlist people/company filter catalog — and ties it explicitly to lemlist_search_people, so an agent can distinguish it from the search tool itself. The returning verb is only implicit ('Filter der ... Datenbank'), but the enumerated fields (filter_id, description, type, values) make the payload concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the 'für lemlist_search_people' link, which hints that this is a discovery step before searching. It gives useful conditionals (mode leads vs companies, workspace optional when only one workspace) but never says explicitly when to call this versus jumping straight to search_people or when not to call it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_delete_sequence_steplemlist: Delete sequence stepA
Destructive
Inspect

Sequenzschritt löschen (step_id aus lemlist_get_sequence). Nur in nicht laufenden Kampagnen (erst lemlist_pause_campaign); Bedingungen nur im lemlist-UI. Rückgabe: gelöschter Schritt, verified. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
step_idYes
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/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 safety profile is covered. The description adds the real operational constraint (campaign must be paused first), the scope limit on conditions, and the fact that the response is a verified deleted step — all genuine context beyond structured fields.

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?

Four short, front-loaded sentences with no filler; the destructive precondition and the ID source lead. Minor deduction for the line-broken formatting and the unlabeled trailing workspace note.

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 destructive, open-world mutation the description covers prerequisites, ID sourcing, return value (with an output schema also present), and workspace scoping. The only missing piece an agent would need is the meaning and default behavior of validate_only.

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 0%, so the description must carry the burden, and it only partly does: step_id's origin and workspace's optionality (single-workspace case) are explained. campaign_id and especially validate_only (a dry-run flag on a destructive operation) are left undocumented, which is a meaningful gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (delete a sequence step) and immediately anchors the identifier by naming the sibling that produces step_id (lemlist_get_sequence). An agent can separate it from lemlist_add_sequence_step and lemlist_update_sequence_step without opening the schema.

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?

Gives explicit preconditions and ordering: only for non-running campaigns, and the campaign must be paused first via lemlist_pause_campaign. It also warns that step conditions cannot be set through this tool and must be handled in the lemlist UI, which prevents a whole class of misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_get_conversationlemlist: Get conversationA
Read-only
Inspect

Nachrichtenverlauf mit einem Kontakt (contact_id aus lemlist_list_replies): je Nachricht at, type, direction (sent/received), campaign_id, step, sender, subject, text (ohne HTML, je Nachricht auf max_chars gekürzt). Markiert im lemlist-Posteingang nichts als gelesen. limit max. 100. Braucht die Freigabe „Lead-Daten freigeben“ im Workspace (Portal). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
max_charsNo
workspaceNo
contact_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the readOnly/openWorld annotations: nothing is marked read in the lemlist inbox, the 'Lead-Daten freigeben' workspace permission is required, limit caps at 100, per-message text is HTML-stripped and truncated to max_chars. These are exactly the side-effect, authorization and rate-limit facts an agent cannot infer elsewhere.

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?

Front-loaded with the action, then the returned fields, then the operational caveats (no read-marking, permission, limits). Dense but every clause adds an operational fact; nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters at 0% schema coverage and a permission-gated external API, the description covers input origins, caps, auth prerequisites and mutation side effects. The return-shape enumeration is partly redundant with the output schema, but it makes the tool callable without extra lookups.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does: contact_id's origin, limit's ceiling of 100, max_chars as the truncation length, and workspace as an optional slug. All four parameters get meaning the schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Nachrichtenverlauf mit einem Kontakt') and pins the scope by naming where contact_id comes from (lemlist_list_replies), which distinguishes it from the sibling that lists replies. An agent can tell what it retrieves without reading the schema.

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 routes the agent to lemlist_list_replies as the prerequisite source for contact_id and explains the workspace parameter as optional only when a single workspace exists. It gives clear conditions for use but no explicit when-not-to-use exclusions beyond that.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_get_sequencelemlist: Get sequenceA
Read-only
Inspect

Sequenz einer lemlist-Kampagne lesen: je Sequenz (level 0 = Hauptsequenz, höher = Bedingungszweig mit parent_sequence_id) die Schritte mit index, step, type, delay_days, subject, ab_test und body (Text ohne HTML, Platzhalter wie {{firstName}} bleiben stehen), bei Bedingungen conditions. include_body=False liefert nur Betreffe. max_chars kürzt jeden Text (100–10000). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
max_charsNo
workspaceNo
campaign_idYes
include_bodyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, openWorldHint), and the description goes further with operationally useful behavior: body text is stripped of HTML, {{firstName}}-style placeholders survive, text is truncated per max_chars. It omits any note on rate limits, permissions or failure behavior for an invalid campaign_id, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but a large share of the text enumerates return fields (index, step, type, delay_days, subject, ab_test, body, conditions, parent_sequence_id) that the existing output schema already documents. The genuinely actionable parameter guidance is compressed into the tail, so signal density suffers.

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 tool with annotations and an output schema, the description covers what the agent needs: what a sequence level means, how branches relate via parent_sequence_id, and how to slim the payload. Only campaign_id's origin and error behavior are left unaddressed.

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% schema description coverage the description carries the full burden and largely succeeds: include_body, max_chars (with a 100–10000 range), and workspace (slug, optional when only one workspace) all get real meaning. campaign_id is only implied through "Sequenz einer lemlist-Kampagne" with no format or provenance hint, which is the one gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening "Sequenz einer lemlist-Kampagne lesen" gives a precise verb+resource, and the read verb cleanly separates it from the lemlist_add/update/delete_sequence_step siblings. It never explicitly names an alternative read tool (lemlist_list_campaigns) or states how it differs, so it stops just short of full sibling disambiguation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage conditions are present but parameter-oriented: include_body=False returns only subject lines, max_chars truncates, workspace is optional with a single workspace. There is no explicit "use this when you need X instead of Y" guidance, so the agent must infer when to reach for this tool versus lemlist_list_campaigns or the step-mutation siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_list_campaignslemlist: List campaignsA
Read-only
Inspect

lemlist-Kampagnen auflisten, neueste zuerst. Rückgabe {"campaigns": [...]}, je Kampagne id, name, status (running/paused/draft/ended/archived/errors), created_at, labels, timezone, senders (Absender-Postfächer), leads_total (alle Leads, auch LinkedIn-only) und leads_launched (davon gestartet), errors bei Problemen. Lead-Zahlen für die 50 neuesten Kampagnen (sonst Hinweis in notes); scheitert ihr Abruf, sind sie null und lead_counts_error nennt den Grund. status: optional nur Kampagnen mit diesem Status. limit: max. 500. Kennzahlen je Zeitraum: lemlist_campaign_performance. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
statusNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, but the description adds genuine operational caveats beyond them: lead counts exist only for the 50 newest campaigns (otherwise a note), and failed lead fetch yields null counts with a lead_counts_error reason. Enumerating the returned fields overlaps with the existing output schema, so not a perfect 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and ordering are front-loaded, followed by return shape, then edge-case behavior, then the sibling pointer. Dense but every clause carries information an agent needs; no filler.

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 three-parameter read tool with annotations and an output schema, the description covers the gaps that structured fields leave: filtering semantics, the 500 cap, workspace optionality, lead-count truncation at 50 campaigns, and error signaling. Nothing needed to call it correctly is missing.

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 0%, so the description must carry all semantics — and it does: status filters campaigns by state (with the state vocabulary listed), limit is capped at 500, workspace is a customer slug only needed with multiple workspaces. It stops short of stating limit's default of 100 or explicitly tying the status values to the filter 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?

Opens with a specific verb and resource ('lemlist-Kampagnen auflisten') plus ordering ('neueste zuerst'), and explicitly routes metric-seeking callers to the sibling lemlist_campaign_performance. An agent can distinguish this listing tool from lemlist_campaign_performance and lemlist_search_people without consulting either schema.

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?

Gives concrete conditions: status is an optional filter, limit maxes at 500, workspace is optional when only one workspace exists, and metrics over a period belong to lemlist_campaign_performance instead. Missing only an explicit statement of when not to use this tool (e.g. for lead-level data, which lemlist_list_leads covers).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_list_leadslemlist: List leadsA
Read-only
Inspect

Leads einer lemlist-Kampagne mit Status. Je Lead immer dieselben Felder (leer = null): lead_id, first_name, last_name, email, linkedin_url, company_name, job_title, company_domain, phone, state, status. state = letzter Schritt des Leads, z. B. imported/scanned (angelegt, noch nicht kontaktiert), contacted, emailsOpened, emailsClicked, emailsReplied, linkedinInviteAccepted, linkedinReplied, emailsBounced, emailsUnsubscribed, meetingBooked, manualInterested/manualNotInterested (von Hand markiert). status = Einordnung durch lemlist, z. B. review (wartet auf Prüfung/Start), interested, notInterested, done. state (Parameter): optional filtern, auch mehrere kommagetrennt, mit den globalen Stufen imported, scanned, contacted, hooked, attracted, warmed, interested, notInterested, emailsBounced, emailsUnsubscribed, meetingBooked oder den Detail-Stufen wie oben (z. B. "emailsReplied,linkedinReplied"). limit max. 500. Braucht die Freigabe „Lead-Daten freigeben“ im Workspace (Portal). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
stateNo
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and openWorldHint annotations, the description adds substantial behavioral context: fixed lead fields, empty values represented as null, the distinction between state and status, the maximum limit of 500, and the workspace permission requirement 'Lead-Daten freigeben'. This is meaningful operational detail that helps an agent invoke the tool correctly.

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 front-loaded with the core purpose and then provides dense, relevant detail. It is somewhat long, but the length is justified by the need to compensate for 0% schema description coverage and to explain state versus status.

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 0% schema coverage, the description does most of the necessary work: it explains the lead fields, state/status semantics, filtering syntax, limit cap, workspace behavior, and permission requirements. The only notable gap is that campaign_id is not explicitly described beyond the campaign-scoped context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden for all four parameters. It thoroughly explains state filtering (including accepted values, comma-separated syntax, and examples), limit max 500, and workspace slug behavior, but only implicitly covers campaign_id rather than stating explicitly that it identifies the campaign.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: listing leads of a lemlist campaign, including the fixed lead fields and status semantics. It is clear what the tool does, though it does not explicitly differentiate this tool from siblings such as lemlist_search_people or lemlist_add_leads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the campaign-scoped description and the optional state filter, which suggests this is for retrieving campaign leads. However, there is no explicit guidance on when to use this tool versus related tools like lemlist_search_people or lemlist_list_replies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_list_replieslemlist: List repliesA
Read-only
Inspect

Wer hat geantwortet? Antworten der letzten N Tage (max. 365), neueste zuerst: replied_at, channel (email/linkedin), campaign_id, lead_id, contact_id, first_name, last_name, email, company, step. campaign_id optional (sonst alle Kampagnen), channel optional email oder linkedin. limit max. 500. Antworttext: lemlist_get_conversation(contact_id). Interesse setzen: lemlist_set_lead_interest. Braucht die Freigabe „Lead-Daten freigeben“ im Workspace (Portal). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
channelNo
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint/openWorldHint, and the description adds real behavioral context beyond that: a hard 365-day cap on days, a 500 cap on limit, newest-first ordering, and a workspace-level permission requirement ("Lead-Daten freigeben") that gates the call. It stops short of describing failure modes or what happens when the permission is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded with the core purpose, but the inline field enumeration (replied_at, channel, campaign_id, ... step) is largely redundant since an output schema already exists, and the parameter notes are packed into a run-on block rather than structured. Nothing is actively wasteful, but efficiency is only moderate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero schema descriptions, an existing output schema, and five optional parameters, this covers everything an agent needs: scope, sort order, caps, defaults implied by the bounds, permission prerequisite, workspace ambiguity, and next-step tools. No gap remains that would cause an incorrect invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all parameter meaning — and it does: days capped at 365, limit capped at 500, channel restricted to email/linkedin, campaign_id optional with 'all campaigns' as the fallback, and workspace as a slug that may be omitted with a single workspace. Every one of the five parameters gains semantics the bare types do not provide.

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?

Opens with a direct question ("Wer hat geantwortet?") followed by a specific verb+resource: replies of the last N days, newest first, with an enumerated field set. It also names the sibling tools for the natural follow-up actions (lemlist_get_conversation, lemlist_set_lead_interest), so the agent can place it precisely in the lemlist tool family.

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?

Gives clear context and explicit follow-up routing: reply text via lemlist_get_conversation(contact_id), interest setting via lemlist_set_lead_interest. What is missing is an explicit exclusion — it never says when NOT to use this (e.g. use lemlist_list_leads for lead data without replies) or how it differs from lemlist_campaign_performance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_list_saved_searcheslemlist: List saved searchesA
Read-only
Inspect

Gespeicherte Personen-Suchen der lemlist-Datenbank („Saved searches“, im Team geteilt). Je Suche saved_search_id, name, filters ({filter_id, in, out, ggf. exact_match}), last_results_count (Trefferzahl beim letzten Speichern/Ausführen) und last_results_count_at. Ausführen: saved_search_id an lemlist_search_people. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real context beyond that: the searches are shared across the team, and last_results_count / last_results_count_at represent the hit count at last save/run, which an agent could otherwise misread as live data.

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?

Front-loaded with what the tool returns, then the follow-up action, then the parameter note — a sensible order with no filler. It is still somewhat dense and wraps awkwardly across lines, but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-field explanation was not strictly required, so the description is comfortably complete: purpose, follow-up action, and the sole parameter are all covered. Minor omission is the absence of any note on result volume or whether the list is paginated.

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 0%, so the description carries the burden and does: it defines workspace as the customer workspace slug and notes it is optional when there is only one workspace. Format/validation detail beyond 'slug' is absent, keeping it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Gespeicherte Personen-Suchen der lemlist-Datenbank') and immediately scopes it as team-shared saved searches, which separates it from lemlist_search_people (execution) and lemlist_database_filters (filter catalogue). It even enumerates the fields returned per search, so an agent knows exactly what it gets.

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 routes the agent onward: 'Ausführen: saved_search_id an lemlist_search_people' tells you this tool is a lookup and the sibling is the executor. It does not state when-not to use it or contrast it with lemlist_database_filters, so it falls 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.

lemlist_mailbox_healthlemlist: Mailbox healthA
Read-only
Inspect

Zustellbarkeit der Absender-Postfächer im lemlist-Team. mailboxes: je Postfach email, domain, provider, status (CONNECTED/ERROR/ DISCONNECTED), daily_email_limit, lemwarm_active, deliverability_score (lemwarm, 0–100) mit score_checked_at, warmup_daily_limit (lemwarm-Tageslimit). domains: je Absender-Domain Anzahl Postfächer, problems (nicht CONNECTED), min_score, avg_score. Score, score_checked_at und warmup_daily_limit gibt es nur für Postfächer mit lemwarm-Einstellungen; sonst null. Bei Teams mit mehr als 50 Mitgliedern werden nur die ersten 50 ausgewertet (Hinweis dann in notes). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond annotations: the 50-member evaluation cap surfaced in 'notes', and that score/score_checked_at/warmup_daily_limit are null for mailboxes without lemwarm settings. This is meaningful operational detail.

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?

Purpose is front-loaded, then field documentation follows in an organized way. There is some redundancy since a structured output schema already exists and much of the field list restates return values, making it longer than strictly necessary, but nothing is genuinely wasted.

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 returns rich structured output with an output schema, the description covers what an agent needs: scope, workspace param behavior, the null-score caveat, and the 50-member cap. The main gap is a lack of explicit when-to-use routing, but otherwise it's complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there is a single parameter, so the description must carry the semantics. It does explain workspace as the customer workspace slug and clarifies it's optional when only one workspace exists, which is helpful. However, it doesn't clarify format expectations (e.g., how the slug is obtained) beyond that.

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 opening line states a specific resource and intent (deliverability of sender mailboxes in the lemlist team), which is clearly a read/health-check tool. It's distinguishable from the campaign/lead-oriented lemlist siblings by topic, though it never explicitly names a sibling to contrast with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose but there is no explicit 'use this when' clause or suggestion of an alternative tool. The only guidance-like element is the note that workspace is optional when there is a single workspace, which is useful but not full usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_pause_campaignlemlist: Pause campaignB
Destructive
Inspect

lemlist-Kampagne pausieren: stoppt weitere Sendungen, Leads bleiben erhalten. Rückgabe: before/after (status), verified. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true; the description adds genuine context by clarifying that further sends stop while leads are retained, which softens the destructive signal for the caller. However it does not explain why the operation is flagged destructive (irreversibility, resumability), nor any permission requirements, so the added value is partial.

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?

Three short, front-loaded lines: action, return, parameter note. No filler, each line carries distinct information, though the parameter note is placed last rather than integrated.

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?

An output schema exists, so the return line is redundant but harmless. With 0% schema coverage across three parameters and a state-changing tool, the unexplained 'validate_only' flag and campaign_id semantics leave the definition short of what an agent needs to call it confidently.

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 0%, so the description must compensate: it explains 'workspace' as an optional customer workspace slug (needed only when multiple workspaces exist), which the schema does not. But 'campaign_id' and especially 'validate_only' receive no explanation at all, leaving real gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ('lemlist-Kampagne pausieren') and distinguishes it from the sibling set (e.g. lemlist_start_campaign, lemlist_update_campaign). The added effect clause clarifies what pausing means operationally, though the German/English mix with the English tool name is slightly awkward.

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 intent of pausing is implied clearly, but the description never states when to pause vs. use lemlist_start_campaign or lemlist_update_campaign, nor any prerequisites (campaign must exist, must be active).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_search_peoplelemlist: Search peopleA
Read-only
Inspect

Personen in der lemlist-Datenbank suchen (Zielgruppen für Outbound). saved_search_id: gespeicherte Suche aus lemlist_list_saved_searches ausführen, statt die Filter nachzubauen; zusätzliche filters ersetzen dann deren Filter mit derselben filter_id, die übrigen bleiben. Rückgabe dann auch saved_search und filters_applied (tatsächlich gesendete Filter). filters: Liste von {filter_id, in: [Werte], out: [Werte]} (filter_id und Werte aus lemlist_database_filters), alle Filter gelten zugleich. search: Freitext über Name, Titel, Firma, Ort. page ab 1, size max. 100. Rückgabe: total, results je Person (database_id, full_name, headline, title, company, company_domain, company_size, company_industry, seniority, department, location, country, linkedin_url), searches_left_24h (lemlist begrenzt die Suchen je 24 Stunden, jede Seite zählt). Keine E-Mail-Adressen — für LinkedIn-Sequenzen linkedin_url an lemlist_add_leads übergeben. Personen, die schon Lead in einer Kampagne sind, filtert lemlist bei der Suche nicht heraus; lemlist_add_leads mit deduplicate=True (Standard) überspringt sie mit reason already_in_other_campaign. Braucht die Freigabe „Lead-Daten freigeben“ im Workspace (Portal). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
pageNo
sizeNo
searchNo
filtersNo
workspaceNo
saved_search_idNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnlyHint/openWorldHint annotations: discloses the 24-hour search quota with per-page counting, the required 'Lead-Daten freigeben' workspace approval, the absence of e-mail addresses, and the fact that existing campaign leads are not filtered out. This is exactly the operational context an agent needs before calling.

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?

Dense but essentially waste-free; the goal is front-loaded and each subsequent sentence adds a distinct rule (saved search precedence, filter shape, pagination limits, return shape, dedupe interplay, permissions). The dense paragraph form makes it slightly harder to scan than a bulleted layout.

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?

Even though an output schema exists, the description still clarifies return semantics (total, per-person fields, searches_left_24h, applied saved_search/filters) and the downstream handoff to lemlist_add_leads. Permissions, quotas and pagination are all covered, so nothing an agent needs to call correctly is missing.

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% schema description coverage, the description carries the full burden and does so: page starts at 1, size max 100, search is free-text over name/title/company/location, filters are {filter_id, in, out} lists sourced from lemlist_database_filters, workspace is optional for single-workspace accounts, and saved_search_id merges/overrides filters. Covers all six params.

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?

First sentence states a specific verb and resource: searching persons in the lemlist database for outbound targeting. It is clearly distinguishable from siblings like lemlist_list_leads (existing leads) and lemlist_database_filters (filter catalog), which it references by name.

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 routes between alternatives: saved_search_id executes a stored search from lemlist_list_saved_searches instead of rebuilding filters, filter_id/values come from lemlist_database_filters, and results feed lemlist_add_leads via linkedin_url. It also warns that existing campaign leads are not excluded and that deduplicate=True skips them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_set_lead_interestlemlist: Set lead interestA
Destructive
Inspect

Lead in einer lemlist-Kampagne als interessiert (interested=True) oder nicht interessiert (False) markieren, z. B. nach einer Antwort. lead_id aus lemlist_list_leads bzw. lemlist_list_replies. Rückgabe: before/after (status, state), verified. Braucht die Freigabe „Lead-Daten freigeben“ im Workspace (Portal). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
lead_idYes
workspaceNo
interestedYes
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, so the description only needs to add context. It does: it names the required workspace permission 'Lead-Daten freigeben' and discloses that the response contains before/after status/state plus a verification flag, which tells the agent the prior value is captured. It never explicitly warns that an existing interest classification is overwritten, which is the main residual gap.

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?

Front-loaded with the action, then prerequisites, then parameter hints. Compact and free of filler; only minor cost is that permission and parameter notes are packed into separate lines without much structure.

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?

Covers purpose, permission prerequisite and effect verification, and the output schema covers return shape. But with zero schema description coverage and no annotations-level detail on overwrite behavior, an agent still lacks semantics for a required parameter (campaign_id) and for validate_only.

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 0%, so the description carries the full burden. It explains lead_id (source tools), interested (True/False semantics) and workspace (optional when only one workspace), but leaves campaign_id (required) and validate_only completely undocumented in both schema and description.

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?

States a specific verb and resource: mark a lead in a lemlist campaign as interested (True) or not interested (False). Clear enough to act on, but it does not explicitly distinguish itself from the nearest sibling, lemlist_set_lead_paused, which is another per-lead state mutation in the same campaign.

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?

Gives a concrete triggering context ('z. B. nach einer Antwort') and tells the agent where lead_id comes from (lemlist_list_leads / lemlist_list_replies). No explicit when-not-to-use guidance or statement of how this differs from pausing a lead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_set_lead_pausedlemlist: Set lead pausedA
Destructive
Inspect

Einzelnen Lead in einer lemlist-Kampagne pausieren (paused=True; keine weiteren Schritte für ihn) oder fortsetzen (False). Die Kampagne selbst läuft weiter. Fortsetzen wirkt nur in laufenden Kampagnen; sonst verified=False mit hint. Rückgabe: before/after (is_paused), verified. Braucht die Freigabe „Lead-Daten freigeben“ im Workspace (Portal). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
pausedNo
lead_idYes
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the annotations (destructiveHint=true, openWorldHint=true) by disclosing the failed-resume behavior (verified=False plus hint), that the campaign is unaffected, and a concrete permission prerequisite ('Lead-Daten freigeben' in the workspace portal). Return fields are named as before/after (is_paused) and verified, though an output schema already covers that.

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?

Five short sentences, each adding a distinct fact: the action, the campaign-level scope, the resume precondition, the return shape and the permission requirement. Nothing repeats the title or the schema.

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 destructive write tool with an output schema, it covers the permission gate, failure semantics and workspace fallback, which is most of what an agent needs. The unexplained validate_only flag is the one meaningful gap in an otherwise complete definition.

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 0%, so the description carries the full burden. It explains the semantics of paused (what True and False each cause) and workspace (slug, optional when only one workspace exists), but campaign_id, lead_id and especially validate_only are left undocumented in both schema and description.

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?

States a specific verb and resource (single lead in a lemlist campaign) and defines both polarities of the action: paused=True stops further steps, False resumes. 'Einzelnen Lead' implicitly separates it from the campaign-level lemlist_pause_campaign sibling, but that sibling is never named explicitly.

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?

Gives concrete when-conditions: resuming only takes effect in running campaigns, otherwise verified=False with a hint, and the campaign itself keeps running while the lead is paused. It does not explicitly contrast with lemlist_pause_campaign or lemlist_set_lead_interest, so the agent must infer the routing itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_start_campaignlemlist: Start campaignA
Destructive
Inspect

lemlist-Kampagne starten oder fortsetzen. Danach verschickt lemlist echte Nachrichten, die sich nicht zurückholen lassen. Ablauf: erst validate_only=True — liefert summary (Leads, Absender, Schritte, Betreff der ersten E-Mail) oder not_ready mit problems. Die Zusammenfassung dem Nutzer zeigen und bestätigen lassen, dann mit expected_leads = summary.leads_total starten; ohne passende expected_leads wird nicht gestartet. Rückgabe: before/after (status), verified. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes
validate_onlyNo
expected_leadsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive and open-world, but the description adds critical behavioral context: real messages are sent, they cannot be recalled, validation is mandatory in practice, and the final return includes before/after status and verified. This materially improves safe invocation beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose and irreversible effect first, then the validate/confirm/start workflow, then return values, then the workspace parameter. Every sentence adds operational value with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a destructive, open-world action with four parameters and an output schema, the description covers the essential safety workflow, the confirmation requirement, the expected_leads guard, return shape, and workspace handling. Nothing an agent needs to invoke it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It explains validate_only's return behavior, how expected_leads relates to summary.leads_total and what happens without it, and that workspace is the customer workspace slug and optional when only one workspace exists. Only campaign_id is left implicit, which is self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: start or resume a lemlist campaign. It immediately clarifies the consequential effect that real messages are sent and cannot be undone, which distinguishes this operation from read-only or configuration siblings such as lemlist_pause_campaign or lemlist_update_campaign.

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?

Provides an explicit operating procedure: first call with validate_only=True, show the returned summary or not_ready problems to the user, get confirmation, then start with expected_leads = summary.leads_total. It also states the guardrail that the campaign will not start without matching expected_leads.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_step_performancelemlist: Step performanceA
Read-only
Inspect

Kennzahlen einer lemlist-Kampagne je Sequenzschritt und A/B-Variante. steps: je Schritt sequence_id, index, step, type (email, linkedinInvite, …), ab_variant, subject, invited, sent, delivered, not_delivered, bounced, opened, clicked, replied, unsubscribed und rates_pct (open/click/reply je delivered, bounce je sent). total: Summe der Kampagne wie in lemlist_campaign_performance. ab_variants: Summen für Variante A und B, nur wenn die Kampagne A/B testet. days bzw. date_from/date_to ('YYYY-MM-DD', UTC) und channel wie dort. Texte der Schritte: lemlist_get_sequence. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
channelNo
date_toNo
date_fromNo
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only behavior, and an output schema exists. The conditional note that ab_variants is only present when the campaign A/B tests adds genuine behavioral insight, but most of the rest of the description restates return fields that the output schema already enumerates. Coverage is adequate but not rich beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and reasonably structured, but the long enumeration of returned fields (invited, sent, delivered, ...) is verbose and largely duplicates the output schema, adding some 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?

With an output schema present, the tool doesn't need to explain return values, yet it provides enough context about purpose, alternative tools, and date/workspace semantics that an agent can call it correctly. Missing details on campaign_id and channel are minor gaps covered by the cross-reference.

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?

With 0% schema description coverage, the description compensates partially: it documents workspace as a customer-workspace slug (optional with a single workspace) and date strings as YYYY-MM-DD (UTC), and explains days vs. date_from/date_to. However, campaign_id and channel are only weakly covered ('wie dort'), leaving meaning to be inferred from the sibling tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and scope: metrics (Kennzahlen) of a lemlist campaign broken down by sequence step and A/B variant. This clearly distinguishes it from lemlist_campaign_performance (campaign total) and lemlist_get_sequence (step text).

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?

Routes the agent to alternatives by cross-referencing lemlist_get_sequence for step texts and lemlist_campaign_performance for the campaign-level total. The implicit guidance is clear even though it doesn't explicitly say 'use when...' for a step-level breakdown.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_update_campaignlemlist: Update campaignA
Destructive
Inspect

Einstellungen einer lemlist-Kampagne ändern: name, sender_user_ids (ersetzt die Absender; user_id aus lemlist_mailbox_health), Stopp-Regeln (stop_on_email_replied/meeting_booked/link_clicked) und Tracking (track_opens/track_clicks). Nur angegebene Felder werden geändert. Rückgabe: verified bezieht sich auf name und Absender — Stopp-Regeln und Tracking gibt lemlist nicht zurück (not_readable), Kontrolle nur im lemlist-UI. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
workspaceNo
campaign_idYes
track_opensNo
track_clicksNo
validate_onlyNo
sender_user_idsNo
stop_on_link_clickedNo
stop_on_email_repliedNo
stop_on_meeting_bookedNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it states that sender_user_ids replaces the existing senders (not merges), that only supplied fields change, and — critically — that the returned 'verified' status covers only name and senders while stop rules and tracking come back not_readable and must be checked in the lemlist UI. That is exactly the kind of behavioral caveat annotations (destructive/openWorld) cannot convey.

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?

Front-loaded with the action and the field groups, then return-value caveats, then workspace semantics — a sensible order with no filler. A few clauses chain together densely, but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-param mutation tool with an output schema, the description covers the mutation semantics, the partial-update rule, the sender replacement behavior, and the verification limitation of the response. It is nearly complete; only validate_only's dry-run behavior is missing, which matters for a destructive 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?

Schema coverage is 0%, so the description carries the full burden and largely does: it explains name, sender_user_ids (array replacing senders, sourced from lemlist_mailbox_health), the three stop_on_* flags, the two track_* flags, and the workspace optionality. Only validate_only and campaign_id are left unexplained, keeping it short of a 5.

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?

Starts with a specific verb+resource ('Einstellungen einer lemlist-Kampagne ändern') and enumerates the mutable fields, so the agent knows exactly what the tool touches. It does not explicitly contrast with siblings like lemlist_create_campaign or lemlist_pause_campaign/lemlist_start_campaign, leaving that differentiation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the field list and by 'Nur angegebene Felder werden geändert' (partial update semantics), and the workspace fallback is spelled out. However, there is no explicit when-to-use/when-not guidance versus lemlist_pause_campaign, lemlist_start_campaign, or lemlist_update_sequence_step.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemlist_update_sequence_steplemlist: Update sequence stepA
Destructive
Inspect

Betreff, Text, Verzögerung oder Titel eines Sequenzschritts ändern (step_id aus lemlist_get_sequence). Der Typ bleibt; welche Felder gehen, hängt vom Typ ab (siehe lemlist_create_campaign). In laufenden Kampagnen gilt der neue Text für die folgenden Sendungen. Bedingungen nur im lemlist-UI. Rückgabe: before/after, verified. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
delayNo
titleNo
messageNo
step_idYes
subjectNo
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true. The description adds meaningful behavior beyond them: the step type cannot be changed, field availability is type-dependent, new text affects only following sends in running campaigns, conditions are UI-only, and the return includes before/after/verified.

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 front-loaded and dense with operational constraints rather than filler. Including the return fields is slightly redundant because an output schema exists, but the description remains efficient overall.

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 destructive 8-parameter mutation with 0% schema coverage, it covers key field/type behavior and campaign side effects, but leaves campaign_id and validate_only unexplained. The output schema reduces the need to detail return values, but the description is not fully complete for callers.

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 0% with 8 parameters, so the description must carry the burden. It maps subject, message/Text, delay, title, step_id, and workspace, but omits any explanation of required campaign_id and the validate_only parameter, leaving important gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (ändern) and resource (Sequenzschritt), explicitly lists subject, message, delay, and title, and says step_id comes from lemlist_get_sequence. The update framing and note that the step type remains fixed distinguish it from add/delete/get sequence-step 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?

Explains the prerequisite that step_id comes from lemlist_get_sequence, that which fields work depends on the step type with a pointer to lemlist_create_campaign, that running campaigns apply new text to following sends, and that conditions can only be changed in the lemlist UI. It does not explicitly name when-not or sibling alternatives, but the operational context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_audience_breakdownLinkedIn Ads: Audience breakdownA
Read-only
Inspect

Wer hat die LinkedIn-Anzeigen gesehen und geklickt — Performance nach beruflicher Demografie. dimension: job_function, seniority, industry, company_size, job_title, company, country, region. Zeitraum wie linkedin_performance_report (date_from/date_to oder days). campaign_ids: optional auf diese Kampagnen einschränken (max. 20, müssen zum Werbekonto des Workspace gehören), sonst ganzes Konto. limit: Anzahl Zeilen (bis 100), sortiert nach Impressionen. Rückgabe je Zeile: name (deutsch, best-effort), urn, impressions, clicks, cost, conversions, leads, lead_form_opens. Grenzen laut LinkedIn: Werte sind Näherungen (Datenschutz), Werte mit weniger als 3 Ereignissen fehlen, Daten bis 24 h verzögert und nur 2 Jahre verfügbar — die Summe der Zeilen ergibt deshalb nicht die Gesamtwerte. Für korrekte Gesamtzahlen linkedin_performance_report (level=account) nutzen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
date_toNo
date_fromNo
dimensionYes
workspaceNo
campaign_idsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the readOnly/openWorld annotations: discloses LinkedIn-side approximations for privacy, suppression of values with fewer than 3 events, up to 24h data latency, a 2-year retention window, and the critical caveat that row sums do not equal account totals. These are exactly the behavioral traits that would otherwise cause misinterpretation.

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?

Front-loaded purpose sentence followed by labeled parameter blocks and a clearly separated limitations block — easy to scan. Dense but every line carries information; only minor trimming (e.g. the German per-row field list given an output schema exists) would improve it.

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?

Covers what an agent needs to call this correctly: dimension choice, timeframe, campaign scoping, row limit, and the interpretation caveats. Even though an output schema exists, it briefly names the per-row metrics (name, urn, impressions, clicks, cost, conversions, leads, lead_form_opens), which helps the agent reason about results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load and it does: valid dimension values, timeframe syntax (date_from/date_to or days), campaign_ids cap of 20 plus the requirement that they belong to the workspace ad account, limit max 100 with impression-based sorting, and the optional workspace slug.

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?

Opening sentence states a concrete verb/resource and scope: performance of LinkedIn ads broken down by professional demographics ('Wer hat die LinkedIn-Anzeigen gesehen und geklickt'). The enumerated dimension list (job_function, seniority, industry, company_size, job_title, company, country, region) makes it unmistakable versus sibling tools like linkedin_campaign_performance or linkedin_creative_performance.

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 routes the agent: use linkedin_performance_report (level=account) when correct aggregate totals are needed, because row sums here are non-additive. It also states when campaign_ids should be used ('optional auf diese Kampagnen einschränken ... sonst ganzes Konto') and when workspace can be omitted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_campaign_performanceLinkedIn Ads: Campaign performanceA
Read-only
Inspect

LinkedIn-Ads-Kampagnen-Performance (Impressionen, Klicks, Kosten, Conversions, Leads) der letzten N Tage. days: Zeitraum heute−N bis heute einschließlich (heute unvollständig). Rückgabe je Kampagne: campaign_urn (bei den 20 kostenstärksten durch den Kampagnennamen ersetzt, sonst URN), impressions, clicks, cost (Kontowährung), conversions, leads, lead_form_opens. Sortiert nach cost absteigend. conversions = Website-Conversions (Conversion-Tracking auf der Website); leads = abgeschickte Lead-Gen-Formulare, lead_form_opens = geöffnete Formulare. Bei Lead-Gen-Kampagnen also leads auswerten, nicht conversions. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, openWorldHint), and the description adds real operational context beyond them: the window is today−N through today inclusive with today being incomplete, results are sorted by cost descending, and campaign_urn is replaced by the campaign name for the 20 highest-cost campaigns only. That last detail is a non-obvious output transformation an agent would otherwise misread. No auth or rate-limit notes, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the purpose and then devotes each line to one concern (time window, return fields, sorting, metric definitions, workspace), with no filler. It is dense rather than padded, though the metric-definition block could be tightened slightly.

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?

An output schema exists, yet the description still usefully clarifies the ambiguous return fields (conversions vs leads vs lead_form_opens, cost in account currency, urn-vs-name substitution). Combined with the time-window and sorting semantics, an agent has enough to call and interpret it correctly; only sibling routing is missing.

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 0%, so the description must carry the parameters and it largely does: 'days' is defined as today−N through today inclusive with today incomplete, and 'workspace' is defined as the client workspace slug that is optional when only one workspace exists. Only minor gaps remain, e.g. no stated bounds or default behavior for days beyond the schema default of 30.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and verb scope: LinkedIn Ads campaign performance with an explicit metric list (impressions, clicks, cost, conversions, leads) over the last N days. It is clearly campaign-level, but it never distinguishes itself from the close sibling linkedin_performance_report or from linkedin_creative_performance / linkedin_audience_breakdown, so an agent must infer the split.

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?

There is one genuinely useful usage rule: for lead-gen campaigns evaluate 'leads', not 'conversions'. It also notes workspace is optional when only one workspace exists. However, there is no guidance on when to pick this over linkedin_performance_report or the creative/audience breakdown tools, so the choice between siblings is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_create_ad_from_postLinkedIn Ads: Create ad from postAInspect

Bestehenden LinkedIn-Page-Post als Anzeige (Creative) in einer Kampagne anlegen. post_urn: 'urn:li:share:…' oder 'urn:li:ugcPost:…' — am einfachsten aus linkedin_list_page_posts (nur Posts mit sponsorable=true). Neue Dark-Posts (Anzeigen ohne Seiten-Post) bräuchten w_organization_social; die Berechtigung ist freigeschaltet, wird aber (noch) nicht angefragt — daher der Weg über bestehende Posts. status: DRAFT (Default) oder ACTIVE — als DRAFT läuft die Anzeige erst nach Aktivierung via linkedin_update_creative_status. validate_only: True prüft nur lokal (kein API-Aufruf) und liefert would_create. Rückgabe: creative_id (aus dem Antwort-Header, kann fehlen — dann mit linkedin_list_creatives nachschlagen), post. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusNoDRAFT
post_urnYes
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare that this is a non-read-only, non-destructive, open-world write. The description adds real operational context: a DRAFT creative does not run until activated via linkedin_update_creative_status, and validate_only performs a purely local check with no API call, returning would_create. It also discloses that creative_id comes from the response header and may be absent, with linkedin_list_creatives as the fallback.

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 purpose is front-loaded and each subsequent line carries distinct, non-redundant information rather than padding. It is dense and slightly sprawling with per-parameter lines, but no sentence could be dropped without losing a fact the agent needs.

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 5-parameter write tool with an output schema and annotations, the description covers sourcing the input, the lifecycle consequence of the default status, the dry-run mode, and the return-value caveat. Nothing an agent needs to call this correctly is missing.

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 0%, so the description has to carry all parameter meaning, and it does for four of five: post_urn format (urn:li:share / urn:li:ugcPost), status values and default, validate_only semantics, and workspace's optionality for single-workspace accounts. campaign_id, the other required parameter, is never explained (e.g. sourced from linkedin_list_campaigns), which leaves a small gap.

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 first sentence names a specific verb and resource: creating a creative from an existing LinkedIn page post inside a campaign. It is clearly distinguishable from sibling creation tools such as linkedin_create_campaign or linkedin_create_campaign_group, and even from a hypothetical dark-post creation path.

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 tells the agent exactly where to get post_urn (linkedin_list_page_posts, only posts with sponsorable=true) and explains why the dark-post route is not taken (w_organization_social is enabled but not yet requested). It also spells out the DRAFT-vs-ACTIVE consequence with a pointer to linkedin_update_creative_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_create_campaignLinkedIn Ads: Create campaignAInspect

Neue LinkedIn-Kampagne (Sponsored Content, Typ SPONSORED_UPDATES) anlegen — trägt Tagesbudget, Geo-/Sprach- und optional weiteres Targeting. Gebot automatisch; Optimierungsziel beim Anlegen immer MAX_CLICK (CPM), unabhängig vom Objective — danach mit linkedin_update_campaign_bid umstellen (z. B. MAX_LEAD, manuelles Gebot).

campaign_group_id aus linkedin_list_campaign_groups/…create…. objective: WEBSITE_VISIT/BRAND_AWARENESS/ENGAGEMENT/VIDEO_VIEW/ LEAD_GENERATION/WEBSITE_CONVERSION/JOB_APPLICANT. countries: ISO-Codes (AT/DE/CH/US/GB/FR/NL/IT/ES, Default ['AT']) oder 'urn:li:geo:…'-URNs. language: 'de' (de_DE) oder 'en' (en_US) — andere Sprachen werden derzeit nicht auf gültige Locales abgebildet. currency: Kontowährung des Budgets (Default EUR). status: DRAFT (Default) oder ACTIVE. validate_only: True prüft nur lokal (kein API-Aufruf) und liefert would_create. targeting: zusätzliche Zielgruppen-Gruppen, UND-verknüpft mit Land und Sprache; innerhalb einer Gruppe ODER. Form wie in linkedin_update_campaign_targeting, z. B. [{"job_functions": ["urn:li:function:13"]}, {"seniorities": ["urn:li:seniority:6", "urn:li:seniority:7"]}]. URNs über linkedin_search_targeting finden. Jobtitel nicht mit job_functions oder seniorities kombinieren (LinkedIn lehnt das ab). exclude: Ausschlüsse, z. B. {"companies": ["urn:li:organization:1337"]}. start_date/end_date: erster bzw. letzter Lauftag einschließlich ('YYYY-MM-DD', UTC-Tage wie im Campaign Manager: Start 00:00 UTC, Ende 23:59:59 UTC); Start ohne Angabe sofort, in der Vergangenheit → error=start_in_past; ohne Ende unbefristet. audience_network: auch im LinkedIn Audience Network (Drittseiten) ausliefern, Default aus. organization_urn: werbende Unternehmensseite ('urn:li:organization:…'); ohne Angabe die mit dem Werbekonto verknüpfte Seite (sonst error=organization_unknown). Politische Werbung: Die Kampagne wird als NICHT politisch angelegt. LinkedIn verlangt, dem Werbetreibenden vor dem Anlegen diese Bestätigung zu zeigen (Standard: bestätigt) — zeige sie dem Nutzer und lege nicht an, wenn es politische Werbung ist: "I confirm this is not political advertising. None of my ads qualify as political advertising under the law of the targeted countries, including EU law for ads targeted to the EU. Advertisers must comply with LinkedIn's policies and regulatory requirements. https://www.linkedin.com/legal/ads-policy" Rückgabe: campaign_id, status, associated_entity, verified (Kampagne zurückgelesen: Name, Status, Ziel, Budget, Gebot, Laufzeit, Audience Network, politische Einordnung, Unternehmensseite; Abweichungen in not_applied; verified=null mit readback_failed, wenn nur das Zurücklesen scheiterte — dann NICHT erneut anlegen), political_notice, targeting_notice. targeting_notice: LinkedIn-Pflichthinweis gegen diskriminierendes Targeting — dem Nutzer zusammen mit dem Targeting wörtlich mit Link anzeigen: "LinkedIn tools may not be used to discriminate based on personal characteristics like gender, age, race, or ethnicity. Learn more: https://www.linkedin.com/help/lms/answer/86856" workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
statusNoDRAFT
excludeNo
currencyNoEUR
end_dateNo
languageNode
countriesNo
objectiveNoWEBSITE_VISIT
targetingNo
workspaceNo
start_dateNo
daily_budgetYes
validate_onlyNo
audience_networkNo
organization_urnNo
campaign_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only give the basic write/safe/open-world profile, and the description adds substantial behavior beyond that: bid is force-set to MAX_CLICK/CPM at creation, start_date in the past yields error=start_in_past, missing org page yields error=organization_unknown, and a readback verification (verified/not_applied/readback_failed) that must not be re-created on failure. It also surfaces the mandatory political-ad and anti-discriminatory notice obligations. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the parameter breakdown is orderly, with each entry carrying real information. It is long and slightly repetitive where it explains return values that an output schema already covers. Not wasteful overall, but a touch verbose for the format.

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 16-parameter mutation with nested targeting, the description covers required inputs, defaults, error conditions, side effects, and even the return shape (though an output schema exists). An agent has everything needed to call it correctly and interpret failures.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it does: objective enum values, countries ISO codes plus default, language locale mapping, currency default, status DRAFT/ACTIVE, targeting group semantics (AND across groups, OR within), the job-title-vs-function/seniority restriction, exclude shape, inclusive date semantics, and validate_only behavior. This far exceeds what the bare schema conveys.

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 first sentence names a specific verb and resource ("Neue LinkedIn-Kampagne ... anlegen") and even pins the ad type (Sponsored Content, SPONSORED_UPDATES). It differentiates itself from siblings by pointing to linkedin_update_campaign_bid and linkedin_update_campaign_targeting for post-creation changes. An agent can tell exactly what this does versus the many other ad tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It routes the agent to alternatives and prerequisites explicitly: get campaign_group_id from linkedin_list_campaign_groups, look up URNs via linkedin_search_targeting, switch bid/objective afterwards with linkedin_update_campaign_bid, and use validate_only for a local dry-run. It also states when NOT to create (political advertising). This is genuine when/when-not/alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_create_campaign_groupLinkedIn Ads: Create campaign groupAInspect

Neue LinkedIn-Kampagnengruppe anlegen (Default DRAFT; Aktivierung via linkedin_update_campaign_group). total_budget optional als Obergrenze — dann ist end_date Pflicht. start_date: erster Lauftag, end_date: letzter Lauftag einschließlich ('YYYY-MM-DD', UTC-Tage wie im Campaign Manager: Start 00:00 UTC, Ende 23:59:59 UTC — die Daten stimmen damit mit dem Campaign Manager überein); Start ohne Angabe sofort, in der Vergangenheit → error=start_in_past. Solange die Gruppe DRAFT ist, lassen sich ihre Kampagnen nicht auf PAUSED/ACTIVE setzen. Rückgabe: campaign_group_id, status, verified (Name, Status, Laufzeit, Budget zurückgelesen; Abweichungen in not_applied; verified=null mit readback_failed, wenn nur das Zurücklesen scheiterte — dann nicht erneut anlegen). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
statusNoDRAFT
currencyNoEUR
end_dateNo
workspaceNo
start_dateNo
total_budgetNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true): it discloses the DRAFT default, that a DRAFT group blocks its campaigns from being set to PAUSED/ACTIVE, exact UTC day boundaries for start/end, the start_in_past error, and a readback verification contract (verified, not_applied, readback_failed) with retry guidance. That is exactly the mutation-behavior context annotations cannot convey.

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?

Front-loaded with the action and default status, then conditions, then return/verification semantics — a sensible ordering. It is dense with stacked parentheticals about date handling, so a reader must parse carefully, but no sentence is filler given the 8 undocumented parameters.

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?

An output schema exists, yet the description still summarizes the key return fields (campaign_group_id, status, verified) and the failure semantics, and it covers almost every parameter's edge case. The only meaningful holes are currency and validate_only, which an agent may need to know exist before calling.

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% schema description coverage, the description carries the burden and mostly succeeds: it explains status defaulting to DRAFT, total_budget as an optional upper bound that forces end_date, start_date/end_date inclusive UTC semantics with a concrete format, and workspace as a slug needed only when multiple workspaces exist. Only currency (default EUR) and validate_only are left completely unexplained, so it falls short of full 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?

States a specific verb and resource ('Neue LinkedIn-Kampagnengruppe anlegen') and immediately distinguishes this creation tool from the campaign-level and update tools, naming linkedin_update_campaign_group as the activation path. An agent can tell it apart from linkedin_create_campaign and linkedin_list_campaign_groups without opening any schema.

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?

Gives concrete use conditions: group is created as DRAFT by default, activation must go through linkedin_update_campaign_group, and the tool should not be re-run when verified=null due to readback_failed. It also states the total_budget → end_date dependency and the start-in-the-past failure mode, though it never explicitly says when not to use it (e.g. vs. linkedin_create_campaign for child campaigns).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_creative_performanceLinkedIn Ads: Creative performanceA
Read-only
Inspect

Performance einzelner LinkedIn-Anzeigen (Creatives) der letzten N Tage, sortiert nach Kosten. days: Zeitraum heute−N bis heute einschließlich (heute unvollständig). Rückgabe je Creative: creative (URN, per linkedin_list_creatives zuordnen), impressions, clicks, cost (Kontowährung), conversions, leads, lead_form_opens. conversions = Website-Conversions; leads = abgeschickte Lead-Gen-Formulare, lead_form_opens = geöffnete Formulare. Bei Lead-Gen-Anzeigen leads auswerten. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, and the description adds real value on top: results are sorted by cost, cost is in account currency, the current day's data is incomplete, and conversions/leads/lead_form_opens have distinct meanings. It does not mention pagination or result limits, but for a read-only reporting call the disclosure is solid.

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?

Purpose is front-loaded in the first line, followed by the time-window rule, then field semantics — a logical order with no filler. It is somewhat dense and spends lines on return-field meanings that an output schema may also cover, but each line remains actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With two optional parameters, a 0% schema coverage, and an output schema present, the description supplies everything the agent still needs: the exact time window, sorting, currency, per-field meaning of the lead metrics, and the workspace fallback. Nothing required to invoke or interpret the call is missing.

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 0%, so the description must carry the load — and it does: `days` is defined as a window from today−N through today inclusive (today being partial), and `workspace` is a customer workspace slug that may be omitted when only one workspace exists. Only the default of 30 days is left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: per-creative (individual ad) performance over the last N days, sorted by cost — clearly narrower than campaign-level reporting. It does not explicitly name the sibling it replaces (e.g. linkedin_campaign_performance or linkedin_performance_report), so differentiation is implied rather than stated.

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 metric-selection guidance ("Bei Lead-Gen-Anzeigen leads auswerten") and explains when workspace may be omitted, which is useful usage context. However it never states when to pick this tool over linkedin_campaign_performance, linkedin_performance_report, or linkedin_audience_breakdown; the agent must infer the choice from the granularity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_estimate_audienceLinkedIn Ads: Estimate audienceA
Read-only
Inspect

Geschätzte Zielgruppengröße (LinkedIn-Mitglieder) für ein Targeting — entweder include/exclude in derselben Form wie linkedin_update_campaign_targeting (Gruppe mit locations Pflicht) oder campaign_id für das Targeting einer bestehenden Kampagne. Rückgabe: audience_size (gerundet), active_audience, too_small (unter 300 liefert LinkedIn nicht aus), targeting_notice (LinkedIn-Pflichthinweis, dem Nutzer wörtlich mit Link anzeigen). Ändert nichts. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
excludeNo
includeNo
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, it discloses the behavioral edges an agent needs: results under 300 members are not delivered by LinkedIn (too_small), and targeting_notice is a mandatory notice that must be shown to the user verbatim with its link. It also restates the non-mutating nature, consistent with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then input modes, then return values and the mandatory-notice caveat — nothing wasteful. The single dense block and the enumeration of return fields (which the output schema already covers) cost it a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an open-world, four-param read tool with an output schema, the description covers what an agent needs to call it correctly: both input modes, the workspace scoping, the minimum-size caveat, and the user-facing notice obligation.

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 0%, so the description carries the load — and it does, explaining include/exclude (structure borrowed from linkedin_update_campaign_targeting, locations required), campaign_id as the alternative input, and workspace being optional for single-workspace setups. The internal shape of the include/exclude objects remains only indirectly specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: estimated LinkedIn audience size for a targeting. It also disambiguates from the sibling that produces targeting data by naming linkedin_update_campaign_targeting as the source of the include/exclude shape, and it explicitly says it is a non-mutating estimate.

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?

Gives clear mode selection: either pass include/exclude directly (with locations required in the group) or pass campaign_id to estimate an existing campaign's targeting. It does not, however, say when to prefer this over siblings like linkedin_search_targeting or linkedin_audience_breakdown.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_list_accountsLinkedIn Ads: List accountsA
Read-only
Inspect

Erreichbare LinkedIn-Ad-Accounts der Verbindung auflisten (id, name, status, type, currency) — um die richtige Account-ID zu finden, die dann im Portal im Workspace-Formular (Feld Account-ID) eingetragen wird; workspace_configure_source unterstützt linkedin_ads nicht. Braucht keine Account-ID, aber eine dem Workspace zugeordnete LinkedIn-Verbindung. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds real context beyond that: the tool needs an assigned LinkedIn connection but no account ID, and it returns a fixed set of account fields. It stops short of mentioning pagination, rate limits, or what happens when no connection exists, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and return fields are front-loaded, and the workspace note is separated onto its own line. The middle sentence is long and runs several ideas together (account-ID purpose, portal form field, unsupported sibling), costing a bit of scannability but no sentence is filler.

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 one-parameter read tool with an output schema, the description supplies everything needed to call it correctly: the prerequisite connection, the absence of a required account ID, and the downstream use of the returned ID. Return-value details are already covered by the output schema, so nothing material is missing.

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 0%, so the description must carry the single parameter, and it does: 'workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace)' explains both format and the optionality condition that the schema only expresses as a null default. It adds genuine meaning rather than repeating 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?

States a specific verb and resource ('Erreichbare LinkedIn-Ad-Accounts der Verbindung auflisten') and even enumerates the returned fields (id, name, status, type, currency). It also distinguishes itself from workspace_configure_source, which explicitly does not support linkedin_ads, so an agent can tell the two apart without opening a schema.

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?

Gives the concrete purpose ('um die richtige Account-ID zu finden, die dann im Portal im Workspace-Formular eingetragen wird'), names the alternative that will not work, and states the prerequisite (a LinkedIn connection assigned to the workspace) plus the fact that no account ID is required. When-to-use, when-not-to-use, and precondition are all covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_list_audiencesLinkedIn Ads: List audiencesB
Read-only
Inspect

Matched Audiences (DMP-Segmente) des LinkedIn-Ad-Accounts — z.B. Website-Retargeting oder Kontaktlisten. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
countNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered externally. The description adds a useful behavioral detail — that workspace is optional when the account has only one workspace — but says nothing about result limits, pagination, or how many audiences are typically returned.

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?

It is a tightly packed two-line definition with no filler; the workspace note is attached immediately after the resource description. The German fragment style is efficient, though mixing a German body with an English title is slightly awkward for an English toolset.

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?

An output schema exists, so return values needn't be explained, and the safety profile is in annotations. However, the count parameter and any pagination/limit behavior are unaddressed, and there is no differentiation from the other audience listing tools given the large sibling set.

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 0%, so the description must carry parameter meaning. It does explain the workspace parameter (customer workspace slug, optional for single-workspace accounts), but the count parameter (default 100) is never mentioned, leaving half the parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (Matched Audiences / DMP segments of the LinkedIn Ad Account) and gives concrete examples (website retargeting, contact lists), so an agent can tell this returns audience segments. The listing verb is implied rather than stated, and it does not distinguish itself from audience siblings like linkedin_audience_breakdown or linkedin_estimate_audience.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus the other audience-related tools (linkedin_audience_breakdown, linkedin_search_targeting, meta_list_audiences). The only conditional hint concerns the workspace parameter, not the tool's role, so the agent must infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_list_campaign_groupsLinkedIn Ads: List campaign groupsA
Read-only
Inspect

LinkedIn-Kampagnengruppen des Ad-Accounts (Name, Status, Gesamtbudget). Hierarchie: Campaign Group → Campaign (Budget+Targeting) → Creative (Ad). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
countNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description provides significant behavioral context beyond the annotations (readOnlyHint). It lists specific data returned (Name, Status, Total Budget) and, crucially, explains a nuanced behavioral trait of the 'workspace' parameter: it is optional only when the user has a single workspace.

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 highly economical. The first sentence defines the 'what', and the second sentence defines the 'how' and the organizational context, both being necessary information delivered efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low parameter count and low schema coverage, the description provides comprehensive contextual completeness. It covers the resource, the data contained, and the specific logic for the primary scoping parameter.

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 0%, the description must carry the load. It excels by explaining the semantic constraint on the 'workspace' parameter (optionality based on count), which adds vital meaning beyond the simple string/null type defined in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool clearly states its purpose: retrieving LinkedIn campaign groups. It names the specific resource and scope ('Campaign Groups of the Ad Account') and provides immediate context regarding the hierarchy (CG -> Campaign -> Creative), successfully differentiating it from other listing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool provides strong contextual usage guidance by mapping its place in the advertising hierarchy. While it does not explicitly state, 'Do not use this for listing individual ads,' the hierarchical definition strongly implies the correct use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_list_campaignsLinkedIn Ads: List campaignsA
Read-only
Inspect

LinkedIn-Kampagnen des Ad-Accounts mit Einstellungen, Gebot, Auslieferungsstatus und Targeting. (Bei LinkedIn ist die Kampagne die Ebene mit Budget, Gebot und Zielgruppe — entspricht der Anzeigengruppe bei Google/Meta.) Rückgabe je Kampagne:

  • id, name, status (vom Nutzer gesetzt), type, format, objective, cost_type (CPC | CPM | CPV — Abrechnungsart), campaign_group_id, daily_budget, total_budget, currency, pacing, start_date/end_date (Laufzeit), audience_expansion, linkedin_audience_network (Auslieferung außerhalb von LinkedIn).

  • bid: strategy (manual | maximum_delivery | target_cost | cost_cap | unknown — unknown bei einem neuen, noch nicht zugeordneten LinkedIn-Wert, dann optimization_target lesen) mit strategy_label, optimization_target (LinkedIn-Wert, z. B. NONE, MAX_CLICK, TARGET_COST_PER_CLICK, CAP_COST_AND_MAXIMIZE_LEADS) und amount = Gebotsbetrag (manuell), Zielkosten bzw. Kostenobergrenze in currency. Bei maximum_delivery bietet LinkedIn selbst — amount ist dann null.

  • serving: delivering (true nur bei LinkedIn-Status RUNNABLE), statuses (Rohwerte) und reasons = verständliche Gründe, warum nicht ausgeliefert wird (z. B. Enddatum erreicht, Budget ausgeschöpft, Zielgruppe zu klein, Kampagnengruppe nicht aktiv, Konto gesperrt).

  • targeting (bei include_targeting=true): include = Liste von Gruppen, die UND-verknüpft sind; innerhalb einer Gruppe gilt ODER. Schlüssel u. a. job_functions, seniorities, industries, company_sizes, job_titles, skills, companies, locations, profile_languages, age_ranges, matched_audiences; Werte als {name, urn} mit deutschen Namen, best-effort (schlägt die Auflösung fehl, ist name = urn). exclude = Ausschlüsse in derselben Form. include_targeting: false spart die Namensauflösung, wenn nur Gebot/Status gebraucht wird. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
countNo
workspaceNo
include_targetingNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered; the description instead adds interpretive behavior that annotations cannot: 'delivering' is true only for LinkedIn status RUNNABLE, 'unknown' bid strategy means a new unmapped LinkedIn value (read optimization_target instead), and amount is null under maximum_delivery. It also flags that targeting name resolution is best-effort with urn fallback. Much of the block is return-shape documentation that the existing output schema already carries, which keeps it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and organized into scannable bullet groups, which is good structure. But the bulk is an exhaustive field-by-field description of the response that largely duplicates the output schema, making the definition long for what is a three-parameter read. Several return-field sentences do not earn their place against an existing output schema.

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 list tool with annotations and an output schema, an agent has nearly everything needed: hierarchy semantics, targeting AND/OR logic, bid-strategy caveats, and the include_targeting tradeoff. The missing piece is pagination/count behavior, which matters for a listing call but is the only substantive hole.

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 0%, so the description carries the full burden, and it explains two of three parameters well: include_targeting as a cost/benefit switch for name resolution, and workspace as an optional slug when only one workspace exists. The third parameter, count (default 50), is never mentioned and no pagination behavior is described — a meaningful gap for a list tool.

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?

States a concrete verb and resource ('LinkedIn-Kampagnen des Ad-Accounts') and enumerates the content dimensions returned (settings, bid, delivery status, targeting). The parenthetical mapping to Google/Meta ad-group level is a genuinely useful disambiguation of hierarchy. It does not, however, name the nearest LinkedIn siblings (linkedin_list_campaign_groups, linkedin_campaign_performance), so routing among those is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated — the agent must infer that this is the enumeration tool versus the performance-reporting or campaign-group tools. The one real guideline is parameter-scoped: 'include_targeting: false spart die Namensauflösung, wenn nur Gebot/Status gebraucht wird.' No when-not-to-use or alternative-tool routing is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_list_creativesLinkedIn Ads: List creativesB
Read-only
Inspect

LinkedIn-Creatives (Anzeigen) des Accounts bzw. einer Kampagne — Status, Serving-Zustand und referenzierter Post. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
countNo
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful context about what the listing exposes (status, serving state, referenced post) and that the workspace is optional with a single workspace, but says nothing about pagination/limits even though a count parameter defaults to 50.

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?

Two short lines, front-loaded with the core action and result fields, with the workspace note demoted to a secondary sentence. Slightly undermined by mixing German and English phrasing, but there is no wasted text.

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?

An output schema exists, so return values needn't be explained. However, for a 3-parameter listing tool with zero schema descriptions, the missing count/pagination and campaign_id semantics leave an agent guessing on filtering and result volume.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden. It explains only workspace ('Slug des Kunden-Workspace, optional bei nur einem Workspace'); campaign_id is merely implied by 'bzw. einer Kampagne' and count/paging is not addressed at all.

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?

States a specific verb and resource (list creatives) plus the scope (account-wide or per campaign) and even the fields surfaced (status, serving state, referenced post). It does not explicitly distinguish itself from the sibling linkedin_creative_performance, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scoping ('des Accounts bzw. einer Kampagne') implies when the tool is appropriate, but there is no explicit when-to-use/when-not guidance and no mention of the closest alternatives such as linkedin_creative_performance or linkedin_update_creative_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_list_lead_formsLinkedIn Ads: List lead formsA
Read-only
Inspect

Lead-Gen-Formulare des LinkedIn-Werbekontos: id, name, state (PUBLISHED/DRAFT/ ARCHIVED), review_status mit rejection_reasons, version und die Fragen (name, predefined_field, required). Die eingegangenen Leads selbst liefert dieses Tool nicht (braucht LinkedIns Lead-Sync-Freigabe); Anzahl abgeschickter Formulare: leads in linkedin_campaign_performance bzw. linkedin_performance_report. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
countNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds real behavioral context on top: the leads themselves are unavailable due to LinkedIn lead-sync permissioning, and the form objects carry review_status rejection reasons and version. That permission limitation is the kind of thing an agent can't infer from structured fields.

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 returned-field list is front-loaded and the caveat about missing leads follows immediately, so an agent gets the essentials in the first sentences. It is dense but every sentence carries information; only the parameter note at the end feels appended rather than integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't detail return values, and it still summarizes them helpfully, plus it covers the read-only nature and the permission gap. The one gap is `count`, which leaves limit/pagination semantics entirely unspecified for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load. It fully explains `workspace` (customer workspace slug, optional with a single workspace), but `count` (default 50) is never mentioned, so result-size/pagination behavior is undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (LinkedIn ad account lead-gen forms) and enumerates the returned fields: id, name, state, review_status with rejection_reasons, version, and questions. It also draws a firm boundary between this tool and lead data, naming linkedin_campaign_performance and linkedin_performance_report as the place for lead counts, which separates it from the sibling performance tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says what the tool will not give you (the leads themselves, which require LinkedIn lead-sync approval) and redirects to the two performance tools for submitted-lead counts. It also states the workspace parameter is optional when only one workspace exists. It stops short of a crisp 'use this when you need form metadata, not form submissions' framing, but the routing is effectively there.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_list_page_postsLinkedIn Ads: List page postsA
Read-only
Inspect

Veröffentlichte, öffentliche Posts der LinkedIn-Unternehmensseite, neueste zuerst — um den Post für eine Anzeige zu finden: post_urn an linkedin_create_ad_from_post übergeben. Je Post: post_urn, published_at, media_type (text, image, video, document, article, multi_image = Mehrbild-Post, poll, celebration, carousel = Anzeigen- Karussell, media = unbekannter Medientyp, other), sponsorable (false nur bei multi_image, poll und celebration — diese lassen sich laut LinkedIn nicht als Sponsored Content bewerben), dark_post (nur als Anzeige, nicht im Feed), text (Auszug ~200 Zeichen), url. organization_urn: ohne Angabe die mit dem Werbekonto verknüpfte Seite. count max. 100 (vor dem Filter). Braucht eine LinkedIn-Verbindung mit Seiten-Leserecht und eine Rolle auf der Seite; sonst error=missing_scope — dann im Portal LinkedIn einmal neu verbinden. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
countNo
workspaceNo
organization_urnNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds substantial context beyond that: public-only posts, newest-first ordering, max count applied before filtering, sponsorable/dark_post semantics, and the missing_scope error with reconnect guidance. No annotation contradiction.

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 purpose and next-step handoff are front-loaded, and most sentences carry useful operational detail. However, the media_type enumeration and per-post field list are lengthy, and an output schema exists, so some of that detail is verbose rather than essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, open-world listing tool with permission requirements, the description covers prerequisites, defaults, filtering limits, error handling, and the downstream workflow. Return-value details are also covered by the output schema, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates for all three parameters: count is capped at 100 before filtering, organization_urn defaults to the page linked to the ad account, and workspace is optional when only one workspace exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: published public posts of a LinkedIn company page, newest first. It also names the downstream sibling linkedin_create_ad_from_post and explains the post_urn handoff, so the agent can distinguish this listing tool from ad-creation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames the use case: find a post for an ad and pass post_urn to linkedin_create_ad_from_post. It also gives default organization behavior and permission prerequisites, but does not explicitly state when not to use it or name alternative listing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_performance_reportLinkedIn Ads: Performance reportA
Read-only
Inspect

LinkedIn-Performance für einen frei wählbaren Zeitraum, je Konto, Kampagnengruppe, Kampagne oder Creative — auch als Verlauf pro Tag/Monat. level: account | campaign_group | campaign | creative. date_from/date_to: YYYY-MM-DD (einschließlich); ohne Angabe die letzten days Tage bis heute (heute unvollständig). Tageswerte hält LinkedIn 6 Monate, Monatswerte länger — ältere Tagesanfragen werden auf Monatsgrenzen gerundet. granularity: ALL (eine Summe je Objekt), DAILY, MONTHLY, YEARLY. campaign_ids: optional auf diese Kampagnen einschränken (max. 20, müssen zum Werbekonto des Workspace gehören — sonst Fehler campaign_not_in_account). Rückgabe je Zeile: entity_urn, name (Kampagne/Gruppe, sonst leer), bei Verlauf date_start/date_end, impressions, clicks, cost, conversions, leads, lead_form_opens. Für Konto-Summen level=account nutzen statt Kampagnen aufzusummieren. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
levelNocampaign
date_toNo
date_fromNo
workspaceNo
granularityNoALL
campaign_idsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/openWorldHint annotations, the description discloses real behavioral traits: today's data is incomplete, daily values are retained only 6 months while monthly values persist longer, older daily requests are rounded to month boundaries, and an invalid campaign id raises campaign_not_in_account. That is exactly the kind of context annotations cannot carry.

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?

Purpose is front-loaded and the body is organized as labeled lines (level:, date_from/date_to:, granularity:, campaign_ids:, workspace:), so it scans well. It is dense and long for a single report tool, but nearly every clause carries operational information rather than filler.

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 7-parameter, zero-required reporting tool with an output schema, everything an agent needs is present: level selection, date defaulting, granularity, filtering limits, workspace resolution, retention caveats, and the per-row return fields. No gaps remain that would cause a mis-invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does so: level enum values, granularity values (ALL/DAILY/MONTHLY/YEARLY), date format and defaulting logic, the 20-item cap and account constraint on campaign_ids, and workspace being optional when only one exists. Even the `days` fallback is covered.

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 first sentence states a specific verb and resource (LinkedIn performance for a freely selectable period) and enumerates the four supported levels plus the optional time series. It never names the sibling reports (linkedin_campaign_performance, linkedin_creative_performance, linkedin_audience_breakdown), so the agent must infer that this is the generic multi-level variant rather than a specialized one.

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?

Concrete guidance is given: use level=account for account totals instead of summing campaigns, dates are inclusive, omitting dates falls back to the last `days` days, campaign_ids must belong to the workspace ad account. No explicit when-not or sibling alternative is mentioned, which keeps it out of 5 territory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_search_targetingLinkedIn Ads: Search targetingA
Read-only
Inspect

Targeting-Werte für LinkedIn finden — liefert {name, urn} für linkedin_update_campaign_targeting, linkedin_create_campaign (targeting) und linkedin_estimate_audience. category: job_functions, seniorities, industries, company_sizes, job_titles, skills, companies, locations, profile_languages, age_ranges, interests, member_traits, schools, degrees, fields_of_study, groups (oder LinkedIn-Facettenname). query: Suchtext (z. B. "Marketing Manager", "Salzburg"). Bei festen Kategorien (job_functions, seniorities, company_sizes, age_ranges, profile_languages) filtert query die vollständige Liste (Teilstring, Zahlen als ganze Zahl), ohne query kommt die ganze Liste; bei Jobtiteln, Firmen, Orten usw. immer mit query suchen. limit: max. Treffer (bis 100). Namen auf Deutsch. Rückgabe: {results: [{name, urn}], count, targeting_notice}; bei gekürzter Liste zusätzlich truncated=true und total (dann limit erhöhen). targeting_notice: LinkedIn-Pflichthinweis — dem Nutzer anzeigen, wenn er Targeting auswählt (wörtlich, mit Link). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
queryNo
categoryYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds substantial behavior beyond that: return shape, truncation behavior with truncated=true and total, the requirement to show targeting_notice to the user, German-language names, and workspace optionality when only one workspace exists. No annotation contradiction is present.

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 front-loaded with purpose and output, then organizes details by parameter. Despite covering many categories and behaviors, every section is relevant to correct invocation and there is no repeated or filler content.

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?

Although an output schema exists, the description still provides useful return and truncation context. It covers category selection, query behavior, limit semantics, workspace optionality, and the mandatory targeting notice, leaving no significant gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining all four parameters. It enumerates valid category values or facet names, explains query semantics per category, states limit max of 100, and explains workspace optionality.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: finding LinkedIn targeting values. It also identifies the concrete output ({name, urn}) and names the downstream tools that consume it, so an agent can distinguish it from linkedin_estimate_audience and campaign management siblings.

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?

Gives clear usage context by saying the results feed linkedin_update_campaign_targeting, linkedin_create_campaign targeting, and linkedin_estimate_audience. It also explains category-specific query behavior, including when to omit query for fixed categories and when query is required for job titles, companies, locations, etc. It does not explicitly state exclusions or alternatives among similar search tools, so it falls 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.

linkedin_update_campaign_bidLinkedIn Ads: Update campaign bidA
Destructive
Inspect

Gebotsstrategie und Gebotsbetrag einer LinkedIn-Kampagne ändern; liest danach zurück (before/after, verified). optimization_target bestimmt die Strategie (Werte laut LinkedIn):

  • Manuelles Gebot: NONE oder ENHANCED_CONVERSION (Gebot je nach Conversion-Chance angepasst). amount = Gebot je Klick (cost_type CPC) bzw. je 1.000 Impressionen (CPM); cost_type optional, sonst bleibt die bisherige Abrechnung.

  • Maximale Auslieferung (LinkedIn bietet selbst, amount wird ignoriert): MAX_CLICK, MAX_IMPRESSION, MAX_LEAD, MAX_QUALIFIED_LEAD, MAX_CONVERSION, MAX_VIDEO_VIEW, MAX_REACH — muss zum Ziel (objective) der Kampagne passen.

  • Zielkosten: TARGET_COST_PER_CLICK (CPC), TARGET_COST_PER_IMPRESSION (CPM), TARGET_COST_PER_VIDEO_VIEW (CPV); amount = angestrebte Durchschnittskosten.

  • Kostenobergrenze: CAP_COST_AND_MAXIMIZE_CLICKS/_IMPRESSIONS/_VIDEO_VIEWS/_LEADS (Abrechnung CPM); amount = Obergrenze je Ergebnis. amount: in Kontowährung; außer bei Maximaler Auslieferung Pflicht und > 0 (mit 0 liefert LinkedIn nicht aus). LinkedIn prüft, ob Strategie und Kampagnenziel zusammenpassen, und lehnt sonst ab. validate_only: True prüft lokal und liest die Kampagne, schreibt aber nicht. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
amountNo
cost_typeNo
workspaceNo
campaign_idYes
validate_onlyNo
optimization_targetYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructive/openWorld annotations: it discloses that the tool reads the campaign back before/after for verification, that validate_only performs only a local check without writing, that LinkedIn rejects mismatched strategy/objective pairs, and that amount=0 results in no delivery. For a destructive mutation these are exactly the operational facts an agent needs.

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?

Purpose and read-back behaviour are front-loaded, then parameters are grouped into scannable bullets grouped by strategy family. It is dense and long, but nearly every line carries operative information; only slight tightening of the strategy enumeration would be possible.

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 six-parameter destructive mutation with an output schema present, the description covers purpose, per-strategy parameter rules, server-side validation risk, dry-run path, and workspace scoping. Nothing an agent needs before invoking it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description must carry the full burden, and it does: optimization_target values are enumerated by category (manual, max delivery, target cost, cost cap), amount is defined per cost_type (CPC vs CPM vs CPV), cost_type is documented as optional with fallback to the existing billing mode, and validate_only/workspace are explained.

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 opening clause names a specific verb and resource ('Gebotsstrategie und Gebotsbetrag einer LinkedIn-Kampagne ändern') and adds the read-back/verify behaviour. Within a sibling set that contains separate budget, name, status, schedule and targeting updaters, 'Gebotsbetrag' unambiguously places this tool on bid configuration rather than budget.

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 gives explicit conditional guidance on which optimization_target applies to which campaign objective and when amount is required versus ignored, plus validate_only as a dry-run path. It does not name a competing sibling tool to route away from, so it stops 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.

linkedin_update_campaign_budgetLinkedIn Ads: Update campaign budgetA
Destructive
Inspect

Tagesbudget einer LinkedIn-Kampagne ändern. daily_budget: Betrag in Währungseinheiten (z. B. 75.0). currency: ISO-Code der Kontowährung (Default EUR; bei anderen Konten die Währung aus linkedin_list_accounts/linkedin_list_campaigns übergeben). validate_only: True prüft nur lokal, kein API-Aufruf. Nach dem Schreiben Budget mit linkedin_list_campaigns zurücklesen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
currencyNoEUR
workspaceNo
campaign_idYes
daily_budgetYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the agent knows this mutates live data. The description adds real context beyond that: validate_only performs a purely local check with no API call, and the budget should be re-read after writing to confirm the change landed. It does not mention permission requirements, budget limits, or that the write takes effect immediately, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four labeled lines, front-loaded with the action then the parameters, with no filler sentences. It is terse to the point of telegraphic, and the German text sits in an otherwise English tool environment, but the information density is high.

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?

An output schema exists, so return values need no explanation, and the annotations cover the safety profile. For a destructive five-parameter mutation tool the description covers dry-run behavior, currency sourcing, workspace optionality and post-write verification; only the origin of the required campaign_id is left unaddressed.

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 0%, so the description carries the full burden and mostly succeeds: daily_budget gets units and an example (75.0), currency gets an ISO-code format, default EUR, and a concrete source tool, workspace gets optionality semantics, and validate_only gets the no-API-call meaning. The required campaign_id is never explained and no source for it is named, which is the one meaningful gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line names a specific verb and resource ('Tagesbudget einer LinkedIn-Kampagne ändern') and scopes it to the daily budget, which distinguishes it implicitly from the bid-related sibling linkedin_update_campaign_bid. It does not explicitly name that sibling, so an agent must infer the split from the field name alone.

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?

It gives a useful workflow: check with validate_only first, then write, then read the budget back with linkedin_list_campaigns. It also tells the agent where to source the currency (linkedin_list_accounts/linkedin_list_campaigns). It never states when to use this versus linkedin_update_campaign_bid or linkedin_update_campaign_settings, so usage is implied rather than prescribed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_update_campaign_groupLinkedIn Ads: Update campaign groupB
Destructive
Inspect

LinkedIn-Kampagnengruppe ändern: Name und/oder Status (ACTIVE=starten, PAUSED, ARCHIVED, …). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
statusNo
workspaceNo
validate_onlyNo
campaign_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose destructiveHint=true and openWorldHint=true, so the safety bar is lower. The description adds some useful context by listing statuses such as ACTIVE, PAUSED, and ARCHIVED, but it does not explain the consequences of ARCHIVED or how validate_only behaves.

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 compact and front-loads the operation and updatable fields. The trailing ellipsis after ARCHIVED slightly weakens precision.

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 output schema exists, so return values need not be described. However, the description leaves out the dry-run validate_only parameter and does not clarify the destructive effect of archiving, which matters for a mutation tool annotated destructiveHint=true.

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 0%, so the description must compensate. It documents name, status values, and the workspace slug semantics, but omits two important parameters: validate_only and campaign_group_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact resource and operation: updating a LinkedIn campaign group's name and/or status. It is clearly distinct from linkedin_create_campaign_group and linkedin_list_campaign_groups, but it does not explicitly contrast itself with those 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?

The description explains which fields can be changed but gives no guidance on when to use this tool instead of creating a new group or updating related campaign entities. It also does not mention prerequisites, safety checks, 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.

linkedin_update_campaign_nameLinkedIn Ads: Update campaign nameA
Destructive
Inspect

LinkedIn-Kampagne umbenennen (max. 255 Byte) und zurücklesen (before/after/ verified). Kampagnengruppen: linkedin_update_campaign_group(name=…). validate_only: True liest die Kampagne und zeigt before/would_set, schreibt nicht. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and openWorldHint=true, so the description correctly does not need to argue that it writes. It adds real value beyond the annotations: the 255-byte limit, the before/after/verified read-back, and the key fact that validate_only=True only reads and shows 'would_set' without writing. What it omits is the blast radius of a rename given destructiveHint=true (e.g., whether history/reporting keys on the name).

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?

Four compact clauses, front-loaded with the core action and the byte limit, then the sibling pointer, then the two modifiers. Nothing is repeated from the schema and every sentence conveys a fact an agent would otherwise have to guess.

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 4-parameter mutation with an output schema, the description covers the action, the constraint, the dry-run mode, the workspace scoping, and the sibling alternative. An agent can invoke it correctly without opening anything else.

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 0%, so the description must carry the parameter burden, and it does: it explains the 255-byte constraint on 'name', the read-only semantics of 'validate_only', and the optionality rule for 'workspace'. Only campaign_id is left unexplained, but that is self-evident from the tool name.

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?

States a specific verb and resource ('LinkedIn-Kampagne umbenennen') plus the read-back contract, and explicitly routes campaign groups to linkedin_update_campaign_group. It never names the other linkedin_update_campaign_* siblings, but the resource noun is distinct enough that confusion is unlikely.

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 explains the validate_only dry-run path and when workspace can be omitted, which is useful operating guidance. However, it gives no explicit 'use this instead of that' rule against the other campaign update tools (bid/budget/schedule/status/targeting), so the trigger conditions are implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_update_campaign_scheduleLinkedIn Ads: Update campaign scheduleA
Destructive
Inspect

Laufzeit einer LinkedIn-Kampagne ändern und zurücklesen (before/after/verified). start_date: erster Lauftag, end_date: letzter Lauftag einschließlich ('YYYY-MM-DD', UTC-Tage wie im Campaign Manager: Start 00:00 UTC, Ende 23:59:59 UTC); remove_end=True macht die Kampagne unbefristet. Nicht angegebene Werte bleiben; derselbe Starttag wie bisher gilt als unverändert. Ein neuer Start in der Vergangenheit → error=start_in_past. Ein Start in der Zukunft heißt: bis dahin keine Auslieferung (note). LinkedIn erlaubt keinen neuen Start, wenn der bisherige schon vorbei ist (error=start_immutable) — außer bei Entwürfen (DRAFT); das Ende lässt sich immer ändern. Laufzeit beim Anlegen: start_date/end_date in linkedin_create_campaign. validate_only: True liest die Kampagne und zeigt before/would_set, schreibt nicht. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
end_dateNo
workspaceNo
remove_endNo
start_dateNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description goes substantially beyond them: it documents the before/would_set/verified readback, the dry-run mode via validate_only, the exact error codes and the DRAFT exception, timezone semantics (00:00 UTC start, 23:59:59 UTC end), and that unset fields are preserved.

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?

Purpose is front-loaded in the first clause and nearly every sentence carries operational detail. It is dense and semicolon-heavy rather than bulleted, which makes it harder to scan for an agent parsing parameters, but nothing is wasted.

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?

An output schema exists, so return values need not be explained, and the description still notes the before/after/verified shape. For a destructive mutation with 6 parameters it covers edge cases, dry-run behavior, timezone and field-preservation rules — nothing an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden — and it does. It defines start_date (first active day), end_date (last active day, inclusive, 'YYYY-MM-DD' UTC), remove_end (unbounded runtime), validate_only (read-only preview) and workspace (optional when a single workspace exists), adding format and behavior the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: change the runtime/schedule of a LinkedIn campaign and read it back (before/after/verified). It also distinguishes itself from linkedin_create_campaign, which sets the runtime at creation time, so the agent can tell the two apart without opening the schemas.

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?

Gives concrete conditions: remove_end=True makes the campaign run indefinitely, validate_only=True previews without writing, and linkedin_create_campaign is the path for setting runtime at creation. It also flags when-not cases — a new start in the past errors (start_in_past) and a new start after the previous one has passed is rejected (start_immutable) unless the campaign is DRAFT.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_update_campaign_statusLinkedIn Ads: Update campaign statusA
Destructive
Inspect

Status einer LinkedIn-Kampagne ändern: ACTIVE/PAUSED/ARCHIVED/COMPLETED/CANCELED/DRAFT. validate_only: True prüft nur die Parameter lokal (kein API-Aufruf; Existenz der Kampagne und Zulässigkeit des Wechsels werden nicht geprüft). success heißt nur, dass die API angenommen hat — Status danach mit linkedin_list_campaigns zurücklesen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusYes
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already flag mutation and destructiveness), the description discloses what validate_only does NOT check, what 'success' actually guarantees (API acceptance, not valid transition), and recommends a read-back verification. These are exactly the behavioral caveats an agent needs before firing a destructive status change.

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?

Front-loads the action and allowed values, then layers the caveats in order of importance (validate_only, success semantics, workspace). Every sentence carries operational value with no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained; the description covers the non-obvious inputs and the failure/success semantics well. It could additionally note permission requirements or consequences of ARCHIVED/CANCELED, but nothing essential for calling it correctly is missing.

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 0%, so the description carries the load: it supplies the full status enum (absent from the schema), explains validate_only, and clarifies workspace's optionality. Only campaign_id is left implicit as the obvious identifier, keeping it just short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Status einer LinkedIn-Kampagne ändern') and enumerates the exact allowed status values, which immediately separates it from sibling update tools such as linkedin_update_campaign_bid or linkedin_update_campaign_name. There is no ambiguity about what the tool mutates.

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?

Gives clear conditional guidance for validate_only (local dry-run, no API call) and for workspace (optional when only one workspace exists), plus a follow-up instruction to re-read via linkedin_list_campaigns. It stops short of stating when to prefer a different status-transition tool or listing permission prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_update_campaign_targetingLinkedIn Ads: Update campaign targetingA
Destructive
Inspect

Targeting einer LinkedIn-Kampagne ERSETZEN (vollständig, nicht ergänzen) und zurücklesen (before/after, verified). Vorgehen: aktuelles Targeting mit linkedin_list_campaigns lesen, ändern, komplett übergeben — was fehlt, wird entfernt. include: Liste von Gruppen, UND-verknüpft; innerhalb einer Gruppe ODER. Gleiche Form wie targeting.include aus linkedin_list_campaigns — Werte als URN-Strings oder direkt die {name, urn}-Objekte. Pflicht ist eine Gruppe mit locations. Beispiel: [{"locations": ["urn:li:geo:103883259"]}, {"profile_languages": ["urn:li:locale:de_DE"]}, {"job_functions": ["urn:li:function:13"]}, {"seniorities": ["urn:li:seniority:5", "urn:li:seniority:6"]}, {"company_sizes": ["urn:li:staffCountRange:(11,50)"]}] Jobtitel (job_titles) lassen sich laut LinkedIn nicht mit job_functions oder seniorities kombinieren (error=incompatible_targeting) — entweder Titel oder Funktion/Seniorität. exclude: Ausschlüsse (ODER), z. B. {"companies": ["urn:li:organization:1337"]}; None entfernt bestehende Ausschlüsse. URNs über linkedin_search_targeting finden. Größe vorab mit linkedin_estimate_audience prüfen (unter 300 Mitgliedern liefert LinkedIn nicht aus). validate_only: True prüft lokal und liest die Kampagne, schreibt aber nicht. Rückgabe enthält targeting_notice (LinkedIn-Pflicht): dem Nutzer beim Ändern des Targetings wörtlich mit Link anzeigen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
excludeNo
includeYes
workspaceNo
campaign_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (destructiveHint=true, readOnlyHint=false, openWorldHint=true): it spells out that omitted fields are deleted, that results are read back verified with before/after, that validate_only reads but never writes, that audiences under 300 members don't deliver, and that the returned targeting_notice must be shown verbatim with its link.

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?

Front-loaded with the destructive 'ERSETZEN' constraint and organized into labelled sections (include, exclude, URNs, validate_only, return). It is long and dense, but nearly every clause carries decision-relevant information; only the example list is verbose relative to the rest.

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 destructive, open-world mutation with five loosely-typed parameters and no schema descriptions, the definition covers the replacement semantics, validation path, URN discovery, error cases and the mandatory notice—everything an agent needs to invoke it correctly. Return values are covered by the existing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description carries the full burden and delivers: include is AND across groups and OR within a group, a locations group is mandatory, values may be URN strings or {name, urn} objects, a concrete example is given, and exclude None clears existing exclusions. validate_only and workspace are also explained.

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 very first clause states a specific verb and resource ('Targeting einer LinkedIn-Kampagne ERSETZEN') and immediately disambiguates the semantics as full replacement, not merge ('vollständig, nicht ergänzen'). It also distinguishes itself from read/estimate siblings by naming linkedin_list_campaigns, linkedin_search_targeting and linkedin_estimate_audience.

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?

Gives an explicit procedure (read current targeting with linkedin_list_campaigns, modify, pass complete), names the prerequisite lookup tools for URNs and size checking, and states a hard exclusion rule (job_titles vs job_functions/seniorities → incompatible_targeting). It also explains when to use validate_only instead of a real write.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_update_creative_statusLinkedIn Ads: Update creative statusB
Destructive
Inspect

Status eines LinkedIn-Creatives ändern (ACTIVE/PAUSED/DRAFT/ARCHIVED). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusYes
workspaceNo
creative_idYes
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, and the description's mutating verb 'ändern' is consistent with that. It adds the valuable status enum that the schema lacks (0% coverage), but omits behavioral context like the effect of archiving, whether transitions are validated, or what validate_only does. No annotation contradiction.

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?

Two sentences, front-loaded with the core action and status values before the workspace note. No wasted wording, though it could stand to spend a sentence on the unexplained required and validate_only parameters.

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 destructive, open-world mutation with an output schema (so returns need no explanation), the description covers the status values and workspace semantics adequately. But it leaves validate_only and creative_id unaddressed and offers no risk or validation guidance for a destructive 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?

Schema coverage is 0%, so the description carries the burden; it does explain the allowed status values and clarifies that workspace is a customer-workspace slug that is optional with a single workspace. However, creative_id and especially validate_only are left completely unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (change/ändern) and resource (a LinkedIn creative's status) and enumerates the target values ACTIVE/PAUSED/DRAFT/ARCHIVED. It clearly distinguishes itself from linkedin_update_campaign_status by operating on creatives rather than campaigns, though it does not name a sibling explicitly.

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 includes one usage hint - workspace is optional when there is only one workspace - which is genuinely useful scoping. But it gives no guidance on when to use this versus linkedin_list_creatives or the campaign-status siblings, nor any when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_workspacesList workspacesA
Read-only
Inspect

Alle Workspaces, auf die Ihr Zugang Zugriff hat — inkl. Agentur, Schreibzugriff und konfigurierten Datenquellen. Bei gleichem Slug in mehreren Agenturen die Form 'Agentur/slug' als workspace-Parameter nutzen.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

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 openWorldHint=false, so the safety profile is covered. The description adds non-obvious behavior: results are permission-scoped to the caller's access and include agency membership and write-access state, which the agent cannot infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, scope stated first and the disambiguation rule second. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter read-only list tool with an output schema and annotations, this is nearly complete. Minor gaps: no mention of pagination or result ordering, and the German text sits in an otherwise English tool surface, which is a mild consistency risk for downstream agents.

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?

Zero parameters, so the baseline is 4. The description still contributes by documenting the 'Agency/slug' identifier format that the returned workspace values must use downstream.

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?

Specific verb+resource with clear scope: all workspaces the caller's access can reach, enumerating the included attributes (agency, write access, configured data sources). It does not explicitly distinguish itself from the sibling gtm_list_workspaces, so an agent could still hesitate between the two 'list workspaces' 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 second sentence gives a real usage rule, but it is about how to pass the returned value to other tools ('Agentur/slug' when slugs collide across agencies), not about when to call this tool versus alternatives. No explicit 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.

meta_account_statusMeta Ads: Account statusA
Read-only
Inspect

Zustand des Meta-Werbekontos: Status, Sperrgrund, Ausgabenlimit, verbrauchtes Budget, Guthaben und hinterlegtes Zahlungsmittel. Der schnellste Weg, ein erreichtes Konto-Ausgabenlimit oder ein fehlendes Zahlungsmittel als Ursache für ausbleibende Auslieferung auszuschließen. Liefert bei Auffälligkeiten ein warnings-Feld im Klartext. Dazu timezone_name / timezone_offset_hours_utc (Zeitzone des Kontos — Zeitstempel ohne Offset in meta_create_adset/meta_update_adset gelten in dieser Zeitzone) und min_daily_budget_eur (Basis-Minimum des Kontos laut Meta; das tatsächliche Minimum je Adset hängt vom Optimierungsziel ab — für Klick-, Conversion- oder Video-optimierte Adsets liegt es höher, nur Impressions-optimierte kommen mit dem Basiswert aus; lehnt Meta ein Budget ab, kommt der Fehler durch). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint/openWorldHint, the description discloses that a plaintext warnings field appears when something is off, that the returned timezone governs how naive timestamps in meta_create_adset/meta_update_adset are interpreted, and that Meta rejects budgets below higher per-objective minimums (error surfaces at creation). That is meaningful behavioral context the annotations do not carry.

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?

Front-loaded with the returned status fields, then the diagnostic use case, then the ancillary timezone and minimum-budget notes. Dense but every clause is actionable; the minimum-budget passage is the longest and slightly drifting into guidance for the adset tools.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not enumerate return values, yet it still flags the warnings field and the timezone/budget semantics an agent must know to act on the result. Purpose, trigger, parameter, and downstream implications are all covered.

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 0%, so the description must compensate, and it does: the single workspace parameter is explained as the customer workspace slug and explicitly marked optional when only one workspace exists. Full coverage of the only parameter, though no format examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (Meta ad account) and enumerates exactly which state fields are returned: status, block reason, spend limit, consumed budget, credit balance, and payment method. This clearly separates it from listing siblings like meta_list_ad_accounts or performance tools like meta_campaign_performance.

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 a concrete use case: the fastest way to rule out a reached account spend limit or a missing payment method as the cause of stalled delivery. It also explains the pre-flight role of min_daily_budget_eur before setting budgets via meta_create_adset/meta_update_adset. It lacks an explicit 'not for X' exclusion, so a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ad_performanceMeta Ads: Ad performanceA
Read-only
Inspect

Meta-Ad-Performance einzelner Anzeigen der letzten N Tage, nach Spend. Je Zeile campaign_id/campaign, adset_id/adset und ad_id/ad — die IDs sind der Schlüssel für meta_update_ad_status und ad_id-Vergleiche. Zeitraum: heute minus N Tage bis heute EINSCHLIESSLICH (N+1 Kalendertage; heute unvollständig). Für Vergleiche mit Google-Ads-Zahlen (schließen heute aus) daily=True nutzen und den heutigen Tag herausrechnen. since / until: fester Zeitraum 'YYYY-MM-DD', beide zusammen und einschließlich (error=date_range_incomplete/date_range_invalid); Vorrang vor date_preset und days. date_preset: relativer Zeitraum nach Metas Kalender (today, yesterday, this_month, last_month, this_quarter, last_quarter, this_year, last_year, last_3d/7d/14d/28d/30d/90d, last_week_mon_sun, last_week_sun_sat, this_week_mon_today, this_week_sun_today, maximum, data_maximum; error=invalid_date_preset sonst); Vorrang vor days. Jede Zeile trägt date_start/date_stop (tatsächlich summierte Spanne; bei daily date). Zahlen folgen der Attributionseinstellung der Adsets (unified attribution, wie im Ads Manager). Kontosummen: meta_campaign_performance totals_only=True statt Zeilen zu addieren. Bei leeren Insights trotz vorhandener Kampagnen kommt stattdessen ein Dict mit result=[], time_range bzw. date_preset und info-Erklärung zurück. breakdown: Aufschlüsselung statt Summenzeile — 'publisher_platform' (Facebook vs. Instagram vs. Audience Network), 'platform_position', 'device_platform', 'age', 'gender', 'country', 'region'. daily: True liefert eine Zeitreihe je Tag. Ein kürzeres Zeitfenster ersetzt das NICHT — es summiert nur weniger Tage zu einer Zeile. ad_id / adset_id / campaign_id: schränkt ein; die feinere Angabe gewinnt (ad_id vor adset_id vor campaign_id). ad_id ist der direkte Weg, um zwei einzelne Anzeigen zu vergleichen. Ohne Angabe kommen ALLE Anzeigen des Kontos — kontoweite Zahlen dürfen nicht als Kampagnenzahlen gelesen werden. Eine uebergebene Kampagnen-/Adset-/Ad-ID muss zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace). Enthält link_clicks, landing_page_views, landing_page_rate_pct, reach, frequency, cpm, cpc, cost_per_link_click. Dazu je Anzeige quality_ranking, engagement_rate_ranking und conversion_rate_ranking. UNKNOWN heißt: zu wenig Volumen für eine Einstufung, nicht 'schlecht'. conversions zählt AUSSCHLIESSLICH Käufe und Leads. Eigene Custom Conversions stehen getrennt in custom_conversions, und actions führt alle Ereignistypen mit Zahlen auf — conversions=0 heißt deshalb nicht "konvertiert nicht", sondern ist an actions gegenzuprüfen. Obergrenze rund 2.000 Zeilen. Wird sie erreicht, kommt statt der Liste ein Objekt mit result und warning zurück; die Sortierung gilt dann nur für den Ausschnitt.

NameRequiredDescriptionDefault
daysNo
ad_idNo
dailyNo
sinceNo
untilNo
adset_idNo
breakdownNo
workspaceNo
campaign_idNo
date_presetNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover readOnlyHint/openWorldHint; the description goes far beyond them with error codes (date_range_incomplete, date_range_invalid, invalid_date_preset, foreign_object), the ~2,000-row cap and the warning object returned instead of a list, and the empty-insights dict with result=[] and an info explanation. It also discloses attribution settings, the UNKNOWN ranking meaning, and the conversions vs actions vs custom_conversions caveat.

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?

Purpose, sort order and ID-key framing are front-loaded, and nearly every line carries operative information. The block is dense and long with irregular indentation, and a few points (e.g. ad_id as the direct way to compare ads) are restated, costing some readability without adding meaning.

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 10-parameter analytics tool with a 0%-covered schema, the description covers time-window semantics, filtering, breakdowns, ownership constraints and the shape of degraded responses. An output schema exists, yet the metric list and ranking caveats are still explained, which is more than enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does so for all ten parameters: since/until format and inclusive pairing, the complete date_preset value list, the allowed breakdown values, daily semantics, and the ad_id > adset_id > campaign_id precedence with the note that omitting them returns all account ads. This is exactly the compensation the 0% coverage requires.

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 opening line names a specific verb, resource and scope: per-ad Meta performance for the last N days, sorted by spend. It distinguishes itself from account-level aggregation by pointing to meta_campaign_performance totals_only=True, and it flags the IDs as the key for meta_update_ad_status. It never explicitly contrasts itself with meta_adset_performance, so the ad-vs-adset boundary is left implicit.

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?

Explicit routing is given for the main alternatives: campaign totals go to meta_campaign_performance, comparing two individual ads goes through ad_id, and daily=True plus removing today is prescribed when comparing against Google Ads numbers. Precedence rules (since/until > date_preset > days) and the warning that account-wide figures must not be read as campaign figures remove nearly all inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ad_previewMeta Ads: Ad previewA
Read-only
Inspect

Vorschau einer Meta-Anzeige so, wie sie in den Platzierungen erscheint — zum Prüfen vor dem Start oder um sie einem Kunden zur Freigabe zu zeigen. Je Format kommt previews[].preview_url (Metas Vorschauseite für genau diese Platzierung; die Links laufen nach einiger Zeit ab, dann neu abrufen). Die Links öffnen ohne Facebook-Login und ohne Zugriff aufs Werbekonto (anders als preview_link aus meta_list_ads) — sie eignen sich also zum Weitergeben an Kunden oder Kolleginnen zur Freigabe; Video-Anzeigen spielen dort komplett mit Ton. Dazu die Creative-Inhalte (Text, Titel, CTA, Ziel-URL, UTM) und — soweit Meta eines liefert — das Vorschaubild (Titelbild des Videos bzw. Anzeigenbild) als Bild, damit du Motiv, eingeblendeten Text und Ausschnitt selbst prüfen kannst. Bei Video-Anzeigen kommt zusätzlich ein Storyboard: frames Bilder in gleichen Abständen aus dem Video geschnitten, in zeitlicher Reihenfolge, mit Zeitpunkt (storyboard_times_s, storyboard_source="video") — damit prüfst du Szenen, eingeblendete Texte und Safe Zones über die ganze Länge. Ton ist nicht enthalten; video_url ist ein direkter, zeitlich begrenzter Link aufs MP4. Findet das Tool keine Video-Datei (weder über Meta noch in der Vorschauseite), gibt es stattdessen Metas eigene Standbilder (storyboard_source="meta_thumbnails": nicht gleichmäßig verteilt, nicht chronologisch, können sich wiederholen). Ist die Datei gefunden, lässt sich aber nicht laden oder lesen, fehlt das Storyboard; storyboard_error nennt dann den Grund. images nennt die Reihenfolge der mitgelieferten Bilder (thumbnail, storyboard_1@0.3s, …). Bei Metas Standbildern bleibt die Nummer eines nicht ladbaren Bilds als Lücke sichtbar; beim Video-Storyboard werden die gelieferten Bilder fortlaufend gezählt, maßgeblich ist der Zeitpunkt im Namen (@…s), und storyboard_times_s listet genau die gelieferten Zeitpunkte. ad_id: aus meta_list_ads; muss zum Werbekonto des Workspace gehören, sonst {'error': 'foreign_object'}. formats: Metas ad_format-Namen, 1–8 (Default INSTAGRAM_REELS, INSTAGRAM_STORY, FACEBOOK_REELS_MOBILE, MOBILE_FEED_STANDARD). Weitere z. B. INSTAGRAM_STANDARD (Instagram-Feed), FACEBOOK_STORY_MOBILE, DESKTOP_FEED_STANDARD. Kennt Meta ein Format nicht, steht der Fehler beim jeweiligen Eintrag; die übrigen Vorschauen kommen trotzdem. frames: Anzahl Storyboard-Bilder bei Videos, 0–10 (Default 6; 0 = nur das Titelbild, spart Kontext und lädt das Video nicht). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
ad_idYes
framesNo
formatsNo
workspaceNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, but the description adds substantial behavior: preview URLs expire, open without Facebook login or ad-account access, video previews include sound, and video ads get storyboard frames. It also discloses fallback behavior when no video is found, partial failures for unsupported formats, and the foreign_object error for ad_id mismatches.

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 long, but it is front-loaded with purpose and then explains output and parameters for a complex tool with no output schema. Every section adds useful information, and the parameter notes are grouped clearly at the end rather than scattered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, 0% schema description coverage, and a complex preview/storyboard response, the description is highly complete. It explains returned preview URLs, images, storyboard behavior, error cases, and all input parameters, leaving little ambiguity for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter semantics. It documents all four parameters: ad_id source and workspace constraint, formats range/default/examples and per-entry error behavior, frames range/default and the special meaning of 0, and optional workspace slug.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: previewing a Meta ad as it appears in placements. It also distinguishes this from meta_list_ads by explaining that its preview links differ from preview_link and are suitable for sharing. An agent can identify the tool's purpose without opening the schema.

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?

Gives clear usage contexts: checking before launch or showing a client for approval. It explicitly names the related alternative, preview_link from meta_list_ads, and explains why this tool is preferable for sharing. It does not state explicit when-not-to-use conditions, so it is strong but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_adset_performanceMeta Ads: Adset performanceA
Read-only
Inspect

Meta-Adset-Performance (Impressionen, Klicks, Spend, Conversions) der letzten N Tage, sortiert nach Spend. Je Zeile campaign_id/campaign und adset_id/adset — die IDs sind der Schlüssel für meta_update_adset. Zeitraum: heute minus N Tage bis heute EINSCHLIESSLICH (N+1 Kalendertage; heute unvollständig). Für Vergleiche mit Google-Ads-Zahlen (schließen heute aus) daily=True nutzen und den heutigen Tag herausrechnen. since / until: fester Zeitraum 'YYYY-MM-DD', beide zusammen und einschließlich (error=date_range_incomplete/date_range_invalid); Vorrang vor date_preset und days. date_preset: relativer Zeitraum nach Metas Kalender (today, yesterday, this_month, last_month, this_quarter, last_quarter, this_year, last_year, last_3d/7d/14d/28d/30d/90d, last_week_mon_sun, last_week_sun_sat, this_week_mon_today, this_week_sun_today, maximum, data_maximum; error=invalid_date_preset sonst); Vorrang vor days. Jede Zeile trägt date_start/date_stop (tatsächlich summierte Spanne; bei daily date). Zahlen folgen der Attributionseinstellung der Adsets (unified attribution, wie im Ads Manager). Kontosummen: meta_campaign_performance totals_only=True statt Zeilen zu addieren. Bei leeren Insights trotz vorhandener Kampagnen kommt stattdessen ein Dict mit result=[], time_range bzw. date_preset und info-Erklärung zurück. breakdown: Aufschlüsselung statt Summenzeile — 'publisher_platform' (Facebook vs. Instagram vs. Audience Network), 'platform_position', 'device_platform', 'age', 'gender', 'country', 'region'. daily: True liefert eine Zeitreihe je Tag. Ein kürzeres Zeitfenster ersetzt das NICHT — es summiert nur weniger Tage zu einer Zeile. campaign_id: nur die Adsets DIESER Kampagne. Ohne Angabe kommen ALLE Adsets des Kontos — kontoweite Zahlen dürfen nicht als Kampagnenzahlen gelesen werden. Eine uebergebene Kampagnen-/Adset-/Ad-ID muss zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace). Enthält link_clicks, landing_page_views, landing_page_rate_pct, reach, frequency, cpm, cpc, cost_per_link_click. conversions zählt AUSSCHLIESSLICH Käufe und Leads. Eigene Custom Conversions stehen getrennt in custom_conversions, und actions führt alle Ereignistypen mit Zahlen auf — conversions=0 heißt deshalb nicht "konvertiert nicht", sondern ist an actions gegenzuprüfen. Obergrenze rund 2.000 Zeilen. Wird sie erreicht, kommt statt der Liste ein Objekt mit result und warning zurück; die Sortierung gilt dann nur für den Ausschnitt.

NameRequiredDescriptionDefault
daysNo
dailyNo
sinceNo
untilNo
breakdownNo
workspaceNo
campaign_idNo
date_presetNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint; the description adds substantial context: inclusive date range semantics, today's incompleteness, attribution settings, empty-result dict shape, breakdown options, daily series behavior, conversions vs. actions caveat, and the ~2000-row cap with warning object.

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 content is front-loaded and every major point earns its place, but the description is very dense and has some repetitive date-range explanations. It is appropriately sized for the tool's complexity, though formatting could be tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex date logic, breakdown options, error handling, and conversions caveat, the description is complete enough for correct invocation. Return values are largely covered by the output schema, but the description still explains key response shapes and edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully documents all 8 parameters: days, daily, since/until formats and precedence, date_preset enumerated values and error, breakdown allowed values, campaign_id scope, and workspace slug.

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?

States a specific verb and resource: adset performance metrics (impressions, clicks, spend, conversions) for the last N days, sorted by spend. It also distinguishes scope from meta_campaign_performance by noting totals_only=True for account sums, though it does not explicitly contrast with meta_ad_performance.

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 explains when to use daily=True for Google Ads comparisons, precedence between since/until, date_preset, and days, and the effect of campaign_id filtering. It names the alternative for account totals and documents the foreign_object error condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_archive_lead_formMeta Ads: Archive lead formA
Destructive
Inspect

Lead-Formular archivieren — die einzige Änderung, die Meta an einem veröffentlichten Instant Form erlaubt (Korrektur = archivieren + neu anlegen). Anzeigen, die das Formular nutzen, vorher pausieren oder umstellen. Löschen ist bei Meta nicht möglich. Rückgabe zurückgelesen: {success, form_id, name, status: 'ARCHIVED'}; sonst error=archive_not_confirmed. Das Formular muss zur gewählten Page des Werbekontos gehören, sonst error=foreign_object (nichts geändert). form_id: aus meta_list_lead_forms. page_id: wie bei meta_list_lead_forms. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
form_idYes
page_idNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint=true annotation, the description explains the destructive-adjacent behavior in detail: archiving is irreversible in the sense that deletion is impossible, ads using the form should be paused or switched first, and a foreign-object guard prevents unintended changes. It also documents the return shape and the archive_not_confirmed error path.

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 front-loaded with the core operation and its main constraint, then moves through prerequisites, error behavior, and parameter sourcing without filler. Every line contributes operational information needed to call the tool safely.

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 destructive mutation with a simple three-parameter schema, the description covers the operation, prerequisites, side effects, error handling, return confirmation, and parameter origins. Although an output schema exists, the explicit return summary is helpful rather than redundant, and no critical calling information is missing.

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 0%, so the description carries the burden. It usefully explains that form_id comes from meta_list_lead_forms, that workspace is an optional customer-workspace slug when only one exists, and references page_id as behaving like meta_list_lead_forms. The page_id explanation is less precise than ideal, but all three parameters receive meaningful context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Lead-Formular archivieren') and immediately clarifies the unique Meta constraint: archiving is the only permitted change to a published Instant Form, with correction requiring archive + recreate. This distinguishes it clearly from sibling tools such as meta_create_lead_form and meta_list_lead_forms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit operational guidance: pause or repoint ads using the form beforehand, notes that deletion is impossible, and states the prerequisite that the form must belong to the selected ad account page or else foreign_object is returned. It also points to meta_list_lead_forms for obtaining form_id and explains workspace optionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_campaign_performanceMeta Ads: Campaign performanceA
Read-only
Inspect

Meta-Ads-Kampagnen-Performance der letzten N Tage (je Zeile campaign_id + campaign — die ID ist der Schlüssel für meta_update_campaign & Co.). Zeitraum: heute minus N Tage bis heute EINSCHLIESSLICH (N+1 Kalendertage; heute unvollständig). Für Vergleiche mit Google-Ads-Zahlen (schließen heute aus) daily=True nutzen und den heutigen Tag herausrechnen. since / until: fester Zeitraum als 'YYYY-MM-DD', beide zusammen und einschließlich (sonst error=date_range_incomplete; until vor since error=date_range_invalid); hat Vorrang vor date_preset und days. date_preset: relativer Zeitraum nach Metas Kalender — today, yesterday, this_month, last_month, this_quarter, last_quarter, this_year, last_year, last_3d/7d/14d/28d/30d/90d, last_week_mon_sun, last_week_sun_sat, this_week_mon_today, this_week_sun_today, maximum, data_maximum (error=invalid_date_preset sonst); hat Vorrang vor days. Jede Zeile trägt date_start/date_stop — die tatsächlich summierte Spanne, wie Meta sie meldet (bei daily stattdessen date je Tag). totals_only: True liefert Gesamtzahlen des Kontos als EINE Zeile (ohne campaign/campaign_id) — für Kontosummen diesen Weg nehmen und nicht Zeilen selbst addieren: bei breakdown überschneiden sich reach-Werte. Mit breakdown/daily kombinierbar; nicht mit campaign_id (error=totals_only_with_campaign — eine Kampagne liefert mit campaign_id ohnehin genau eine Zeile). Zahlen folgen der Attributionseinstellung der Adsets (unified attribution, wie im Ads Manager) — nicht Metas API-Default. Liefert neben Impressionen/Spend/Conversions auch link_clicks (echte Link-Klicks — clicks zählt Likes und Profilaufrufe mit), landing_page_views und landing_page_rate_pct (wie viele Klicks die Seite erreichen), reach, frequency, cpm, cpc und cost_per_link_click. Bei leeren Insights trotz vorhandener Kampagnen kommt stattdessen ein Dict mit result=[], time_range bzw. date_preset und info-Erklärung zurück. breakdown: Aufschlüsselung statt Summenzeile — 'publisher_platform' (Facebook vs. Instagram vs. Audience Network), 'platform_position', 'device_platform', 'age', 'gender', 'country', 'region'. daily: True liefert eine Zeitreihe je Tag. Ein kürzeres Zeitfenster ersetzt das NICHT — es summiert nur weniger Tage zu einer Zeile. campaign_id: nur diese Kampagne. Ohne Angabe ALLE Kampagnen des Kontos. Eine uebergebene Kampagnen-/Adset-/Ad-ID muss zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace). conversions zählt AUSSCHLIESSLICH Käufe und Leads. Eigene Custom Conversions stehen getrennt in custom_conversions, und actions führt alle Ereignistypen mit Zahlen auf — conversions=0 heißt deshalb nicht "konvertiert nicht", sondern ist an actions gegenzuprüfen. Obergrenze rund 2.000 Zeilen. Wird sie erreicht, kommt statt der Liste ein Objekt mit result und warning zurück; die Sortierung gilt dann nur für den Ausschnitt.

NameRequiredDescriptionDefault
daysNo
dailyNo
sinceNo
untilNo
breakdownNo
workspaceNo
campaign_idNo
date_presetNo
totals_onlyNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without repeating the basic annotations, it discloses the attribution setting used (adset unified attribution, not the API default), the failure modes (foreign_object, date_range_incomplete, date_range_invalid, invalid_date_preset, totals_only_with_campaign), the ~2,000-row cap with a warning object, and the empty-insights response shape. It also warns that conversions=0 does not mean no conversions and must be checked against actions.

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 front-loaded with the return grain and the date-window semantics, and each parameter paragraph delivers real information. It is long, around 350 words, and some metric explanations in the middle, such as link_clicks versus clicks, go beyond the key ideas, but they are informative rather than wasteful.

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 9-parameter, read-only reporting tool with an output schema, it covers everything an agent needs: time-window precedence and error handling, breakdown and daily semantics, the row cap, empty results, ID ownership across accounts, and the caveat that conversions exclude custom conversions. No relevant behavior is left undisclosed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it does: it documents the precedence order of since/until > date_preset > days, lists every valid date_preset value, enumerates breakdown options, and explains the semantics of daily, campaign_id, workspace, and totals_only including their interactions.

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 resource (Meta Ads campaign performance) and the row grain (campaign_id + campaign, which is the key for meta_update_campaign). It does not, however, explicitly differentiate itself from the sibling tools meta_ad_performance and meta_adset_performance that offer other granularities.

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 gives explicit guidance on when to use daily=True (comparing against Google Ads, which excludes today) and when to use totals_only rather than summing rows (breakdown reach overlaps). It also states incompatibilities (totals_only + campaign_id). It does not redirect to the ad/adset performance siblings for other grains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_create_adMeta Ads: Create adAInspect

Neue Meta-Ad anlegen (Bild ODER Video; Website- oder Lead-Anzeige) — Creative + Ad in einem Schritt, Default PAUSED (Aktivierung via meta_update_ad_status).

page_id aus meta_list_pages; message = Text über dem Medium, headline/ description = darunter. link: Zielseite — Pflicht, außer bei Lead-Anzeigen (error=link_required). Bild-Ad: image_hash (meta_upload_ad_image) oder direkt image_url. Video-Ad: video_id (meta_upload_ad_video, Status 'ready'; nur Ziffern, sonst invalid_id); image_url/ image_hash dient dann als Thumbnail (sonst Auto-Thumbnail). call_to_action: LEARN_MORE (Default)/SHOP_NOW/SIGN_UP/CONTACT_US/BOOK_NOW/…; bei Lead-Anzeigen Default SIGN_UP (LEAD_GENERATION ist KEIN CTA-Typ) und nur APPLY_NOW/DOWNLOAD/GET_QUOTE/LEARN_MORE/SIGN_UP/SUBSCRIBE erlaubt — andere Typen lehnt das Tool vorab ab (error=invalid_lead_ad_cta). lead_gen_form_id: Instant Form (ID aus meta_list_lead_forms) — macht die Anzeige zur Lead-Anzeige (Bild oder Video): Meta erlaubt dann als link nur den Platzhalter https://fb.me/, der automatisch gesetzt wird; ein anderer link ist error=link_not_allowed_for_lead_ad. Das Adset muss auf LEAD_GENERATION mit promoted_page_id derselben Page laufen (meta_create_adset). Lehnt Meta mit Subcode 1815089 ab, hat kein Page-Admin die Lead-Ads-Nutzungsbedingungen akzeptiert (Antwort enthält hint; Stand vorab in meta_list_pages -> leadgen_tos_accepted). url_tags: UTM-Parameter als eigenes Creative-Feld, z.B. 'utm_source=facebook&utm_medium=paid&utm_campaign={{campaign.name}}'. validate_only: True ist eine reine Parameter-Vorschau OHNE API-Calls — ob Meta die Ad wirklich akzeptiert, zeigt erst der echte Aufruf. Zurücklesen: meta_list_ads zeigt creative.lead_gen_form_id und url_tags. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
linkNo
nameYes
statusNoPAUSED
messageYes
page_idYes
adset_idYes
headlineNo
url_tagsNo
video_idNo
image_urlNo
workspaceNo
image_hashNo
descriptionNo
validate_onlyNo
call_to_actionNo
lead_gen_form_idNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly=false, destructive=false and openWorld=true; the description goes far beyond them by disclosing the default PAUSED status, that validate_only makes no API calls and does not prove Meta acceptance, that thumbnails are auto-generated, that the link is force-overwritten to https://fb.me/ for lead ads, and the concrete error/subcode paths (link_required, invalid_lead_ad_cta, link_not_allowed_for_lead_ad, subcode 1815089 TOS). None of this contradicts 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 core capability and the PAUSED default are front-loaded, and nearly every clause carries behavioral information that is unavailable elsewhere. The dense multi-line block with parenthetical error codes is slightly hard to scan, but given 16 undocumented parameters the length is largely earned rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity creation tool with 16 params, zero schema descriptions and no enum hints, the description supplies the missing pieces: creation-time defaults, media constraints, lead-ad validation rules, prerequisite TOS state, and error semantics. An output schema exists, so return values need not be described, and the description correctly limits itself to pointing at meta_list_ads for readback.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 16 params, so the description must carry the whole load — and it effectively does, defining message vs headline/description, link vs the lead-ad exception, image_hash vs image_url, video_id digit-only constraint, url_tags format, call_to_action defaults and the restricted lead-ad enum, lead_gen_form_id semantics, and workspace optionality. Only 'status' is covered implicitly ('Default PAUSED') rather than by name.

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 opening sentence states a specific verb and resource ('Neue Meta-Ad anlegen') and immediately splits the two supported shapes (Bild ODER Video; Website- oder Lead-Anzeige). It also marks the tool's distinguishing behavior — Creative + Ad in one step — which separates it from meta_upload_ad_image/meta_upload_ad_video and the separate adset/campaign creators in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies preconditions and the correct sequence: page_id comes from meta_list_pages, adset_id from meta_create_adset, video must be in status 'ready', lead ads require the adset to run LEAD_GENERATION with promoted_page_id. It also routes activation elsewhere (meta_update_ad_status) and names the readback tool (meta_list_ads), so an agent knows exactly where this tool sits in the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_create_adsetMeta Ads: Create adsetAInspect

Neues Meta-Adset anlegen (Default PAUSED) — hier liegen Budget und Zielgruppe.

daily_budget / lifetime_budget: EUR, genau eines davon (error=budget_conflict bei beiden); ohne CBO Pflicht (sonst error=budget_required), bei CBO-Kampagne wird das Adset-Budget ignoriert. lifetime_budget = Gesamtsumme bis end_time und braucht end_time (error=end_time_required). optimization_goal: z.B. LINK_CLICKS, LANDING_PAGE_VIEWS, REACH, OFFSITE_CONVERSIONS, LEAD_GENERATION. promoted_page_id: Page, deren Instant Forms das Adset bewirbt — Pflicht bei LEAD_GENERATION (sonst error=promoted_page_required; ID aus meta_list_pages). Wird als promoted_object={page_id} gesendet. pixel_id + custom_event_type: Pixel und Ereignis, auf das optimiert wird — Pflicht bei OFFSITE_CONVERSIONS und immer nur zusammen (sonst error=pixel_event_required; Pixel aus meta_list_pixels). Ereignisse laut Meta-Enum, z.B. LEAD, PURCHASE, COMPLETE_REGISTRATION, CONTACT, SUBMIT_APPLICATION, SUBSCRIBE, ADD_TO_CART, INITIATED_CHECKOUT (error=invalid_custom_event_type bei anderen Werten). Wird als promoted_object={pixel_id, custom_event_type} gesendet. destination_type: wohin die Anzeige führt, laut Meta-Enum — z.B. WEBSITE, ON_AD (Instant Form direkt in der Anzeige; Metas Lead-Ads-Beispiel), MESSENGER, WHATSAPP, INSTAGRAM_DIRECT, APP, FACEBOOK_PAGE (error=invalid_destination_type bei anderen Werten). Lead-Adset (Instant Form): optimization_goal='LEAD_GENERATION', promoted_page_id, destination_type='ON_AD'; Anzeige danach mit meta_create_ad(lead_gen_form_id=...). Voraussetzung: ein Page-Admin hat die Lead-Ads-Nutzungsbedingungen akzeptiert (meta_list_pages -> leadgen_tos_accepted); sonst lehnt Meta die Anzeige ab. Zurücklesen: meta_list_adsets zeigt promoted_object und destination_type. bid_strategy: Default LOWEST_COST_WITHOUT_CAP ('Highest Volume'); LOWEST_COST_WITH_BID_CAP/COST_CAP brauchen bid_amount (EUR); LOWEST_COST_WITH_MIN_ROAS braucht min_roas (error=min_roas_required), kennt KEIN bid_amount (error=bid_amount_not_applicable) und bei Meta optimization_goal='VALUE' plus ein für Wertoptimierung freigeschaltetes Konto. Bei einer CBO-Kampagne liegt die Strategie an der Kampagne und gilt für jedes Adset: bid_strategy hier weglassen (abweichende Angabe: error=bid_strategy_campaign_level) und je nach Kampagnenstrategie nur bid_amount (BID_CAP/COST_CAP, Pflicht) bzw. min_roas (MIN_ROAS, Pflicht) mitgeben — das Tool liest die Kampagnenstrategie und prüft dagegen. Zurücklesen: meta_list_adsets bid_strategy/bid_amount_eur/ min_roas (Strategie bei CBO via meta_list_campaigns). min_roas: Mindest-ROAS als Verhältnis (2.5 = 250 %, erlaubt 0.01–1000; error=invalid_min_roas), wird als bid_constraints.roas_average_floor (×10000) gesendet. Nur mit LOWEST_COST_WITH_MIN_ROAS (am Adset oder, bei CBO, an der Kampagne), sonst error=min_roas_not_applicable. countries: ISO-Codes. Default ['AT'] gilt NUR, wenn keine Geo-Verfeinerung (regions/cities/zips/custom_locations) übergeben wird; genders: nur 'male'/'female', Default alle — andere Werte werden still ignoriert; custom_audience_ids: IDs aus meta_list_audiences. Geo-Verfeinerung — Schlüssel immer via meta_targeting_search holen, nie raten. Formate: cities=[{'key': '2420605', 'radius_km': 17}] (Umkreis um eine Stadt 17–80 km, ohne radius_km nur das Stadtgebiet; error=invalid_city_radius), regions=['1234'] (Bundesland/Region), zips=['AT:5020'] (Landespräfix Pflicht, error=invalid_zip_key), custom_locations=[{'latitude': 47.8, 'longitude': 13.04, 'radius_km': 10}] oder [{'address_string': 'Getreidegasse 9, Salzburg', 'radius_km': 5, 'name': 'Altstadt'}] (Umkreis 1–80 km, error=invalid_custom_location). Städte/Umkreise aus meta_list_adsets ({'key', 'radius', 'distance_unit': 'kilometer', ...}) dürfen 1:1 übernommen werden; Meilen und unbekannte Felder werden abgelehnt (error=invalid_city_radius/invalid_cities). Leere Listen sind beim Anlegen keine Angabe. Konfliktregel von Meta (Subcode 1487756 "Some locations conflict with each other"): Orte, die ineinander liegen, dürfen nicht gemeinsam EINGESCHLOSSEN werden — countries=['AT'] + Stadt Salzburg, Region Salzburg + Stadt Salzburg oder Stadt-Umkreis + PLZ darin lehnt Meta ab; der Fehler kommt mit hint zurück. Deshalb: nur die Verfeinerung gemeint → countries weglassen (dann kein AT-Default). countries UND Verfeinerung zusammen nur länderübergreifend (z.B. DE komplett + Salzburg/AT). Ausschlüsse INNERHALB eines eingeschlossenen Gebiets sind erlaubt (excluded_geo_locations, z.B. Region Salzburg minus Stadt Salzburg). excluded_geo_locations: Gebiete AUSSCHLIESSEN, gleiche Struktur als Dict, z.B. {'zips': ['AT:5020']} oder {'cities': [{'key': '...', 'radius_km': 17}]} oder {'countries': ['CH']}; andere Schlüssel error=invalid_excluded_geo_locations. excluded_custom_audience_ids: Custom Audiences ausschließen (IDs aus meta_list_audiences, z.B. bestehende Kunden). interest_ids / behavior_ids: Interessen bzw. Behaviors (IDs aus meta_targeting_search kind='interest'/'behavior'). locales: Sprachen als Meta-Locale-Schlüssel (Ganzzahlen aus meta_targeting_search kind='locale'; error=invalid_locales sonst). Zurücklesen: meta_list_adsets zeigt Verfeinerungen, Ausschlüsse, Interessen, Behaviors und locales im targeting. dsa_beneficiary/dsa_payor: DSA-Pflichtangaben für EU-Ads — wer profitiert / wer bezahlt (Payor default = Beneficiary), z.B. 'Honeyfield GmbH'. Bei EU-/EWR-Targeting ohne dsa_beneficiary warnt das nicht-blockierende warnings-Feld. Erfasst werden Geo-Einträge mit Ländercode sowie country_groups; nicht auswertbare Geo-Listeneinträge erscheinen als UNKNOWN. advantage_audience: Metas KI-Zielgruppenerweiterung (Pflichtentscheidung; Default False = konfiguriertes Targeting gilt exakt). publisher_platforms: Plattformen, z.B. ['facebook','instagram']. OHNE Angabe laufen AUTOMATISCHE Platzierungen, also auch Audience Network. positions: Positionen je Plattform, z.B. {'facebook': ['feed','story'], 'instagram': ['stream','reels']}. Eine Plattform mit Positionen muss auch in publisher_platforms stehen. device_platforms: ['mobile'] und/oder ['desktop']. excluded_publisher_categories / excluded_publisher_list_ids: Brand Safety. start_time / end_time: Zeitplan des Adsets. end_time ist das Traffic-Enddatum (danach pausiert Meta die Auslieferung). Je als Datum '2026-09-30' (= Tagesende) oder ISO-Zeitstempel; ohne Offset wird die Zeitzone des Werbekontos angehängt (Meta würde sonst UTC annehmen). Pflicht bei lifetime_budget und bei Adsets in Kampagnen mit Laufzeitbudget (error=end_time_required), sonst optional. validate_only: True lässt Meta den Aufruf prüfen, ohne etwas zu ändern. Ein Erfolg heißt: Meta würde die Änderung annehmen. campaign_id muss zum Werbekonto des Workspace gehoeren — eine Kampagne eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
zipsNo
citiesNo
statusNoPAUSED
age_maxNo
age_minNo
gendersNo
localesNo
regionsNo
end_timeNo
min_roasNo
pixel_idNo
countriesNo
dsa_payorNo
positionsNo
workspaceNo
bid_amountNo
start_timeNo
campaign_idYes
behavior_idsNo
bid_strategyNo
daily_budgetNo
interest_idsNo
billing_eventNoIMPRESSIONS
validate_onlyNo
dsa_beneficiaryNo
lifetime_budgetNo
custom_locationsNo
destination_typeNo
device_platformsNo
promoted_page_idNo
custom_event_typeNo
optimization_goalNoLINK_CLICKS
advantage_audienceNo
custom_audience_idsNo
publisher_platformsNo
excluded_geo_locationsNo
excluded_publisher_list_idsNo
excluded_custom_audience_idsNo
excluded_publisher_categoriesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

This tool provides exceptional behavioral transparency, disclosing complex operational logic beyond schema structure, such as budget conflict rules (error=budget_conflict), the interaction with CBO campaigns (where the budget is ignored), and detailed Geo-Targeting conflict resolution rules.

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?

While the description is extremely dense, it is logically structured, moving from budget/goal definitions to specific requirements (like Lead Ads) and then technical constraints (Geo-targeting, bid strategies). The density is high but necessary for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the immense complexity of the Meta Ads API, the description is contextually complete. It covers all necessary integration points, warning labels (non-blocking warnings vs. blocking errors), and cross-tool dependencies (e.g., where to retrieve Geo-targeting data).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the entire burden of semantics. It thoroughly defines complex parameters like min_roas (ratio conversion), destination_type (Meta-Enum listing), and the required pairing of pixel_id and custom_event_type.

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 tool clearly states its purpose in German: 'Neues Meta-Adset anlegen' (Create new Meta Adset). It immediately identifies the core function and the parameters involved (budget and target group), distinguishing it from asset-level tools like ads_create_ad.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive usage guidelines, such as the requirements for Lead Adsets (e.g., specific optimization_goal, promoted_page_id, destination_type='ON_AD') and critical preconditions like Meta Page-Admin accepting Lead Ads Terms of Service.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_create_campaignMeta Ads: Create campaignAInspect

Neue Meta-Kampagne anlegen (Default PAUSED — Aktivierung als bewusster zweiter Schritt via meta_update_campaign).

objective: OUTCOME_TRAFFIC/OUTCOME_SALES/OUTCOME_LEADS/OUTCOME_AWARENESS/ OUTCOME_ENGAGEMENT/OUTCOME_APP_PROMOTION. daily_budget: Tagesbudget in EUR; gesetzt = Campaign Budget Optimization, sonst Budget auf Adset-Ebene (meta_create_adset). lifetime_budget: Laufzeitbudget in EUR (Gesamtsumme bis zum Enddatum), ebenfalls CBO — nie zusammen mit daily_budget (error=budget_conflict). Das Enddatum liegt bei Meta an den Adsets: jedes Adset dieser Kampagne braucht ein end_time (meta_create_adset lehnt sonst mit error=end_time_required ab). Ein Kampagnen-Enddatum gibt es nicht — Meta leitet Start/Ende aus den Adsets ab. bid_strategy: NUR mit Kampagnenbudget (CBO), Default LOWEST_COST_WITHOUT_CAP; alternativ LOWEST_COST_WITH_BID_CAP/COST_CAP (bid_amount dann je Adset Pflicht) oder LOWEST_COST_WITH_MIN_ROAS (der Mindest-ROAS liegt ebenfalls am Adset: meta_create_adset min_roas, dort Pflicht — ohne eigene bid_strategy am Adset; die Kampagne kennt kein bid_constraints, und die Strategie einer Kampagne ist nachträglich hier nicht änderbar). Ohne Kampagnenbudget bricht das Tool mit error=bid_strategy_requires_budget ab (nichts wird angelegt) — dann entweder ein Budget mitgeben oder die Strategie je Adset in meta_create_adset setzen. Zurücklesen: meta_list_campaigns bid_strategy. status: ACTIVE oder PAUSED. special_ad_categories: Meta-Literale als Liste, z.B. ['HOUSING'], ['CREDIT'], ['EMPLOYMENT'], ['ISSUES_ELECTIONS_POLITICS'] — nur wenn zutreffend (Wohnen/Kredit/Jobs/Politik); wird ungeprüft an Meta durchgereicht. validate_only: True für einen Probelauf ohne Anlegen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
statusNoPAUSED
objectiveNoOUTCOME_TRAFFIC
workspaceNo
bid_strategyNo
daily_budgetNo
validate_onlyNo
lifetime_budgetNo
special_ad_categoriesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the annotations: it names specific failure modes (budget_conflict on daily+lifetime, end_time_required on adsets, bid_strategy_requires_budget), states that nothing is created on such failures, that bid_strategy cannot be changed on the campaign afterwards, that special_ad_categories is passed through unchecked, and that campaign end dates do not exist at Meta. This is exactly the behavioral context the readOnlyHint/destructiveHint annotations cannot carry.

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 purpose sentence is front-loaded and each subsequent block maps to a parameter, so the structure is easy to scan. It is nonetheless dense and long; the bid_strategy paragraph in particular becomes convoluted with nested parentheticals pointing at meta_create_adset.

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 write tool with an output schema and partial annotations, nothing an agent needs to call it correctly is missing: creation defaults, budget-belonging rules, cross-tool dependencies (adset end_time, min_roas), failure behavior, and how to read the result back via meta_list_campaigns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage the description has to carry all parameter meaning, and it does: enum values for objective, EUR semantics and CBO implications for daily_budget/lifetime_budget plus their mutual exclusivity, bid_strategy options and where bid_amount/min_roas actually belong, admitted status values, example literals for special_ad_categories, and the validate_only dry-run meaning. Only 'name' is left implicit, which is trivially obvious.

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?

Opens with 'Neue Meta-Kampagne anlegen' — a specific verb and resource — and immediately distinguishes it from meta_update_campaign (activation is a deliberate second step) and meta_create_adset (where adset-level budget lives). An agent can route to it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the default PAUSED behavior and that activation is a separate, intentional call to meta_update_campaign. It also defines when bid_strategy is allowed (only with CBO), what to do otherwise (set it per adset), and the fallback when validate_only is wanted. Alternatives and exclusions are both named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_create_custom_conversionMeta Ads: Create custom conversionAInspect

Custom Conversion anlegen — meist eine Danke-Seite als Lead-Ereignis. Regel wahlweise über url_contains ('/danke'), url_equals oder rule (Metas Regelsyntax direkt). Genau eine der drei Angaben ist nötig. url_contains vergleicht case-insensitiv, url_equals case-SENSITIV (Meta kennt kein i_eq) — im Zweifel url_contains nehmen. custom_event_type: LEAD, PURCHASE, COMPLETE_REGISTRATION, CONTACT, SCHEDULE, SUBMIT_APPLICATION, START_TRIAL, SUBSCRIBE, ADD_TO_CART, INITIATED_CHECKOUT, CONTENT_VIEW, SEARCH, OTHER. default_conversion_value: Betrag in Kontowährung (kein Cent-Wert). pixel_id: aus meta_list_pixels. validate_only: NICHT unterstützt. Meta ignoriert das Flag an diesem Endpunkt und würde trotzdem echt anlegen; das Tool bricht deshalb mit einem Fehler ab, statt einen Probelauf vorzutäuschen. Ohne validate_only aufrufen, wenn die Conversion entstehen soll. ACHTUNG: Es gibt in diesem Toolset KEIN Werkzeug zum Löschen oder Archivieren — das geht nur im Meta Werbeanzeigenmanager. pixel_id muss dem Werbekonto des Workspace zugeordnet sein (meta_list_pixels), sonst {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
ruleNo
pixel_idYes
workspaceNo
url_equalsNo
descriptionNo
url_containsNo
validate_onlyNo
custom_event_typeNoLEAD
default_conversion_valueNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: warns that validate_only is ignored by the endpoint and the tool deliberately errors rather than faking a dry run, that a real object would be created, that no delete/archive tool exists in this toolset, and that a mismatched pixel_id returns {'error': 'foreign_object'}. This is exactly the kind of irreversible-write context an agent needs and annotations (readOnlyHint=false, destructiveHint=false) do not supply.

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?

Dense but each line carries information an agent cannot get from the schema — no filler. The main structural weakness is that the most consequential warning (validate_only aborts, no delete path) sits mid-document rather than being front-loaded, and the German prose mixes parameter listing with pitfalls.

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 10-parameter open-world mutation tool with an output schema, the description covers rule semantics, enum values, unit conventions, error cases, and irreversibility. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description compensates fully: it defines the three mutually exclusive rule parameters, their case-sensitivity differences, the eleven custom_event_type values that are absent from the schema, currency units for default_conversion_value (not cents), and workspace's optionality. Only the obvious name/description params are left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Custom Conversion anlegen') and immediately characterizes the typical case (a thank-you page as a lead event). It is clearly distinguishable from the read-side sibling meta_list_custom_conversions without opening either schema.

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?

Gives concrete call preconditions: exactly one of url_contains / url_equals / rule, 'im Zweifel url_contains nehmen', and pixel_id must come from meta_list_pixels. It stops short of naming alternative tools for other conversion types (e.g. ads_create_conversion_action or openai_ads_create_conversion_setting) that an agent might otherwise reach for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_create_lead_formMeta Ads: Create lead formAInspect

Instant Form (Lead-Formular) an der Facebook-Page anlegen — für Lead- Anzeigen (danach meta_create_ad mit lead_gen_form_id). ACHTUNG: Meta veröffentlicht das Formular sofort und erlaubt danach KEINE Änderung mehr, nur Archivieren (meta_archive_lead_form). Erst mit dry_run=True prüfen (sendet nichts, zeigt das fertige Formular), Inhalt mit dem Nutzer abstimmen, dann ohne dry_run anlegen. name: interner Formularname (für Ads Manager und meta_list_lead_forms). questions: Liste aus Standardfeldern als Text — FULL_NAME, FIRST_NAME, LAST_NAME, EMAIL, PHONE, ZIP, POST_CODE, CITY, STREET_ADDRESS, COMPANY_NAME, JOB_TITLE, WORK_EMAIL, WORK_PHONE_NUMBER, COUNTRY u. a. (Meta füllt sie aus dem Profil vor) — und eigenen Fragen als Objekt {type: 'CUSTOM', label: 'Fragetext', options?: ['A', 'B']} (mit options = Auswahl, ohne = Freitext; key wird aus label erzeugt). Ungültiger Typ → error=invalid_question_type mit allowed. privacy_policy_url: Pflicht, https:// — Meta zeigt den Link im Formular. privacy_policy_link_text: Linktext (max. 70 Zeichen). page_id: optional; ohne Angabe die einzige Page des Werbekontos (wie meta_list_lead_forms; nur Pages des Werbekontos, Fehler page_id_required/page_not_found/no_page_token dort erklärt). locale: Sprache der vorbelegten Feldbeschriftungen, z. B. DE_DE, EN_US, EN_GB. intro_title / intro_text: optionale Begrüßungskarte (Text oder Liste von Stichpunkten). thank_you_title / thank_you_body / website_url: Dankeseite; mit website_url ein Button „Zur Website“ (https://). higher_intent: True = Formulartyp „Höhere Absicht“ (zusätzlicher Bestätigungsschritt, weniger, aber bessere Leads); Default „Mehr Volumen“. Rückgabe: {success, form_id, name, status, locale, page_id} — zurückgelesen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
localeNoDE_DE
dry_runNo
page_idNo
questionsYes
workspaceNo
intro_textNo
intro_titleNo
website_urlNo
higher_intentNo
thank_you_bodyNo
thank_you_titleNo
privacy_policy_urlYes
privacy_policy_link_textNoDatenschutzerklärung

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say it is a non-read-only, open-world, non-destructive write; the description adds the crucial trait that Meta publishes the form instantly and it can never be edited afterwards, only archived. It also discloses dry_run semantics (sends nothing, renders the finished form) and the exact return shape, which annotations cannot convey.

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?

Purpose and the immutability warning are front-loaded before any parameter detail, which is the right ordering. It is long, but with 14 undocumented parameters nearly every line earns its place; only the parenthetical cross-reference to where page_id errors are explained is slightly expendable.

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 14-parameter mutation tool with 0% schema coverage, the description covers required fields, defaults, error codes, the dry-run safety path, and even restates the return object despite an output schema existing. Nothing an agent needs to invoke it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does: it enumerates the accepted standard question types, defines the custom-question object shape with options/key behavior, notes privacy_policy_url requires https, privacy_policy_link_text caps at 70 chars, page_id defaults to the account's single page with named error codes, and explains higher_intent's tradeoff and default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Instant Form an der Facebook-Page anlegen') and immediately ties it to the downstream sibling meta_create_ad via lead_gen_form_id. An agent can distinguish it from meta_list_lead_forms and meta_archive_lead_form without opening any schema.

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?

Gives an explicit ordered workflow: first dry_run=True, align content with the user, then create without dry_run. It also names the only post-creation alternative (meta_archive_lead_form) and explains why no update path exists, so when/when-not is fully covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_create_pixelMeta Ads: Create pixelAInspect

Neues Meta-Pixel (Dataset) im Ad-Account anlegen — liefert Pixel-ID und den Basis-Einbau-Code (JS-Snippet) für die Website.

Achtung: Pixel lassen sich per API nicht löschen — vorher mit meta_list_pixels prüfen, ob schon eines existiert. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=false and openWorldHint=true, so the bar is lower, yet the description adds a genuinely important trait beyond them: pixels created here cannot be deleted via API, making the action effectively irreversible. It also discloses what the call returns (ID + install snippet), which annotations cannot convey.

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?

Three tight blocks: purpose + return value, then a warning, then a parameter note. Front-loaded and free of filler. The parameter note is slightly disconnected from the opening sentence but nothing is wasted.

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?

An output schema exists, so return shape need not be spelled out, but the description still names the key outputs. For a create operation with no delete path, the irreversibility warning plus the duplicate-check instruction covers the main risks; only the 'name' parameter semantics remain unaddressed.

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 0%, so the description must carry both parameters. It explains 'workspace' well (client workspace slug, optional when only one workspace exists) but says nothing about 'name' — whether it is the display name, a required unique label, or its constraints. Half the parameter surface is covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Neues Meta-Pixel (Dataset) im Ad-Account anlegen') plus the concrete return value (Pixel-ID und Basis-Einbau-Code). It is immediately distinguishable from siblings like meta_list_pixels or meta_pixel_stats, which read rather than create.

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?

Gives an explicit precondition and alternative: check with meta_list_pixels first, because the API offers no delete. That is real routing guidance. It stops short of explaining other context (which ad account is targeted, workspace selection nuances beyond the slug note), so it is strong but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_delete_campaignMeta Ads: Delete campaignA
Destructive
Inspect

Meta-Kampagne endgültig löschen (inkl. Adsets/Ads), nicht umkehrbar — zum bloßen Stoppen besser meta_update_campaign mit status=PAUSED (umkehrbar) oder ARCHIVED (nur noch lesbar). deleted=True kommt nur, wenn Meta die Löschung bestätigt (success=true); sonst error=delete_failed bzw. meta_api_error mit Metas Begründung — nichts gilt als gelöscht, was Meta nicht bestätigt hat. IDs muessen zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive=true, but the description adds the operationally critical facts beyond them: deletion cascades to adsets and ads, is irreversible, and success is only claimed when Meta confirms (deleted=True requires success=true), with error surfaces delete_failed and meta_api_error. This is exactly the context an agent needs before calling a destructive tool.

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?

Front-loaded with the destruction warning, followed by the safer alternative, confirmation semantics, and ID constraints — a sensible priority order with no filler sentences. There is minor redundancy in restating the confirmation rule ('nichts gilt als gelöscht, was Meta nicht bestätigt hat').

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?

Output schema exists, yet the description still summarizes the decisive result fields (deleted, error=delete_failed / meta_api_error) so the agent knows what confirmation looks like. Combined with the cascade scope and cross-account guard, nothing needed to invoke this destructive tool correctly is missing.

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 0%, so the description must carry the load — and it does for both parameters: workspace is described as the client workspace slug, optional when only one workspace exists, and campaign_id is constrained to the workspace's own ad account. It does not state the ID format/type explicitly, which keeps it short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Meta-Kampagne endgültig löschen') plus the cascade scope ('inkl. Adsets/Ads') and irreversibility, so the agent knows exactly what is removed. It also names the sibling it is not — meta_update_campaign with status=PAUSED/ARCHIVED — making it distinguishable from the update tools without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when NOT to use it ('zum bloßen Stoppen besser meta_update_campaign mit status=PAUSED (umkehrbar) oder ARCHIVED') and gives the reversibility condition that selects the alternative. It also gives a hard precondition: the IDs must belong to the workspace's ad account, otherwise foreign_object.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_ad_accountsMeta Ads: List ad accountsA
Read-only
Inspect

Erreichbare Meta-Ad-Accounts der Verbindung auflisten (id, Name, Status, Währung) — um die richtige Account-ID zu finden, die im Workspace einzutragen ist. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=true), so the bar is lower. The description adds real value beyond that: the result is scoped to accounts reachable via the current connection, the four returned fields, and the conditional behaviour of the workspace parameter ('optional bei nur einem Workspace'). It does not say what happens if several workspaces exist and none is supplied.

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 compact sentences: the primary action and its purpose first, the parameter note second. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be spelled out (the field list is a bonus), and the single parameter is addressed. What is missing is only the edge-case behaviour for workspace resolution and a pointer to list_workspaces for discovering the slug.

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 0%, so the description must carry the parameter, and it does: 'workspace' is defined as the customer workspace slug, nullable and optional when only one workspace exists. The main residual gap is the failure/default behaviour when multiple workspaces exist and the parameter is omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Erreichbare Meta-Ad-Accounts ... auflisten') and even enumerates the returned fields (id, Name, Status, Währung). It is clearly distinguishable from siblings like meta_account_status (status of one account) or meta_list_campaigns (children of an account), and it names the downstream purpose: finding the account ID to store in the workspace.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context of use ('um die richtige Account-ID zu finden, die im Workspace einzutragen ist'), which is exactly the discovery step before any meta_* campaign call. It stops short of naming an alternative or stating when not to use it (e.g. when the account ID is already known, or pointing to list_workspaces to obtain the slug).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_adsMeta Ads: List adsA
Read-only
Inspect

Meta-Ads auflisten (optional nur eines Adsets) — Status und die Creative-INHALTE, nicht nur eine Referenz. name_contains: Namensfilter (serverseitig) — "alle Anzeigen mit X" ist EIN Aufruf, kein Volllisten und Selbst-Suchen. status: filtert auf den KONFIGURIERTEN Status (ACTIVE/PAUSED/ARCHIVED/ DELETED). Der Filter greift beim Laden: es wird weitergeblättert, bis limit passende Anzeigen vorliegen (höchstens 20 Seiten à 100). Bricht die Suche vorher ab, sagt das die Antwort in warning — dann adset_id oder name_contains angeben. limit: max. Anzahl (Default 50). Wird abgeschnitten (Meta meldet weitere Seiten), kommt statt der Liste ein Objekt mit result und warning zurück — dann mit adset_id/name_contains einschränken oder limit erhöhen. Wichtig: status ist der geschaltete Zustand, effective_status Metas berechneter (inkl. WITH_ISSUES, Eltern-Pausen, Review-Historie). status=PAUSED → sicher nicht ausgeliefert (auch wenn effective_status noch WITH_ISSUES zeigt). status=ACTIVE → läuft nur, wenn effective_status ebenfalls ACTIVE ist; ADSET_PAUSED/CAMPAIGN_PAUSED/DISAPPROVED/ PENDING_REVIEW bedeuten keine Auslieferung.

Je Anzeige kommen zurück: creative.link_url (die ZIELSEITE der Anzeige — dies ist das Werkzeug für die Frage "wohin führt diese Anzeige?"), creative.url_tags (UTM-Parameter), body (Anzeigentext), title, call_to_action_type, image_url bzw. video_id sowie preview_link. Lead-Anzeigen (Instant Form) tragen creative.lead_gen_form_id (Formular via meta_list_lead_forms auflösbar); link_url ist dort Metas Platzhalter https://fb.me/. Fehlt das Feld, nutzt die Anzeige kein Instant Form. Bei Carousel- und Advantage+-Anzeigen mit mehreren Zielen steht zusätzlich creative.link_urls mit allen URLs. Optionale issues zeigen Delivery-Probleme als HARD_ERROR oder SOFT_ERROR (error_type beachten). review_feedback enthält global (Komplett-Ablehnung) und placement_specific. IDs muessen zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
statusNo
adset_idNo
workspaceNo
name_containsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly/openWorld, so the description carries the real weight and does: pagination up to 20 pages of 100, a warning field when the search aborts early, a truncated object with result+warning instead of a list, the foreign_object error for cross-account IDs, and the status vs effective_status distinction. That is exactly the behavioral context annotations cannot supply.

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?

Front-loaded with the one-line purpose, then per-parameter paragraphs, then a return-field block — easy to skim for an agent. It is long and the return-field enumeration partly duplicates the output schema, so a sentence or two could be trimmed, but almost every line carries operational meaning.

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?

An output schema exists, yet the description still adds the semantics an agent needs: lead_gen_form_id implies an Instant Form, link_url is a placeholder on lead ads, carousel/Advantage+ ads expose link_urls, and issues/review_feedback carry HARD_ERROR/SOFT_ERROR and global vs placement_specific feedback. Nothing needed for a correct call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with five parameters, so the description must compensate and it does fully: name_contains is server-side filtering, status filters on CONFIGURED status with documented pagination-until-limit behavior, limit has a default of 50 and a truncation contract, adset_id narrows scope, and workspace is optional with a single-workspace caveat.

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?

Opens with a specific verb+resource ('Meta-Ads auflisten, optional nur eines Adsets') and immediately clarifies the scope: status plus creative CONTENT, not just a reference. It also stakes a claim over a specific question ('wohin führt diese Anzeige?'), which separates it from the adset/campaign listers.

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?

Gives concrete routing advice: name_contains means one server-side call instead of listing everything and searching yourself, and it tells the agent to narrow via adset_id/name_contains or raise limit when a warning comes back. It also points to meta_list_lead_forms for resolving form IDs. It does not explicitly position itself against meta_ad_performance or meta_ad_preview, so it stops 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.

meta_list_adsetsMeta Ads: List adsetsA
Read-only
Inspect

Meta-Adsets auflisten (optional nur einer Kampagne) — Status, Budget in EUR, Optimierungsziel, Targeting-Zusammenfassung und optionale issues. Je Adset kommen auch start_time/end_time (Zeitplan — zum Zurücklesen nach meta_update_adset), lifetime_budget_eur und billing_event zurück. Gebot zum Zurücklesen: bid_strategy (null bei CBO — dann liegt sie an der Kampagne, meta_list_campaigns), bid_amount_eur (Bid Cap / Cost Cap), bid_constraints (roh) und min_roas (Mindest-ROAS als Verhältnis, 2.5 = 250 %; aus bid_constraints.roas_average_floor / 10000; null ohne). promoted_object (z.B. {page_id} bei Lead-Adsets, {pixel_id, custom_event_type} bei Conversion-Adsets) und destination_type kommen so zurück, wie Meta sie führt — zum Zurücklesen nach meta_create_adset/ meta_update_adset; None = nicht gesetzt. Je Adset kommt learning mit dem Stand der LERNPHASE zurück: status LEARNING (lernt noch, Auslieferung schwankt), LEARNING_LIMITED (abgebrochen, zu wenig Conversions) oder "unbekannt" (Meta liefert nichts dazu, üblich wenn das Adset nicht auf ein Conversion-Ereignis optimiert) — jeweils mit einem Hinweis im Klartext. Andere Meta-Werte (z.B. SUCCESS = Lernphase abgeschlossen) werden unverändert und ohne Hinweis durchgereicht. targeting.placements zeigt die aktiven Plattformen; steht dort "automatisch (alle Plattformen)", läuft das Adset auch im Audience Network. targeting zeigt neben countries auch Geo-Verfeinerungen (regions, cities, zips, custom_locations — je key, name, country, region, radius/ distance_unit bzw. Koordinaten/Adresse), location_types, excluded_geo_locations (gleiche Struktur), excluded_custom_audiences, interests, behaviors und locales — diese Schlüssel erscheinen NUR, wenn sie gesetzt sind. Ein Adset nur mit countries läuft landesweit. dsa_beneficiary/dsa_payor sind lesbar; None bedeutet nicht gesetzt und ist nur bei EU-/EWR-Targeting relevant. targeting.eu_eea_targeting listet die erfassten EU-/EWR-Ländercodes bzw. -Gruppen (bei PLZ aus dem Präfix 'AT:5020' abgeleitet); UNKNOWN markiert Geo-Listeneinträge ohne auswertbaren Ländercode. limit: max. Anzahl (Default 50). Wird abgeschnitten (Meta meldet weitere Seiten), kommt statt der Liste ein Objekt mit result und warning zurück — dann mit campaign_id einschränken oder limit erhöhen. IDs muessen zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo
campaign_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and openWorldHint annotations, the description discloses important behavior: pagination truncation returns an object with result and warning, foreign-account IDs return {'error': 'foreign_object'}, learning-phase statuses and their meanings, targeting key behavior, and when bid_strategy is null due to CBO. This is unusually rich behavioral context for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a clear purpose, but it becomes a very long wall of return-field details, especially about learning statuses and targeting internals. Because an output schema already exists, many of these sentences do not need to be repeated here, making the definition substantially over-sized for a three-parameter list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the read-only, open-world annotations and the existing output schema, the description is more than complete: it covers purpose, filtering, pagination behavior, error cases, and nuanced return-value semantics. An agent should have everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning; it does. It explains limit as maximum count with default 50 and truncation behavior, campaign_id as an optional campaign restriction, and workspace as an optional slug when only one workspace exists.

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 first sentence gives a specific verb and resource: "Meta-Adsets auflisten (optional nur einer Kampagne)" and immediately names the returned fields (status, budget, optimization goal, targeting summary, issues). It clearly identifies this as the ad-set listing tool and distinguishes it from campaign-level tools by noting when bid_strategy is null and should be read via meta_list_campaigns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: optionally restrict to one campaign, use campaign_id or a higher limit when pagination truncates results, and use this to read fields back after meta_update_adset. It does not explicitly say when to prefer this over performance-oriented siblings such as meta_adset_performance, but the intended context is still clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_audiencesMeta Ads: List audiencesA
Read-only
Inspect

Custom Audiences des Meta-Ad-Accounts (inkl. Customer-Match-Listen) — IDs als custom_audience_ids (einschließen) oder excluded_custom_audience_ids (ausschließen, z.B. Bestandskunden) in meta_create_adset/meta_update_adset verwendbar. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered without description help. The description adds real behavioural context beyond that: it discloses that customer-match lists are included in the result set and that IDs split into include vs exclude semantics. It says nothing about pagination or the effect of 'limit', which is the one behavioural trait an agent would trip on.

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?

Two dense sentences with no padding; the resource definition and the include/exclude usage come first. It could be tightened, but nothing is filler and the front-loading is correct.

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 low-complexity read-only list tool with 2 parameters and an output schema, so return values need not be described. Purpose and the workspace parameter are covered; the only real hole is the unexplained 'limit' and absence of any pagination note.

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 0%, so the description must compensate. It does explain 'workspace' well (slug of the customer workspace, optional when only one workspace exists), which is meaning the schema does not carry. However, 'limit' (default 100) is completely unaddressed, leaving half the parameters undocumented.

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?

States the resource precisely — Custom Audiences of Meta ad accounts, explicitly including Customer-Match lists — and names the concrete output (IDs). It does not literally say 'list', but the verb is implied unambiguously by the name and by the ID-consumption framing. It is clearly distinguishable from meta_list_pages, meta_list_pixels and the sibling ads_list_audiences (different platform).

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 tells the agent what the returned IDs are FOR — passing them as custom_audience_ids or excluded_custom_audience_ids into meta_create_adset/meta_update_adset, with the existing-customer exclusion case spelled out. That is genuine downstream guidance, but there is no statement of when to call this tool rather than alternatives, nor any prerequisite or exclusion context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_campaignsMeta Ads: List campaignsA
Read-only
Inspect

Meta-Kampagnen des Ad-Accounts auflisten (Status, Ziel, Budgets in EUR); issues zeigt Delivery-Probleme aus issues_info, wenn vorhanden. Felder je Kampagne: status, effective_status, objective, daily_budget_eur/ lifetime_budget_eur (CBO = eines davon gesetzt), bid_strategy (nur bei CBO, sonst null — dann liegt sie am Adset), spend_cap_eur (Ausgabenlimit der Kampagne; null = kein Limit), budget_remaining_eur (nur bei CBO; null ohne Kampagnenbudget — dann liegt das Budget an den Adsets), special_ad_categories (Liste, [] = keine), buying_type (AUCTION/RESERVED), start_time, stop_time, updated_time, issues — zum Zurücklesen nach meta_create_campaign/ meta_update_campaign. start_time/stop_time leitet Meta aus den Adsets ab (null ohne Adset-Enddatum) — das Enddatum wird je Adset gesetzt (meta_update_adset end_time). limit: max. Anzahl (Default 50). Wird abgeschnitten (Meta meldet weitere Seiten), kommt statt der Liste ein Objekt mit result und warning zurück — dann limit erhöhen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The critical behavioral trait is disclosed: when Meta reports more pages, the tool returns an object with result and warning instead of a list, and the agent should raise limit. It also explains the null semantics per field (bid_strategy null means set at adset level, budget_remaining null means no campaign budget), which is real context beyond readOnlyHint/openWorldHint. Nothing contradicts the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and pagination warning are front-loaded, but the bulk of the text is a field-by-field enumeration of return values that an output schema already covers. It is long for a two-parameter list tool and the redundant field list dilutes the truly important sentences.

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?

Everything needed to call it correctly (limit semantics, workspace, pagination failure mode) is present, and the provenance of start_time/stop_time from adsets is a useful caveat. The return-field detail is redundant given the output schema, so it is complete but not efficiently so.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does so: limit is max count with default 50 and a defined truncation consequence; workspace is the customer workspace slug and is optional when only one workspace exists.

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?

States a specific verb and resource ('Meta-Kampagnen des Ad-Accounts auflisten') plus the key dimensions returned, so it is clearly distinguishable from meta_list_adsets/meta_list_ads. It does not name those siblings explicitly, so it stops just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit read-back-after-write context ('zum Zurücklesen nach meta_create_campaign/meta_update_campaign'), which tells the agent when to reach for it. No exclusion guidance (e.g. when to use meta_campaign_performance instead of this list) is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_custom_conversionsMeta Ads: List custom conversionsB
Read-only
Inspect

Custom Conversions des Werbekontos auflisten (Regel, Ereignistyp, Wert). Ohne definierte Custom Conversion lässt sich nur auf rohe Pixel-Ereignisse optimieren. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

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 and openWorldHint=true, so the safety profile is covered by structured data. The description adds useful context about what fields each item carries, but says nothing about pagination behavior, result limits, or pagination-relevant use of the limit parameter beyond what already exists in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the action, follows with compact context, and closes with the one parameter that most needs clarification. Three sentences with little waste, though the middle motivation sentence is somewhat tangential to selecting or invoking the tool.

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?

An output schema exists, so return values need not be explained, and the readOnly/openWorld annotations carry the safety profile. For a two-parameter list tool the main remaining gap is the undocumented limit parameter and lack of pagination guidance, keeping it at adequate-but-incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden. It usefully explains workspace ('Slug des Kunden-Workspace, optional bei nur einem Workspace'), compensating for one parameter, but the limit parameter (default 50) is left completely undocumented in both schema and description, leaving a real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Custom Conversions des Werbekontos auflisten') and enumerates what is returned (Regel, Ereignistyp, Wert), so an agent can tell this is a read/list operation on custom conversions. It does not explicitly contrast with the sibling meta_create_custom_conversion, but the list-vs-create distinction is inherently clear.

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 sentence 'Ohne definierte Custom Conversion lässt sich nur auf rohe Pixel-Ereignisse optimieren' supplies the motivating context for why one would fetch this data, and the workspace note implies scope. However, there is no explicit when-to-use / when-not, and no routing to alternatives such as meta_list_pixels for raw event inspection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_lead_formsMeta Ads: List lead formsA
Read-only
Inspect

Lead-Formulare (Instant Forms) einer Facebook-Page auflisten — Name, ID, Status und Lead-Zahl je Formular. Beantwortet „wie heißt Formular X?", ohne zu raten (Meta führt die Formulare an der Page, nicht am Werbekonto). Setzt die Meta-Berechtigungen pages_show_list, pages_manage_ads und leads_retrieval voraus; fehlen sie, kommt Metas Berechtigungsfehler als {error, code, hint} zurück. Hilft Neuverbinden mit diesen Scopes nicht, sind sie für diese App noch nicht freigeschaltet — dann Honeyfield-Support kontaktieren. Nutzbar sind nur die Pages, die dem Werbekonto dieses Workspace zugeordnet sind (promote_pages) — nicht alle Pages, die der verbundene Facebook-Nutzer verwaltet (meta_list_pages zeigt mehr). Keine Page am Werbekonto: error=no_pages (Page im Business Manager dem Werbekonto zuordnen). Gibt Meta für die Page keinen Page-Token heraus: {error: no_page_token, code, message (Metas Grund), pages, hint}. page_id: optional; ohne Angabe wird die einzige Page des Werbekontos genommen, bei mehreren listet der Fehler page_id_required die Auswahl. Eine Page außerhalb des Werbekontos → error=page_not_found mit available_pages. limit: max. Formulare (Default 100) — es kommt nur die erste Seite, weitere Formulare werden ohne Hinweis abgeschnitten. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
page_idNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply readOnlyHint/openWorldHint, yet the description discloses required OAuth scopes, the exact error envelopes ({error, code, hint}, no_pages, no_page_token, page_id_required, page_not_found with available_pages), and critically that limit truncates results with no pagination or warning. That is exactly the operational detail the annotations cannot carry.

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?

Purpose and scope constraints are front-loaded, followed by per-parameter notes; nearly every sentence carries operational value. It is somewhat long for a three-parameter read tool, and the Honeyfield-support escalation, while actionable, is the weakest use of space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the remaining burden is permissions, error paths, Page scoping, and truncation behavior — all documented in detail. Nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate — and it does for all three parameters: page_id defaults to the workspace's single Page and fails with page_id_required/page_not_found otherwise, limit caps forms with silent truncation at default 100, and workspace is optional for single-workspace accounts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Lead-Formulare (Instant Forms) einer Facebook-Page auflisten") and enumerates the returned fields (Name, ID, Status, Lead-Zahl). It also explicitly disambiguates from the sibling meta_list_pages ("meta_list_pages zeigt mehr"), so an agent can pick it without opening schemas.

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?

Gives clear context: it answers "wie heißt Formular X?" and clarifies that Meta keeps forms on the Page, not the ad account, and that only promote_pages-associated Pages are usable. The alternative meta_list_pages is named, but related siblings such as meta_list_leads (for actual lead data) and meta_create_lead_form are not contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_leadsMeta Ads: List leadsA
Read-only
Inspect

Leads eines Instant Forms der letzten N Tage: je Lead id, created_time, campaign_id, adset_id, ad_id, is_organic, platform und answers ({Feldname: Antwort}). Personenbezogene Daten — nur, wenn der Workspace Meta-Lead-Daten im Portal freigegeben hat; sonst error=lead_data_disabled (Anzahl je Formular liefert meta_list_lead_forms auch ohne Freigabe). Setzt die Meta-Berechtigung leads_retrieval voraus. Das Formular muss zur gewählten Page des Werbekontos dieses Workspace gehören, sonst error=foreign_object (keine Leads). form_id: aus meta_list_lead_forms. page_id: wie bei meta_list_lead_forms. days: Zeitraum 1–90 (Default 30). limit: max. Leads (Default 100, max. 500); mehr vorhanden → {result, warning}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
form_idYes
page_idNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, but the description adds substantial behavioral context: personal-data access depends on workspace release, leads_retrieval permission is required, foreign form/page combinations return no leads, and exceeding the limit produces a warning alongside results.

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 dense but appropriately front-loaded with the core operation and important privacy constraints before the parameter notes. It includes return-field detail despite an output schema existing, which is slightly redundant, but the overall text remains purposeful.

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 five-parameter, permission-sensitive listing tool, the description covers data scope, required permissions, ownership constraints, error cases, pagination-limit behavior, defaults, and parameter sources. Although an output schema exists, the description goes beyond it to explain access and failure conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all parameter meaning. It does: form_id comes from meta_list_lead_forms, page_id follows the same pattern, days is 1–90 with default 30, limit defaults to 100 and maxes at 500 with a warning if more exist, and workspace is optional when only one workspace exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: listing leads from an Instant Form for the last N days, and enumerates the returned fields. It is clearly distinguishable from meta_list_lead_forms, which it identifies as the source of form_id and the fallback for lead counts without data permission.

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 covers the prerequisites (workspace lead-data release and leads_retrieval permission), names meta_list_lead_forms as the alternative for counts without release, and explains when errors such as lead_data_disabled or foreign_object occur.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_pagesMeta Ads: List pagesA
Read-only
Inspect

Facebook-Pages, die für Anzeigen nutzbar sind — die page_id ist Pflicht für meta_create_ad (Anzeigen laufen im Namen einer Page). Vereinigung aus den dem Werbekonto zugeordneten Pages (promote_pages) und den vom verbundenen Nutzer verwalteten Pages (/me/accounts); die Quelle wird je Page nicht ausgewiesen. Lehnt meta_create_ad die Page ab (step='creative'), fehlt der Page die Verknüpfung mit dem Business/Werbekonto. Die Lead-Tools (meta_list_lead_forms, meta_create_lead_form, meta_archive_lead_form, meta_list_leads) akzeptieren nur die dem Werbekonto zugeordneten Pages. Je Page: leadgen_tos_accepted (true = ein Page-Admin hat die Lead-Ads- Nutzungsbedingungen akzeptiert, Voraussetzung für jede Lead-Anzeige; false = noch nicht — Admin muss sie unter facebook.com/ads/leadgen/tos für genau diese Page annehmen, per API nicht möglich; null = nicht lesbar: Meta gibt für die Page keinen Page-Token heraus — Scope pages_show_list fehlt, oder der verbundene Nutzer hat keinen Zugriff auf die Page, etwa weil sie einem fremden Business-Portfolio gehört) und leadgen_tos_acceptance_time (Zeitpunkt, sonst null). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/openWorldHint, but the description adds much more: the result is a union of two sources with the source hidden per page, and the leadgen_tos_accepted tri-state is decoded (true/false/null) including exactly why null occurs (missing pages_show_list scope or no user access). The API-not-possible remediation note is directly actionable.

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?

Dense but front-loaded: purpose and the page_id dependency come first, the per-page field semantics follow. The leadgen TOS passage is long but earns its place because those fields are what the call returns; a bulleted layout would improve scanability slightly.

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?

An output schema exists so return values needn't be explained, yet the description still decodes the two leadgen fields the agent will have to interpret. Combined with the permissions caveat and the consume-side rules, an agent has everything needed to call and act on the result.

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 single parameter has 0% schema description coverage, so the description must compensate, and it does: workspace is defined as the client workspace slug and marked optional when only one workspace exists. Only the exact slug format is left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Facebook-Pages, die für Anzeigen nutzbar sind') and immediately scopes it: the union of promote_pages and /me/accounts. It also names the downstream tools (meta_create_ad, lead tools) so an agent can place the tool in its workflow rather than guessing.

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 says the page_id is mandatory for meta_create_ad and that lead tools accept only account-assigned pages, which is a genuine when/when-not distinction. It even gives a diagnostic rule: if meta_create_ad rejects the page at step='creative', the page lacks the business/ad-account link.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_list_pixelsMeta Ads: List pixelsA
Read-only
Inspect

Meta-Pixel (Datasets) des Ad-Accounts auflisten — id, Name, angelegt am, zuletzt gefeuert (schnellster Check, ob ein Pixel Events empfängt). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true and openWorldHint=true already tell the agent this is a safe, live-data read, so the description need not re-establish that. It adds that 'zuletzt gefeuert' is a firing-status signal, but says nothing about auth requirements, result limits, or empty-result behavior.

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?

Two short sentences: the resource and its key fields first, the parameter note second. No filler, though the parameter note could have been folded more tightly into the first clause.

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?

An output schema exists, so return values need not be spelled out, and the description still names the most decision-relevant fields. For a single-optional-param read tool with rich annotations this is essentially complete; only pagination/size expectations are missing.

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 0%, so the description carries the burden and does so: it defines 'workspace' as the customer workspace slug and states it is optional when only one workspace exists. That is meaningful semantics absent from the schema; only the format of the slug itself is left implicit.

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?

Specific verb+resource: lists Meta pixels (Datasets) for ad accounts, and enumerates the fields returned (id, name, created, last fired). An agent can distinguish it from meta_create_pixel and meta_pixel_stats, though the siblings are never named explicitly.

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 parenthetical 'schnellster Check, ob ein Pixel Events empfängt' implies a monitoring use case that points away from meta_pixel_stats, but no alternative tool or when-not condition is stated. Usage must be inferred from the described output fields.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_pixel_statsMeta Ads: Pixel statsA
Read-only
Inspect

Meta-Pixel-Event-Statistiken der letzten N Tage — Gesamtsummen und Tages-Verlauf je Wert (Pixel-ID via meta_list_pixels ermitteln). Zeitraum: heute minus N Tage (00:00) bis jetzt — der heutige Tag ist enthalten, aber unvollständig.

aggregation: 'event' (Default: PageView/Purchase/Lead/…), alternativ z.B. 'device_type', 'browser_type', 'host', 'url'. pixel_id muss dem Werbekonto des Workspace zugeordnet sein (meta_list_pixels), sonst {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
pixel_idYes
workspaceNo
aggregationNoevent

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the bar is lower, yet the description still adds real value: the window is defined as today minus N days at 00:00 through now with the current day included but incomplete, and the exact error payload {'error': 'foreign_object'} is disclosed for pixels not bound to the workspace's ad account.

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?

Front-loaded with the purpose and time window before per-parameter notes, and every sentence carries information (including the partial-day caveat). It is dense and uses a compact telegraphic style, but nothing is repetitive or filler.

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?

An output schema exists, so return values need not be explained; combined with full parameter semantics, the time-window edge case, and the documented error case, an agent has everything needed to invoke this read-only stats tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the full burden, and it does: days is defined via the calendar-window rule, aggregation lists concrete accepted values (event/PageView/Purchase/Lead, device_type, browser_type, host, url), pixel_id gets a sourcing route and a constraint, and workspace is described as a slug that is optional when only one workspace exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (Meta pixel event statistics), the output shape (totals plus daily progression per value), and the exact time window. An agent can distinguish it from meta_list_pixels (which only supplies the ID) or meta_ad_performance without consulting another schema.

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 routes the agent to meta_list_pixels to obtain pixel_id and states the foreign_object failure condition, which is actionable precondition guidance. It does not, however, contrast this tool with other reporting siblings such as meta_ad_performance or meta_campaign_performance, so it stops short of full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_update_adsetMeta Ads: Update adsetA
Destructive
Inspect

Meta-Adset ändern: Name, Status, Tages- oder Laufzeitbudget (EUR), Bid-Strategie/-Betrag (EUR), DSA-Angaben (dsa_beneficiary/dsa_payor, EU-Pflicht), advantage_audience (KI-Zielgruppenerweiterung an/aus), Platzierungen, promoted_object/destination_type und/oder Targeting (Länder, Geo-Verfeinerung, Ausschlüsse, Audiences, Interessen, Sprachen). status: ACTIVE = starten, PAUSED = pausieren (zum Stoppen PAUSED nehmen — umkehrbar), ARCHIVED = gestoppt und nur noch lesbar (Berichte bleiben), DELETED = endgültig gelöscht, NICHT umkehrbar. promoted_page_id bzw. pixel_id + custom_event_type: promoted_object des Adsets (Page für Lead-Adsets; Pixel + Ereignis wie LEAD/PURCHASE für Conversion-Adsets). Es wird nur gesendet, was übergeben wurde; pixel_id und custom_event_type immer zusammen (error=pixel_event_required), unbekannte Ereignisse error=invalid_custom_event_type. Ob Meta das promoted_object eines bestehenden Adsets ändern lässt, hängt vom Optimierungsziel ab — lehnt Meta ab, kommt der Fehler durch. destination_type: laut Meta-Enum (WEBSITE, ON_AD, MESSENGER, WHATSAPP, INSTAGRAM_DIRECT, ...); error=invalid_destination_type sonst. Zurücklesen via meta_list_adsets. daily_budget / lifetime_budget: nie beides (error=budget_conflict). lifetime_budget braucht ein end_time — mitgegeben oder schon am Adset gesetzt, sonst error=end_time_required. Ein Wechsel Tages-↔Laufzeit- budget ist bei Meta eingeschränkt; lehnt Meta ab, kommt der Fehler durch. bid_strategy: LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP, LOWEST_COST_WITH_MIN_ROAS (BID_CAP/COST_CAP brauchen bid_amount, MIN_ROAS braucht min_roas: error=min_roas_required — und kennt KEIN bid_amount: error=bid_amount_not_applicable). min_roas: Mindest-ROAS als Verhältnis (2.5 = 250 %, erlaubt 0.01–1000), geht als bid_constraints.roas_average_floor (×10000) raus. Umstellen auf Mindest-ROAS: zusammen mit bid_strategy=LOWEST_COST_WITH_MIN_ROAS. min_roas OHNE bid_strategy liest die bestehende Strategie (Adset; bei CBO die der Kampagne) und sendet nur den neuen Floor, wenn sie schon LOWEST_COST_WITH_MIN_ROAS ist (bei CBO ohne bid_strategy — die liegt an der Kampagne); jede andere Strategie: error=min_roas_not_applicable, nichts geändert (kein stilles Umschalten). Die Antwort nennt den gesendeten Wert in min_roas; Zurücklesen via meta_list_adsets. bid_amount OHNE bid_strategy liest die bestehende Strategie des Adsets und behält sie bei (COST_CAP bleibt COST_CAP); nur ein Adset mit LOWEST_COST_WITHOUT_CAP wechselt auf LOWEST_COST_WITH_BID_CAP, weil ein Betrag dort sonst nicht wirkt. Nutzt das Adset (oder bei CBO die Kampagne) LOWEST_COST_WITH_MIN_ROAS, gibt es kein bid_amount: error=bid_amount_not_applicable. Die Antwort nennt in bid_strategy, was gesendet wurde. Ist die bestehende Strategie nicht lesbar, bricht das Tool ab, ohne etwas zu ändern. Targeting wird gemerged — nur übergebene Teile werden ersetzt; Listen (countries, cities, regions, zips, custom_locations, interest_ids, behavior_ids, locales, excluded_custom_audience_ids) ersetzen ihren Bestand komplett, eine LEERE Liste entfernt ihn (cities=[] löscht alle Städte, interest_ids=[] alle Interessen; excluded_geo_locations={'zips': []} löscht den PLZ-Ausschluss; countries=[] entfernt countries UND country_groups aus geo_locations). geo_locations/excluded_geo_locations werden schlüsselweise gemergt. custom_audience_ids=[] und genders=[] sind dagegen keine Angabe (unverändert). Geo-Verfeinerung — Schlüssel via meta_targeting_search: cities=[{'key': '2420605', 'radius_km': 17}] (17–80 km, error=invalid_city_radius), regions=['1234'], zips=['AT:5020'] (Landespräfix Pflicht, error=invalid_zip_key), custom_locations=[{'latitude': 47.8, 'longitude': 13.04, 'radius_km': 10}] oder [{'address_string': '...', 'radius_km': 5}] (1–80 km, error=invalid_custom_location). Städte und Umkreise aus meta_list_adsets ({'key', 'radius', 'distance_unit': 'kilometer', ...}) dürfen 1:1 zurückgegeben werden; Meilen (distance_unit='mile') und unbekannte Felder werden abgelehnt (error=invalid_city_radius/invalid_cities), nie still umgedeutet. Konfliktregel von Meta (Subcode 1487756): Orte, die ineinander liegen, dürfen nicht gemeinsam EINGESCHLOSSEN werden (Land + Stadt darin, Region + Stadt darin, Stadt-Umkreis + PLZ darin) — Meta lehnt den Aufruf ab, der Fehler kommt mit hint. Deshalb: Verfeinerung OHNE countries ENTFERNT bestehende countries UND country_groups (z.B. 'europe' aus dem Ads Manager) aus dem Targeting und meldet das in warnings; soll ein Land zusätzlich gelten (nur sinnvoll für Orte in ANDEREN Ländern, z.B. DE + Salzburg/AT), countries mitgeben — dann bleibt es stehen, ohne Warnung. countries ersetzt eine bestehende country_groups (mit Warnung) — Ländergruppen lassen sich über dieses Tool nicht setzen. Ausschlüsse INNERHALB eines Gebiets sind erlaubt (excluded_geo_locations, z.B. countries=['AT'] minus Stadt Salzburg). Bleibt nach dem Merge kein Geo-Eintrag übrig (auch nach countries=[]): error=geo_required, nichts geändert. excluded_geo_locations: Dict wie {'zips': ['AT:5020']}, {'cities': [...]}, {'regions': [...]}, {'countries': ['CH']}, {'custom_locations': [...]} (error=invalid_excluded_geo_locations bei anderen Schlüsseln). excluded_custom_audience_ids: Custom Audiences ausschließen (IDs aus meta_list_audiences). interest_ids / behavior_ids: IDs aus meta_targeting_search (kind='interest'/'behavior'). locales: Meta-Locale-Schlüssel (Ganzzahlen, kind='locale'; error=invalid_locales). Zurücklesen: meta_list_adsets zeigt den gemergten Stand im targeting. publisher_platforms schränkt die Plattformen ein: ['facebook','instagram'] schaltet z.B. Audience Network ab. Positionen abgewählter Plattformen werden dabei mit entfernt. positions: je Plattform, z.B. {'instagram': ['stream','reels']}. device_platforms: ['mobile'] und/oder ['desktop']. start_time / end_time: Zeitplan; end_time ist das Traffic-Enddatum. Je als Datum '2026-09-30' (= Tagesende) oder ISO-Zeitstempel; ohne Offset wird die Zeitzone des Werbekontos angehängt (Meta würde sonst UTC annehmen). Zurücklesen via meta_list_adsets — Meta braucht nach dem Schreiben ein paar Sekunden, bis der neue Stand sichtbar ist. Bei EU-/EWR-Targeting ohne dsa_beneficiary warnt das nicht-blockierende warnings-Feld. Bei status=ACTIVE wird der DSA-Stand best-effort geprüft; dsa_check: "unavailable" markiert einen fehlgeschlagenen Advisory-Check. Erfasst werden alle Geo-Einträge mit Ländercode sowie country_groups (europe/eea/worldwide/eurozone/european_union); nicht auswertbare Geo-Listeneinträge erscheinen als UNKNOWN. validate_only: True lässt Meta den Aufruf prüfen, ohne etwas zu ändern. Ein Erfolg heißt: Meta würde die Änderung annehmen. IDs muessen zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
zipsNo
citiesNo
statusNo
age_maxNo
age_minNo
gendersNo
localesNo
regionsNo
adset_idYes
end_timeNo
min_roasNo
pixel_idNo
countriesNo
dsa_payorNo
positionsNo
workspaceNo
bid_amountNo
start_timeNo
behavior_idsNo
bid_strategyNo
daily_budgetNo
interest_idsNo
validate_onlyNo
dsa_beneficiaryNo
lifetime_budgetNo
custom_locationsNo
destination_typeNo
device_platformsNo
promoted_page_idNo
custom_event_typeNo
advantage_audienceNo
custom_audience_idsNo
publisher_platformsNo
excluded_geo_locationsNo
excluded_publisher_list_idsNo
excluded_custom_audience_idsNo
excluded_publisher_categoriesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the destructiveHint=true annotation: DELETED is called out as final and non-reversible, targeting is described as a merge where an empty list deletes existing entries, geo refinements without countries silently strip country_groups (reported in `warnings`), and a long catalogue of error codes (budget_conflict, end_time_required, min_roas_not_applicable, geo_required, foreign_object) is disclosed. Side effects, validation via validate_only, and eventual-consistency lag on read-back are all stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded well — the field inventory and status semantics come first — but the body is a ~1,300-word wall of undifferentiated prose, and passages such as the min_roas / bid_amount interaction are convoluted enough that an agent must re-read them. Substantively almost every sentence carries information, yet the density and lack of scannable grouping (no headings or bullets) costs it.

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 destructive, high-blast-radius mutation tool with 38 parameters, no schema documentation and a declared output schema, the description supplies everything an agent needs to act safely: merge behavior, irreversibility, error-driven preconditions, and which response fields (`warnings`, `dsa_check`, `min_roas`, `bid_strategy`) to inspect afterwards.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage across 38 parameters, the description carries the entire burden and largely succeeds: budget mutual exclusion, bid_strategy enum values with their required companions, min_roas scaling (×10000) and range 0.01–1000, geo key formats with radius bounds and required country prefixes, and list-replacement vs key-wise-merge semantics are all spelled out. Only age_min/age_max and excluded_publisher_list_ids/excluded_publisher_categories are left undocumented, a small gap against the rest.

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?

Opens with a specific verb+resource ('Meta-Adset ändern') and immediately enumerates the mutatable surface: name, status, budgets in EUR, bid strategy/amount, DSA fields, advantage_audience, placements, promoted_object/destination_type and targeting. An agent can distinguish this from meta_update_campaign, meta_create_adset and meta_update_ad_status from the first paragraph alone.

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?

Gives explicit decision rules for the ambiguous cases (status: ACTIVE=start, PAUSED=pause/reversible stop, ARCHIVED=read-only, DELETED=irreversible) and routes read-back to meta_list_adsets and targeting lookups to meta_targeting_search. What is missing is any explicit statement of when to prefer a sibling such as meta_update_campaign or when a change should instead be done at campaign level (CBO).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_update_ad_statusMeta Ads: Update ad statusA
Destructive
Inspect

Status einer oder MEHRERER Meta-Ads ändern: ACTIVE/PAUSED/ARCHIVED/DELETED. ad_ids: Liste für Massenaktionen — "pausiere alle 22" ist EIN Aufruf. Die Antwort bestätigt den neuen Status je Anzeige; ein danach weiterhin angezeigtes effective_status=WITH_ISSUES ist Review-Historie und heißt NICHT, dass die Anzeige noch läuft — Kontroll-Listungen sind unnötig. validate_only: True lässt Meta den Aufruf prüfen, ohne etwas zu ändern. Ein Erfolg heißt: Meta würde die Änderung annehmen. IDs muessen zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
ad_idNo
ad_idsNo
statusNo
workspaceNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and openWorldHint=true; the description adds genuinely new behavioral facts – the response confirms per-ad status, a lingering effective_status=WITH_ISSUES is review history rather than a live ad, and foreign IDs return {'error': 'foreign_object'}. That is real operational context the annotations cannot carry.

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?

Front-loaded with purpose and the bulk/validate_only guidance before the caveats. The WITH_ISSUES paragraph is a bit long and the mixed German/English key names add mild parsing friction, but every section still carries useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is optional; the description still usefully explains what a success means and how to interpret a stale effective_status. For a destructive mutation tool the remaining gap is the ad_id/ad_ids conflict rule, which an agent could plausibly get wrong.

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% schema description coverage the description must compensate, and it does: it defines the status value set (absent from the schema, which is a bare string), explains ad_ids as the bulk path, and clarifies validate_only and the optional workspace. The one gap is the relationship between ad_id and ad_ids (exclusive? which wins if both sent).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Status einer oder MEHRERER Meta-Ads ändern') and enumerates the exact target states (ACTIVE/PAUSED/ARCHIVED/DELETED). This clearly separates it from meta_update_adset, meta_update_campaign and the Google-side ads_update_ad_status sibling.

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?

Gives concrete routing guidance: use ad_ids for bulk ('pausiere alle 22' ist EIN Aufruf) and validate_only for a dry run, plus a clear when-not clause about foreign-account IDs. It does not name sibling alternatives (e.g. meta_delete_campaign vs. status=DELETED), which keeps it out of 5 territory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_update_campaignMeta Ads: Update campaignA
Destructive
Inspect

Meta-Kampagne ändern: Name, Status und/oder Tages- bzw. Laufzeitbudget. status: ACTIVE = starten, PAUSED = pausieren (zum Stoppen PAUSED nehmen — jederzeit umkehrbar), ARCHIVED = gestoppt und nur noch lesbar (Berichte bleiben, keine Auslieferung mehr), DELETED = endgültig gelöscht, NICHT umkehrbar (wie meta_delete_campaign). daily_budget / lifetime_budget: EUR, nur bei CBO-Kampagnen und nie beides (error=budget_conflict). Ohne CBO bricht das Tool mit error=budget_not_on_campaign ab — dann Budget je Adset via meta_update_adset ändern (Adsets via meta_list_adsets). Ein Wechsel Tages-↔Laufzeitbudget ist bei Meta nicht erlaubt (Meta lehnt ab, nichts wird geändert) — dafür ein neues Adset bzw. eine neue Kampagne anlegen. Enddatum: gibt es an der Kampagne nicht — Meta leitet Start/Ende aus den Adsets ab; end_time je Adset via meta_update_adset setzen. validate_only: True lässt Meta den Aufruf prüfen, ohne etwas zu ändern. Ein Erfolg heißt: Meta würde die Änderung annehmen. IDs muessen zum Werbekonto des Workspace gehoeren — IDs eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
statusNo
workspaceNo
campaign_idYes
daily_budgetNo
validate_onlyNo
lifetime_budgetNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint/openWorldHint annotations by spelling out reversibility per status (PAUSED reversible, ARCHIVED read-only with reports retained, DELETED permanent), the exact error contracts (budget_conflict, budget_not_on_campaign, foreign_object), and the cross-account ID restriction. It also documents validate_only as a true dry-run whose success means Meta would accept the change.

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?

Purpose is front-loaded, then parameters are treated in labeled blocks (status:, daily_budget/lifetime_budget:, validate_only:) which makes skimming easy. Dense but nearly every clause carries a constraint or failure mode; a few parentheticals could be trimmed.

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 7-parameter destructive mutation tool this covers the decision-relevant surface: what can be changed, what cannot, which errors arise, how to preview safely, and where the fallback tools live. An output schema exists, so return values need not be described.

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 0%, so the description carries the burden and mostly succeeds: status values, budget currency/constraint rules, validate_only semantics, and optional workspace are all explained. Only campaign_id and name receive no semantic treatment beyond being named, leaving a small gap.

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 opening line names a specific verb and resource plus the exact fields it mutates ('Meta-Kampagne ändern: Name, Status und/oder Tages- bzw. Laufzeitbudget'). It is immediately distinguishable from sibling mutation tools such as meta_delete_campaign or meta_update_adset, and those siblings are named later where relevant.

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?

Explicit routing rules: to stop temporarily use PAUSED, to delete irreversibly use DELETED/meta_delete_campaign, and if the campaign has no CBO budget, change budget per adset via meta_update_adset (with meta_list_adsets to find them). It also states what is not possible (switching daily↔lifetime budget; end dates on campaigns) and gives the required workaround.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_upload_ad_imageMeta Ads: Upload ad imageAInspect

Bild von einer öffentlichen URL in die Meta-Ad-Bildbibliothek hochladen (max. 8 MB) — liefert den image_hash für meta_create_ad. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
image_urlYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so safety framing is covered. The description adds real value beyond that with the 8 MB maximum and the fact that the asset lands in a persistent image library. It does not explain which image formats are accepted or what happens on re-upload of the same URL.

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?

Two short, front-loaded statements with no filler: the core action and size limit come first, then the return value and the workspace caveat. The parenthetical is doing useful work rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, an output schema present and full annotation coverage, the description covers the essentials an agent needs to invoke the tool correctly, including the workspace fallback behavior. The only meaningful omission is supported image formats, which could cause a failed upload.

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 0%, so the description must carry the load and it largely does: image_url is defined as a public URL with an 8 MB limit, and workspace is explained as a customer-workspace slug that is optional when only one workspace exists. Accepted formats or URL scheme constraints are still unstated.

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?

States a specific verb and resource: an image is uploaded from a public URL into the Meta ad image library. It goes beyond a bare restatement by noting the 8 MB ceiling and the returned image_hash, which anchors it to the downstream create-ad flow. It does not explicitly distinguish itself from the near sibling meta_upload_ad_video, but the image/video split is self-evident from the name.

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 supplies clear operating context: the source must be a public URL and the result (image_hash) is consumed by meta_create_ad, which tells the agent where this tool sits in the workflow. There is no explicit 'do not use when' clause or alternative-tool routing, so it stops short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_upload_ad_videoMeta Ads: Upload ad videoAInspect

Video von einer öffentlichen URL in die Meta-Video-Bibliothek laden (Meta lädt selbst herunter). Verarbeitung ist asynchron — Status via meta_video_status prüfen, dann meta_create_ad mit der video_id. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
video_urlYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as a non-read, non-destructive, open-world write; the description adds the two facts annotations cannot convey — the source must be a public URL and processing is asynchronous, so results are not immediate. No side effects on failure or duplicate handling are described.

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 short clauses ordered by importance: what it does, how processing behaves, what to do next, plus a one-line parameter note. Nothing is padded.

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?

An output schema exists so return details need not be restated, and the async lifecycle plus downstream handoff are covered. The only real gap is the undocumented name parameter and what happens if the URL is not publicly reachable.

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 0%, so the description must carry parameter meaning. It explains workspace (customer slug, optional with a single workspace) and implies video_url must be publicly reachable, but the optional name parameter is never mentioned, leaving one of three parameters undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (Video von öffentlicher URL in die Meta-Video-Bibliothek laden) and adds the crucial mechanism that Meta downloads the file itself, which distinguishes it from a file-upload tool and from meta_upload_ad_image.

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?

Gives an explicit follow-up workflow: poll meta_video_status because processing is async, then pass the video_id to meta_create_ad. It also clarifies when the workspace parameter can be omitted. It stops short of saying when not to use this tool, but the sequencing guidance is concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_video_statusMeta Ads: Video statusA
Read-only
Inspect

Verarbeitungsstatus eines Meta-Ad-Videos ('ready' = für meta_create_ad nutzbar), inkl. Dauer und Auto-Thumbnail. video_id: nur Ziffern (aus meta_upload_ad_video), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
video_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds useful behavioral details: it returns processing status plus duration and auto-thumbnail, and invalid video_id values produce {'error':'invalid_id'}, which is valuable validation context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then efficiently documents the ready-status meaning, invalid-ID behavior, and optional workspace parameter. Every clause adds actionable information with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and annotations cover the read-only, open-world nature, the description provides everything needed to call the tool correctly: purpose, workflow relation, parameter formats, optionality, and error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden for both parameters. It specifies that video_id must contain only digits and comes from meta_upload_ad_video, and that workspace is the customer workspace slug and optional when only one workspace exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: retrieving the processing status of a Meta ad video, including duration and auto-thumbnail. It also differentiates from siblings by naming meta_upload_ad_video as the source of video_id and meta_create_ad as the consumer when status is 'ready'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear workflow context: call this after uploading a video via meta_upload_ad_video and before using it with meta_create_ad when status is 'ready'. It does not explicitly list alternatives or when not to use the tool, but the implied usage is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_accountOpenAI Ads (Beta): AccountA
Read-only
Inspect

BETA — OpenAI-Ads-Werbekonto (Anzeigen in ChatGPT): id, name, status, review_status (Marken-Prüfung; ohne approved liefert das Konto nicht aus), review_reason, currency, timezone, url. Guter erster Aufruf, um zu prüfen, ob der hinterlegte Schlüssel zum richtigen Konto gehört. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds context the annotations don't carry: review_status is a brand review gate and the account will not serve ads unless it is 'approved'. That is a meaningful behavioral fact an agent cannot infer from structured fields, though other traits (rate limits, beta restrictions, what the URL field represents) are not covered.

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?

It is a compact two-part block that front-loads the returned field set, then the usage hint, then the parameter note. The field enumeration is slightly redundant with the output schema, but each field carries semantic weight (especially review_status), so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't restate return shapes, and it focuses instead on the delivery-gating review_status fact and the optional workspace scoping — the two things an agent needs to call and interpret this correctly. The remaining gap is minor: no note on beta limitations or failure modes when the key maps to the wrong account.

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 0%, so the description must compensate, and it does: it defines 'workspace' as the customer workspace slug and says it is optional when the key resolves to a single workspace. That explains both the meaning and the conditional optionality of the only parameter, though it does not state how the slug is obtained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb and resource: it fetches the OpenAI Ads account including id, name, status, review_status, review_reason, currency, timezone and url. This is clearly distinct from the openai_ads_create_* / list_campaigns siblings, which operate on campaigns, ads or conversion settings rather than on account-level metadata. It stops short of naming any sibling as the tool to use for those adjacent tasks.

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?

'Guter erster Aufruf, um zu prüfen, ob der hinterlegte Schlüssel zum richtigen Konto gehört' gives a clear use context: a first/verification call to validate account credentials. There is no explicit when-not guidance and no alternative tool is named, so it lands just below the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_conversion_setupOpenAI Ads (Beta): Conversion setupB
Read-only
Inspect

BETA — Conversion-Messung des OpenAI-Ads-Kontos: pixels (source_id für Event-Einstellungen, pixel_id für Website-Snippet und Conversions API) und event_settings (id, name, event_type, custom_event_name, Zuordnungsfenster, campaigns = Kampagnen, die dieses Ereignis zählen). Ein Ereignis zählt nur bei Kampagnen, denen es zugeordnet ist (openai_ads_update_campaign). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

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 and openWorldHint=true, so the safety profile is covered. The description adds genuine semantics beyond that — the pixel/event_settings relationship and the rule that events only count for assigned campaigns — but says nothing about auth requirements, rate limits, or what happens in a multi-workspace account beyond the parameter note.

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?

Dense but front-loaded: the resource and its two data families come first, the campaign-assignment rule and the workspace note follow. The long parenthetical enumerating event_settings fields partly duplicates the output schema, which costs a little, but there is no filler or preamble.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is low-complexity (one optional param), annotations cover the safety profile, and an output schema exists — so the return values need not be described, yet the description documents them anyway. What is missing is the usage boundary against the create_* conversion siblings; also note the description is in German while the surrounding tool metadata and siblings are English, which may slow some agents.

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 0% for the single 'workspace' parameter, so the description carries the burden and does: it defines the value as a customer workspace slug and states it is optional when only one workspace exists, which the bare anyOf[string,null] schema does not convey.

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?

Names the concrete resource — the conversion measurement setup of the OpenAI Ads account — and enumerates what it exposes: pixels (source_id for event settings, pixel_id for the website snippet and Conversions API) and event_settings (id, name, event_type, custom_event_name, attribution window, assigned campaigns). No explicit retrieval verb ('get'/'list'), and 'setup' could be misread as a write operation, so it does not fully disambiguate from siblings like openai_ads_create_conversion_setting or openai_ads_create_pixel by name.

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 never states when to call this versus openai_ads_create_pixel / openai_ads_create_conversion_setting / openai_ads_insights. The only routing hint is a cross-reference — an event only counts for campaigns it is assigned to via openai_ads_update_campaign — which is domain context rather than a use/avoid condition for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_create_adOpenAI Ads (Beta): Create adAInspect

BETA — Anzeige (Chat-Card in ChatGPT) anlegen, immer PAUSIERT. Rückgabe mit preview_url (Vorschau, 24 h gültig) — dem Kunden zeigen, bevor aktiviert wird. name: intern, nicht sichtbar. title: 3–50 Zeichen. body: max. 100 Zeichen. target_url: Zielseite (https). Bild: image_url (öffentlich erreichbare Bild-URL, wird zu OpenAI hochgeladen) oder file_id einer schon hochgeladenen Datei. OpenAI prüft jede Anzeige (review_status in_review → approved/rejected). Ein identischer zweiter Aufruf legt nichts doppelt an. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
bodyYes
nameYes
titleYes
file_idNo
image_urlNo
workspaceNo
target_urlYes
ad_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: every ad is created PAUSED, the preview_url expires after 24h, images are uploaded to OpenAI, each ad enters a review pipeline (in_review → approved/rejected), and an identical repeat call is idempotent. These are the failure modes an agent must know about 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the two facts that matter most (beta, always paused, preview_url) before parameter notes. It is a single dense paragraph with no filler, though the run-on constraint listing could be broken up for faster scanning.

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?

An output schema exists, so return values need not be detailed, yet the description still flags preview_url and review_status. Combined with the review/idempotency behavior it is nearly sufficient for an 8-parameter mutation tool; only ad_group_id and any permission requirements go unaddressed.

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% schema description coverage the description must compensate, and it does for seven of eight parameters: internal-only name, title 3–50 chars, body max 100, https target_url, and the image_url vs. uploaded file_id alternative, plus the optional workspace slug rule. The required ad_group_id is never explained, leaving one material gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — creating a ChatGPT chat-card ad on OpenAI Ads — plus the beta framing. This distinguishes it cleanly from the many sibling ad-creation tools (ads_create_ad for Google, meta_create_ad, linkedin_create_ad_from_post) without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs showing the returned preview_url to the customer before activation, which is real usage guidance for this workflow. It does not, however, spell out when to choose this over the sibling ad-creation tools; the platform name only implies that routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_create_ad_groupOpenAI Ads (Beta): Create ad groupAInspect

BETA — Anzeigengruppe in einer OpenAI-Ads-Kampagne anlegen, immer PAUSIERT. context_hints: wichtigster Hebel — kurze Beschreibungen, in welchen Gesprächen bzw. für wen die Anzeige nützlich ist (z. B. 'Unternehmen in Österreich, die eine App entwickeln lassen wollen'); OpenAI wählt danach die passenden Chats aus. Gebote: ohne max_bid automatisch (Maximize clicks bzw. conversions) — nur bei clicks-/conversions-Kampagnen mit Tagesbudget. Sonst max_bid in Kontowährung: clicks = je Klick, conversions = Ziel-CPA, impressions = je Impression (CPM/1000). Ein identischer zweiter Aufruf legt nichts doppelt an. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
max_bidNo
workspaceNo
campaign_idYes
descriptionNo
context_hintsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: the ad group is always created PAUSED, and an identical repeat call will not create a duplicate (idempotency). Neither fact is expressible via readOnlyHint/destructiveHint/openWorldHint, so this is genuine disclosure an agent needs to reason about side effects and retries.

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?

Front-loaded with verb, resource, and the PAUSED caveat, then organized by labelled blocks (context_hints, Gebote, workspace). Dense but every sentence carries operational information; the only minor cost is that the parameter notes run together without visual separation from the core action statement.

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?

An output schema exists, so return values need not be explained. For a 6-parameter creation tool with zero schema documentation, the description covers the non-obvious parameters, the bidding modes, currency conventions, the optional workspace slug, and idempotency — enough for an agent to call it correctly on the first try.

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 0%, so the description must carry the load — and it does for the ambiguous parameters: context_hints is explained as the main lever with a concrete example, and max_bid is spelled out per campaign type in account currency (CPM/1000 for impressions). Gaps remain: name, campaign_id, and description are not described at all, though the first two are self-evident required fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Anzeigengruppe in einer OpenAI-Ads-Kampagne anlegen") and immediately pins the scope to OpenAI Ads, which separates it from the many other ad-group creation tools in the sibling list (ads_create_ad_group, meta_create_adset). It also front-loads a key behavioral fact — the group is always created PAUSED — so the agent knows the resulting state before calling.

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?

Gives clear operational context: bidding only applies to clicks/conversions campaigns with a daily budget, and omitting max_bid triggers automated bidding. However, it never explicitly says the campaign must already exist or routes the agent to a sibling (e.g., create the campaign first, or use openai_ads_list_ad_groups to check for duplicates) — despite guaranteeing idempotency, mention of the natural prerequisite/alternative would push this to a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_create_campaignOpenAI Ads (Beta): Create campaignAInspect

BETA — Neue OpenAI-Ads-Kampagne (Anzeigen in ChatGPT) anlegen, immer PAUSIERT. Reihenfolge: Kampagne → openai_ads_create_ad_group → openai_ads_create_ad → nach Rückfrage beim Kunden alle drei mit openai_ads_set_status aktivieren. objective: clicks (Standard), impressions oder conversions — nach dem Anlegen nicht änderbar. conversions braucht conversion_event_setting_id (Standard- Ereignis aus openai_ads_conversion_setup, danach fest). daily_budget ODER lifetime_budget in Kontowährung (genau eins; Tagesbudget bei EUR-Konten mindestens 15); automatische Gebote (Maximize Results) brauchen daily_budget. location_ids: aus openai_ads_search_locations (ohne Angabe: alle verfügbaren Länder — fast nie gewollt). platforms: optional android_app, android_web, desktop_web, ios_app, ios_web, web. start_date/end_date 'YYYY-MM-DD' in der Zeitzone des Werbekontos (end_date inklusiv; ohne start_date ab Aktivierung). Ein identischer zweiter Aufruf legt nichts doppelt an. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
end_dateNo
objectiveNoclicks
platformsNo
workspaceNo
start_dateNo
descriptionNo
daily_budgetNo
location_idsNo
lifetime_budgetNo
conversion_event_setting_idNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) it discloses that the campaign is always created paused, that objective is immutable after creation, that exactly one of daily/lifetime budget is allowed with a EUR minimum of 15, that automatic bidding requires daily_budget, and that a repeated identical call is idempotent. These are exactly the behavioral facts an agent cannot infer from structured fields.

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?

Purpose and the critical 'always paused' fact are front-loaded, followed by workflow and then per-parameter constraints; every line carries actionable content. The telegraphic multi-clause style is dense but not padded, though it could be broken into clearer labeled segments.

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 an 11-parameter, open-world mutation tool this covers creation state, ordering, dependencies, budget rules, defaults, date semantics, and idempotency. An output schema exists, so return values need not be explained, and nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does so: objective values and immutability, budget mutual exclusivity and currency/minimum rules, location_ids sourcing, platform value list, date format/timezone/inclusivity, workspace semantics, and the conversions dependency. Only the trivial 'description' field is left undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Neue OpenAI-Ads-Kampagne ... anlegen') plus the platform scope (ads in ChatGPT) and the key invariant (always created PAUSED). It also implicitly distinguishes itself from openai_ads_create_ad_group and openai_ads_create_ad by placing itself first in the creation chain.

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?

Gives an explicit ordered workflow (campaign → create_ad_group → create_ad → set_status only after asking the customer) and names the prerequisite tools for dependent values (openai_ads_conversion_setup for conversion_event_setting_id, openai_ads_search_locations for location_ids). It even flags a dangerous default ('ohne Angabe: alle verfügbaren Länder — fast nie gewollt').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_create_conversion_settingOpenAI Ads (Beta): Create conversion settingAInspect

BETA — Conversion-Ereignis (Event-Einstellung) im OpenAI-Ads-Konto anlegen: legt fest, welche Pixel-Events als Conversion zählen. Zuordnungsfenster 30 Tage nach Klick. Zählt erst, wenn es per openai_ads_update_campaign (add_conversion_event_setting_ids) einer Kampagne zugeordnet ist. event_type: lead_created (Formular/Anfrage), appointment_scheduled, registration_completed, order_created, trial_started, subscription_created, checkout_started, items_added, contents_viewed, page_viewed oder custom. custom_event_name: nur bei custom (z. B. phone_click; Kleinbuchstaben, Ziffern, _ und -). source_id: aus openai_ads_conversion_setup (pixels[].source_id). workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
source_idYes
workspaceNo
event_typeYes
custom_event_nameNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the bar is lower. The description adds real behavioral context beyond them: the BETA marker, the 'no effect until assigned to a campaign' semantics, the 30-day attribution window, and the custom_event_name format constraint. It does not mention permissions, duplicate-handling, or failure modes.

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?

Front-loaded with the beta warning and the core action, then a compact enumeration of parameter rules — no filler. It is one dense block rather than separated lines, which makes scanning slightly harder, but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description still supplies the workflow preconditions, event-type vocabulary, and custom-event constraints an agent needs. The only gap is the undescribed required 'name' parameter, which leaves a small ambiguity about what that label should contain.

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 0%, so the description must compensate — and it largely does: full enumeration of valid event_type values, the rule that custom_event_name applies only when event_type=custom (with charset restrictions), the provenance of source_id, and that workspace is optional with a single workspace. Only the required 'name' parameter is left entirely undefined.

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?

Specific verb+resource: create a conversion event (setting) in the OpenAI Ads account and states exactly what it defines — which pixel events count as conversions, with a 30-day click attribution window. It is clearly distinguishable from sibling tools like openai_ads_create_pixel, openai_ads_conversion_setup, and openai_ads_upload_conversions because it names the object being created and its role in the conversion chain.

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?

Gives the critical operational context: the setting only counts once assigned to a campaign via openai_ads_update_campaign (add_conversion_event_setting_ids), and source_id must come from openai_ads_conversion_setup (pixels[].source_id). That routes the agent correctly through a multi-step workflow, though it never states when NOT to create one (e.g. duplicate settings, choosing an existing one instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_create_pixelOpenAI Ads (Beta): Create pixelAInspect

BETA — Neues Web-Pixel (Conversion-Quelle) im OpenAI-Ads-Konto anlegen. Rückgabe source_id (für openai_ads_create_conversion_setting) und pixel_id (fürs Website-Snippet und openai_ads_upload_conversions). Erst openai_ads_conversion_setup prüfen — meist gibt es schon ein Pixel je Website. Snippet: https://developers.openai.com/ads/measurement-pixel (mit Marketing-Consent ausspielen, z. B. per GTM). name: 3–1000 Zeichen, z. B. die Domain. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds real context beyond that: BETA status, the returned IDs and their purpose, and the marketing-consent/GTM deployment requirement for the snippet. It stops short of auth or rate-limit details, so a 4.

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 core action is front-loaded, and each subsequent sentence (return IDs, prerequisite check, snippet/consent note, param constraints) earns its place. It is dense but not padded, though the mixed inline parameter notes make it slightly less scannable.

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 two-param mutation with an existing output schema, the description covers what it creates, the prerequisite, the returned IDs and their usage, deployment/consent caveats, and both parameter constraints. Nothing needed to call it correctly is missing.

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 0%, so the description must compensate, and it does: name is constrained to 3–1000 characters with an example (the domain), and workspace is described as the client-workspace slug that is optional when only one workspace exists. Both of the two parameters gain meaning the bare schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Neues Web-Pixel (Conversion-Quelle) im OpenAI-Ads-Konto anlegen.' It also names its siblings and distinguishes itself by pointing to openai_ads_conversion_setup for the prerequisite check and to openai_ads_create_conversion_setting/openai_ads_upload_conversions for downstream use.

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?

'Erst openai_ads_conversion_setup prüfen — meist gibt es schon ein Pixel je Website' gives an explicit when-not/alternative condition. The description also maps source_id and pixel_id to the exact follow-up tools, so the agent knows both when to use this and what comes next.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_insightsOpenAI Ads (Beta): InsightsA
Read-only
Inspect

BETA — Leistungszahlen der OpenAI-Ads-Anzeigen (ChatGPT) je Kampagne, Anzeigengruppe oder Anzeige, plus Summe (total). Je Zeile: id, name, impressions, clicks, spend (Kontowährung), ctr_pct, cpc, conversions (Ziel-Conversions: Klick 30 Tage + View 1 Tag; nur mit verknüpftem Conversion-Ereignis, sonst 0). total rechnet ctr_pct, cpc und cost_per_conversion aus den Summen. level: campaign (Standard), ad_group oder ad. days: die letzten N vollen Tage bis gestern; date_from/date_to ('YYYY-MM-DD', inklusiv, Tage in der Zeitzone des Werbekontos) gehen vor, max. 365 Tage. date_to = heute ist möglich, aber die Kosten des laufenden Tages verbucht OpenAI verzögert (oft 0) — CPC und Kosten je Conversion sind dann zu niedrig. daily: true = eine Zeile je Tag (Feld date). campaign_ids: optional nur diese Kampagnen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
dailyNo
levelNocampaign
date_toNo
date_fromNo
workspaceNo
campaign_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/openWorldHint annotations, the description discloses important behavior: conversions use a click-30-day + view-1-day window and read 0 unless a conversion event is linked, and the total row derives ctr_pct, cpc and cost_per_conversion from summed values rather than averaging. The caveat about delayed same-day spend is exactly the kind of operational nuance annotations cannot convey.

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?

It is front-loaded with the purpose and then organized parameter-by-parameter, with essentially no filler. It is somewhat dense and repeats the returned column list even though an output schema exists, which is a minor redundancy rather than bloat.

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 7-parameter, zero-coverage read tool with annotations and an output schema, nothing an agent needs is missing: granularity, time window semantics, filtering, workspace resolution and the same-day data caveat are all covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does it: level enumerates campaign/ad_group/ad with its default, days means the last N full days ending yesterday, date_from/date_to are inclusive YYYY-MM-DD in the ad account timezone with a 365-day cap, daily toggles per-day rows via a date field, and workspace is optional for single-workspace accounts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource: performance metrics ('Leistungszahlen') for OpenAI Ads at campaign, ad group or ad granularity, plus an aggregated total row. It even enumerates the returned metrics, so an agent can tell this is the reporting tool rather than a listing tool like openai_ads_list_campaigns or a mutation like openai_ads_update_campaign.

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 defaults (level=campaign, days=30), that date_from/date_to override days, and that campaign_ids optionally narrows scope, which gives clear context for invocation. It also warns that date_to=today yields under-reported cost/CPC. It does not explicitly exclude scenarios or point to a sibling, but within the openai_ads family there is no competing insights tool, so the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_list_ad_groupsOpenAI Ads (Beta): List ad groupsA
Read-only
Inspect

BETA — Anzeigengruppen einer OpenAI-Ads-Kampagne: id, name, status, context_hints (Themen/Zielgruppen, zu denen die Anzeigen in Gesprächen passen sollen) und bidding {strategy, billing_event_type, max_bid}. campaign_id: aus openai_ads_list_campaigns. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
campaign_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds genuine context beyond that: the BETA flag, the fact that context_hints describe topics/audiences for conversational placement, and the workspace optionality rule. It says nothing about pagination, result limits, or ordering, which are relevant for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense fragments, front-loaded with the BETA marker and the resource being listed, then parameter provenance. Nothing is padded, though the field enumeration at the top slightly duplicates what the output schema already provides.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the return-value enumeration is redundant but harmless, and the two parameters plus the upstream-tool pointer cover what an agent needs to invoke this correctly. Missing pagination/result-cap behavior is the only meaningful omission for a list call in a large campaign account.

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 0%, so the description carries the burden and does so: campaign_id is annotated with its source tool, and workspace is explained as a customer-workspace slug that is optional when only one workspace exists. Both parameters gain meaning that the bare schema lacks; only the id format/prefix is left unspecified.

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 opens with a specific verb+resource ('Anzeigengruppen einer OpenAI-Ads-Kampagne' listing) and even names the returned fields (id, name, status, context_hints, bidding), which distinguishes it cleanly from siblings like openai_ads_list_ads or openai_ads_list_campaigns. The only gap is that the sibling differentiation is implicit rather than stated.

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 gives concrete workflow guidance: 'campaign_id: aus openai_ads_list_campaigns' tells the agent the upstream call needed to obtain the required parameter, and 'workspace: optional bei nur einem Workspace' explains when the optional parameter can be omitted. It does not state when to prefer this tool over openai_ads_list_ads / openai_ads_create_ad_group explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_list_adsOpenAI Ads (Beta): List adsA
Read-only
Inspect

BETA — Anzeigen einer Anzeigengruppe: id, name, status, review_status (OpenAI prüft jede Anzeige vor der Auslieferung) und creative (type z. B. chat_card, title, body, target_url, file_id). ad_group_id: aus openai_ads_list_ad_groups. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
ad_group_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only safety profile is covered. The description adds genuinely useful context beyond that — that OpenAI reviews every ad before delivery, which explains what review_status means — but says nothing about result limits, pagination, or 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?

Three short blocks with zero filler: the returned shape first, then the required parameter's provenance, then the optional parameter's default. Front-loaded and scannable.

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 two-parameter read tool with an output schema, the essentials are present, but the field enumeration of the return shape duplicates what the output schema already declares and could have been spent on pagination or result-size behavior instead. Adequate, not 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 0%, so the description must carry the parameters, and it does: ad_group_id is tied to its source tool, and workspace is explained as a customer slug that may be omitted with a single workspace. Both of the two parameters get meaning beyond their bare types, though no ID format or slug example is given.

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?

States a specific verb and resource ('Anzeigen einer Anzeigengruppe' = list the ads belonging to one ad group) and enumerates the returned fields (id, name, status, review_status, creative). It implicitly distinguishes itself from openai_ads_list_ad_groups by naming that sibling as the source of the required ID, though it never explicitly contrasts with creatives/insights 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?

Provides real prerequisites: ad_group_id must come from openai_ads_list_ad_groups, and workspace is optional when only one workspace exists. It does not state when to prefer this over alternatives such as openai_ads_insights or openai_ads_create_ad, so usage is implied rather than explicitly scoped.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_list_campaignsOpenAI Ads (Beta): List campaignsA
Read-only
Inspect

BETA — Kampagnen des OpenAI-Ads-Kontos, neueste zuerst. Je Kampagne id, name, status (active/paused/archived), objective, bidding_type (clicks, impressions oder conversions), budget {daily, lifetime} in Kontowährung, start_time/end_time (UTC), conversion_event_setting_ids (verknüpfte Conversion-Ereignisse) und targeting. status: optional nur active, paused oder archived. Kennzahlen: openai_ads_insights. Anzeigengruppen: openai_ads_list_ad_groups. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

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 openWorldHint=true, so safety is covered. The description adds real behavioral context beyond that: results come newest-first, valid status values are constrained to active/paused/archived, and money values are in account currency with UTC timestamps. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and ordering, then parameters, then sibling routing — good structure. The long enumeration of per-campaign return fields is somewhat redundant given an output schema exists, but the text overall is dense rather than padded.

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 two-parameter, read-only list tool with annotations and an output schema, the description covers purpose, ordering, filtering values, workspace scoping and sibling routing. Nothing an agent needs in order to call it correctly is missing.

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 0% and both properties are bare anyOf strings, so the description must carry the meaning — and it does: it enumerates the allowed status values (active, paused, archived) and explains workspace as a client slug that is optional when only one workspace exists. It could be sharper about what omitting status returns (all statuses).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Kampagnen des OpenAI-Ads-Kontos') plus ordering ('neueste zuerst') and the fields returned. It explicitly routes away to siblings (openai_ads_insights for metrics, openai_ads_list_ad_groups for ad groups), so an agent can distinguish it without opening any schema.

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?

Names two explicit alternatives and the condition that selects them (metrics → openai_ads_insights, ad groups → openai_ads_list_ad_groups), and explains when the workspace parameter is needed. It stops short of stating when-not-to-use versus e.g. openai_ads_account, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_search_locationsOpenAI Ads (Beta): Search locationsA
Read-only
Inspect

BETA — Standorte für das OpenAI-Ads-Targeting suchen (Länder, Regionen, Märkte, Postleitzahlen). Rückgabe je Treffer id (für openai_ads_create_campaign location_ids), type, name, canonical_name, country_code. query: z. B. 'Austria', 'Salzburg', 'Wien'. limit: max. 50. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
limitNo
queryYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so safety is covered; the description adds that this is BETA, that query is a free-text name match, and that results are namespaced by workspace. The response field list is somewhat redundant with the output schema, which keeps it from the top score.

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?

Purpose is front-loaded and every clause carries information; the param-by-param notation is scannable. It is a dense single block with heavy parenthetical nesting, which slightly hurts parsing but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and annotations already present, the remaining unknowns were query syntax, limit bounds, workspace necessity, and what the returned id is used for — all four are addressed. An agent can call this correctly without consulting anything else.

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 0%, so the description must carry the parameter burden and largely does: query gets concrete example values ('Austria', 'Salzburg', 'Wien'), limit gets a hard ceiling of 50, and workspace gets the 'optional when only one workspace' rule. It omits the default limit of 10, which the agent would need to know when size-selecting results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Standorte ... suchen") plus the domain (OpenAI-Ads-Targeting) and the exact entity types searched (countries, regions, markets, postal codes). It is clearly distinguishable from the surrounding openai_ads_* siblings, which are all create/list/update operations rather than entity lookup.

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 ties the result to a downstream action ("id (für openai_ads_create_campaign location_ids)"), which tells an agent exactly when this tool is the right pre-step. It stops short of stating exclusions or naming an alternative lookup tool, so no explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_set_statusOpenAI Ads (Beta): Set statusA
Destructive
Inspect

BETA — Kampagne, Anzeigengruppe oder Anzeige in OpenAI Ads pausieren oder aktivieren. Liest danach zurück: status_before, status_after, verified. object_type: campaign, ad_group oder ad. status: active oder paused (Archivieren ist unumkehrbar und bewusst nur im Ads Manager möglich). Aktivieren startet echte Auslieferung mit Kosten. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
statusYes
object_idYes
workspaceNo
object_typeYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint=true annotation, the description adds the highest-value operational facts: activation starts real ad delivery and therefore incurs cost, and archiving is irreversible and deliberately excluded. It also discloses the read-back verification behavior (status_before, status_after, verified), which tells the agent it can confirm the mutation took effect.

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?

Everything is front-loaded onto the action and the object types, with the safety and cost warnings following immediately. The prose is dense and every clause carries information, though the compressed telegraphic phrasing (bare 'object_type:' / 'status:' fragments) costs a little readability.

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 4-parameter mutation tool with an output schema, annotations, and destructive semantics, the description covers the safety profile, the cost consequence, the excluded operation, and the verification fields. The main residual gap is the meaning/format of object_id, which neither schema nor description explains.

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 0% with no enums, so the description carries the full burden — and it delivers: it enumerates the legal values for object_type and status, and explains that workspace is a customer workspace slug that may be omitted when only one workspace exists. Only object_id is left undocumented, which keeps it below a perfect score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb pair ('pausieren oder aktivieren' / pause or activate) plus the exact resources it applies to: campaign, ad group, or ad. It also names the target scope field explicitly ('object_type: campaign, ad_group oder ad'), so an agent can distinguish this status-toggle tool from create/update siblings such as openai_ads_update_campaign without opening any schema.

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 gives clear when-to-use guidance (pause to stop delivery, activate to start it) and an explicit when-not carve-out: archiving is impossible here and must be done in the Ads Manager. It stops short of routing the agent to the sibling that handles other mutation types, but the boundary it does draw is precise and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_update_campaignOpenAI Ads (Beta): Update campaignA
Destructive
Inspect

BETA — OpenAI-Ads-Kampagne ändern: Name, Budget, verknüpfte Conversion-Ereignisse. Nur angegebene Felder ändern sich; liest danach zurück (before, after, verified). daily_budget/lifetime_budget: in Kontowährung (z. B. 15 = 15 €/Tag); das jeweils andere Budget bleibt erhalten. add_/remove_conversion_event_setting_ids: Event-Einstellungen aus openai_ads_conversion_setup zuordnen bzw. lösen — bestehende Zuordnungen bleiben. Bei Klick-/Impressions-Kampagnen ändert das nur, was als Conversion gezählt wird, nicht Gebot oder Ziel; bei conversion-optimierten Kampagnen ist das Ereignis fest (Fehler conversion_campaign_locked). Status: openai_ads_set_status. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
workspaceNo
campaign_idYes
daily_budgetNo
lifetime_budgetNo
add_conversion_event_setting_idsNo
remove_conversion_event_setting_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, and the description reinforces this by explaining the partial-update contract, the post-write readback ('before, after, verified'), and the conversion_campaign_locked error for conversion-optimized campaigns. It does not spell out reversibility of budget or event unlinking, but the added context goes well beyond the annotation flags.

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?

Front-loads the operation and affected fields, then breaks budget, conversion-event, status and workspace notes into short labeled lines with no filler. It is longer than a one-liner, but every line carries decision-relevant information for an agent.

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 7-parameter destructive mutation the definition covers partial-update semantics, unit conventions, error conditions, and the readback result, and an output schema exists so return structure needn't be described. The description is written in German while the tool surface is otherwise English, which is a minor friction but does not reduce correctness.

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 0%, so the description must carry the load, and it largely does: budgets are in account currency ('15 = 15 €/Tag') and are mutually preserving ('das jeweils andere Budget bleibt erhalten'), add_/remove_conversion_event_setting_ids are explained as attach/detach with existing associations retained, and workspace is optional for single-workspace accounts. campaign_id itself is undocumented, which is the only real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('OpenAI-Ads-Kampagne ändern') and enumerates exactly which fields can be changed: Name, Budget, verknüpfte Conversion-Ereignisse. It also names the sibling that owns the adjacent concern ('Status: openai_ads_set_status'), so an agent can distinguish this tool from openai_ads_set_status and from the ads_update_campaign_* family without opening any schema.

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 scopes the tool: 'Nur angegebene Felder ändern sich' (partial update, omitted fields untouched) and routes status changes to openai_ads_set_status. It also points to openai_ads_conversion_setup as the source for conversion event IDs. It stops short of stating when an agent should prefer openai_ads_create_campaign or other update variants, so it is clear context rather than explicit when/when-not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openai_ads_upload_conversionsOpenAI Ads (Beta): Upload conversionsAInspect

BETA — Conversions serverseitig an OpenAI Ads senden (Conversions API), z. B. Leads aus dem CRM. Braucht den Conversions-API-Schlüssel im Workspace. pixel_id: pixels[].pixel_id aus openai_ads_conversion_setup (nicht source_id). events: max. 1000, je Event: id (eindeutig; bei Wiederholung gleich lassen — dient der Entdopplung mit dem Website-Pixel), type (lead_created, order_created, … oder custom mit custom_event_name), timestamp_ms (Zeitpunkt der Aktion, Unix-Millisekunden), data {type: customer_action | contents | plan_enrollment | custom, optional amount in Cent + currency}, source_url (Pflicht bei Web-Events: Seite, auf der die Conversion geschah), optional oppref (Klick-Kennung aus der Landingpage-URL). action_source ist standardmäßig web. Keine Klartext-E-Mails/Telefonnummern senden. validate_only: true prüft nur und speichert nichts — vor dem ersten echten Upload empfohlen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
eventsYes
pixel_idYes
workspaceNo
validate_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly=false, destructive=false, openWorld=true), it discloses Beta status, the API-key requirement, the 1000-event cap, the deduplication contract (keep the same id on retry so it dedups with the website pixel), a hard PII prohibition (no plaintext emails/phone numbers), and the dry-run semantics of validate_only — information an agent cannot derive from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, and the rest is organized one parameter per line with no filler. The density of the events line is high, but every clause maps to a field the caller must construct.

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 Beta, write-path tool with an output schema (so return values needn't be explained) and a completely opaque events schema, the description supplies everything required to build a valid call, including the validation path to test it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and events is an untyped object array, so the description carries the full burden — and does: it defines pixel_id's origin, the per-event fields (id, type with example enum values, timestamp_ms units, nested data.type with amount in cents, source_url requirement, oppref), and action_source's default. That is exactly the compensation the schema gap demands.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (Conversions serverseitig an OpenAI Ads senden via the Conversions API) and a concrete use case (CRM leads). The 'openai_ads_' prefix plus the explicit channel mention cleanly separates it from the sibling ads_upload_conversions (Google Ads) and from openai_ads_conversion_setup, which is named as the source of pixel_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 names the use case (CRM leads), states the prerequisite (Conversions API key in the workspace), and prescribes a sequencing step: run validate_only first before the first real upload. What's missing is an explicit exclusion or comparison, e.g. when to prefer openai_ads_create_conversion_setting vs. this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingPingA
Read-only
Inspect

Connectivity-Check — liefert 'pong'.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety and locality profile is covered and the bar is lower. The description only adds the return token 'pong', which is arguably duplicative given an output schema exists; it says nothing about latency, auth requirements, or failure behaviour.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short clause, front-loaded with the purpose and containing no filler. Nothing irrelevant is included for a trivial liveness probe.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, an output schema supplied, and annotations covering the read-only profile, an agent has everything needed to invoke this tool correctly. The description adds the one thing not obvious from structured data: the expected response token.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the baseline this scores 4. There is nothing for the description to disambiguate in the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Connectivity-Check" names a specific action plus the expected return value ('pong'), so the agent knows exactly what the tool does. It doesn't need to differentiate from siblings because none of the ~250 other tools is a health check, but it also makes no explicit statement of its unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the label 'Connectivity-Check' suggests calling it to verify the connection is alive before or after real work. The description never states when to reach for it (e.g., before a batch of ads_* calls) or what a failure would mean, so an agent must infer the trigger condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_add_siteSearch Console: Add siteAInspect

Search-Console-Property anlegen: 'https://example.com/' (URL-Prefix) oder 'sc-domain:example.com' (Domain-Property); sonst error=invalid_site_url. Rückgabe: added, permission_level, verified. Unverifizierte Properties liefern erst nach Verifizierung Daten — Verifizierung derzeit manuell in der Search Console (DNS-TXT für sc-domain:, Meta-Tag/HTML-Datei für URL-Prefix); Status danach mit sc_list_sites prüfen (permission_level). Google-Fehler kommen als Dict mit error (missing_permission/not_found/ rate_limited/auth_error/http_error), message und hint zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
site_urlYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) by disclosing the return payload (added, permission_level, verified), the fact that unverified properties return no data, that verification is currently manual per property type (DNS-TXT vs meta tag/HTML file), and the full error dictionary taxonomy (missing_permission/not_found/rate_limited/auth_error/http_error with message and hint).

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?

Front-loaded with the format requirement and error, then returns, then operational caveats. Efficient overall, though the return fields overlap with the existing output schema and the German phrasing packs several clauses into long semicolon chains.

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 2-parameter mutation with an output schema and annotations already present, everything an agent needs is covered: input format, error surface, post-call state, and the manual verification gap with the follow-up tool to confirm status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load and it does: site_url gets concrete syntax for both property types plus the failure mode, and workspace is described as a customer workspace slug that is optional when only one workspace exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search-Console-Property anlegen') and immediately pins down both accepted URL forms ('https://example.com/' URL-Prefix vs 'sc-domain:example.com' Domain-Property), which is exactly what separates it from read-only siblings like sc_list_sites.

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?

Tells the agent what to pass, what happens when it is wrong (error=invalid_site_url), and routes post-creation status checks to sc_list_sites via permission_level. It does not explicitly say when NOT to use it (e.g. when the property already exists) or point at sc_verify_site/sc_verification_token, but the surrounding workflow context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_delete_sitemapSearch Console: Delete sitemapA
Destructive
Inspect

Sitemap-URL aus Google Search Console entfernen. Schreibende Operation — die Google-Verbindung braucht den webmasters-Schreib-Scope; fehlt er, bitte die Verbindung im Portal erneuern. sitemap_url: exakter 'path' aus sc_list_sitemaps. Entfernung danach mit sc_list_sitemaps bestätigen. Fehler kommen als Dict mit error (missing_permission/not_found/rate_limited/ auth_error/http_error), message und hint zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
sitemap_urlYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint/openWorldHint annotations by disclosing the required OAuth scope and its failure mode, and by enumerating the error codes returned (missing_permission/not_found/rate_limited/auth_error/http_error) with the dict shape. This is exactly the extra context an agent needs for a destructive remote mutation.

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?

Front-loads the action and its write-ness, then layers preconditions, argument sourcing, verification, and error format in short scannable lines. No sentence is filler, and the highest-risk information comes first.

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 destructive 2-param mutation on an external API, it covers the auth requirement, the exact source for the required argument, post-deletion verification, and the error contract — while the output schema handles return structure. Nothing material is missing for correct invocation.

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 0%, so the description has to carry both parameters — and it does: sitemap_url is pinned to the exact 'path' value from sc_list_sitemaps, and workspace is described as a customer slug that is optional when only one workspace exists, which explains a non-obvious default. Slight gap on whether the value is a full URL or a path fragment.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Sitemap-URL aus Google Search Console entfernen') that unambiguously separates it from sc_submit_sitemap and sc_list_sitemaps in the sibling set. It immediately labels itself a write operation, so an agent can classify it without opening the schema.

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?

Gives concrete preconditions (webmasters write scope, renew in portal if missing) and a named source for the argument (sc_list_sitemaps) plus a named follow-up verification step. It stops short of an explicit exclusion statement, but the routing to sc_list_sitemaps for both input and confirmation effectively covers the main alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_list_sitemapsSearch Console: List sitemapsA
Read-only
Inspect

Eingereichte Sitemaps der Site: Pfad, Einreich-/Download-Zeit, Status, Warn- und Fehlerzahlen. Fehler kommen statt der Liste als Dict mit error (missing_permission/not_found/ rate_limited/auth_error/http_error), message und hint zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds useful behavioral context by specifying the error-return shape: a dict with error codes (missing_permission, not_found, rate_limited, auth_error, http_error), message, and hint. This is meaningful beyond the annotations, though it does not elaborate on rate-limit specifics or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three compact lines that front-load the primary result fields, then error behavior, then the parameter note. Every sentence contributes useful information with 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 low-complexity read-only listing tool with an output schema and read-only annotations, the description covers returned fields, error behavior, and the workspace parameter. It could be slightly more complete by clarifying which site is targeted (since only workspace is parameterized) or how the site context is resolved.

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 0%, so the description must carry the meaning of the sole workspace parameter. It does so by explaining that workspace is the customer workspace slug and is optional when only one workspace exists, which adds useful semantics beyond the bare anyOf string/null schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource as submitted sitemaps of the site and enumerates returned fields (path, submission/download time, status, warning/error counts), which makes the read/list purpose evident even without an explicit verb. It does not explicitly distinguish itself from siblings like sc_submit_sitemap, sc_delete_sitemap, or bing_list_sitemaps, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as sc_submit_sitemap, sc_delete_sitemap, or bing_list_sitemaps. The only conditional note is about the workspace parameter being optional when there is a single workspace, which is parameter guidance rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_list_sitesSearch Console: List sitesA
Read-only
Inspect

Alle Search-Console-Properties der Google-Verbindung — funktioniert auch, bevor im Workspace eine Site-URL konfiguriert ist. permission_level 'siteUnverifiedUser' = angelegt, aber noch nicht verifiziert. Fehler kommen statt der Liste als Dict mit error (missing_permission/not_found/ rate_limited/auth_error/http_error), message und hint zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, and the description adds real context beyond them: the permission_level semantics ('siteUnverifiedUser' = created but unverified) and the fact that failures arrive as an error dict with codes (missing_permission/not_found/rate_limited/auth_error/http_error), message and hint. It does not mention pagination or result ordering, but for a read-only listing that is a minor omission.

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?

Purpose is front-loaded in the first clause and every sentence carries information. The error-code enumeration is slightly dense, and the description is written in German while the name/title are English, which adds a small parsing cost for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be spelled out, yet the description still covers the error envelope, the permission-level caveat and the single optional parameter. Nothing an agent needs to call it correctly is missing, aside from guidance on follow-up tools.

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 0%, so the description must carry the load, and it does: 'workspace' is described as the customer workspace slug and explicitly marked optional when only one workspace exists. Only the concrete slug format/example is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope: all Search Console properties of the Google connection, which distinguishes it from sc_list_sitemaps, sc_add_site and the sc_* reporting tools. The extra note that it works before a site URL is configured in the workspace further pins down what makes this tool distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one useful usage condition ('funktioniert auch, bevor im Workspace eine Site-URL konfiguriert ist') but never names an alternative or an exclusion — e.g. when to prefer sc_add_site or sc_verify_site. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_performanceSearch Console: PerformanceA
Read-only
Inspect

Flexibler Search Analytics Report. Dimensions: query, page, country, device, searchAppearance, date. dimensions=[] liefert die GESAMTSUMME der Property über den Zeitraum (eine Zeile mit date_from/date_to, inkl. anonymisierter Suchanfragen) — der richtige Weg für Fragen wie 'wie viele Klicks in den letzten 28 Tagen'. dimensions=['date'] für den Tagesverlauf. Keyword-Summen (query) unterschätzen die Gesamtzahlen. ACHTUNG: Ohne dimensions (weggelassen) wird ['query'] verwendet — Keyword-Zeilen, KEINE Gesamtsumme. Für Gesamtzahlen dimensions=[] ausdrücklich mitgeben. days: die letzten N Tage, endend heute minus 3 Tage (Search-Console-Daten laufen 2–3 Tage hinterher). start_date/end_date ('YYYY-MM-DD') nur gemeinsam, dann überschreiben sie days (end_date wird unverändert übernommen); nur eins davon, falsches Format oder start_date nach end_date → error=invalid_date_range. dimension_filter: {'dimension','operator','expression'} oder Liste solcher Dicts (UND-verknüpft). dimension: query, page, country, device, searchAppearance; operator: equals (Default), contains, notContains, includingRegex, excludingRegex (Regex in RE2-Syntax). Beispiel: {'dimension':'page','operator':'contains', 'expression':'/blog/'}; country als ISO-3166-1-alpha-3 wie in den country-Zeilen ('aut'), device als DESKTOP/MOBILE/TABLET. Ungültige Angaben → error mit allowed. Ein Filter auf query lässt anonymisierte Suchanfragen ebenfalls weg. search_type: web (Default), image, video, news, discover, googleNews; sonst error=invalid_search_type. discover/googleNews kennen keine Suchanfragen — query als Dimension oder Filter → error=unsupported_dimension. limit: max. 500 Zeilen pro Aufruf (wird gekappt). Weiterblättern mit start_row (Zeilen-Offset, Default 0): start_row um limit (max. 500) erhöhen und erneut aufrufen, bis weniger als limit Zeilen zurückkommen. Für Gesamtzahlen trotzdem Aggregation (dimensions=[] oder ['date']) statt aufsummierter Zeilen nutzen. Fehler kommen statt der Liste als Dict mit error (missing_permission/not_found/ rate_limited/auth_error/http_error), message und hint zurück — z. B. missing_permission, wenn das verbundene Google-Konto die Property nicht sieht oder die Property-Form (sc-domain: vs. URL-Präfix) nicht stimmt. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
end_dateNo
start_rowNo
workspaceNo
dimensionsNo
start_dateNo
search_typeNoweb
dimension_filterNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint; the description goes far beyond, disclosing the 2–3 day data lag, that anonymized queries are dropped from results (and dropped entirely under a query filter), the 500-row hard cap and offset-based paging loop, and a full error contract (missing_permission/not_found/rate_limited/auth_error/http_error returned as a dict with message and hint). That is exactly the operational context an agent needs and cannot get from structured fields.

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?

Front-loading is excellent: the high-cost mistake (omitting dimensions yields ['query'] rows, not a total) is stated twice, early and in caps, before anything else. The text is long but nearly every sentence conveys an operational rule. Minor waste exists in restating the aggregation advice at the end and in some repetition between the opening totals guidance and the closing sentence.

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?

Nine parameters, zero schema descriptions, and no enums in the schema, yet the description covers every parameter, the date-precedence rule, the filter grammar, the paging loop, and the error surface. With an output schema present, return-value structure is correctly left to the schema rather than duplicated. Nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the entire burden and does so: it defines days semantics (ending today minus 3), date format and the both-or-neither rule plus the specific invalid_date_range error, the dimension_filter dict shape with the full operator enum (including RE2 regex), country format as ISO-3166-1-alpha-3 like 'aut', device case convention, search_type enum with its error code, and limit/start_row interaction. Practical examples are given for the trickiest parameter.

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 opening names a concrete resource and output shape: a Search Analytics report with an enumerated set of dimensions (query, page, country, device, searchAppearance, date). An agent immediately knows this returns Search Console performance data. What's missing is any explicit demarcation from close siblings like sc_top_queries or sc_top_pages, so the agent must infer that this is the general/customizable counterpart.

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?

Very strong internal guidance: it tells you to use dimensions=[] for property-level totals (with a concrete example question about clicks in the last 28 days), dimensions=['date'] for a daily trend, and warns that query-level sums undercount. It also explains when start_date/end_date supersede days. It stops short of naming an alternative sibling tool or stating when not to call this (e.g. 'use sc_top_pages for a simple top-pages list').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_submit_sitemapSearch Console: Submit sitemapAInspect

Sitemap-URL bei Google Search Console einreichen. Schreibende Operation — die Google-Verbindung braucht den webmasters-Schreib-Scope; fehlt er, bitte die Verbindung im Portal erneuern. sitemap_url: vollständige URL innerhalb der konfigurierten Property. Die Antwort bestätigt nur die Annahme; Google verarbeitet asynchron — Status und Warn-/Fehlerzahlen danach mit sc_list_sitemaps prüfen (is_pending, errors). Fehler kommen als Dict mit error (missing_permission/not_found/rate_limited/ auth_error/http_error), message und hint zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
sitemap_urlYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses the required OAuth scope and its failure mode, that the response confirms only acceptance rather than processing, the async nature of Google's handling, and the full error-dict taxonomy (missing_permission/not_found/rate_limited/auth_error/http_error) with message and hint fields. Annotations only say readOnlyHint=false and openWorldHint=true; this adds the real operational picture.

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 write-verb and scope caveat are front-loaded, then behavior, then error shape, then parameter notes — a sensible order. The enumerated error codes are slightly list-heavy, but each element is actionable rather than filler.

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?

An output schema exists, yet the description still clarifies that the response only acknowledges receipt and where real status lives, which is the key interpretive gap for an async write. Combined with the error taxonomy and the scope prerequisite, nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden — and it does: sitemap_url is defined as a full URL inside the configured property, and workspace is explained as a customer slug that is optional when only one workspace exists. Both parameters gain meaning the schema alone does not provide.

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?

Names a specific verb+resource pair ('Sitemap-URL bei Google Search Console einreichen') and immediately classifies it as a write operation, which separates it cleanly from sc_list_sitemaps and sc_delete_sitemap in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear prerequisite (webmasters write scope, renew connection if missing) and an explicit follow-up path to sc_list_sitemaps for async status checks. It does not state when-not to use it (e.g. vs. bing_submit_sitemap or sc_delete_sitemap), so it stops short of a full routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_top_pagesSearch Console: Top pagesA
Read-only
Inspect

Top Landing Pages aus Google-Suche: page x clicks, impressions, ctr_pct, position. days: die letzten N Tage, endend heute minus 3 Tage (Search-Console-Daten laufen 2–3 Tage hinterher). start_date/end_date ('YYYY-MM-DD') nur gemeinsam, dann überschreiben sie days; sonst error=invalid_date_range. search_type: web (Default), image, video, news, discover, googleNews (z. B. discover für Seiten aus Google Discover); sonst error=invalid_search_type. limit: max. 500 Zeilen (wird gekappt); weiterblättern nur über sc_performance mit start_row. Fehler kommen statt der Liste als Dict mit error (missing_permission/not_found/ rate_limited/auth_error/http_error), message und hint zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
end_dateNo
workspaceNo
start_dateNo
search_typeNoweb

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, but the description adds substantial behavior beyond them: upstream data lag of 2–3 days, silent capping at 500 rows, and error responses returned as a dict with error/message/hint (missing_permission, not_found, rate_limited, auth_error, http_error). It does not describe sorting or ordering of the returned rows.

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?

Front-loads what the tool returns, then walks parameter by parameter; each line earns its place with a concrete rule or error code. It is dense but occasionally telegraphic (e.g. 'page x clicks, impressions, ctr_pct, position'), and the error-dict sentence sits awkwardly between parameter notes.

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 six-parameter read tool, the definition covers semantics, defaults, caps, invalid-input behavior, error payload shape, and the cross-tool escape hatch for pagination. The output schema exists, so the brief mention of returned fields is a bonus rather than a required burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates for all six parameters: days semantics with the data-lag adjustment, start_date/end_date format and combined-only rule plus override precedence, search_type with the allowed values (web default, image, video, news, discover, googleNews), limit with the 500 cap, and workspace as an optional slug when only one workspace exists.

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?

States a specific verb+resource ('Top Landing Pages aus Google-Suche') and enumerates the returned metrics (clicks, impressions, ctr_pct, position), which is enough to distinguish it from sc_top_queries. It never names the sibling it is not, so differentiation from sc_top_queries / sc_performance is left implicit.

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?

Gives concrete usage rules: days means the last N days ending today minus 3 (due to 2–3 day data lag), start_date/end_date must be supplied together and override days, and the 500-row cap can only be paged through via sc_performance with start_row. It does not say when to pick this over sc_top_queries or bing_top_pages, so no exclusions/routing for the main ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_top_queriesSearch Console: Top queriesA
Read-only
Inspect

Top organische Suchanfragen: query x clicks, impressions, ctr_pct, position. ACHTUNG: Die Summe dieser Zeilen ist NICHT die Gesamtzahl der Property — Google lässt anonymisierte Suchanfragen weg. Für Gesamt-Klicks/-Impressionen sc_performance mit dimensions=[] (Summe) oder ['date'] (Tagesverlauf) nutzen. days: die letzten N Tage, endend heute minus 3 Tage (Search-Console-Daten laufen 2–3 Tage hinterher). start_date/end_date ('YYYY-MM-DD') nur gemeinsam, dann überschreiben sie days; sonst error=invalid_date_range. search_type: web (Default), image, video, news — discover/googleNews haben keine Suchanfragen (error=unsupported_dimension), dort sc_top_pages nutzen. limit: max. 500 Zeilen (wird gekappt); weiterblättern nur über sc_performance mit start_row. Fehler kommen statt der Liste als Dict mit error (missing_permission/not_found/ rate_limited/auth_error/http_error), message und hint zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
daysNo
limitNo
end_dateNo
workspaceNo
start_dateNo
search_typeNoweb

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, and the description adds real context on top: Google omits anonymized queries, data lags 2-3 days, results cap at 500 rows, and failures come back as a dict with error/message/hint rather than a list. That is exactly the behavioral detail an agent needs before calling.

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?

Front-loaded with the purpose and the critical summation caveat, then parameter semantics, then error shape; almost no waste. It is dense and closer to a reference block than prose, which costs a little readability.

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?

Covers the caveats, every parameter's semantics, sibling alternatives, limits, and the error contract; the return shape is already defined by the output schema, so nothing needed is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description has to carry parameter meaning, and it does: days means the last N days ending today minus 3, start_date/end_date must be supplied together and override days, search_type accepts web/image/video/news with web as default, limit caps at 500 and is truncated, and workspace is optional when there is only one.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: top organic search queries with the exact returned fields (query x clicks, impressions, ctr_pct, position). That is clearly distinguishable from sc_top_pages and sc_performance, both of which it names.

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 says not to sum these rows for property totals and routes to sc_performance with dimensions=[] or ['date']. It also says discover/googleNews produce error=unsupported_dimension and that sc_top_pages should be used there, and that pagination goes through sc_performance with start_row.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_url_inspectionSearch Console: URL inspectionA
Read-only
Inspect

URL Inspection: Indexierungsstatus, Canonicals und Crawl-Signale für eine URL. Die URL muss innerhalb der konfigurierten Search-Console-Property liegen. Rückgabe: verdict, coverage_state, indexing_state, google_canonical, user_canonical, last_crawl, robots_txt_state (ALLOWED/DISALLOWED), page_fetch_state (SUCCESSFUL, SOFT_404, BLOCKED_ROBOTS_TXT, NOT_FOUND, ...). mobile_verdict und mobile_issues erscheinen nur, wenn Google den (eingestellten) Mobile-Usability-Teil noch mitliefert — fehlen sie, wurde nichts geprüft. Fehler kommen als Dict mit error (missing_permission/not_found/rate_limited/ auth_error/http_error), message und hint zurück. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds meaningful behavioral context: conditional mobile fields only when Google supplies them, specific error categories such as missing_permission, rate_limited and auth_error, and the Search Console property boundary. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and key property constraint are front-loaded, and the text is generally efficient. The return-field list is lengthy and partly duplicates the existing output schema, but the conditional mobile note and error structure still earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only inspection tool that already has an output schema and read-only/open-world annotations, the description supplies the remaining operational context: property scope, optional workspace behavior, conditional mobile fields and error modes. Nothing essential for correct invocation appears to be missing.

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 0%, so the description must compensate; it does so by explaining that url must belong to the configured Search Console property and that workspace is an optional customer-workspace slug. It could be slightly stronger by specifying the expected URL format (for example scheme/host), but both parameters receive useful meaning beyond the bare 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 opening sentence names a specific operation (URL Inspection) and enumerates the exact facets: indexing status, canonicals and crawl signals for a single URL. This is much more specific than a generic Search Console query and distinguishes it from sibling performance, sitemap and site-management tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the key prerequisite that the URL must reside within the configured Search Console property, and explains that workspace is optional when only one workspace exists. It does not explicitly contrast this tool with alternatives such as bing_url_info or site_crawler_check, so it falls 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.

sc_verification_tokenSearch Console: Verification tokenA
Read-only
Inspect

DERZEIT INAKTIV: braucht den siteverification-Scope, den die Google-Verbindung aktuell nicht erhält — antwortet mit error=missing_scope. Verifizierung bis auf Weiteres manuell in der Search Console. Site-Verification-Token holen. identifier: Domain ('example.com', Methoden DNS_TXT/DNS_CNAME) oder URL ('https://example.com/', Methoden META/FILE/ ANALYTICS/TAG_MANAGER). ANALYTICS/TAG_MANAGER brauchen kein Token — wenn GA/GTM schon auf der Site läuft, direkt sc_verify_site aufrufen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
methodNo
workspaceNo
identifierYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint; the description goes far beyond by naming the missing OAuth scope (siteverification), the exact failure surface (error=missing_scope), and the operational workaround. That is precisely the context an agent needs before wasting a call.

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 most decision-relevant fact — that the tool is inactive — is front-loaded before any explanation of inputs. Sentences are dense and earn their place, though the mid-sentence line breaks make the text read as fragmented rather than cleanly 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?

An output schema exists, so return values need no explanation, and the description covers every parameter plus the auth/failure state. The only minor gap is that it never says what to do with the returned token (where it is pasted or how it is validated), which matters for the DNS/META flows it describes.

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 0%, so the description must carry parameter meaning and it largely does: identifier is either a bare domain (DNS_TXT/DNS_CNAME methods) or a full URL (META/FILE/ANALYTICS/TAG_MANAGER), and workspace is a customer slug that may be omitted when only one exists. The method parameter itself has no schema enum, and the description lists values but does not state the default behavior when method is null.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Site-Verification-Token holen') and immediately distinguishes itself from the sibling that does the actual verification (sc_verify_site). It also flags its own current inoperability, which no other field would reveal.

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 says the tool is currently inactive and returns error=missing_scope, that verification must be done manually in the Search Console for now, and that for ANALYTICS/TAG_MANAGER methods the caller should go straight to sc_verify_site. This is a textbook when/when-not/alternative statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sc_verify_siteSearch Console: Verify siteAInspect

DERZEIT INAKTIV: braucht den siteverification-Scope, den die Google-Verbindung aktuell nicht erhält — antwortet mit error=missing_scope. Verifizierung bis auf Weiteres manuell in der Search Console; danach zeigt sc_list_sites permission_level != 'siteUnverifiedUser'. Site-Verifizierung durchführen, nachdem der Nachweis platziert ist (DNS-Record, Meta-Tag, Datei) bzw. GA/GTM bereits auf der Site läuft (method ANALYTICS/TAG_MANAGER). Default-Methode: DNS_TXT für Domains, META für URLs. Bei Erfolg: success, owners, next_step; findet Google den Nachweis nicht: error=verification_failed. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
methodNo
workspaceNo
identifierYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that the tool is currently inactive due to a missing siteverification scope and returns error=missing_scope, describes success output (success, owners, next_step) and the error=verification_failed case when Google can't find the proof. Nothing here contradicts readOnlyHint=false / destructiveHint=false / openWorldHint=true.

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?

Front-loaded with the most decision-relevant fact (tool inactive), then flows to procedure, defaults and return behavior. Dense but every sentence carries operational value; the mixed German with English identifiers is slightly harder to scan but not wasteful.

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?

An output schema exists, yet the description still adds the failure/error semantics an agent needs to branch on, and supplies the method enumeration that the schema leaves as a bare string. For an inactive, scope-blocked mutation tool, the agent has everything required to decide and to explain the fallback.

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 0%, and the description compensates for two of three parameters: it enumerates the allowed method values (DNS_TXT, META, ANALYTICS, TAG_MANAGER) with defaults, and explains workspace as an optional customer slug. The required 'identifier' parameter's expected format (domain vs. URL) is only implied via the method-default sentence rather than stated directly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Site-Verifizierung durchführen') and names the Search Console verification methods, making it clearly distinct from siblings like sc_add_site, sc_verification_token and sc_list_sites. The upfront availability warning removes any ambiguity about whether the tool works at all.

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 gives the precondition for use ('nachdem der Nachweis platziert ist' via DNS record, meta tag or file, or when GA/GTM already runs on the site), the method-selection rule (ANALYTICS/TAG_MANAGER for those cases), and an alternative path while the tool is inactive: verify manually in Search Console and check status via sc_list_sites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

site_crawler_checkWebsite: Crawler checkA
Read-only
Inspect

Dürfen Suchmaschinen und KI-Bots diese Website lesen? Prüft robots.txt (nach RFC 9309), Cloudflare-Signale und die Robots-Angaben der Startseite für 16 Bots in vier Gruppen: Suche (Googlebot, Bingbot, Applebot), KI-Suche (OAI-SearchBot, PerplexityBot, Claude-SearchBot), KI-Assistenten, die im Auftrag eines Nutzers abrufen (ChatGPT-User, Claude-User, Perplexity-User), und KI-Training (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, Bytespider, Meta-ExternalAgent). Anlass: Cloudflare sperrt seit 15.09.2026 KI-Training- und KI-Agent-Crawler per Default — Seiten können so für ChatGPT/Claude unsichtbar werden, ohne dass jemand etwas umgestellt hat. url: Domain oder URL (z. B. 'example.at'); ohne Angabe die Website des Workspace (Search-Console-Property bzw. WordPress-URL). paths: Pfade, für die je Bot geprüft wird (Standard ['/'], max. 10), z. B. ['/', '/blog/']. check_live: zusätzlich die Startseite einmal je Bot-User-Agent abrufen (Statuscode, Cloudflare-Abwehr). NUR EIN INDIZ: Cloudflare & Co. erkennen echte Bots an ihren IP-Bereichen; ein nachgemachter User-Agent von unserem Server kann abgewiesen werden, obwohl der echte Bot durchkommt (und umgekehrt). Nie als „Bot ist gesperrt“ melden, sondern als „unser Testabruf wurde abgewiesen“. Standard aus. Verlässlich sind robots.txt und Content Signals (erklärte Absicht des Betreibers). Ob Cloudflare zusätzlich auf Netzwerkebene blockt, ist von außen nicht sicher feststellbar — dafür steht ein Hinweis in notes. Rückgabe: origin; robots_txt (state ok|missing|unreachable, status, cloudflare_managed, content_signals der *-Gruppe z. B. {search, ai-train, ai-input} — gilt für Bots ohne eigene Gruppe, sitemaps, warnings); hosting.cloudflare; bots [{bot, operator, category, allowed {pfad: bool}, group, rule, content_signals der für den Bot geltenden Gruppe}]; summary je Gruppe (erlaubt | gesperrt | teilweise gesperrt); page_signals der Startseite (url, status, x_robots_tag, meta_robots); live_probe (Bots ohne Ergebnis: error budget_exceeded); notes = Befunde mit Handlungsempfehlung. missing (4xx) heißt laut RFC: alles erlaubt; unreachable (5xx/Timeout): alles gesperrt. workspace: Slug des Kunden-Workspace (nur nötig ohne url).

NameRequiredDescriptionDefault
urlNo
pathsNo
workspaceNo
check_liveNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/openWorldHint annotations, the description discloses real behavioral limits: robots.txt and Content Signals are authoritative while network-level Cloudflare blocking is 'von außen nicht sicher feststellbar' (surfaced in notes), and a spoofed User-Agent probe can be rejected even when the real bot passes. It also gives interpretation semantics (missing/4xx = everything allowed, unreachable/5xx = everything blocked per RFC) that an agent could not infer on its own.

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?

Structure is excellent and front-loaded: purpose question, method, motivation, then parameters, then caveats, then return shape. It is long, though – the exhaustive bot list and the multi-line Rückgabe block partly duplicate what the output schema already conveys, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, open-world diagnostic with 4 optional params and an existing output schema, the description covers everything an agent needs: what is checked, defaults and fallbacks, how to phrase results honestly (live probe caveat), and how to interpret missing vs unreachable. No material gap in calling it correctly remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full load and does: url accepts a domain or URL with a documented fallback to the workspace's Search Console property / WordPress URL; paths defaults to ['/'] with max 10 and an example; check_live is boolean, default off, with an explanation of what it actually performs; workspace is a slug needed only when url is omitted. All four parameters gain meaning beyond the bare type declarations.

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 opening question plus 'Prüft robots.txt (nach RFC 9309), Cloudflare-Signale und die Robots-Angaben der Startseite für 16 Bots' names a concrete verb (prüft) and resource (robots.txt, Cloudflare signals, page robot directives) and enumerates exactly which bot groups are covered. This is unmistakably a crawler-permission audit, distinguishable from sc_url_inspection or bing_crawl_issues.

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 'Anlass' paragraph gives an explicit trigger context (Cloudflare blocking AI-training/agent crawlers by default since 15.09.2026, pages can silently become invisible to ChatGPT/Claude), which tells an agent when this tool is the right choice. It also warns that check_live is 'NUR EIN INDIZ' and should never be reported as 'Bot ist gesperrt'. It stops short of naming an alternative sibling tool for a narrower/broader check, so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

site_indexnow_keyWebsite: Indexnow keyA
Read-only
Inspect

IndexNow-Schlüssel der Website und ob die Schlüsseldatei schon online ist — Voraussetzung für site_indexnow_submit. IndexNow meldet neue und geänderte Seiten sofort an Bing (darauf baut die Websuche von ChatGPT auf), Yandex, Seznam und Naver. Google nimmt NICHT teil (dort: sc_submit_sitemap). Rückgabe: host, key, key_file_url, key_file_content, ready (Datei erreichbar und Inhalt stimmt), bei ready=false next_steps: Datei '.txt' mit dem Schlüssel als Inhalt ins Wurzelverzeichnis der Website legen. Der Schlüssel ist je Workspace und Domain fest und darf öffentlich sein. url: Domain oder URL; ohne Angabe die Website des Workspace. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds substantial context: the readiness check, what ready=false means, concrete next steps for creating the key file, and the fact that the key is public and fixed per workspace/domain. It does not contradict the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with purpose and prerequisite, and most sentences carry useful information. It is dense and slightly verbose in the IndexNow explanation, but no major part is wasted.

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?

Although an output schema exists, the description still explains the meaningful return fields and the ready=false follow-up. Combined with the parameter and alternative guidance, it gives an agent everything needed to invoke and interpret this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: url is defined as a domain or URL with a default to the workspace website, and workspace is defined as a customer workspace slug that is optional when only one workspace exists.

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 first sentence states a specific resource (IndexNow key of the website) and a specific check (whether the key file is already online). It also explicitly frames the tool as a prerequisite for site_indexnow_submit, distinguishing it from the submit sibling.

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 says the key is a prerequisite for site_indexnow_submit and explicitly notes that Google does not participate in IndexNow, routing that case to sc_submit_sitemap. This gives clear when-to-use and alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

site_indexnow_submitWebsite: Indexnow submitA
Destructive
Inspect

Neue oder geänderte Seiten per IndexNow sofort an Bing (Grundlage der ChatGPT-Websuche), Yandex, Seznam und Naver melden — z. B. nach dem Veröffentlichen eines Blogartikels. Google nimmt NICHT teil (dort: sc_submit_sitemap; „Indexierung beantragen“ gibt es nur in der Search-Console-Oberfläche). urls: vollständige URLs einer einzigen Domain, max. 10.000. Nur wirklich neue oder geänderte Seiten melden — dieselben URLs ständig neu zu melden wirkt wie Spam. Vorher muss die Schlüsseldatei online sein (site_indexnow_key); fehlt sie, kommt error=key_file_missing mit Anleitung. Rückgabe: submitted, status (200 angenommen, 202 angenommen, Schlüssel wird noch geprüft), note. Angenommen heißt gemeldet, nicht indexiert. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
urlsYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag openWorldHint and destructiveHint, and the description adds real context beyond them: the max 10,000 URL batch, the single-domain constraint, the spam-reputation risk of repeated submissions, the failure mode error=key_file_missing with guidance, and crucially the semantics of a successful response (accepted means reported, not indexed).

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?

Dense and front-loaded — the core action and target engines come first, then constraints, prerequisites and return semantics. Slight redundancy: the return fields (submitted, status, note) are spelled out even though an output schema exists, and the Google parenthetical is longer than strictly necessary.

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 two-parameter write tool with no schema descriptions, the definition covers everything an agent needs: limits, domain scope, prerequisite key file, error case, return semantics and the naming/search distinction. Nothing required to call it correctly is missing.

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 0%, so the description has to carry both parameters, and it does: urls must be full URLs from a single domain, capped at 10,000, with new/changed-only guidance; workspace is a customer workspace slug and optional when only one workspace exists. Remaining gap is url format edge cases (scheme, host matching, wildcards), so not a full 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (melden/submit) and resource (neue/geänderte Seiten per IndexNow) and names the exact engines reached and the one that is not (Google). It also routes to the correct siblings (sc_submit_sitemap for Google, site_indexnow_key for the key file), so an agent can distinguish it from bing_submit_urls or sc_submit_sitemap without opening any schema.

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?

Explicit when-to-use (after publishing a new or changed page), when-not (repeatedly resubmitting the same URLs looks like spam), prerequisite ordering (key file must already be online, obtained via site_indexnow_key), and the alternative for Google. This is the full when/when-not/alternative triad.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_check_upload_statusStrapi: Check upload statusA
Read-only
Inspect

Nachsehen, was über einen Upload-Link hochgeladen wurde.

Liefert {uploaded: [{id, name, url, mime, size_kb}], count, expired, expires_at}. Die Media-IDs (id) können beim Anlegen eines Eintrags verknüpft werden (z. B. als cover); Bild-Nodes in Blocks-Rich-Text brauchen dagegen das komplette File-Objekt aus strapi_list_media(ids=[...], full=True). Solange der Kunde nichts hochgeladen hat, ist uploaded leer — das ist kein Fehler, sondern heißt: noch warten. expired=true: Link abgelaufen, bereits hochgeladene Dateien bleiben sichtbar. {"error": "unknown_token"}: Token unbekannt oder länger als 24 h abgelaufen — neuen Link erzeugen. token: aus strapi_generate_upload_link. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
tokenYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description still adds substantial behavior: empty results are not failures, expired=true means the link lapsed while previously uploaded files remain visible, and {"error": "unknown_token"} means an unknown or >24h-expired token requiring a new link. These are exactly the states an agent would otherwise misread as errors.

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?

Front-loaded with purpose, then return shape, then error states, then parameters; nearly every clause carries operational meaning. Minor inefficiency: the return-shape enumeration partly duplicates the existing output schema, and parameter notes trail the error cases rather than sitting next to the inputs.

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?

Covers the full calling context for a read-only polling tool: where the token comes from, what each response state means, what to do on failure, and how the returned media IDs are consumed downstream. An output schema exists, yet the description's semantic gloss on 'uploaded is empty' is a genuine addition rather than repetition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does: 'token' is sourced from strapi_generate_upload_link, and 'workspace' is a customer workspace slug that may be omitted when only one workspace exists. That resolves both the provenance and the optionality question the bare schema leaves open.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: poll an upload link to see what a customer has uploaded. It is immediately distinguishable from strapi_generate_upload_link (creates the link) and from strapi_list_media (inspects the media library), both of which are named in the text.

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 workflow is explicit: take the token from strapi_generate_upload_link, poll this tool, and treat an empty 'uploaded' array as 'keep waiting' rather than an error. It also routes the agent for the follow-up case (use strapi_list_media(ids=[...], full=True) for Blocks rich-text images). There is no explicit 'do not use this for X' exclusion, so it stops 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.

strapi_create_entryStrapi: Create entryAInspect

Einen neuen Strapi-Eintrag als DRAFT anlegen — er ist danach NICHT öffentlich. Live geht der Eintrag erst über strapi_publish_entry (separater, bewusster Schritt). data enthält die Feldwerte (wird intern als {"data": ...} gesendet). Media-Felder (z. B. cover) nehmen die Media-ID aus strapi_upload_media bzw. strapi_check_upload_status; Bild-Nodes in Blocks-Rich-Text brauchen das komplette File-Objekt aus strapi_upload_media(full=True) bzw. strapi_list_media(ids=[...], full=True) (sonst 400 ValidationError). locale wählt die Sprachversion (Strapi-v5-i18n, z. B. 'de') — Achtung: ohne locale legt Strapi den Eintrag stillschweigend in der Default-Locale an; bei lokalisierten Content-Types locale immer explizit angeben. Dynamic Zones (z. B. content): jede Sektion ist ein Objekt mit __component (z. B. 'sections.hero') plus ihren Feldern; das Tool sortiert __component automatisch an die erste Stelle jeder Sektion (Strapi lehnt sonst mit 400 'Invalid key __component' ab). Medien in Sektionen als {"id": } oder als volles File-Objekt. Den angelegten Draft zurücklesen mit strapi_get_entry(..., status='draft') — ohne status liefert v5 für einen unveröffentlichten Draft 404. Landingpages: zuerst bestehende Einträge derselben Collection lesen (strapi_list_entries, strapi_get_entry) und dieselben Sektions-Komponenten in derselben Art nutzen. Ohne Vorlage eine vollständige Seite statt einer Kurzfassung (Hero mit CTA, Nutzen, Leistungen, Ablauf, Vertrauen, FAQ, Abschluss-CTA) — mit Bildern aus strapi_list_media oder per strapi_upload_media von Bild-URLs des Nutzers; fehlen Bilder, nachfragen statt fremde zu verwenden. collection: API-ID der Collection (Buchstaben, Ziffern, _ und -; keine Plugin-Routen wie users, upload, admin), sonst {"error":"invalid_collection"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
dataYes
localeNo
workspaceNo
collectionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say non-readOnly, non-destructive, open-world; the description adds substantive behavior: drafts are invisible until a separate deliberate publish, locale silently falls back to default when omitted for localized content types, missing full file objects in Blocks rich text yield 400 ValidationError, and __component is auto-reordered to avoid 'Invalid key __component'. These are exactly the failure modes an agent would otherwise hit.

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 key fact (DRAFT, not public) is front-loaded and the dash-led paragraphs keep dense rules scannable. It is nonetheless long, and the landingpage section (Hero, Nutzen, FAQ, image sourcing) reads as editorial workflow guidance that could live in a prompt or sibling doc rather than a tool definition.

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 4-param mutation with nested free-form data, the description covers prerequisites (media IDs, full file objects), pitfalls (400s on __component and rich-text images), locale defaults, and the follow-up read pattern. An output schema exists, so response shape legitimately needn't be described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load and does: data is the field-value object sent internally as {"data": ...}, locale selects the i18n version, workspace is the customer slug and optional for single-workspace setups, and collection is constrained (letters/digits/_/-, no plugin routes like users/upload/admin, else error invalid_collection). All four parameters gain meaning the schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('einen neuen Strapi-Eintrag als DRAFT anlegen') and immediately scopes it: the entry is NOT public until strapi_publish_entry. That contrast with the publish sibling lets an agent place the tool without opening any schema.

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?

Names explicit alternatives and the conditions selecting them: use strapi_publish_entry for going live, strapi_get_entry(..., status='draft') to read back (noting v5 returns 404 without that status), and read strapi_list_entries/strapi_get_entry first when building landingpages. It also states when to ask the user for images rather than reusing foreign ones.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_delete_entryStrapi: Delete entryA
Destructive
Inspect

Einen Strapi-Eintrag löschen. entry_id ist bei v4 die numerische id, bei v5 die documentId. locale wählt die zu löschende Sprachversion (Strapi-v5-i18n, z. B. 'en'); locale='*' löscht ALLE Sprachversionen des Dokuments. Ohne locale löscht v5 nur die Default-Locale-Version — andere Sprachversionen bleiben bestehen (auch live); die Rückgabe enthält dann einen entsprechenden hint. Bei lokalisierten Content-Types locale deshalb immer explizit angeben. Die Rückgabe {"deleted": entry_id, "collection", "locale"?} bestätigt nur den Aufruf; Ergebnis mit strapi_list_entries(locale=...) prüfen. Single Types (z. B. 'impressum', 'footer'): Singular-API-ID als collection; der Server spricht sie automatisch über ihre ID-lose Route an. entry_id wird dabei NICHT geprüft (ein Single Type hat nur ein Dokument) — die documentId aus dem Lesen mitgeben, sie dient nur als Platzhalter. collection: API-ID der Collection (Buchstaben, Ziffern, _ und -; keine Plugin-Routen wie users, upload, admin), sonst {"error":"invalid_collection"}. entry_id: documentId bzw. numerische ID (Buchstaben, Ziffern, _ und -), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
localeNo
entry_idYes
workspaceNo
collectionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint annotation: explains that in v5 omitting locale deletes only the default-locale version while other locales stay live, that the return contains a hint in that case, that Single Type entry_id is a placeholder and unvalidated, and which error codes signal bad input. This is exactly the extra context annotations cannot convey.

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?

Front-loads the core action, then layers parameter nuance in short labeled sentences. It is long, but nearly every clause carries operational meaning; the return-shape sentence is slightly redundant given an output schema exists.

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 destructive, open-world mutation tool with zero schema coverage, the description covers version differences, localization pitfalls, Single Types, error modes, and verification path. Nothing an agent needs before calling is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates fully: it defines collection (API-ID charset, no plugin routes, invalid_collection error), entry_id (documentId vs numeric id, charset, invalid_id error), locale (version selection, '*' semantics, null default behavior), and workspace (slug, optional when only one workspace).

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?

States a specific verb and resource ("Einen Strapi-Eintrag löschen") with precise scope details (collection API-ID, entry_id semantics). It does not explicitly contrast itself with the closest sibling, strapi_unpublish_entry, so an agent must infer delete-vs-unpublish, but the operation itself is unambiguous.

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?

Gives concrete guidance: always pass locale explicitly for localized content types, use locale='*' to wipe all language versions, and verify results with strapi_list_entries(locale=...). It also handles the Single Type edge case. Missing only an explicit when-not-to-use / alternative recommendation versus unpublish.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_delete_mediaStrapi: Delete mediaA
Destructive
Inspect

Eine Datei aus der Strapi-Medienbibliothek löschen (file_id aus strapi_list_media / strapi_upload_media). file_id: numerische ID (aus strapi_list_media), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
file_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, so the danger profile is known. The description adds the error contract — an invalid id yields {"error":"invalid_id"} — which is useful, but it never says whether deletion is permanent or what permissions are required.

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?

Three short lines, front-loaded with the action, followed by parameter notes. Dense and free of filler, though the German prose mixed into an otherwise English tool surface is a minor readability tax.

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?

An output schema exists, so return values need not be explained, and both parameters plus the error case are covered. The remaining gap is the destructive consequence itself — permanence and required permissions — which matters more than usual for a delete 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?

Schema coverage is 0%, so the description carries the full burden and largely does: it clarifies that file_id is a numeric ID despite the schema typing it as a string, documents the failure mode, and explains workspace as a customer slug that can be omitted for single-workspace setups.

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?

States a specific verb and resource: deleting a file from the Strapi media library, and identifies where the identifier comes from (strapi_list_media / strapi_upload_media). The strapi_ prefix implicitly separates it from wp_delete_media / gbp_delete_media, but no sibling is named as a contrast.

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?

It tells the agent where file_id must come from (strapi_list_media or strapi_upload_media), which is real usage guidance, and notes the workspace slug is optional when only one workspace exists. There is no explicit statement of when to use strapi_update_media or another platform's delete_media instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_get_entryStrapi: Get entryA
Read-only
Inspect

Einen einzelnen Strapi-Eintrag abrufen. entry_id ist bei v4 die numerische id, bei v5 die documentId. locale wählt die Sprachversion (Strapi-v5-i18n, z. B. 'de'; ohne Angabe die Default-Locale). populate lädt Relationen und Medien mit: '' genau eine Ebene tief (Sektionen einer Dynamic Zone kommen mit, Medien und Repeatables INNERHALB der Sektionen fehlen), 'cover' oder 'cover,seo' gezielt. Tiefes Populate als Dict wie in der Strapi-Doku, z. B. populate={"content": {"populate": ""}} (entspricht populate[content][populate]=) — lädt jede Sektion einer Dynamic Zone eine Ebene tief (Medien, Relationen und Repeatables direkt in der Sektion); für Medien innerhalb von Repeatables tiefer verschachteln, z. B. per on-Strategie je Komponente populate={"content": {"on": {"sections.faq": {"populate": {"items": {"populate": ""}}}}}}. Vor dem Zurückschreiben per strapi_update_entry prüfen, dass alle Medien der Sektionen im GET enthalten sind. Der fertige Query-String 'populate[content][populate]=*' oder das Dict als JSON-String gehen ebenfalls. status wählt bei v5 die Version: 'draft' oder 'published'. Ohne status liefert v5 die VERÖFFENTLICHTE Version: ein noch nie publizierter Draft ergibt dann {"error": "http_error", "status": 404}, ein geänderter Draft erscheint als unveränderte Live-Version. Drafts nach create/update deshalb mit status='draft' zurücklesen (status wirkt nur bei v5; v4 ignoriert ihn). Single Types (z. B. 'impressum', 'footer'): Singular-API-ID als collection; der Server spricht sie automatisch über ihre ID-lose Route an. entry_id wird dabei NICHT geprüft (ein Single Type hat nur ein Dokument) — die documentId aus dem Lesen mitgeben, sie dient nur als Platzhalter. collection: API-ID der Collection (Buchstaben, Ziffern, _ und -; keine Plugin-Routen wie users, upload, admin), sonst {"error":"invalid_collection"}. entry_id: documentId bzw. numerische ID (Buchstaben, Ziffern, _ und -), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
localeNo
statusNo
entry_idYes
populateNo
workspaceNo
collectionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavior beyond the readOnlyHint and openWorldHint annotations, including v4 versus v5 ID semantics, locale behavior, populate depth, default published-version behavior, draft 404 outcomes, single-type handling, and validation errors. This is unusually transparent for a read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the detail is largely justified by the tool's complexity and the lack of schema descriptions. Still, the text is dense and could be more scannable, with long sentences and parenthetical examples that make it heavier than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 0% schema description coverage, six parameters, and version-specific behavior, the description is complete enough to call the tool correctly. It also benefits from an existing output schema, so it does not need to describe return values in detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the full parameter burden, and it does: collection, entry_id, locale, populate, status, and workspace are all explained with formats, version-specific behavior, allowed values, and edge cases. It adds meaningful semantics far 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 states a specific verb and resource: retrieving a single Strapi entry. The singular scope clearly distinguishes it from sibling tools such as strapi_list_entries, strapi_create_entry, and strapi_update_entry.

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 gives strong conditional guidance, especially for reading drafts after create/update with status='draft' and for checking media before using strapi_update_entry. However, it does not explicitly say when to use this tool versus strapi_list_entries or other retrieval alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_list_content_typesStrapi: List content typesA
Read-only
Inspect

Alle Strapi-Content-Types auflisten (Schema-Discovery: uid, API-IDs, Anzeigename, Attribut-Schlüssel). Hierfür muss im Workspace der Admin Token hinterlegt sein (Strapi Settings → Administration Panel → Admin Tokens, ab Strapi 5.47 — nicht der API-Token aus Settings → API Tokens, der wird auf Admin-Routen abgelehnt). {"error": "admin_token_invalid"}: Token abgelehnt — message sagt, ob im Admin-Token-Feld ein Content-API-Token steckt oder der Token ungültig/abgelaufen ist; der Kunde trägt dann im Portal-Workspace unter Strapi (CMS) → Admin-Token einen Admin Token ein. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnly and openWorld; the description adds the real operational context: which credential type is required, that admin routes reject content API tokens, and the exact meaning and remediation of the admin_token_invalid error. This is precisely the kind of failure-mode disclosure annotations cannot carry.

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?

Purpose is front-loaded and every block (purpose, auth requirement, error handling, parameter) is relevant. It is slightly dense as a single paragraph and the remediation instruction ('der Kunde trägt dann im Portal-Workspace ... einen Admin Token ein') partially repeats the earlier token-location guidance.

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?

An output schema exists, so return structure need not be described, and authentication plus error semantics are fully covered. The one gap is that it never contrasts itself with the sibling entry-listing tools, which would complete the picture for an agent navigating Strapi schema discovery.

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 0%, so the description must compensate, and it does: 'workspace' is explained as the customer workspace slug and explicitly marked optional when only one workspace exists. Only the slug format itself is left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Alle Strapi-Content-Types auflisten') and immediately qualifies it as schema discovery, enumerating exactly what is returned (uid, API-IDs, Anzeigename, Attribut-Schlüssel). An agent can distinguish this from strapi_list_entries or strapi_get_entry without opening any schema.

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?

Gives a concrete precondition (an admin token must be stored in the workspace) and the exact place to configure it, including the Strapi 5.47 distinction from the content API token. It does not explicitly say when to prefer this over strapi_list_entries, but the discovery framing plus the prerequisite makes the intended entry point clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_list_entriesStrapi: List entriesA
Read-only
Inspect

Einträge einer Strapi-Collection auflisten (paginiert). collection ist die Plural-API-ID (z. B. 'articles'). filters ist ein Strapi-Filter-Dict wie in der Strapi-Doku, verschachtelt (z. B. {"slug": {"$eq": "mein-artikel"}}), populate lädt Relationen mit ('' eine Ebene tief, 'cover' gezielt, tief als Dict wie in der Strapi-Doku, z. B. {"content": {"populate": ""}} — Details bei strapi_get_entry), sort z. B. 'createdAt:desc'. locale wählt die Sprachversion (Strapi-v5-i18n, z. B. 'de'; ohne Angabe die Default-Locale), status filtert nach 'draft' oder 'published'. Ohne status liefert Strapi v5 nur VERÖFFENTLICHTE Einträge — neu angelegte oder geänderte Drafts sind nur mit status='draft' sichtbar (status wirkt nur bei v5; bei v4 sind Drafts über dieses Tool nicht erreichbar). collection: API-ID der Collection (Buchstaben, Ziffern, _ und -; keine Plugin-Routen wie users, upload, admin), sonst {"error":"invalid_collection"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
pageNo
sortNo
localeNo
statusNo
filtersNo
populateNo
page_sizeNo
workspaceNo
collectionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, yet the description adds real behavioral context: v5 returns only published entries by default, drafts need status='draft', that status only takes effect on v5, populate='*' is one level deep, and an invalid collection yields {"error":"invalid_collection"}. Pagination behavior (page/page_size semantics and caps) is not described beyond the word 'paginiert'.

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?

Purpose and pagination come first, then each parameter is annotated in a compact clause with an inline example, and the constraints (invalid_collection error, v4/v5 divergence) are folded into the same flow. Dense but every sentence adds information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be explained, and the description covers collection/filters/populate/sort/locale/status/workspace thoroughly including version-specific traps. The remaining gap is pagination (page, page_size defaults and limits), which an agent would have to infer from the schema defaults alone.

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 0%, so the description must carry all parameter meaning, and it does for most: collection format restrictions, filters as a nested Strapi filter dict with an example, populate variants ('*', 'cover', nested dict), sort ('createdAt:desc'), locale (v5 i18n, 'de'), status values, workspace slug. The two pagination parameters page and page_size are left entirely to their bare schema defaults (1 and 25), so the compensation is strong but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Einträge einer Strapi-Collection auflisten') plus scope ('paginiert'), which separates it cleanly from strapi_get_entry, strapi_create_entry and strapi_delete_entry. It even routes to strapi_get_entry for populate details, so an agent can place it in the CRUD family without opening a schema.

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?

Gives clear conditional guidance: status='draft' is required to see drafts on Strapi v5, drafts are unreachable on v4, plugin routes like users/upload/admin are invalid, and workspace may be omitted when only one workspace exists. It lacks an explicit 'use X instead when you want a single entry' routing statement, so it stops short of full alternative coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_list_mediaStrapi: List mediaA
Read-only
Inspect

Dateien aus der Strapi-Medienbibliothek auflisten (paginiert). Liefert {"data": [...], "_meta": {total, page, page_size}}. data enthält standardmäßig kompakte Zeilen {id, documentId, name, url, mime, size_kb, width, height}; full=True liefert stattdessen die vollständigen File-Objekte (zusätzlich formats, hash, ext, alternativeText …), wie sie Bild-Nodes in Blocks-Rich-Text-Feldern brauchen. ids=[...] filtert auf bestimmte Datei-IDs (numerische id) — der übliche Weg, um für ein oder zwei Bilder das komplette File-Objekt zu holen: strapi_list_media(ids=[42], full=True). Strapi liefert die Mediathek immer komplett; page/page_size und ids werden danach auf diese Liste angewandt, _meta.total ist die Anzahl nach dem ids-Filter. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
idsNo
fullNo
pageNo
page_sizeNo
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioural facts beyond readOnlyHint/openWorldHint: Strapi always returns the entire media library and page/page_size/ids are applied afterwards, and _meta.total is the count after the ids filter — a non-obvious performance and counting caveat an agent would otherwise get wrong. It also discloses the workspace-optional-when-single-workspace rule, which no annotation 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?

Front-loaded with purpose and pagination caveat, then the full/ids recipe, then the workspace note — a sensible ordering with little waste. The enumeration of returned fields ({id, documentId, name, url, mime, size_kb, ...}) is somewhat redundant given an output schema exists, which keeps it from a 5.

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 paginated read over an external CMS whose schema has no field descriptions, the definition covers return shape, filtering semantics, pagination ordering, and workspace resolution. Combined with the output schema and read-only annotation, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description must carry the parameter burden, and it does: it defines the compact row shape for the default (full=False) versus the full file objects, explains ids as numeric file ids applied as a filter, and explains that page/page_size act on the post-filter list. workspace is covered with its slug and optionality. Nothing in the 5-param schema is left unexplained.

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?

States a specific verb and resource ("Dateien aus der Strapi-Medienbibliothek auflisten (paginiert)") and immediately clarifies the shape of what comes back. It is clearly distinguishable from unrelated list tools by the Strapi media-library scope, but it never names the near-neighbours (wp_list_media, gbp_list_media, strapi_get_entry) a router might confuse it with.

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?

Gives a concrete usage recipe: "der übliche Weg, um für ein oder zwei Bilder das komplette File-Objekt zu holen: strapi_list_media(ids=[42], full=True)", plus when full=True is needed (image nodes in Blocks rich-text fields). It stops short of saying when NOT to use it or which sibling to pick instead, so it is clear context rather than full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_publish_entryStrapi: Publish entryA
Destructive
Inspect

Einen Strapi-Eintrag veröffentlichen. v5 (Standard): content-manager publish-Action — braucht den Admin Token des Workspace (Strapi Settings → Administration Panel → Admin Tokens, ab Strapi 5.47; NICHT den API-Token aus Settings → API Tokens, der wird auf Admin-Routen abgelehnt). {"error": "admin_token_invalid"}: Token abgelehnt — message sagt, ob im Admin-Token-Feld ein Content-API-Token steckt oder der Token ungültig/abgelaufen ist; der Kunde trägt dann im Portal-Workspace unter Strapi (CMS) → Admin-Token einen Admin Token ein. v4: setzt publishedAt auf jetzt. locale wählt die zu veröffentlichende Sprachversion (Strapi-i18n, z. B. 'de'; ohne Angabe die Default-Locale). Single Types gehen bei v5 genauso (Singular-API-ID als collection; entry_id wird dabei nicht geprüft — die documentId aus dem Lesen mitgeben); bei v4 werden Single Types nicht unterstützt. collection: API-ID der Collection (Buchstaben, Ziffern, _ und -; keine Plugin-Routen wie users, upload, admin), sonst {"error":"invalid_collection"}. entry_id: documentId bzw. numerische ID (Buchstaben, Ziffern, _ und -), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
localeNo
entry_idYes
workspaceNo
collectionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive=true and openWorld=true, but the description goes well beyond: it discloses the Admin Token requirement (and that the API token is rejected on admin routes), explains the admin_token_invalid remediation path, and notes v4 single types are unsupported while v5 single types skip entry_id validation. This is exactly the extra auth/mutation context annotations cannot carry.

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?

Purpose is front-loaded and then version behavior, error handling, and parameter notes follow logically. It is dense but slightly over-weighted toward the token/error narrative, which could be tightened without losing meaning.

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 destructive, token-gated mutation tool with 0% schema coverage, the description supplies auth requirements, version-specific semantics, and per-parameter constraints. An output schema exists, so return values need not be explained; nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry all parameter meaning — and it does. It documents collection as an API-ID excluding plugin routes, entry_id as documentId or numeric ID with allowed characters, locale as the i18n language selection, and workspace as an optional slug, each with its failure error code.

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?

States a specific verb and resource: 'Einen Strapi-Eintrag veröffentlichen' (publish a Strapi entry). The v5/v4 distinction adds precision. It stops short of naming strapi_unpublish_entry as its counterpart, so sibling differentiation is implied rather than explicit.

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?

Gives clear operating context: v5 uses the content-manager publish action and needs an Admin Token, v4 sets publishedAt to now, and locale selects which language version is published. It explains when workspace is optional and which error codes route to remediation, though it never contrasts explicitly with the unpublish sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_replace_textStrapi: Replace textA
Destructive
Inspect

Text in einem Strapi-Eintrag gezielt ersetzen (z. B. einen Link, Satz oder Preis) — ohne das ganze Feld oder die ganze Dynamic Zone neu zu schicken. Schreibt NUR den Draft (Strapi 5); live geht es erst über strapi_publish_entry. replacements: Liste von {search, replace, field?, all?}:

  • search/replace: wörtlicher Text (kein Regex), z. B. {"search": "/kontakt-alt", "replace": "/kontakt"}.

  • field (optional): nur an dieser Stelle ersetzen, z. B. "excerpt" oder "content[2].faqs[0].answer" (Pfad wie im strapi_get_entry-Ergebnis).

  • all (optional, Standard false): alle Vorkommen ersetzen. Ohne all muss search genau EINMAL vorkommen — 0 oder mehrere Treffer brechen ALLE Ersetzungen ab, ohne zu schreiben (failed nennt Anzahl und Fundstellen). Das Tool liest den Draft selbst vollständig (auch tief verschachtelte Sektionen, Repeatables, Medien), ersetzt, schreibt nur die geänderten Felder zurück und liest zur Kontrolle zurück. Hat jemand den Draft zwischen Lesen und Schreiben im Admin geändert, kommt error=concurrent_modification und nichts wird geschrieben. Texte verknüpfter Einträge und Medien werden nicht angefasst. Rückgabe: applied [{search, count, field_paths}], changed_fields, draft_updated_at, verified. entry_id ist die documentId. locale wählt die Sprachversion (bei lokalisierten Content-Types immer angeben, sonst Default-Locale). Nur Strapi 5. Single Types (z. B. 'impressum', 'footer'): Singular-API-ID als collection; der Server spricht sie automatisch über ihre ID-lose Route an. entry_id wird dabei NICHT geprüft (ein Single Type hat nur ein Dokument) — die documentId aus dem Lesen mitgeben, sie dient nur als Platzhalter. collection: API-ID der Collection (Buchstaben, Ziffern, _ und -; keine Plugin-Routen wie users, upload, admin), sonst {"error":"invalid_collection"}. entry_id: documentId bzw. numerische ID (Buchstaben, Ziffern, _ und -), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
localeNo
entry_idYes
workspaceNo
collectionYes
replacementsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: all-or-nothing semantics when search matches 0 or multiple times, concurrent_modification handling, only-changed-fields write-back, read-back verification, and the fact that linked entries and media are untouched. Also discloses Strapi 5-only scope and single-type handling, which annotations cannot express.

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?

Front-loaded with the purpose and the draft-only constraint, then organized into parameter blocks. It is long, and the trailing error-string notes for collection/entry_id sit far from the parameters they describe, but every block carries actionable information.

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 destructive mutation with a complex nested parameter over an undocumented schema, it covers preconditions, failure modes, atomicity, verification and single-type edge cases. Return fields are described even though an output schema exists, which is redundant but not harmful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does: it defines the replacements item shape ({search, replace, field?, all?}), gives the field path syntax including nested repeatables, specifies the default for all and the exact-match precondition, and explains entry_id, locale, collection and workspace 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?

States a specific verb and resource ("Text in einem Strapi-Eintrag gezielt ersetzen") and immediately distinguishes itself from a full-field write ("ohne das ganze Feld oder die ganze Dynamic Zone neu zu schicken"). An agent can separate it from strapi_update_entry and strapi_publish_entry without reading any schema.

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 scopes the effect to the draft and names the follow-up path to live content (strapi_publish_entry), and the example cases (link, sentence, price) make the intended use concrete. It does not state a hard exclusion against strapi_update_entry, but the 'don't resend the whole field' framing implies the choice clearly enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_unpublish_entryStrapi: Unpublish entryA
Destructive
Inspect

Einen Strapi-Eintrag depublizieren (aus der öffentlichen API nehmen). v5 (Standard): content-manager unpublish-Action — braucht den Admin Token des Workspace (Strapi Settings → Administration Panel → Admin Tokens, ab Strapi 5.47; NICHT den API-Token aus Settings → API Tokens, der wird auf Admin-Routen abgelehnt). {"error": "admin_token_invalid"}: Token abgelehnt — message sagt, ob im Admin-Token-Feld ein Content-API-Token steckt oder der Token ungültig/abgelaufen ist; der Kunde trägt dann im Portal-Workspace unter Strapi (CMS) → Admin-Token einen Admin Token ein. v4: setzt publishedAt auf null. locale wählt die zu depublizierende Sprachversion (Strapi-i18n, z. B. 'de'; ohne Angabe die Default-Locale). Single Types gehen bei v5 genauso (Singular-API-ID als collection; entry_id wird dabei nicht geprüft — die documentId aus dem Lesen mitgeben); bei v4 werden Single Types nicht unterstützt. collection: API-ID der Collection (Buchstaben, Ziffern, _ und -; keine Plugin-Routen wie users, upload, admin), sonst {"error":"invalid_collection"}. entry_id: documentId bzw. numerische ID (Buchstaben, Ziffern, _ und -), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
localeNo
entry_idYes
workspaceNo
collectionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveNotReadOnly/openWorld, but the description adds substantial extra context: which admin token is required (and which is rejected), the admin_token_invalid error meaning and remediation, and v4 vs v5 divergence in effect. This far exceeds 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action then proceeds parameter-by-parameter; every section is useful. The admin-token error-handling passage is somewhat verbose and could be trimmed, but nothing is wasted noise.

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?

Covers auth, version differences, single-type edge cases, all parameters, and error conditions; an output schema exists so return values need no explanation. Nothing an agent needs to invoke correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load and does: it defines collection (API-ID format, disallowed plugin routes, invalid_collection error), entry_id (documentId or numeric, format, invalid_id error), locale (i18n language selection, default), and workspace (slug, optional with single workspace).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (depublizieren) and resource (Strapi-Eintrag) plus scope (aus der öffentlichen API nehmen). Clearly distinguishable from sibling strapi_publish_entry without opening the schema.

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?

Gives rich context on version-specific behavior (v5 content-manager action vs v4 publishedAt=null) and token prerequisites. It does not explicitly name strapi_publish_entry as the inverse alternative, keeping it just below the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_update_entryStrapi: Update entryA
Destructive
Inspect

Einen bestehenden Strapi-Eintrag aktualisieren — schreibt bei v5 NUR den Draft, die veröffentlichte Version bleibt unverändert. Live geht die Änderung erst über strapi_publish_entry (separater, bewusster Schritt). Bei Workspaces mit Strapi v4 gibt es keine getrennte Draft-Kopie: ein Update eines bereits veröffentlichten Eintrags ändert die Live-Version sofort — vorher ggf. strapi_unpublish_entry. entry_id ist bei v4 die numerische id, bei v5 die documentId. locale wählt die zu schreibende Sprachversion (Strapi-v5-i18n, z. B. 'de') — Achtung: ohne locale trifft das Update stillschweigend die Default-Locale; bei lokalisierten Content-Types locale immer explizit angeben. Bild-Nodes in Blocks-Rich-Text brauchen das komplette File-Objekt aus strapi_upload_media(full=True) bzw. strapi_list_media(ids=[...], full=True). Dynamic Zones (z. B. content): Strapi ersetzt das Feld als GANZES — ein Mergen einzelner Sektionen gibt es nicht. Deshalb vorher mit strapi_get_entry(collection, entry_id, status='draft', populate={"content": {"populate": ""}}) komplett lesen (tiefes Populate — populate='' lädt nur eine Ebene, Medien und Repeatables INNERHALB der Sektionen fehlen dann im gelesenen Stand; nur vollständig gelesene Sektionen lassen sich verlustfrei zurückschreiben), die Sektionen ändern und das komplette Array zurückgeben. documentId/Timestamps und volle Media-Objekte aus dem GET können unverändert mitgeschickt werden (Medien auch als {"id": ...}); das Tool sortiert __component an die erste Stelle jeder Sektion und entfernt die ids der Komponenten in Dynamic Zones (Strapi legt sie bei jedem Write neu an — veraltete ids führten sonst zu 400). Frisch lesen bleibt trotzdem nötig, damit der Inhalt aktuell ist. Nur einen Text, Link oder Satz ändern? strapi_replace_text ist kürzer und sicherer als das ganze Feld neu zu schicken. Single Types (z. B. 'impressum', 'footer'): Singular-API-ID als collection; der Server spricht sie automatisch über ihre ID-lose Route an. entry_id wird dabei NICHT geprüft (ein Single Type hat nur ein Dokument) — die documentId aus dem Lesen mitgeben, sie dient nur als Platzhalter. Kontrolle des Drafts: strapi_get_entry(collection, entry_id, status='draft') — ohne status zeigt v5 die alte Live-Version. collection: API-ID der Collection (Buchstaben, Ziffern, _ und -; keine Plugin-Routen wie users, upload, admin), sonst {"error":"invalid_collection"}. entry_id: documentId bzw. numerische ID (Buchstaben, Ziffern, _ und -), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
dataYes
localeNo
entry_idYes
workspaceNo
collectionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: on v5 only the draft is written (live untouched), on v4 an update to a published entry changes live immediately, Dynamic Zones are replaced wholesale (no merge), stale component ids cause 400s, and only fully-populated reads round-trip losslessly. This is exactly the destructive/irreversible detail the destructiveHint alone cannot convey.

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?

Front-loaded with the core purpose and the v5 draft caveat, and every block carries real information. It is long and reads as one dense paragraph, which hurts scanability for a five-parameter tool, but little could be cut without losing necessary caveats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given nested data, an output schema, and no annotation-level parameter detail, the description covers the version differences, localization, dynamic-zone round-trip workflow, single types, and error shapes that an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage the description fully compensates: entry_id is documentId on v5 vs numeric id on v4, locale defaults silently to the default locale, collection must be an API-ID (not plugin routes) or returns invalid_collection, workspace is optional for single-workspace setups, and the data payload's block/media/dynamic-zone semantics are spelled out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Einen bestehenden Strapi-Eintrag aktualisieren') and immediately distinguishes behavior from siblings like strapi_publish_entry, strapi_get_entry, and strapi_replace_text. An agent can tell exactly what this does and what it does not (write live).

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?

Explicit routing: use strapi_replace_text for a single text/link change, use strapi_publish_entry to go live, use strapi_unpublish_entry beforehand on v4, always pass locale on i18n content types. Names alternatives and the conditions that select them throughout.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_update_mediaStrapi: Update mediaA
Destructive
Inspect

Alt-Text, Bildunterschrift oder Namen einer Datei in der Strapi-Mediathek ändern — auch bei Bildern, die schon in Einträgen verwendet werden (die Verknüpfung bleibt). Nur übergebene Felder werden geändert. file_id: NUMERISCHE id der Datei (aus strapi_list_media, strapi_upload_media oder strapi_check_upload_status). Bilder fürs Frontend brauchen einen Alt-Text, der beschreibt, was zu sehen ist (z. B. "Startseite von Rent2B: Buchungsplattform für Verleihbetriebe"). Rückgabe: after (alternative_text, caption, name, url), verified (zurückgelesen). Fehlt dem API-Token die Upload-Berechtigung, kommt ein Hinweis, was in Strapi freizugeben ist. strapi_update_entry auf 'upload/files' funktioniert dafür nicht (405). file_id: numerische ID (aus strapi_list_media), sonst {"error":"invalid_id"}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameNo
captionNo
file_idYes
workspaceNo
alternative_textNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: partial-update semantics ('nur übergebene Felder werden geändert'), the fact that existing entry links survive the edit, the read-back 'verified' field in the response, the invalid-id error shape, and a permission-failure hint naming what must be enabled in Strapi. The destructiveHint=true annotation is not contradicted — the description merely clarifies that only supplied fields change.

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?

Front-loaded with purpose and scope, then param notes, then return/permission behavior — a sensible order with no filler prose. It loses a point because file_id is documented twice with overlapping content (source tools, then numeric ID plus error), which is avoidable repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with five parameters, no schema descriptions and a destructive annotation, the definition covers purpose, partial-update semantics, parameter sourcing, error behavior, permission failure, and read-back verification. Nothing an agent needs before calling it is missing, even though an output schema already exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description covers every parameter: file_id (numeric, its source tools, and the invalid_id error), workspace (customer slug, optional when there is only one workspace), and the three editable fields name/caption/alternative_text via the opening sentence. It even supplies editorial guidance and an example for alternative_text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: changing alt text, caption or file name in the Strapi media library, and immediately scopes it to images already used in entries (the link is preserved). It also explicitly separates itself from strapi_update_entry, which it says does not work for 'upload/files' (405).

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?

Tells the agent when this is the right tool (metadata edits on existing media, including in-use images) and names the alternative that fails, so the agent will not route around it. It also points to where a valid file_id comes from (strapi_list_media, strapi_upload_media, strapi_check_upload_status).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strapi_upload_mediaStrapi: Upload mediaA
Destructive
Inspect

Datei in die Strapi-Medienbibliothek hochladen — per source_url (Server lädt sie, max. 25 MB) ODER file_base64 (nur für kleine Dateien, deren Bytes der Agent selbst erzeugt oder besitzt). Genau eines angeben. Chat-Anhänge und lokale Dateien des Kunden erreichen den Server nicht — dafür strapi_generate_upload_link verwenden. filename (mit Endung) und mime_type bei file_base64 angeben, sonst landet die Datei als 'upload' mit application/octet-stream in der Mediathek; bei source_url werden beide aus URL und Antwort abgeleitet. Liefert {success, uploaded: [{id, name, url, mime, size_kb}]}. Für Media-Felder (z. B. cover) reicht die id. Bild-Nodes in Blocks-Rich-Text brauchen das komplette File-Objekt (width, height, formats, hash, ext, documentId …) — full=True liefert es direkt in uploaded (alternativ später strapi_list_media(ids=[...], full=True)). Optional ref/ref_id/field, um die Datei direkt an ein Eintragsfeld zu hängen: ref = Content-Type-UID des Eintrags (Feld uid aus strapi_list_content_types — keine UID raten), ref_id = NUMERISCHE id des Eintrags (nicht die documentId), field z. B. 'cover'. Schlägt das Verknüpfen fehl (HTTP 500), liegt die Datei trotzdem in der Mediathek — nicht erneut hochladen. Sicherer Weg: ohne ref hochladen und die Media-ID per strapi_update_entry ins Feld schreiben (bleibt Draft-first). file_base64 hoechstens 25 MB (sonst {'error': 'too_large'}) — groessere Dateien per source_url oder Upload-Link. alternative_text / caption: Alt-Text und Bildunterschrift direkt beim Upload. Bilder, die im Frontend erscheinen, brauchen einen Alt-Text (Barrierefreiheit, Bild-SEO) — sonst nachträglich mit strapi_update_media setzen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
refNo
fullNo
fieldNo
ref_idNo
captionNo
filenameNo
mime_typeNo
workspaceNo
source_urlNo
file_base64No
alternative_textNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: 25 MB ceiling with the exact 'too_large' error shape, filename/mime fallback to 'upload' + application/octet-stream, and the important partial-failure semantics (linking fails with HTTP 500 but the file persists — do not re-upload) plus draft-first guidance. The gap: destructiveHint=true is never explained — nothing says whether a name clash overwrites, creates a duplicate, or fails.

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?

Well front-loaded: the core input-mode decision comes first, then routing, then linking, then metadata. Length is justified by 11 undocumented parameters, but it is an undifferentiated prose block and the explicit return-shape sentence duplicates the existing output schema.

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 mutation tool with destructiveHint, openWorldHint, 11 params at 0% schema coverage, and an output schema, the description supplies everything an agent needs: input-mode selection, size limits and error tokens, linking recipe and safe fallback, accessibility expectations, and return-value consumption guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the entire burden — and it covers all 11 parameters: source_url/file_base64 semantics and mutual exclusion, filename/mime_type requirements per mode, ref (content-type UID, do not guess), ref_id (numeric id, NOT documentId), field example, full, alternative_text/caption, and workspace scoping. This is exactly what a 0%-coverage 11-param schema needs.

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?

Opens with a specific verb+resource ("Datei in die Strapi-Medienbibliothek hochladen") and immediately scopes it to two mutually exclusive input modes. It also distinguishes itself from the neighboring siblings it could be confused with (strapi_generate_upload_link, strapi_list_media, strapi_update_media, strapi_update_entry).

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?

Explicit branch logic: source_url vs. file_base64 ("Genau eines angeben"), plus a hard routing rule to strapi_generate_upload_link for chat attachments and customer-local files. It also gives a preferred path for the risky ref/ref_id/field linking case (upload without ref, then strapi_update_entry) and when full=True beats a later strapi_list_media call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_configure_sourceWorkspace configure sourceA
Destructive
Inspect

Source-IDs eines Workspace setzen — ersetzt den Portal-Roundtrip beim Onboarding (z.B. frisch angelegten GTM-Container direkt verknüpfen). source: google_ads | ga4 | search_console | gtm | business_profile | meta_ads. ids je source: google_ads {customer_id, login_customer_id?}, ga4 {property_id}, search_console {site_url}, gtm {account_id, container_id}, business_profile {account_id, location_id}, meta_ads {ad_account_id} (Meta-OAuth-Verbindung selbst kommt weiter aus dem Portal). Weggelassene oder leere Werte in ids ändern nichts (Antwort nennt sie in 'ignored_empty'). Ein optionales Feld entfernen geht nur ausdrücklich über clear, z.B. source='google_ads', ids={}, clear=['login_customer_id'] — nötig, wenn ein Konto vom Verwalterkonto (MCC) auf direkten Zugriff wechselt: eine stehengebliebene login_customer_id führt dann zu USER_PERMISSION_DENIED. Pflichtfelder sind nicht leerbar ({'error': 'not_clearable'}), nur durch einen neuen Wert ersetzbar. Ein reiner clear-Aufruf braucht die Pflichtfelder nicht; ein Feld gleichzeitig setzen und leeren ergibt {'error': 'conflicting_fields'}. Die Antwort listet gesetzte Spalten in 'updated', geleerte in 'cleared'. Nur fuer Inhaber/Admins des Kontos: eingeschraenkte Team-Mitglieder bekommen {'error': 'member_restricted'}; eine fuer Zugang/Tarif nicht freigeschaltete Quelle {'error': 'source_not_enabled'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
idsYes
clearNo
sourceYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far beyond the annotations: it explains that empty/omitted values are no-ops recorded in 'ignored_empty', that field removal requires an explicit clear list, that required fields are not clearable (not_clearable) and can only be replaced, and that conflicting set+clear returns conflicting_fields. The MCC→direct-access scenario with its USER_PERMISSION_DENIED pitfall is exactly the kind of context an agent needs before a destructive change. Consistent with destructiveHint=true.

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?

Front-loaded with purpose, then progressively details the clear semantics and error cases; every block carries real information. It is long, and the clear/ignored_empty rules could be tightened slightly, but nothing is filler.

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 destructive 4-parameter nested-object tool, everything an agent must know to call it correctly is present: per-source fields, clear-vs-set interplay, required-field constraints, permission errors and response keys (updated/cleared/ignored_empty). The output schema exists, and the description does not waste space re-explaining return shapes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description fully compensates: it defines the source enum, the exact id fields per source (google_ads {customer_id, login_customer_id?} etc.), the clear[] semantics with a working example, and that workspace is an optional slug when only one workspace exists. Each of the 4 parameters is covered with meaning the schema cannot provide.

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?

Specific verb+resource: 'Source-IDs eines Workspace setzen — ersetzt den Portal-Roundtrip beim Onboarding'. It even frames the concrete use case (linking a freshly created GTM container). The enumerated source list makes the affected domain unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Use case is stated explicitly (onboarding, skipping the portal roundtrip) and permission scoping is spelled out (owners/admins only, member_restricted, source_not_enabled). It never names a sibling alternative (e.g. list_workspaces to obtain the workspace slug), which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_createWorkspace createA
Destructive
Inspect

Kunden-Workspaces anlegen — einer je Eintrag, mit den zugeordneten Konten. Jeder neue Workspace kann die Rechnung erhöhen (Agentur-Tarif: Abrechnung je Workspace). Deshalb in zwei Schritten:

  1. confirm=false (Standard): prüft nur und legt NICHTS an. Antwort zeigt je Eintrag status 'vorgesehen' oder 'abgelehnt' (mit fehler) und unter abrechnung Menge und Monatsbetrag vorher/nachher. Das dem Nutzer zeigen.

  2. Erst nach ausdrücklicher Zustimmung des Nutzers denselben Aufruf mit confirm=true wiederholen → status 'angelegt' mit slug und portal_url. workspaces: Liste von {name (Pflicht), ads_customer_id, ga4_property_id, sc_site_url, meta_ad_account_id, linkedin_account_id, google_connection_id, meta_connection_id, linkedin_connection_id} — alles außer name optional; Werte wie in workspace_suggestions. Andere Felder lehnen den ganzen Aufruf ab ({'error': 'invalid_fields'}), ohne etwas anzulegen. Verbindungs-IDs nur nötig, wenn mehrere Verbindungen dasselbe Konto sehen; die login_customer_id (Verwaltungskonto) setzt das Anlegen selbst. Ads-Konto, GA4-Property und Search-Console-Site eines Workspace müssen über DIESELBE Google-Verbindung erreichbar sein. Jede ID wird gegen die Konten der Verbindungen geprüft. Fehlercodes je Eintrag (fehler [{code, feld?, hinweis}]): konto_unbekannt (die Verbindungen sehen diese ID nicht — nicht raten, workspace_suggestions erneut lesen), bereits_belegt (schon in einem Workspace oder doppelt in diesem Aufruf), ads_verwaltungskonto, konto_inaktiv, google_verbindungen_gemischt, verbindung_unbekannt, name_fehlt, tarif_limit (Tarifgrenze erreicht; Upgrade im Portal), slug_konflikt (gleichzeitige Anlage mit demselben Namen — erneut versuchen), zu_viele_eintraege (höchstens 25 Einträge je Aufruf — aufteilen). Abgelehnte Einträge verhindern die anderen nicht. Nur für Inhaber und Admins; Quellen nachträglich ändern: workspace_configure_source. Weitere Quellen (GTM, Business Profile, WordPress …) im Portal oder per workspace_configure_source. agentur: Name des Kontos, wenn der Nutzer mehrere Konten verwaltet.

NameRequiredDescriptionDefault
agenturNo
confirmNo
workspacesYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=true, openWorldHint=true), the description discloses the financial consequence (per-workspace billing on the agency tariff), that the default is a no-op dry run, that rejected entries do not block others, the 25-entry cap, and the full per-entry error-code vocabulary. It also names who may call it and that login_customer_id is filled in automatically — context the annotations cannot express.

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?

Front-loaded with purpose, then the two-step procedure, then field semantics, then errors — a sensible ordering with no filler. It runs long, largely because of the exhaustive error-code enumeration, but each element still earns its place for a destructive, billing-affecting tool.

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 destructive create tool with an output schema present, everything an agent needs to act correctly is stated: the dry-run default, consent gate, permissions, entry limits, partial-failure behavior, validation sources, and remediation hints (re-read workspace_suggestions, split the batch, retry on slug conflict). Return values need not be re-explained since an output schema exists, yet the description still pins down the key response fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does: the workspaces item fields are enumerated with name as the only required field, the other IDs marked optional, and connection IDs scoped to the case where several connections see the same account. confirm's two modes and agentur's meaning ('Name des Kontos, wenn der Nutzer mehrere Konten verwaltet') are both explained.

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?

Opening sentence states a concrete verb and resource ('Kunden-Workspaces anlegen — einer je Eintrag, mit den zugeordneten Konten') and the description distinguishes itself from workspace_configure_source and workspace_suggestions by naming both. An agent can identify the operation and its granularity (one workspace per list entry) without opening the schema.

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 prescribes an explicit two-step protocol: confirm=false by default is a pure validation pass showing status 'vorgesehen'/'abgelehnt' plus billing delta, and confirm=true only after explicit user consent. It also states the precondition 'Nur für Inhaber und Admins' and routes post-creation source changes to workspace_configure_source, so when/when-not/alternatives are all covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_prompt_ideasWorkspace prompt ideasA
Read-only
Inspect

Beispiel-Aufgaben, die in DIESEM Workspace sofort funktionieren — passend zu den verbundenen Quellen und den Rechten des Zugangs. Aufrufen, wenn der Nutzer fragt „Was kann ich hier machen?“, nach dem Verbinden einer neuen Quelle oder wenn er nicht weiß, wo er anfangen soll. Dem Nutzer nicht die ganze Liste zeigen: je Kategorie 2–3 passende Ideen auswählen und anbieten, eine davon direkt auszuführen. Quellenübergreifende Prompts stehen vorn — sie zeigen, was erst die Kombination kann. category: optional overview (Lagebild) | analyze (Diagnose) | optimize (Vorschläge, ändert nichts) | act (ändert Live-Daten) | report (Bericht). language: 'de' (Standard) oder 'en'. Rückgabe: connected_sources, write_access, total, categories {kategorie: [{id, title, prompt, sources, writes, beta?}]}, unlock [{source, label, new_prompts, examples}] = was eine weitere verbundene Quelle zusätzlich ermöglichen würde (Quellen verbindet der Nutzer im Portal), hidden_write_prompts = Anzahl ausgeblendeter Prompts, weil der Zugang nur lesen darf. Prompts mit writes=true vor der Ausführung immer erst als Vorschlag zeigen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
categoryNo
languageNode
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, it discloses filtering by write access, the hidden_write_prompts count, the unlock structure showing what another source would enable, and the rule that writes=true prompts must be shown as proposals before execution. This is substantive behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose then usage then parameters then return shape. Fairly dense but nearly every sentence adds actionable information; minor length cost from the return-shape enumeration.

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?

Covers purpose, invocation triggers, all three parameters, return structure, and the safety handling of write prompts. Even with an output schema present, the added return semantics (unlock, hidden_write_prompts) make it complete for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry parameters — and it does: category with five named values and their meanings, language with default, and workspace slug with the single-workspace caveat. Fully compensates for the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific thing: example tasks that work immediately in THIS workspace, matched to connected sources and access rights. Clear and distinct from most siblings, though it doesn't explicitly differentiate from workspace_suggestions or workspace_configure_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?

Explicitly names when to call: user asks 'what can I do here?', after connecting a new source, or when the user doesn't know where to start. Also adds presentation guidance (don't show the full list, offer 2-3 per category, lead with cross-source prompts).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_suggestionsWorkspace suggestionsA
Read-only
Inspect

Welche Kunden-Workspaces fehlen noch? Listet alle Konten, die die verbundenen Google-, Meta- und LinkedIn-Zugänge sehen und die noch keinem Workspace zugeordnet sind — als Grundlage, um Workspaces mit workspace_create anzulegen. Aufrufen, wenn der Nutzer fragt, welche Kunden er noch anlegen kann, nach dem Verbinden eines neuen Zugangs oder bei einem Konto ohne Workspaces. Rückgabe: agentur, plan, workspaces_bestehend, workspaces_frei (noch anlegbar im Tarif; null = unbegrenzt), abrechnung_je_weiterem_workspace {menge_vorher/_nachher, monatlich_netto_eur_vorher/_nachher, abo_aktiv, hinweis}, verbindungen {google: [{connection_id, email, ads_konten [{customer_id, name, via_verwaltungskonto?}], ga4_properties [{property_id, name, ga4_konto}], search_console_sites [{site_url, berechtigung}], fehler?}], meta: [{connection_id, name, werbekonten [{ad_account_id, name, aktiv, waehrung?}], fehler?}], linkedin: [{connection_id, name, werbekonten [{account_id, name, aktiv}], fehler?}]}, bestehende_workspaces [{slug, name, ads_customer_id, ga4_property_id, sc_site_url, meta_ad_account_id, linkedin_account_id}], vorschlaege, portal_url (dieselbe Liste zum Anhaken im Portal). vorschlaege sind ein Namensabgleich (Kunde ↔ Property ↔ Site ↔ Werbekonten) und haben exakt die Felder, die workspace_create annimmt. Sie sind ein Ausgangspunkt: Prüfen Sie die Zuordnung anhand der Rohlisten (Namen, Domains, Währungen) und korrigieren Sie, was nicht zusammengehört oder fehlt — z. B. ein Meta-Konto mit anderem Namen als das Ads-Konto. Search-Console-Sites stehen vollständig in der Liste, auch wenn ein Workspace sie schon nutzt. Verwaltungskonten (MCC) fehlen — sie haben keine Kampagnen. 'fehler' an einer Verbindung heißt: deren Konten fehlen in der Liste (Verbindung im Portal erneuern). Nur für Inhaber und Admins eines Kontos; Mitglieder bekommen einen Fehler. agentur: Name des Kontos, wenn der Nutzer mehrere Konten verwaltet.

NameRequiredDescriptionDefault
agenturNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld annotations, the description discloses permission constraints (only owners/admins, members get an error), exclusion behavior (MCC accounts are absent), error semantics ('fehler' means that connection's accounts are missing), and that Search Console sites appear even if already used. It also warns that vorschlaege are heuristic name matches requiring verification against raw lists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and usage triggers are front-loaded and efficient, but the long 'Rückgabe:' block enumerates return fields in detail even though an output schema exists. Much of that enumeration is redundant, and the description would be tighter if it kept only the behavioral notes (fehler semantics, MCC exclusion, heuristic warnings) rather than restating the full response shape.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only discovery tool with one optional parameter and an output schema, the description covers purpose, triggers, permissions, edge cases, and the relationship to workspace_create. An agent has everything needed to decide when to call it and how to interpret the results.

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 0%, but the description compensates by explaining the sole parameter: 'agentur' is the account name when the user manages multiple accounts. That is sufficient to invoke correctly, though the brief phrasing leaves no room for additional nuance such as what happens if omitted when multiple accounts exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific question and states the exact resource: accounts visible to connected Google/Meta/LinkedIn access that are not yet assigned to a workspace. It clearly distinguishes itself from list_workspaces (existing workspaces) and workspace_create (the follow-up action), so an agent can identify its role without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives three explicit triggers: when the user asks which customers they can still create, after connecting a new access, or for an account without workspaces. It also names workspace_create as the downstream tool, making the when-to-use and what-to-do-next relationship unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_bridge_statusWordPress: Bridge statusA
Read-only
Inspect

Verbindung zum Honeyfield-Connector-Plugin der WordPress-Seite prüfen. Liefert plugin_version, wp_version, php_version, scopes (aktive Module: content/seo/tracking/health), consent_ack, builders (Elementor/Bricks) und seo_plugin (Yoast/Rank Math). Bei Fehlern kommt ein Installations-/Konfigurations- Hinweis zurück. Voraussetzung: Plugin auf der WP-Seite installiert + Verbindungsschlüssel aus dem Portal eingefügt. Prüft nur den Connector-Kanal (Verbindungsschlüssel), NICHT das App-Passwort für die WP-REST-API (wp_list_posts/wp_create_post) — dafür wp_site_health → auth. Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered; the description adds genuinely new behavior: failure modes return an install/config hint, and unresponsive sites return {"error": "wp_timeout"} or "wp_unreachable" with a retry-later instruction. It stops short of describing the success envelope beyond field names, which the output schema already carries.

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?

Front-loaded with the core action, then scope, then failure behavior, then the parameter note — a sensible ordering. It is somewhat dense with enumerated field lists, but each sentence carries operational information rather than filler.

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-optional-parameter status tool with an output schema and annotations, nothing an agent needs is missing: prerequisites, what is and isn't verified, failure signals, retry guidance, and parameter meaning are all present.

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 0%, so the description must carry the load, and it does: workspace is defined as the customer workspace slug and flagged as optional when only one workspace exists. That is the semantic the bare schema (string|null, default null) cannot convey.

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?

Names a specific verb+resource: it verifies the connection to the Honeyfield connector plugin on the WordPress site, and it enumerates exactly what the response reports (plugin_version, wp_version, php_version, scopes, consent_ack, builders, seo_plugin). It also draws the boundary against wp_site_health, which no sibling name alone would reveal.

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 the prerequisite (plugin installed plus a connection key pasted from the portal) and an explicit exclusion: it checks only the connector channel, NOT the WP REST app password, pointing to wp_site_health → auth for that. This is a textbook when-to-use / when-not-to-use / alternative statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_builder_get_contentWordPress: Builder get contentA
Read-only
Inspect

Page-Builder-Inhalt (Elementor/Bricks) einer WordPress-Seite als Text-Baum lesen — für Seiten, bei denen wp_get_post nur leeren content liefert, weil der Inhalt im Builder-Meta steckt. Liefert je Text-Feld element_id, element_type, field und text; diese Adressen nimmt wp_builder_replace_text entgegen. Braucht das Honeyfield-Connector-Plugin (siehe wp_bridge_status). post_id: numerische Beitrags-/Seiten-ID (aus wp_list_posts). Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
post_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint/openWorldHint, the description discloses the plugin dependency, the exact returned field set (element_id, element_type, field, text), and concrete failure modes with retry guidance (wp_timeout, wp_unreachable). That is real behavioral context an agent cannot get from 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?

Front-loads the core purpose and the wp_get_post comparison, then handles return shape, prerequisite, parameters, and errors in short lines. Dense but every line carries information; only the error/parameter lines could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only two-parameter tool with an output schema, the description covers the remaining gaps: why this tool exists alongside wp_get_post, plugin prerequisite, output field semantics, and error/retry behavior. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden and does: post_id is described as the numeric post/page ID obtainable from wp_list_posts, and workspace is explained as a customer slug that is optional when only one workspace exists. Minor tension: schema types post_id as string while the text says 'numerisch', but the meaning is still clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: reads Elementor/Bricks page-builder content as a text tree. It explicitly distinguishes itself from wp_get_post (which returns empty content for builder pages) and names the downstream sibling wp_builder_replace_text that consumes its output addresses.

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?

Gives an explicit when-to-use condition (pages whose content lives in builder meta, so wp_get_post comes back empty) and points to the complementary tool wp_builder_replace_text. Prerequisites (Honeyfield connector plugin, verifiable via wp_bridge_status) are also named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_builder_replace_textWordPress: Builder replace textA
Destructive
Inspect

Texte in Page-Builder-Elementen (Elementor/Bricks) gezielt ändern — nie den ganzen Baum überschreiben, Layouts bleiben unangetastet. Jede Ersetzung: {"element_id","field","text"} (Feld komplett setzen) ODER {"element_id","field","search","replace"} (Teilstring ersetzen); Adressen aus wp_builder_get_content. Elementor-CSS-Cache wird automatisch geleert; Bricks-Code-Elemente sind tabu (signiert). Liefert applied/failed. Grenzen ab Connector-Plugin 1.2.2 (Version: wp_bridge_status):

  • Nur Textfelder (die wp_builder_get_content liefert) sind schreibbar; HTML-Widgets, custom_css, Shortcodes u. ae. landen in failed mit Grund.

  • Neue Werte (text/replace) werden wie bei WordPress-Redakteuren bereinigt: kein , keine Event-Handler, kein javascript:, kein . Ergaebe erst die Ersetzung solches Markup, landet sie in failed. Normales HTML (Absaetze, Links, Listen, Ueberschriften) bleibt erhalten. Felder, die

  • Builder-Vorlagen (Header/Footer, elementor_library/bricks_template) und nicht oeffentliche Beitragstypen: HTTP 403 hf_post_not_writable. Bei {"error": "wp_timeout"} oder "wp_unreachable" ist offen, ob die Änderung angekommen ist — erst nachsehen, nicht blind wiederholen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
post_idYes
workspaceNo
replacementsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, but the description adds the real behavioral detail: the Elementor CSS cache is flushed automatically, only text fields returned by wp_builder_get_content are writable, values are sanitized (no script, event handlers, javascript:, iframe) and a replacement introducing such markup lands in failed, and fields containing script/style can only be set via the text form. The ambiguous-outcome warning on timeouts is exactly the kind of mutation context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the no-whole-tree-overwrite guarantee, then dense bulleted limits, then the timeout caveat, then workspace. No filler sentences; even the plugin-version gate earns its place because it changes which limits apply.

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 destructive, open-world mutation with an output schema and zero schema coverage, this covers everything an agent needs: writable field class, sanitization rules, error outcomes (failed with reason, HTTP 403 hf_post_not_writable), cache side effect, and retry policy. Return values are backed by the output schema, so no further explanation is owed.

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 0%, so the description must carry the load — and it does for the hard part, spelling out both accepted item shapes for replacements ({element_id, field, text} vs {element_id, field, search, replace}) and calling workspace an optional customer-workspace slug needed only when there is more than one. The one gap is post_id, which the description never defines despite being a required 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?

Names a specific verb (replace text) plus a narrow resource (page-builder elements in Elementor/Bricks) and immediately bounds the scope: never overwrite the whole tree, layouts stay untouched. That scope statement alone separates it from wp_update_post and strapi_replace_text, and it points to wp_builder_get_content as the source of the element addresses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the prerequisite (element addresses come from wp_builder_get_content), the when-not cases (Bricks code elements are signed/tabu, builder templates and non-public post types return 403, HTML widgets land in failed), and the recovery rule for wp_timeout/wp_unreachable — look first, don't blindly retry. That is the full when/when-not/alternatives set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_create_postWordPress: Create postAInspect

Neuen WordPress-Beitrag/Seite anlegen. status: 'draft' (Default), 'publish', 'pending', 'private', 'future' (terminiert, braucht date). date: Veröffentlichungsdatum ISO 8601 ohne Zeitzonen-Suffix, z. B. '2026-10-01T09:00:00', in der Zeitzone der WordPress-Site. Bei status='future' Pflicht — ohne date kommt {"error": "date_required"} zurück, bevor etwas angelegt wird (WordPress würde 'future' ohne Zukunftsdatum sofort veröffentlichen). post_type: 'posts' (Default), 'pages', 'templates', 'template-parts', 'navigation', 'blocks' oder ein Custom Post Type der Site (/wp/v2/types); andere Werte → {"error":"invalid_post_type"}. content/excerpt = HTML. categories/tags = Listen von Term-IDs (aus wp_list_terms); nur für post_type=posts, Seiten ignorieren sie stillschweigend. Bei {"error": "auth_error"}: wp_site_health → 'auth' zeigt die Ursache. Bei {"error": "wp_timeout"} oder "wp_unreachable" ist offen, ob der Beitrag angelegt wurde — erst mit wp_list_posts nachsehen, nicht blind wiederholen. Landingpages und neue Seiten (post_type='pages'): erst die bestehenden Seiten als Vorbild ansehen — wp_list_posts(post_type='pages'), dann wp_get_post bzw. bei leerem content wp_builder_get_content — und Aufbau, Tonalität und Gestaltung übernehmen. Gibt es keine Vorlage, eine vollständige Seite bauen statt einer Kurzfassung: Hero mit Nutzenversprechen und Call-to-Action, Problem/Nutzen, Leistungen, Ablauf, Vertrauen (Referenzen, Zahlen), FAQ, abschließender CTA — als Gutenberg-Blöcke (wp:heading, wp:paragraph, wp:image, wp:buttons, wp:columns). Bilder gehören dazu: zuerst passende aus der Mediathek (wp_list_media), sonst vom Nutzer genannte Bild-URLs per wp_upload_media; jedes Bild mit alt-Text. Fehlen passende Bilder, die Stellen im Entwurf kennzeichnen und nachfragen — keine fremden Bilder ohne Nutzungsrecht. Baut die Site mit Elementor/Bricks, entsteht die neue Seite trotzdem als Block-Inhalt; das im Ergebnis sagen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
dateNo
slugNo
tagsNo
titleYes
statusNodraft
contentNo
excerptNo
post_typeNoposts
workspaceNo
categoriesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false, destructiveHint=false, openWorldHint=true. The description adds real behavioral context the annotations cannot: status='future' without date would publish immediately in WordPress (an irreversible side effect), the exact error envelopes returned (date_required, invalid_post_type, auth_error, wp_timeout), and that categories/tags are silently ignored for pages.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Creation semantics, error handling and parameter rules are correctly front-loaded, but roughly half the text is a page-authoring playbook (Hero/Problem/FAQ/CTA block layout, wp:heading/wp:columns specifics, image sourcing and alt-text policy) that arguably belongs in an agent prompt rather than a tool definition. Dense and useful, yet bloated relative to the tool contract.

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?

An output schema exists, so return values need no explanation. For a 10-parameter, open-world create tool the description covers preconditions, side-effect risk, error recovery and content conventions, leaving nothing an agent would need to call it correctly or safely.

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 0%, so the description carries the burden — and it does: allowed status values plus the draft default, ISO 8601 date format without timezone suffix and its mandatory nature for 'future', the enumerated post_type values and pointer to /wp/v2/types, content/excerpt as HTML, categories/tags as term IDs from wp_list_terms, and workspace's optionality with a single workspace. Only 'title' and 'slug' go unmentioned, so it is strong but not exhaustive.

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?

Opens with a specific verb+resource ('Neuen WordPress-Beitrag/Seite anlegen') and immediately scopes the post_type space, which is what distinguishes it from wp_update_post / wp_get_post / wp_list_posts. An agent can tell the create operation apart from its siblings without opening any schema.

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 prescribes a workflow: for landing pages and new pages, inspect existing pages first via wp_list_posts(post_type='pages'), then wp_get_post or wp_builder_get_content if content is empty, and only then create. It also states when-not/diagnostic paths (wp_site_health → 'auth' on auth_error) and forbids blind retry on wp_timeout/wp_unreachable, routing to wp_list_posts to check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_create_termWordPress: Create termAInspect

Eine WordPress-Kategorie oder einen Tag anlegen (idempotent: existiert der Name bereits, wird der vorhandene Term zurückgegeben (Feld 'existed':true), kein Duplikat/Fehler). taxonomy='categories' (Default) oder 'tags' — andere Werte werden still zu categories (Custom-Taxonomien nicht unterstützt). parent nur für Kategorien. Bei existed:true kommt der bestehende Term (id, name, slug, ...) oder minimal {existed, term_id, taxonomy}. Bei {"error": "wp_timeout"} oder "wp_unreachable" ist offen, ob die Änderung angekommen ist — erst nachsehen, nicht blind wiederholen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
nameYes
slugNo
parentNo
taxonomyNocategories
workspaceNo
descriptionNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true): it discloses idempotency, that unknown taxonomy values are *silently* coerced to categories, that custom taxonomies are unsupported, the two possible return shapes on 'existed', and that wp_timeout/wp_unreachable leaves write state ambiguous so the agent must verify rather than retry blindly. This is exactly the non-obvious behavior an agent needs.

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?

Front-loads the core operation and idempotency in the first clause, then tapers into edge cases and error handling. Dense with parentheticals but every sentence carries operational information; no filler to cut, though the nesting makes it slightly harder to scan.

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 6-parameter mutating tool, the description covers the risky parts (idempotency, silent coercion, ambiguous failure states) rather than duplicating output schema fields. An agent could call this correctly and safely on the first attempt.

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 0%, so the description carries full burden and does most of it: taxonomy default plus coercion rule, parent restricted to categories, workspace meaning and optionality, and name's role in the idempotency check. 'slug' and 'description' are never mentioned, leaving two parameters to convention.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Eine WordPress-Kategorie oder einen Tag anlegen') and immediately scopes it away from generic term creation with the idempotency note. An agent can distinguish it from wp_list_terms or wp_create_post without opening any schema.

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?

Gives clear operational context: idempotent behavior when the name exists, taxonomy fallback for unsupported values, parent only applies to categories, and workspace optional when a single workspace exists. It stops short of naming a concrete alternative tool (e.g. wp_list_terms for pre-checking), so it lacks explicit alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_delete_mediaWordPress: Delete mediaA
Destructive
Inspect

Eine Datei aus der WordPress-Medienbibliothek löschen (media_id aus wp_list_media / wp_upload_media). Immer force=True (Default) — die Löschung ist sofort endgültig. force=False ist für Medien nicht möglich (kein Papierkorb, WordPress antwortet mit Fehler 501). media_id: numerische ID, sonst {"error":"invalid_id"}. Bei {"error": "wp_timeout"} oder "wp_unreachable" ist offen, ob die Änderung angekommen ist — erst nachsehen, nicht blind wiederholen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
forceNo
media_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, but the description adds material context beyond them: deletion is immediately irreversible, there is no trash, force=False fails with error 501, and timeout/unreachable responses leave the outcome uncertain so the agent should verify before retrying. That is exactly the operational knowledge a destructive tool needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and identifier source, then the irreversibility warning, then error handling, then the optional parameter. Every sentence contributes a distinct operational fact; nothing is padding or a restatement of the schema.

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-required-parameter destructive tool, the description covers the action, the identifier source, irreversibility, the unusable parameter path, error semantics for ambiguous failures, and the optional workspace scope. With an output schema present, return-value detail is correctly omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden and does: media_id is documented as a numeric ID with a specific {"error":"invalid_id"} failure mode, force is explained as default-true and mandatory-in-practice with a stated consequence for false, and workspace is explained as a customer slug that is optional when only one workspace exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Eine Datei aus der WordPress-Medienbibliothek löschen') and names the sibling tools that produce the required identifier (wp_list_media / wp_upload_media). An agent can distinguish it immediately from wp_list_media, wp_upload_media, or the non-WordPress media deletes in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Makes clear where the media_id comes from and that force=False is not a viable path for media, which effectively tells the agent when not to use a parameter variant. It does not explicitly compare itself against other delete-media tools in the family (gbp_delete_media, strapi_delete_media), leaving that distinction to the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_delete_postWordPress: Delete postA
Destructive
Inspect

WordPress-Beitrag/Seite löschen. force=False (Default) → Papierkorb; force=True → endgültig. post_id: numerische ID bzw. 'theme//slug' bei Vorlagen (sonst {"error":"invalid_id"}). post_type wie bei wp_update_post; andere Werte → {"error":"invalid_post_type"}. Bei {"error": "wp_timeout"} oder "wp_unreachable" ist offen, ob die Änderung angekommen ist — erst nachsehen, nicht blind wiederholen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
forceNo
post_idYes
post_typeNoposts
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, it discloses what gets destroyed (trash vs. irreversible), the concrete error payloads returned for bad IDs and post types, and the crucial non-idempotency caveat that wp_timeout/wp_unreachable leaves the outcome unknown. That last point is exactly the behavioral context an agent needs before retrying a destructive call.

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?

Front-loaded with the destructive distinction, then parameter notes, then error handling — a sensible priority order with no filler. It is densely packed, nearly telegraphic, which is efficient but slightly hurts readability for an agent parsing prose.

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 destructive tool with an output schema already present, this covers the essential gaps: reversibility, ID formats, error codes, and retry safety. Minor omissions remain, such as required WordPress capability/permission level and what happens to media or child pages of a deleted post.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it does: force semantics with default, post_id numeric vs. 'theme//slug' template form, post_type referencing wp_update_post's allowed values, and workspace optionality when only one workspace exists. Every one of the four parameters gets meaning not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause 'WordPress-Beitrag/Seite löschen' gives a specific verb (delete) plus the two resource types it operates on, immediately separating it from wp_create_post/wp_update_post and from wp_delete_media. It additionally clarifies it handles templates via the 'theme//slug' ID form, which no sibling does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states the two modes of use: default force=False sends to trash, force=True deletes permanently, which is the key when-to-use decision for an agent. It also gives recovery guidance for ambiguous timeout errors ('erst nachsehen, nicht blind wiederholen'). It stops short of naming when to prefer wp_update_post (e.g. status change to draft) over deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_get_postWordPress: Get postA
Read-only
Inspect

Einen WordPress-Beitrag/eine Seite/Vorlage mit vollem Inhalt abrufen. post_id: numerische ID (Beiträge/Seiten) ODER zusammengesetzte String-ID für Site-Editor-Vorlagen (z. B. 'twentytwentyfive//header'); sonst {"error":"invalid_id"}. post_type: 'posts' (Default), 'pages', 'templates', 'template-parts', 'navigation', 'blocks' oder ein Custom Post Type der Site (/wp/v2/types); andere Werte → {"error":"invalid_post_type"}. Läuft mit context=edit (content.raw + content.rendered) und braucht gültige Zugangsdaten — ein Erfolg hier belegt das App-Passwort; {"error":"auth_error"} heißt Zugang prüfen (wp_site_health → auth). Ist content bei Elementor/Bricks-Seiten leer: wp_builder_get_content. Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
post_idYes
post_typeNoposts
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the readOnlyHint/openWorldHint annotations by disclosing that it runs with context=edit and returns content.raw plus content.rendered, that valid app-password credentials are required and a success doubles as a credential check, and what specific error payloads mean. That is exactly the kind of failure-mode and auth context annotations cannot express.

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?

Front-loaded with the purpose, then parameter semantics, then failure modes — a sensible ordering with almost no filler. It is dense to the point of being a run-on in the error-handling tail (auth_error, wp_timeout, wp_unreachable), but each clause carries actionable information.

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?

An output schema exists, yet the description still adds the crucial context=edit return shape (content.raw + content.rendered) and the empty-content fallback that the schema cannot express. For a three-parameter, open-world read tool this leaves no decision an agent must guess at.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does: post_id is either a numeric ID or a composite string like 'twentytwentyfive//header' with the invalid_id failure described, post_type enumerates all valid values with 'posts' as default and names the /wp/v2/types source for custom types, and workspace is marked optional when only one workspace exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("WordPress-Beitrag/Seite/Vorlage mit vollem Inhalt abrufen") and immediately narrows scope to a single full-content fetch, which separates it from the bulk sibling wp_list_posts without opening either schema. The "vollem Inhalt" qualifier also flags why one would pick this over a listing tool.

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 routes to the alternative wp_builder_get_content when Elementor/Bricks pages return empty content, and tells the agent to retry on wp_timeout/wp_unreachable and to check wp_site_health on auth_error. Missing only an explicit contrast with wp_list_posts/wp_create_post for the list/create cases, which is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_list_mediaWordPress: List mediaA
Read-only
Inspect

Dateien aus der WordPress-Medienbibliothek auflisten (paginiert, per_page max. 100). Liefert {data:[{id,date,slug,title,mime_type,source_url,alt_text}], _meta:{total,page}}. Erfolg beweist nicht, dass das App-Passwort gilt (öffentlicher Endpunkt — WordPress antwortet bei ungültigem Passwort anonym) — Zugang via wp_site_health → auth prüfen. Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
pageNo
searchNo
per_pageNo
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds behavior the annotations cannot convey: this is a public endpoint that answers anonymously, so a successful response does not prove the app password is valid. It names the exact error payloads (wp_timeout, wp_unreachable) and the remedy, which is precisely the kind of context an agent needs before trusting the result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and pagination constraint, then the response shape, then the auth caveat and error handling. Every sentence carries information an agent cannot get from the schema or annotations.

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?

Covers auth caveats, failure modes and the workspace fallback, which is what makes this definition safe to call. The gap is the undocumented 'search' parameter; the return-shape sentence is redundant given the output schema exists but is not harmful.

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 0%, so the description must compensate, and it only partly does: it documents the per_page ceiling of 100 and the workspace-optional-when-single-site rule. The 'page' and especially 'search' parameters get no explanation at all, leaving half the surface undocumented.

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?

States a specific verb and resource: listing files from the WordPress media library, paginated with per_page capped at 100. The resource is clearly distinct from siblings like wp_upload_media or wp_delete_media, though the description never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives operational guidance (check auth via wp_site_health, retry on wp_timeout/wp_unreachable) but no statement of when to choose this over another listing tool or any prerequisites for the call itself. Usage context is implied by the resource, not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_list_postsWordPress: List postsA
Read-only
Inspect

WordPress-Beiträge oder Seiten auflisten. post_type='posts' (Default) oder 'pages'; außerdem 'templates', 'template-parts', 'navigation', 'blocks' und Custom Post Types, die die Site unter /wp/v2/types führt (Slug oder REST-Basis). Andere Werte (z. B. users, plugins, settings, media) → {"error":"invalid_post_type"}. Optional search (Volltext), status ('publish'/'draft'/...), Paginierung (per_page max. 100). Liefert {data:[...], _meta:{total,total_pages,page}}; Einträge ohne content (vollen Inhalt via wp_get_post). Achtung: Bei ungültigem App-Passwort antwortet WordPress anonym — die Liste (und _meta.total) enthält dann nur veröffentlichte Beiträge und beweist NICHT, dass der Zugang funktioniert; ein status-Filter auf nicht-öffentliche Status liefert dann auth_error. Zugang prüfen: wp_get_post (auth-pflichtig) oder wp_site_health → auth. Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
pageNo
searchNo
statusNo
per_pageNo
post_typeNoposts
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond readOnlyHint/openWorldHint: discloses that returned entries lack content, per_page caps at 100, and the return envelope {data,_meta}. Most valuable is the auth caveat — an invalid app password yields an anonymous response containing only published posts, so _meta.total does not prove access, and a non-public status filter returns auth_error; timeout/unreachable errors and retry advice are also given.

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?

Front-loaded with the core list behavior and post_type semantics before edge cases, and every sentence carries operational value. The auth caveat is somewhat verbose and could be tightened, but nothing is redundant.

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?

Despite an output schema existing, the description still supplies the two facts an agent could not infer: entries have no content, and an anonymous fallback response can masquerade as success. Combined with error strings and retry guidance, nothing needed to call or interpret this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load and does: post_type default 'posts' plus accepted values and failure behavior, search as full-text, status examples ('publish'/'draft'/...), per_page max 100, and workspace optional when only one workspace exists. Only 'page' is left implicit via the pagination remark.

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?

Opens with a specific verb+resource (list WordPress posts or pages) and immediately expands scope to the accepted post_type values, including custom post types resolved via /wp/v2/types. It also distinguishes itself from wp_get_post by noting entries omit content and pointing to that sibling for full content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states what is in scope and what is not (users, plugins, settings, media → invalid_post_type), and routes the agent to wp_get_post for full content or to wp_get_post/wp_site_health when verifying authentication. Alternatives and conditions are named rather than implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_list_termsWordPress: List termsA
Read-only
Inspect

WordPress-Kategorien oder Tags auflisten. taxonomy='categories' (Default) oder 'tags' — andere Werte werden still auf categories abgebildet (Custom-Taxonomien nicht unterstützt). Liefert eine Liste mit id, name, slug, count, parent (max. 100 pro Seite, keine Gesamtzahl) — IDs für wp_create_post/categories+tags. Erfolg beweist kein gültiges App-Passwort (öffentlicher Endpunkt). Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
pageNo
searchNo
per_pageNo
taxonomyNocategories
workspaceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover read-only and open-world; the description adds the important traits: unknown taxonomies are silently coerced to categories, page size caps at 100, no total count is returned, success does not prove a valid application password (public endpoint), and the two distinct error shapes with retry advice. Missing only output format/paging mechanics, which the output schema likely covers.

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?

Front-loaded with purpose, then taxonomy behavior, then return/error semantics, then the workspace note. Dense but every clause (fallback behavior, error codes, auth caveat) adds information an agent would otherwise have to guess.

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?

Covers the non-obvious complexity of this tool well: taxonomy coercion, pagination cap, auth caveat, and error recovery, with return fields covered by the output schema. The incomplete coverage of the page and search parameters is the only meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load; it documents taxonomy (default plus silent fallback) and workspace (optional for single-workspace clients) and hints at per_page via the 100-per-page cap. The page and search parameters are never mentioned, leaving two of five parameters unexplained anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('WordPress-Kategorien oder Tags auflisten') and immediately bounds scope: only categories or tags, custom taxonomies unsupported. An agent can distinguish this from wp_list_posts or wp_create_term without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives useful context (default taxonomy, silent mapping of other values, IDs feed wp_create_post) and a retry instruction for timeouts, but never names an alternative tool or states the condition under which listing terms is the right choice versus other WordPress listing tools. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_seo_get_metaWordPress: SEO get metaA
Read-only
Inspect

SEO-Metadaten (Yoast/Rank Math) einer WordPress-Seite lesen: seo_plugin (yoast|rankmath), title, description, canonical, noindex. Leerer title/description = das Plugin-Template greift (kein manueller Wert), nicht „fehlt"; noindex:false = index oder Site-Default. error hf_no_seo_plugin = kein unterstütztes SEO-Plugin. Diese Felder sind geschütztes Post-Meta und über die normale WP-REST-API nicht erreichbar — es braucht das Honeyfield-Connector-Plugin (siehe wp_bridge_status). post_id: numerische Beitrags-/Seiten-ID (aus wp_list_posts). Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
post_idYes
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint; the description adds substantial behavior beyond that: how to interpret empty title/description (plugin template applies, not missing), what noindex:false means, the specific error hf_no_seo_plugin, and the wp_timeout / wp_unreachable failure modes with a retry instruction. The plugin-dependency prerequisite is exactly the kind of context annotations cannot carry.

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 purpose is front-loaded and nearly every sentence carries unique information. The ordering is slightly scattered (error codes appear before the parameter explanations), and the param notes trail the failure-handling text, which costs a bit of scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values need not be re-specified, and the description instead supplies interpretation rules, prerequisites, and error recovery. For a two-parameter read tool with failing external dependencies, nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it does: post_id is defined as a numeric post/page ID sourced from wp_list_posts, and workspace as a customer-workspace slug that is optional when only one workspace exists. Both parameters gain meaning that the bare schema does not provide.

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 first clause names a specific verb and resource (SEO-Metadaten ... lesen) and enumerates the exact fields returned (seo_plugin, title, description, canonical, noindex). It also implicitly distinguishes itself from the write sibling wp_seo_update_meta by being a read operation, and the plugin scope (Yoast/Rank Math) narrows the domain precisely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage condition that matters most: these fields are protected post-meta and not reachable via the normal WP REST API, so the Honeyfield connector is required (with a pointer to wp_bridge_status). It also says where post_id comes from (wp_list_posts). It does not explicitly name wp_get_post or wp_seo_update_meta as alternatives, so it falls 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.

wp_seo_update_metaWordPress: SEO update metaA
Destructive
Inspect

SEO-Metadaten (Yoast/Rank Math) einer WordPress-Seite schreiben — nur übergebene Felder werden geändert (mindestens eines angeben, sonst no_changes). title/description: Meta-Title/-Description; canonical: Canonical-URL. Leerer String setzt das Feld auf den Plugin-Default zurück; HTML und Zeilenumbrüche werden entfernt. noindex: True setzt robots noindex, False ausdrücklich index (nicht den Site-Default). Antwort = zurückgelesene Metadaten plus 'updated' (Liste der geschriebenen Felder) — zum Verifizieren reicht diese Antwort. Braucht das Honeyfield-Connector-Plugin (siehe wp_bridge_status). Bei {"error": "wp_timeout"} oder "wp_unreachable" ist offen, ob die Änderung angekommen ist — erst nachsehen, nicht blind wiederholen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
titleNo
noindexNo
post_idYes
canonicalNo
workspaceNo
descriptionNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: partial-update semantics, HTML/newline stripping, the non-obvious side effect that noindex=False overrides the site default, the response echo plus 'updated' field list for verification, and the ambiguity of timeout errors where the write may or may not have landed. This goes well past destructiveHint/openWorldHint.

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?

Front-loaded with the core action and partial-update rule, then field semantics, then prerequisites and error handling. Dense but every clause carries information; the dash-separated error section is slightly compressed and could be split for readability.

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 destructive write tool with 0% schema coverage, it covers prerequisites, per-field semantics, verification, and ambiguous-failure handling. Return values are summarized despite an output schema existing, so an agent has everything needed to call and verify 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?

Schema description coverage is 0%, so the description must carry parameter meaning, and it does for title, description, canonical, noindex (including the True vs False asymmetry) and workspace (optional with a single workspace). Only post_id, the one required parameter, is left unexplained beyond implication.

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?

States a specific verb and resource: writes SEO metadata (Yoast/Rank Math) of a WordPress page, and specifies that only supplied fields are changed. The write-vs-read distinction against the sibling wp_seo_get_meta is implicit in 'schreiben' and the read-back note, but the sibling is never named, so it stops short of 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives actionable operating conditions: at least one field required or the call returns no_changes, empty string resets to plugin default, and the Honeyfield connector plugin must be present (pointing to wp_bridge_status). Error guidance for wp_timeout/wp_unreachable ('check first, don't blindly retry') is genuinely useful. It lacks an explicit statement of when to prefer this over wp_seo_get_meta or wp_update_post.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_site_healthWordPress: Site healthA
Read-only
Inspect

Technische Diagnose der WordPress-Seite — der Vorab-Check, bevor man Inhalte oder Tracking anfasst. Liefert WP-/PHP-/DB-Version, HTTPS, Permalink-Struktur, Suchmaschinen-Sichtbarkeit, Theme, erkannte Plugin-Kategorien (Caching, Consent, SEO, Tracking, Schreib-Blocker), die im Quelltext gefundenen Tracking-IDs und vor allem 'warnings': die Zustände, die Marketing still sabotieren (ausgesperrte Suchmaschinen, Plain-Permalinks, doppeltes Tracking, Universal-Analytics-Reste, Pixel ohne Consent-Plugin). Die Tracking-IDs stammen aus einem Scan ohne Browser und ohne Einwilligung: Fehlen sie, kann ein Cookie-Banner sie nach der Zustimmung nachladen — siehe 'scan_hinweis' und den Befund tracking_may_load_after_consent. Nie als „nicht eingebunden“ berichten, solange GA4 Sitzungen zählt. Enthält auch 'auth' (Plugin ab 1.2.1): Diagnose des App-Passwort-Kanals mit status ok/auffällig/nicht_konfiguriert und 'befunde' (Benutzer fehlt, keine Anwendungspasswörter, Authorization-Header wird vom Host verworfen, Application Passwords deaktiviert, fehlende Editor-Rolle). Erste Anlaufstelle, wenn wp_get_post/wp_create_post auth_error liefern. Braucht Connector-Plugin ab 1.2.0 mit aktiviertem Modul „Website-Diagnose" (ab 1.3.0 ab Werk an; bei älteren Versionen zum Plugin-Update raten). Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. Scheitert nur der Auth-Check, steht dieses Fehler-Dict stattdessen unter 'auth'; der Rest der Antwort bleibt gültig. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description goes well beyond that: it discloses that tracking IDs come from a scan without a browser and without consent, warns not to report 'not embedded' while GA4 counts sessions, and documents the plugin-version prerequisite. It also documents failure modes (wp_timeout, wp_unreachable) and the partial-failure shape in which the auth error dict sits under 'auth' while the rest of the response remains valid. That is rich, non-obvious behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the pre-check framing are front-loaded, and the later sentences (consent-scan caveat, auth diagnostics, version prerequisite, error behavior) each carry operational value. It is dense and long, and the caveat about reporting tracking IDs is repeated in spirit via the tracking_may_load_after_consent reference, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only diagnostic tool with an output schema, the definition covers prerequisites (connector plugin version and module), error semantics, partial-failure semantics, and interpretation pitfalls (consent-less scan). Nothing an agent needs in order to call it and then read the result correctly is missing.

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 0%, so the description must carry the parameter alone, and it does: it defines workspace as the customer-workspace slug and states it is optional when only one workspace exists. It adds no format examples or slug lookup hints, so it is not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: a technical diagnosis of the WordPress site that returns version, HTTPS, permalink, visibility, theme, plugin categories, tracking IDs, and 'warnings'. It also frames itself as a pre-check before touching content or tracking. It does not explicitly contrast with the closest siblings (wp_tracking_status, wp_bridge_status), so the sibling differentiation is only partial, but the purpose is unambiguous.

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 gives clear when-to-use guidance ('Vorab-Check, bevor man Inhalte oder Tracking anfasst') and even names the trigger sibling flow ('Erste Anlaufstelle, wenn wp_get_post/wp_create_post auth_error liefern'). There are no explicit exclusions (e.g., when to prefer wp_tracking_status or wp_bridge_status instead), which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_tracking_configureWordPress: Tracking configureA
Destructive
Inspect

GTM-Container auf der WordPress-Seite einbinden oder entfernen — ohne eine Theme-Datei anzufassen. Vorher wp_tracking_status lesen: Steht dort 'scan_hinweis', kann der Container längst über ein Cookie-Banner laden — dann NICHT setzen, sonst lädt er doppelt. gtm_container_id im Format GTM-XXXXXXX (sonst hf_invalid_tracking_id); leerer String entfernt ihn; weggelassen → no_changes. Nach dem Schreiben werden die Seiten-Caches geleert und die Startseite erneut geprüft. Liefert config, changed, output_active, purged_caches, scan, duplicates; hf_write_failed = ein anderes Plugin blockiert das Speichern. NUR GTM: GA4 und Meta-Pixel lassen sich bewusst nicht direkt setzen (wer einen Container hat, konfiguriert beides darin; der direkte Pixel macht den Seitenbetreiber nach Fashion ID zum gemeinsam Verantwortlichen). Erkannt werden sie weiterhin — siehe wp_tracking_status und wp_site_health. Consent Mode v2 steht auf 'denied', damit Tags nicht in unbestimmtem Zustand feuern; das Laden von gtm.js überträgt trotzdem IP und aufgerufene Seite an Google. Fehlt ein erkennbares Consent-Werkzeug, lehnt der Connector mit 'hf_consent_required' ab. Diese Sperre kannst du NICHT übergehen — der Website-Betreiber muss sie in WordPress selbst freigeben (dann steht consent_ack in wp_tracking_status auf true). Sie greift nur beim Setzen/Ändern einer ID, nicht beim Entfernen. Braucht Connector-Plugin ab 1.2.0 mit aktiviertem Modul „Tracking" (ab 1.3.0 ab Werk an; bei älteren Versionen zum Plugin-Update raten). Bei {"error": "wp_timeout"} oder "wp_unreachable" ist offen, ob die Änderung angekommen ist — erst nachsehen, nicht blind wiederholen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo
gtm_container_idNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses cache purging, homepage re-checking, the consent-tool lock and that the lock cannot be bypassed, plugin-version requirements, and ambiguous timeout/unreachable outcomes. These are exactly the behavioral traits an agent needs before invoking a destructive write tool.

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 front-loaded with purpose and the critical prerequisite, and nearly every sentence carries operational value. It is dense and lengthy, with some legal rationale that could be trimmed, but the complexity of the tool justifies most of the detail.

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 destructive, consent-gated write operation, and the description covers prerequisites, exclusions, errors, consent blocking, and plugin requirements. Although an output schema exists, the description still helpfully names key return fields and failure states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry parameter meaning and does: gtm_container_id format GTM-XXXXXXX, empty string removes, omitted means no_changes, and invalid format yields hf_invalid_tracking_id. It also explains the optional workspace slug.

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 first sentence states a specific verb and resource: embed or remove a GTM container on a WordPress site without touching theme files. It also explicitly separates this tool from the read-only sibling wp_tracking_status.

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 gives an explicit prerequisite (read wp_tracking_status first) and a clear when-not-to-use condition: if scan_hinweis is present, do not set the container because it may already load via a cookie banner. It also excludes GA4 and Meta Pixel configuration and routes those to wp_tracking_status / wp_site_health.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_tracking_statusWordPress: Tracking statusA
Read-only
Inspect

Welchen GTM-Container bindet der Connector ein — und was steht wirklich im Quelltext der Startseite? Liefert 'config', 'output_active' (Modul aktiv, Ausgabe läuft), 'consent_ack' (Betreiber-Freigabe für die Einbindung ohne erkennbares Consent-Plugin, siehe wp_tracking_configure), 'scan' (je Art gtm, ga4, meta_pixel, gtm_noscript, legacy_ua: ID → Anzahl Einbindungen; bis 2 Min. gecacht, dann scan.cached=true — nach wp_tracking_configure wird frisch gescannt) und 'duplicates': mehrfach eingebundene IDs zählen jede Conversion doppelt und sind der häufigste stille Messfehler. 'scan.scanned' = false heißt: die Startseite war nicht abrufbar — das ist kein Freispruch, sondern ein fehlender Befund. Der Scan liest die Seite OHNE Browser und OHNE Einwilligung. Was ein Cookie-Banner (Real Cookie Banner, Borlabs, Cookiebot …) erst nach der Zustimmung lädt, fehlt darin — ein leerer Scan beweist NICHT, dass GTM fehlt. Dann steht 'scan_hinweis' im Ergebnis (ab Plugin 1.2.3 mit dem erkannten Werkzeug, scan.consent_tools). Zählt GA4 Sitzungen (ga4_report), läuft Tracking. Nie wp_tracking_configure empfehlen oder ausführen, solange das nicht im Browser nach Zustimmung geprüft ist — sonst lädt der Container doppelt und teils am Cookie-Banner vorbei. Braucht Connector-Plugin ab 1.2.0 mit aktiviertem Modul „Tracking" (ab 1.3.0 ab Werk an; bei älteren Versionen zum Plugin-Update raten). Antwortet die Site nicht: {"error": "wp_timeout"} bzw. "wp_unreachable" — später erneut versuchen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
workspaceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the readOnlyHint=true annotation: discloses that scans are cached up to 2 minutes with a cache-bypass after wp_tracking_configure, that scanning happens without a browser and without consent so an empty result is a false negative rather than proof of absence, that scan.scanned=false means the homepage was unreachable, and that connector plugin >= 1.2.0 with the Tracking module is required. Naming the concrete error payloads ('wp_timeout', 'wp_unreachable') is exactly the operational detail an agent needs.

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?

Information is front-loaded (what the result keys mean before the caveats, prerequisites, and error handling), and each paragraph carries distinct operational weight. It runs long and repeats the no-consent caveat twice, which costs it the top score, but nothing is filler.

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 read tool this is essentially complete: prerequisites, caching semantics, false-negative caveats, the wp_tracking_configure ordering constraint, and error/retry behavior are all covered, and an output schema exists so return values need no further explanation.

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 0%, so the description must carry the single 'workspace' parameter — and it does, stating it is the customer workspace slug and is optional when only one workspace exists. That closes the only documentation gap; there is no further format or constraint to add for a slug parameter.

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 opening rhetorical question plus the enumerated result keys ('config', 'output_active', 'consent_ack', 'scan', 'duplicates') make it unambiguous that this is a read-only status report on which GTM/GA4/Meta tag is actually embedded in the homepage source. It never uses a clean verb+resource phrasing (e.g. 'Liest den Tracking-Status'), and the German-language framing is indirect, but the scope is clear enough to distinguish it from wp_tracking_configure and ga4_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?

Explicitly positions the tool against alternatives: it points to ga4_report to confirm live tracking and repeatedly warns not to recommend or run wp_tracking_configure before the setup is verified in a browser after consent, and it routes retries after 'wp_timeout'/'wp_unreachable'. It does not explain when to prefer this over other WordPress status siblings (wp_bridge_status, wp_site_health), which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_update_postWordPress: Update postA
Destructive
Inspect

Bestehenden WordPress-Beitrag/Seite/Vorlage aktualisieren (nur gesetzte Felder werden überschrieben). post_id: numerische ID oder String-ID für Site-Editor- Vorlagen (z. B. 'twentytwentyfive//header'); sonst {"error":"invalid_id"}. post_type: 'posts' (Default), 'pages', 'templates', 'template-parts', 'navigation', 'blocks' oder ein Custom Post Type der Site (/wp/v2/types); andere Werte → {"error":"invalid_post_type"}. Bei {"error": "wp_timeout"} (Site antwortet nicht binnen 60 s) oder "wp_unreachable" kann die Änderung trotzdem gespeichert sein — vor einem neuen Versuch mit wp_get_post prüfen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
slugNo
tagsNo
titleNo
statusNo
contentNo
excerptNo
post_idYes
post_typeNoposts
workspaceNo
categoriesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds behavior far beyond the annotations: partial-patch semantics ('nur gesetzte Felder werden überschrieben'), concrete error payloads for invalid_id and invalid_post_type, and the 60s timeout caveat that the write may have succeeded despite an error. That retry-safety warning is exactly the context destructiveHint/openWorldHint do not convey.

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?

Front-loads the core action and partial-update rule, then layers parameter and failure-mode detail. The error-string blocks are dense but each carries actionable information; only the verbose error-literal formatting is slightly heavier than needed.

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 10-param mutation tool with an output schema, it covers identity, type, workspace scoping, and failure recovery, so an agent can call it safely. It stops short of describing what the writable fields accept (e.g. content format, whether categories/tags replace or merge), which is the main remaining gap.

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% schema description coverage the description must compensate, and it does well for the two most error-prone params: post_id (numeric vs. site-editor string ID like 'twentytwentyfive//header') and post_type (enumerated valid values plus custom-post-type fallback). The remaining seven content fields (title, content, status, slug, excerpt, categories, tags) are left unaddressed, though their names are largely self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Bestehenden WordPress-Beitrag/Seite/Vorlage aktualisieren') and adds the crucial scope qualifier that only set fields are overwritten, which separates it cleanly from wp_create_post. The post_id/post_type grammar further pins down exactly which entity types it operates on.

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?

Gives clear operational guidance: it is for updating existing entities, and on wp_timeout/wp_unreachable the agent must verify with wp_get_post before retrying. It does not explicitly say to use wp_create_post for new posts or name other alternatives, so it falls short of full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wp_upload_mediaWordPress: Upload mediaAInspect

Datei in die WordPress-Medienbibliothek hochladen — per source_url (Server lädt sie) ODER file_base64 (nur für kleine Dateien, deren Bytes der Agent selbst erzeugt oder besitzt). Genau eines angeben. Chat-Anhänge und lokale Dateien des Kunden erreichen den Server nicht — das Protokoll hat keinen Binärkanal; liegt die Datei online, source_url verwenden — als DIREKTLINK auf die Datei (bei Google Drive https://drive.google.com/uc?export=download&id=, NICHT der Freigabe-Link, der liefert die HTML-Ansicht). source_url: nur öffentliche http(s)-URLs, max. 25 MB; filename und mime_type werden daraus abgeleitet. Bei file_base64 filename MIT Dateiendung angeben (z. B. bild.jpg) — WordPress lehnt Dateien ohne erlaubte Endung ab; mime_type (z. B. image/jpeg) empfohlen. Optional title/alt_text. Liefert {success, media:{id,url,mime,title}}. alt_text wird per Folge-Update gesetzt und nicht zurückgemeldet — bei Bedarf mit wp_list_media(search=...) gegenprüfen. file_base64 hoechstens 25 MB (sonst {'error': 'too_large'}) — groessere Dateien per source_url oder Upload-Link. Bei {"error": "wp_timeout"} oder "wp_unreachable" ist offen, ob die Änderung angekommen ist — erst nachsehen, nicht blind wiederholen. {"error": "source_unreachable"}: source_url war nicht abrufbar, in WordPress wurde nichts angelegt. Timeout nur beim Folge-Update von title/alt_text: Upload ist erfolgreich ({"success": true, "media": {...}}) plus {"warning": "..."} — nicht neu hochladen. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

NameRequiredDescriptionDefault
titleNo
alt_textNo
filenameNo
mime_typeNo
workspaceNo
source_urlNo
file_base64No

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the coarse safety profile (readOnly=false, destructive=false, openWorld=true); the description goes far beyond by mapping error codes to outcomes and retry policy: wp_timeout/wp_unreachable means uncertain state so don't blindly retry, source_unreachable means nothing was created, too_large at 25 MB, and a warning-plus-success case for follow-up title/alt_text updates. It also discloses that alt_text is applied by a follow-up update and not echoed back.

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?

Front-loaded with the core verb and the either/or rule, then parameter and error guidance in compact form. Slightly repetitive — the 25 MB limit is stated twice — and dense enough that scanning is required, but nearly every sentence adds distinct operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, zero-required upload tool with no schema descriptions and no enums, this is the level of detail needed: input mode selection, extension/mime constraints, size limits, return shape, alt_text verification path via wp_list_media, and a retry-safety policy for ambiguous timeouts. The presence of an output schema doesn't make the error/retry disclosure redundant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does: it explains exactly-one-of source_url/file_base64, that filename and mime_type are derived from source_url, that filename must include an allowed extension for base64 uploads, that mime_type is recommended, and that workspace is optional when only one workspace exists. All seven parameters are semantically covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Datei in die WordPress-Medienbibliothek hochladen') and immediately splits the two mutually exclusive input modes (source_url vs. file_base64) with 'Genau eines angeben'. Nothing about the tool's identity is left to inference.

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?

Gives explicit when-to-use rules for each mode: source_url when the file lives online, file_base64 only for small agent-generated content, plus the crucial negative constraint that chat attachments and customer-local files cannot reach the server. It even includes the concrete Google Drive direct-link recipe and warns against the share link, which is precisely the failure an agent would otherwise hit.

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.

  1. 346 tool updates
    • First observedads_ad_performance
    • First observedads_add_asset_group_assets
    • First observedads_add_asset_group_signal
    • First observedads_add_audience_signal
    • First observedads_add_keyword
    • First observedads_add_negative_keyword
    • First observedads_ai_max_search_terms
    • First observedads_apply_recommendation
    • First observedads_asset_group_performance
    • First observedads_budget_status
    • First observedads_bulk_add_keywords
    • First observedads_bulk_add_negative_keywords
    • First observedads_bulk_update_keyword_status
    • First observedads_campaign_performance
    • First observedads_change_history
    • First observedads_conversion_performance
    • First observedads_create_ad
    • First observedads_create_ad_group
    • First observedads_create_asset_group
    • First observedads_create_campaign
    • First observedads_create_conversion_action
    • First observedads_create_customer_match_list
    • First observedads_create_sitelink
    • First observedads_create_text_assets
    • First observedads_demographic_performance
    • First observedads_device_performance
    • First observedads_dismiss_recommendation
    • First observedads_geo_performance
    • First observedads_get_geo_targeting
    • First observedads_get_language_targeting
    • First observedads_impression_share
    • First observedads_keyword_performance
    • First observedads_keyword_quality
    • First observedads_link_asset
    • First observedads_list_account_negatives
    • First observedads_list_ad_groups
    • First observedads_list_ads
    • First observedads_list_asset_groups
    • First observedads_list_assets
    • First observedads_list_audiences
    • First observedads_list_campaign_conversion_goals
    • First observedads_list_campaigns
    • First observedads_list_conversion_actions
    • First observedads_list_customer_match_lists
    • First observedads_list_experiments
    • First observedads_list_keywords
    • First observedads_list_negative_keywords
    • First observedads_list_recommendations
    • First observedads_manage_account_negatives
    • First observedads_manage_brand_exclusions
    • First observedads_manage_shared_negative_list
    • First observedads_move_keyword
    • First observedads_pmax_search_insights
    • First observedads_remove_ad
    • First observedads_remove_ad_group
    • First observedads_remove_campaign
    • First observedads_remove_customer_match_members
    • First observedads_remove_keyword
    • First observedads_remove_negative_keyword
    • First observedads_replace_ad
    • First observedads_schedule_performance
    • First observedads_search_terms
    • First observedads_set_ad_schedule
    • First observedads_set_asset_link_status
    • First observedads_set_campaign_conversion_goals
    • First observedads_set_device_bid_modifier
    • First observedads_unlink_asset
    • First observedads_update_ad
    • First observedads_update_ad_group_bid
    • First observedads_update_ad_group_name
    • First observedads_update_ad_group_status
    • First observedads_update_ad_status
    • First observedads_update_campaign_bidding_strategy
    • First observedads_update_campaign_budget
    • First observedads_update_campaign_name
    • First observedads_update_campaign_network
    • First observedads_update_campaign_settings
    • First observedads_update_campaign_status
    • First observedads_update_conversion_action
    • First observedads_update_geo_targeting
    • First observedads_update_keyword_bid
    • First observedads_update_keyword_status
    • First observedads_update_language_targeting
    • First observedads_update_sitelink
    • First observedads_upload_conversions
    • First observedads_upload_customer_match_members
    • First observedads_upload_image_asset
    • First observedads_upload_video_asset
    • First observedanomaly_check
    • First observedbing_backlinks
    • First observedbing_crawl_issues
    • First observedbing_crawl_stats
    • First observedbing_keyword_research
    • First observedbing_list_sitemaps
    • First observedbing_list_sites
    • First observedbing_remove_sitemap
    • First observedbing_submit_sitemap
    • First observedbing_submit_urls
    • First observedbing_top_pages
    • First observedbing_top_queries
    • First observedbing_traffic
    • First observedbing_url_info
    • First observedbudget_pacing
    • First observedclarity_get_insights
    • First observeddfs_backlink_competitors
    • First observeddfs_backlink_summary
    • First observeddfs_backlinks_list
    • First observeddfs_competitors_domain
    • First observeddfs_content_parsing
    • First observeddfs_domain_intersection
    • First observeddfs_domain_technologies
    • First observeddfs_google_ads_advertisers
    • First observeddfs_historical_rank_overview
    • First observeddfs_keyword_ideas_for_domain
    • First observeddfs_keyword_overview
    • First observeddfs_keyword_rankings
    • First observeddfs_keyword_suggestions
    • First observeddfs_keyword_trends
    • First observeddfs_keyword_volume
    • First observeddfs_lighthouse_live
    • First observeddfs_llm_mentions
    • First observeddfs_llm_mentions_metrics
    • First observeddfs_llm_responses
    • First observeddfs_llm_top_domains
    • First observeddfs_onpage_crawl
    • First observeddfs_onpage_crawl_results
    • First observeddfs_onpage_instant
    • First observeddfs_raw_html
    • First observeddfs_related_keywords
    • First observeddfs_reviews
    • First observeddfs_serp_bing_organic
    • First observeddfs_serp_google_ads
    • First observeddfs_serp_google_organic
    • First observedga4_archive_custom_dimension
    • First observedga4_archive_custom_metric
    • First observedga4_conversions
    • First observedga4_create_custom_dimension
    • First observedga4_create_custom_metric
    • First observedga4_create_data_stream
    • First observedga4_create_key_event
    • First observedga4_create_property
    • First observedga4_data_retention
    • First observedga4_delete_key_event
    • First observedga4_enhanced_measurement
    • First observedga4_list_custom_dimensions
    • First observedga4_list_custom_metrics
    • First observedga4_list_data_streams
    • First observedga4_list_key_events
    • First observedga4_list_properties
    • First observedga4_manage_audiences
    • First observedga4_manage_google_ads_links
    • First observedga4_realtime_users
    • First observedga4_report
    • First observedga4_top_pages
    • First observedga4_traffic_sources
    • First observedga4_update_property
    • First observedgbp_create_post
    • First observedgbp_delete_media
    • First observedgbp_delete_post
    • First observedgbp_delete_reply
    • First observedgbp_get_profile
    • First observedgbp_get_review_link
    • First observedgbp_list_locations
    • First observedgbp_list_media
    • First observedgbp_list_posts
    • First observedgbp_local_rank
    • First observedgbp_local_seo_audit
    • First observedgbp_location_info
    • First observedgbp_manage_categories
    • First observedgbp_manage_hours
    • First observedgbp_manage_open_info
    • First observedgbp_performance
    • First observedgbp_reply_review
    • First observedgbp_reviews
    • First observedgbp_search_keywords
    • First observedgbp_update_attributes
    • First observedgbp_update_profile
    • First observedgbp_upload_media
    • First observedgtm_container_info
    • First observedgtm_create_container
    • First observedgtm_create_preview_link
    • First observedgtm_create_tag
    • First observedgtm_create_trigger
    • First observedgtm_create_variable
    • First observedgtm_create_version
    • First observedgtm_create_workspace
    • First observedgtm_get_tag
    • First observedgtm_get_version
    • First observedgtm_list_accounts
    • First observedgtm_list_containers
    • First observedgtm_list_tags
    • First observedgtm_list_triggers
    • First observedgtm_list_variables
    • First observedgtm_list_versions
    • First observedgtm_list_workspaces
    • First observedgtm_publish_version
    • First observedgtm_remove_tag
    • First observedgtm_sync_workspace
    • First observedgtm_update_tag
    • First observedgtm_workspace_status
    • First observedjournal_add_note
    • First observedjournal_list
    • First observedlemlist_add_leads
    • First observedlemlist_add_sequence_step
    • First observedlemlist_campaign_performance
    • First observedlemlist_create_campaign
    • First observedlemlist_database_filters
    • First observedlemlist_delete_sequence_step
    • First observedlemlist_get_conversation
    • First observedlemlist_get_sequence
    • First observedlemlist_list_campaigns
    • First observedlemlist_list_leads
    • First observedlemlist_list_replies
    • First observedlemlist_list_saved_searches
    • First observedlemlist_mailbox_health
    • First observedlemlist_pause_campaign
    • First observedlemlist_search_people
    • First observedlemlist_set_lead_interest
    • First observedlemlist_set_lead_paused
    • First observedlemlist_start_campaign
    • First observedlemlist_step_performance
    • First observedlemlist_update_campaign
    • First observedlemlist_update_sequence_step
    • First observedlinkedin_audience_breakdown
    • First observedlinkedin_campaign_performance
    • First observedlinkedin_create_ad_from_post
    • First observedlinkedin_create_campaign
    • First observedlinkedin_create_campaign_group
    • First observedlinkedin_creative_performance
    • First observedlinkedin_estimate_audience
    • First observedlinkedin_list_accounts
    • First observedlinkedin_list_audiences
    • First observedlinkedin_list_campaign_groups
    • First observedlinkedin_list_campaigns
    • First observedlinkedin_list_creatives
    • First observedlinkedin_list_lead_forms
    • First observedlinkedin_list_page_posts
    • First observedlinkedin_performance_report
    • First observedlinkedin_search_targeting
    • First observedlinkedin_update_campaign_bid
    • First observedlinkedin_update_campaign_budget
    • First observedlinkedin_update_campaign_group
    • First observedlinkedin_update_campaign_name
    • First observedlinkedin_update_campaign_schedule
    • First observedlinkedin_update_campaign_status
    • First observedlinkedin_update_campaign_targeting
    • First observedlinkedin_update_creative_status
    • First observedlist_workspaces
    • First observedmeta_account_status
    • First observedmeta_ad_performance
    • First observedmeta_ad_preview
    • First observedmeta_adset_performance
    • First observedmeta_archive_lead_form
    • First observedmeta_campaign_performance
    • First observedmeta_create_ad
    • First observedmeta_create_adset
    • First observedmeta_create_campaign
    • First observedmeta_create_custom_conversion
    • First observedmeta_create_lead_form
    • First observedmeta_create_pixel
    • First observedmeta_delete_campaign
    • First observedmeta_list_ad_accounts
    • First observedmeta_list_ads
    • First observedmeta_list_adsets
    • First observedmeta_list_audiences
    • First observedmeta_list_campaigns
    • First observedmeta_list_custom_conversions
    • First observedmeta_list_lead_forms
    • First observedmeta_list_leads
    • First observedmeta_list_pages
    • First observedmeta_list_pixels
    • First observedmeta_pixel_stats
    • First observedmeta_targeting_search
    • First observedmeta_update_ad_status
    • First observedmeta_update_adset
    • First observedmeta_update_campaign
    • First observedmeta_upload_ad_image
    • First observedmeta_upload_ad_video
    • First observedmeta_video_status
    • First observedopenai_ads_account
    • First observedopenai_ads_conversion_setup
    • First observedopenai_ads_create_ad
    • First observedopenai_ads_create_ad_group
    • First observedopenai_ads_create_campaign
    • First observedopenai_ads_create_conversion_setting
    • First observedopenai_ads_create_pixel
    • First observedopenai_ads_insights
    • First observedopenai_ads_list_ad_groups
    • First observedopenai_ads_list_ads
    • First observedopenai_ads_list_campaigns
    • First observedopenai_ads_search_locations
    • First observedopenai_ads_set_status
    • First observedopenai_ads_update_campaign
    • First observedopenai_ads_upload_conversions
    • First observedping
    • First observedsc_add_site
    • First observedsc_delete_sitemap
    • First observedsc_list_sitemaps
    • First observedsc_list_sites
    • First observedsc_performance
    • First observedsc_submit_sitemap
    • First observedsc_top_pages
    • First observedsc_top_queries
    • First observedsc_url_inspection
    • First observedsc_verification_token
    • First observedsc_verify_site
    • First observedsite_crawler_check
    • First observedsite_indexnow_key
    • First observedsite_indexnow_submit
    • First observedstrapi_check_upload_status
    • First observedstrapi_create_entry
    • First observedstrapi_delete_entry
    • First observedstrapi_delete_media
    • First observedstrapi_generate_upload_link
    • First observedstrapi_get_entry
    • First observedstrapi_list_content_types
    • First observedstrapi_list_entries
    • First observedstrapi_list_media
    • First observedstrapi_publish_entry
    • First observedstrapi_replace_text
    • First observedstrapi_unpublish_entry
    • First observedstrapi_update_entry
    • First observedstrapi_update_media
    • First observedstrapi_upload_media
    • First observedworkspace_configure_source
    • First observedworkspace_create
    • First observedworkspace_prompt_ideas
    • First observedworkspace_suggestions
    • First observedwp_bridge_status
    • First observedwp_builder_get_content
    • First observedwp_builder_replace_text
    • First observedwp_create_post
    • First observedwp_create_term
    • First observedwp_delete_media
    • First observedwp_delete_post
    • First observedwp_get_post
    • First observedwp_list_media
    • First observedwp_list_posts
    • First observedwp_list_terms
    • First observedwp_seo_get_meta
    • First observedwp_seo_update_meta
    • First observedwp_site_health
    • First observedwp_tracking_configure
    • First observedwp_tracking_status
    • First observedwp_update_post
    • First observedwp_upload_media

Publisher details

Operator
Honeyfield GmbH · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
Requires a Marketing MCP account (sign-up with email verification). 14-day free trial, then automatic switch to the free plan (100 tool calls/month, 1 workspace, no DataForSEO) unless upgraded to a paid plan. Data sources such as Google Ads, GA4 or Meta are connected per workspace via their own OAuth consent. · Publisher source

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Hosted MCP server that gives AI agents read and write access to your full marketing & ecommerce stack — Google Analytics, Search Console, Google & Meta Ads, Shopify, WooCommerce, Shopware, Slack and LinkedIn. 100+ tools across 10 connectors. BYOK, OAuth 2.1.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A hosted MCP server that enables managing Google Ads, Microsoft Advertising, TikTok Ads, LinkedIn Ads, and other Google services from ChatGPT, Claude, or any MCP client using natural language, with no code or API keys required.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Google Ads. Audit spend, find wasted budget, create campaigns, monitor performance, and optimize ads directly from ChatGPT, Claude, or any MCP-compatible client.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to query and manage Google Ads accounts, covering reporting metrics like ROAS, CTR and CPC, custom GAQL queries, keyword research, and campaign management such as creating campaigns, ad groups, ads and targeting. It connects Claude, ChatGPT, Cursor and other MCP clients to Google Ads data through a hosted remote server with OAuth.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources