Skip to main content
Glama

Layrcake

Server Details

Unified GTM API for AI agents: find leads, enrich to verified emails, verify, detect intent, social listening, provision warmed sending, launch human-approved campaigns and handle replies. One key, prepaid credits.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 19 tools

Disambiguation4/5

Tool names and descriptions map to distinct resources—people, companies, posts, campaigns, replies, usage—so an agent can usually tell them apart. The only mild risks are get_operation vs get_request (both async status) and find_companies vs enrich_company, but the descriptions disambiguate them well.

Naming Consistency4/5

Most tools follow a clear verb_noun snake_case pattern (create_campaign, find_leads, get_replies, launch_campaign, verify_email). Minor deviations like bare 'enrich' (instead of enrich_person) and 'setup_sending' vs 'set_lead_status' keep it from perfect consistency.

Tool Count3/5

With 19 tools the set covers a wide domain, but that count is in the 'feels heavy' range; every tool has a purpose, but the server would be tighter around 12-15. No tools are redundant, so it is not excessive enough to warrant a 2.

Completeness3/5

The server covers lead search, enrichment, campaign creation/launch, replies, sending setup, and usage—strong for a full B2B workflow. However, there is no get_campaign/update_campaign/delete_campaign or lead removal/pause, so managing existing campaigns is a notable gap.

Available Tools

19 tools
add_leadsAdd leads to campaignA
DestructiveIdempotent
Inspect

Add recipients to a draft or incomplete campaign through the suppression-safe bulk importer. Returns removed counts for recipients not added and their reasons. Adding to an active campaign pauses it and requires signed-in human confirmation before recipients enter the sequence. The campaign-wide maximum is 5,000 unique recipients. dry_run: true returns an advisory estimate as of evaluated_at, reserves nothing, and may differ from a later execution plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
leadsNo
dry_runNo
campaign_idYes
idempotency_keyYesStable retry key; the same value identifies retries of the same request after timeout or approval.
confirmation_tokenNo
finalize_incompleteNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations provide readOnlyHint=false, destructiveHint=true, idempotentHint=true. The description adds substantial behavioral details beyond annotations: suppression-safe importing, return of removed counts, pausing active campaigns, human confirmation requirement, 5,000 recipient limit, and dry_run behavior. 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?

Three sentences, front-loaded with the primary action, then return behavior, side effects, limit, and dry_run. No filler; each sentence adds distinct 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?

The description covers core behavior, dry_run semantics, and limits, but omits explanations for confirmation_token and finalize_incomplete. It also only partially describes the return (removed counts) without a full response structure. Given 6 parameters and no output schema, this is incomplete.

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

Parameters3/5

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

Schema description coverage is only 17% (only idempotency_key has a description). The description explicitly explains dry_run's behavior ('dry_run: true returns an advisory estimate...') and the recipient maximum (5,000), which relates to the leads parameter. However, it does not explain confirmation_token or finalize_incomplete, which remain undocumented. Given low schema coverage, the description should compensate more.

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

Purpose5/5

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

The description clearly states the action: 'Add recipients to a draft or incomplete campaign' with a specific method ('suppression-safe bulk importer'). It distinguishes itself from sibling tools by specifying the campaign state (draft or incomplete) and the return of removed counts, making it clear this is for bulk addition to non-active 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 explicitly states the condition for use: 'Add recipients to a draft or incomplete campaign' and warns about the side effect on active campaigns ('pauses it and requires signed-in human confirmation'). This gives clear when-to-use guidance, though it doesn't explicitly name alternative tools for active campaigns.

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

create_campaignCreate draft campaignA
DestructiveIdempotent
Inspect

Create a draft email campaign with sequence steps, {{first_name}}-style variables, leads, and an optional sending window. Returns removed counts for opted-out, invalid, platform-blocked, or capped recipients. Drafts never send; launch is a separate confirmed action. dry_run: true returns an advisory estimate as of evaluated_at, reserves nothing, and may differ from a later execution plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
leadsYes
stepsYes
dry_runNo
stop_on_replyNo
sending_windowNo
idempotency_keyYesStable retry key; the same value identifies retries of the same request after timeout or approval.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond annotations, it discloses the dry_run contract (advisory estimate, reserves nothing, may differ from later execution), the draft safety guarantee (never sends), and the `removed` counts for filtered recipients. This materially expands on readOnly/destructive/idempotent hints without contradicting them.

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

Conciseness5/5

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

Three compact sentences with the primary action first, return behavior second, and safety/dry-run semantics third. No filler; every sentence carries a distinct piece of 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?

Coverage is strong for a draft-creation tool: it states what is created, what is returned, and how the safe dry-run mode differs. It loses one point only because there is no output schema and the full success response (e.g., campaign identifier/status) is not 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 low (14%), but the description adds meaning for the main non-obvious parameters: sequence steps, {{first_name}}-style variables, leads, sending window, and dry_run behavior. The remaining params are either named clearly in the schema or constrained in a self-documenting way (e.g., `stop_on_reply` has `const: true`).

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action and object ('Create a draft email campaign') and enumerates the core content (sequence steps, variables, leads, sending window). It also disambiguates from `launch_campaign` by explicitly saying drafts never send and launch is a separate confirmed action.

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 establishes when this tool is appropriate: for creating a draft with optional dry-run estimation, and it clarifies that launching is not part of this call. It does not enumerate explicit exclusions or compare against every sibling, but the launch/draft distinction gives a clear routing signal.

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

enrichFind a person's verified emailA
Destructive
Inspect

Find a person's verified work email and profile (title, company, linkedin, location). Accepts email, linkedin_url, or name plus company_domain. Fresh results are cached per workspace; repeats are served from cache. Costs credits on hit only.

ParametersJSON Schema
NameRequiredDescriptionDefault
wantNo
personYes
max_creditsNo
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.

TDQS

A4/5.0
Behavior4/5

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

Annotations already signal readOnly=false, destructive=true, and idempotent=false, so the description's added value is the caching behavior ('Fresh results are cached per workspace; repeats are served from cache') and the credit-cost model. This is meaningful operational context and 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.

Conciseness5/5

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

Three short sentences, each earning its place: purpose, accepted inputs, then operational behavior. 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.

Completeness4/5

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

There is no output schema, but the description names the returned profile fields (title, company, linkedin, location) and covers caching and credits. It does not describe miss behavior, default output shape, or the exact effect of `max_credits`, but the readable schema and enum largely compensate.

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 only 25%, but the description clarifies how to combine person fields, e.g. 'name plus company_domain', which adds value beyond the raw schema. However, it leaves `want` and `max_credits` semantically under-explained; their names and the `want` enum make them guessable, but the description does not explicitly connect them to the requested output or cost control.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Find a person's verified work email and profile', and lists exactly which identifiers are accepted. It clearly operates at the person level, which distinguishes it from sibling enrich_company despite not naming it.

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

Usage Guidelines3/5

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

The description provides practical input prerequisites ('Accepts email, linkedin_url, or name plus company_domain') and useful cost/caching context. However, it does not name alternatives like verify_email or enrich_company, nor does it say when not to use this tool, leaving sibling-selection partly to inference.

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

enrich_companyEnrich a companyA
Destructive
Inspect

Enrich one company domain with independently statused profile, technologies, funding, or relationships datasets; or request an exclusive fast/deep sourced brief. Structured hits cost 7 credits each; briefs cost 10 fast or 40 deep. Empty and unavailable datasets are free.

ParametersJSON Schema
NameRequiredDescriptionDefault
wantNo
depthNo
company_domainYesCompany website domain or URL, e.g. acme.com or https://www.acme.com/about
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.

TDQS

A3.5/5.0
Behavior4/5

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

The annotations already signal that this is not read-only and has destructive side effects, and the description adds useful behavioral context: credit costs per output type, fast/deep brief pricing, and that empty or unavailable datasets are free. This goes beyond the annotations without contradicting them.

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

Conciseness4/5

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

Three sentences carry a large amount of information with no obvious filler. The phrasing is somewhat jargon-heavy ('independently statused', 'structured hits'), which slightly hurts readability, but the structure is otherwise efficient and front-loaded.

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 covers pricing, dataset options, and depth semantics, which are essential. However, there is no output schema and no mention of whether this is asynchronous, whether the response needs to be polled via get_operation, or what a caller receives after a successful enrichment. For a paid operation with idempotency support, that missing operational context is a notable 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 coverage is only 50%, leaving 'want' and 'depth' without descriptions. The description compensates by explaining that 'want' maps to datasets like profile, technologies, funding, relationships, or brief, and that 'depth' corresponds to fast or deep briefs with different costs. It does not add meaning to idempotency_key, but the schema already documents that adequately.

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 action ('Enrich one company domain') and enumerates the datasets it can return: profile, technologies, funding, relationships, or a brief. This is clear and informative, though it does not explicitly distinguish enrich_company from the sibling tool 'enrich', 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 Guidelines2/5

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

The description gives no guidance on when to choose enrich_company over the sibling 'enrich' or other tools like find_companies. It describes what the tool does and its pricing, but not the conditions or contexts that make it the right choice.

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

find_companiesFind companiesA
Destructive
Inspect

Discover companies by hiring activity, technologies in use, or similarity to one company domain. Accepts optional industries, ISO alpha-2 country_codes, company_headcount, and limit (default 25, maximum 100). Returns unique companies with evidence and company_domains. Hiring and lookalike results cost 6 credits each; technology results cost 7; zero results are free.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
hiringNo
audienceNo
industriesNo
similar_toNoCompany website domain or URL, e.g. acme.com or https://www.acme.com/about
technologiesNo
country_codesNo
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.
company_headcountNo

TDQS

A3.7/5.0
Behavior1/5

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

Annotations declare readOnlyHint=false and destructiveHint=true, implying the tool may mutate or destroy data. The description, however, frames the operation as a read-style discovery action ('Discover companies', 'Returns unique companies'), which contradicts the destructive/not-read-only annotation. This is an annotation contradiction because the description implies a safe, read-only lookup while annotations indicate the opposite.

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, each with a distinct job: scope and modes, parameter list, and cost/return behavior. No filler or redundant restatement of the tool name. Information is front-loaded.

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

Completeness3/5

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

With no output schema, the description does state that results are unique companies with evidence and company_domains, and it discloses credit costs including free zero-result cases. Missing, though, is any disclosure of the destructive/not-read-only behavior indicated by annotations, and no detail on how the modes combine or what 'evidence' contains, leaving notable gaps for a tool with nested objects and no 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 description coverage is only 22%, so the description must compensate. It names the three modes and explicitly lists optional filters (industries, country_codes, company_headcount, limit) with the limit default and maximum. However, it omits the 'audience' parameter entirely and does not explain the nested structures of 'hiring' or 'company_headcount', so compensation is good 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?

The description uses a specific verb ('Discover') and resource ('companies'), and enumerates three distinct discovery modes: hiring activity, technologies in use, and similarity to a company domain. This makes the tool's purpose immediately distinguishable from sibling tools like find_leads or find_posts.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool: to discover companies by hiring, technology, or lookalike domain. It does not name sibling alternatives or explicit exclusion criteria, but the use cases are specific enough to guide selection.

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

find_intentFind buying intentB
Destructive
Inspect

Buying-intent signals for company domains: hiring (live job posts with evidence URLs), funding, news, job_change, technology. Costs 10 credits per signal-bearing company plus 0.5 credit for each scanned company that returns no signal.

ParametersJSON Schema
NameRequiredDescriptionDefault
signalsNo
company_domainsYes
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.

TDQS

B3/5.0
Behavior3/5

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

The description adds valuable non-schema behavior by disclosing the exact credit cost model and the evidence-URL aspect of hiring signals, extending the sparse annotations. However, annotations mark the operation as destructiveHint=true and readOnly=false, yet the description does not clarify any mutating/destructive side effects beyond credit consumption, leaving a transparency 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?

Two sentences carry the core resource, the signal types, and a precise pricing rule with zero filler or redundancies. The key purpose is front-loaded and the cost detail is placed second.

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

Completeness2/5

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

With no output schema, the description does not state what the tool returns for each signal type or how results are grouped by company, which the agent must infer. It also omits operational details like partial failures and whether the signals parameter is required, despite providing the credit cost.

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 only 33%, so the description must define the parameters. It repeats the signal enum values and adds detail only for hiring; it never explains whether signals is an optional filter, what the other signals mean, or how company_domains/idempotency_key interact with the scan and costing.

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 tool as returning buying-intent signals for supplied company domains and enumerates the signal types, which distinguishes it from sibling lookup tools like find_companies and find_posts. It lacks an explicit contrast statement, but the resource and signal list make the purpose unambiguous.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over alternatives such as enrich, find_companies, or find_leads. The only contextual hint is that it operates on company domains and costs credits; there is no when-not-to-use or alternative routing.

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

find_leadsFind leadsA
Destructive
Inspect

Search 200M+ B2B contacts by structured filters (titles, locations, industries, company_headcount, company_domains). At least one of titles, industries, locations, or company_domains is required. company_domains accepts up to 100 domains or URLs and restricts results to people at those companies. Industry values follow LinkedIn's taxonomy (for example, 'Hospitals and Health Care'). Returned leads have work_email null. Costs credits per lead returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
titlesNo
audienceYes
locationsNo
industriesNo
company_domainsNo
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.
company_headcountNo

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the annotations, the description discloses important behavior: returned leads have null work_email, company_domains restricts to at most 100 domains/URLs, industry values follow LinkedIn's taxonomy, and the call consumes credits. This explains the non-read-only/destructive hint through credit cost, though it omits return shape, pagination, and rate limits.

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

Conciseness5/5

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

The description is compact and front-loaded: purpose, filter requirement, domain behavior, taxonomy example, null email, and cost are each one crisp sentence. There is no redundant or filler content.

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

Completeness2/5

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

For a tool with no output schema, the description leaves important gaps: it does not describe what fields returned leads contain beyond null work_email, what 'audience' means, or how limit and pagination behave. The credit cost is noted, but other side effects and operational details are missing.

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?

With only 13% schema coverage, the description needed to explain all parameters, but it ignores the required 'audience' property entirely and only names company_headcount without explaining its range semantics. It adds useful detail for company_domains and industries, but the 'At least one...' sentence conflicts with a schema that requires audience, creating ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Search 200M+ B2B contacts by structured filters', which immediately conveys the tool's purpose and separates it from sibling tools like find_companies or enrich. It also enumerates the filter dimensions, making the scope unmistakable.

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 hard usage condition ('At least one of titles, industries, locations, or company_domains is required') and warns that using the tool costs credits, which helps agents decide when to call it. It does not name sibling alternatives or say when not to use it, 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.

find_postsFind social postsA
Destructive
Inspect

Search relevant public social posts by keyword, known author profile/handle, or LinkedIn company domain. Supports LinkedIn, X, Reddit, YouTube, TikTok, Instagram, Facebook, Threads, Hacker News, and Quora when enabled. Returns per-platform status and only bills posts passing deterministic literal-v1 relevance. Keyword search costs 0.5 credit per returned post and a miss is free; author/company scope adds a 1-credit base even when no post is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
authorNo
platformsNo
within_daysNo
company_domainNoCompany website domain or URL, e.g. acme.com or https://www.acme.com/about
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.

TDQS

A4/5.0
Behavior4/5

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

Annotations only provide hints (readOnly=false, destructive=true, idempotent=false), so the description carries the burden and adds significant context: billing behavior (0.5 credit per returned post, free misses, 1-credit base for author/company scope), deterministic literal-v1 relevance filtering, and per-platform status. This goes well beyond the annotations, though it does not explain the 'destructive' hint or output 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?

The description is two sentences with the core purpose front-loaded. Billing details are relevant but include jargon like 'deterministic literal-v1 relevance' and 'when enabled' that could be tightened. Still, no wasted sentences.

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

Completeness3/5

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

For a tool with 7 parameters and no output schema, the description covers search scope and cost but leaves gaps: no return value shape beyond 'per-platform status', no guidance on limit/within_days/platforms, and vague platform enablement. Functional but not fully complete.

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

Parameters3/5

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

With only 29% schema description coverage, the description must compensate. It explains the high-level query modes (query, author, company_domain) and cost implications, but does not clarify limit, platforms, within_days, or the author sub-fields beyond what the schema already provides. Partial compensation, not 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 verb and resource: 'Search relevant public social posts' by three distinct modes (keyword, author profile/handle, LinkedIn company domain). This clearly differentiates find_posts from sibling lead/company/intent tools, even without naming them, since the resource and action 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?

The description gives clear usage contexts: keyword search, known author profile/handle, or LinkedIn company domain, and lists supported platforms. It does not explicitly name alternative tools or state when not to use this tool, but the context is strong enough that an agent can infer when find_posts is appropriate.

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

get_meWho am IA
Read-onlyIdempotent
Inspect

Returns this key's identity and permissions: scopes, monthly spend cap and remaining allowance, today's send and reply capacity, per-action limits, autonomous launch policy, and workspace suspension state. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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=true and destructively=false, so the safety profile is covered. The description adds behavioral value by specifying the content of the response (permissions, limits, policy, suspension state) and notes the tool is 'Free' – a cost-related trait not present in annotations. This goes beyond mere repetition of 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?

Two sentences, with the core action front-loaded and the data list compactly delivered. The list is long but each item is a distinct useful piece of information; 'Free.' is a separate short sentence for emphasis. It remains efficient and readable.

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 parameterless, output-schema-less tool, the description sufficiently explains what the response contains (identity and permissions, limits, policy, suspension state). It does not detail the exact response structure, but the absence of an output schema makes that less critical; the agent has enough to know what to expect.

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

Parameters4/5

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

There are zero parameters, and the schema is an empty object. With no parameters to document, the baseline is 4; the description adds no parameter information, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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-resource pair ('Returns this key's identity and permissions') and enumerates the exact data categories returned. This clearly distinguishes it from siblings like get_usage (usage metrics) or get_operation (operation status), so an agent can select it confidently.

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: an agent needing scopes, spend caps, or capacity limits should call this tool. However, it provides no explicit 'use this when' guidance, no exclusions, and no alternative tool names for other purposes, leaving the agent to infer the tool's role among siblings.

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

get_operationCheck an operationA
Read-onlyIdempotent
Inspect

Returns the current state of provisioning, campaign creation, or launch work by operation_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_idYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is well covered. The description adds domain scope (provisioning, campaign creation, launch) but does not disclose polling semantics, error behavior, or the exact shape of the returned state.

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 front-loaded sentence with no filler: it states the verb, resource, and parameter in one pass. Every word contributes to understanding the tool's purpose.

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

Completeness3/5

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

For a one-parameter, read-only tool, annotations cover the safety profile and the description gives a clear purpose. However, with no output schema, the description underspecifies what 'current state' actually contains (possible values, structure, or failure semantics), which limits the agent's ability to fully predict the response.

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

Parameters3/5

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

The schema provides only type and format for operation_id, with 0% description coverage. The description adds context that this ID refers to an operation in provisioning, campaign creation, or launch work, but otherwise mostly restates the parameter's obvious role.

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 uses a specific verb ('Returns') and a specific resource ('current state ... by operation_id'), scoping to provisioning, campaign creation, or launch work. It clearly separates get_operation from siblings like get_reply or get_usage in subject matter, though it does not explicitly name alternatives.

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

Usage Guidelines3/5

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

The phrase 'current state' implies a monitoring or polling use case for checking operation progress. It does not explicitly state when to prefer this over sibling tools or when not to use it, leaving some inference to the agent.

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

get_repliesList repliesA
Read-onlyIdempotent
Inspect

Read campaign replies (free): newest first, optionally filtered by campaign_id and/or since (ISO timestamp). Classification when known: interested, not_interested, out_of_office, unsubscribe, bounce.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sinceNo
campaign_idNo
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful behavioral context not in annotations: the 'free' nature, newest-first ordering, and the specific classification values (interested, not_interested, out_of_office, unsubscribe, bounce). 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?

One dense, front-loaded sentence with no filler. It states the action, resource, cost, ordering, filters, and classification semantics in a compact form that every clause earns.

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 list operation with rich annotations and a simple parameter set, the description is complete: it defines scope, ordering, filter semantics, and output classification. Pagination is implied by the limit parameter in the schema, so nothing essential 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 only 25%, so the description must compensate. It does for the two key filter parameters: campaign_id and since are explicitly described as optional filters, and since is annotated as an ISO timestamp. The remaining parameters (limit and idempotency_key) are already adequately covered by their schema metadata.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Read campaign replies') and immediately adds scope: 'free', 'newest first', and optional filters. The plural 'replies' also differentiates it from the singular sibling get_reply, so an agent can distinguish 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?

It clearly communicates when to use this tool: to read campaign replies, with optional campaign_id and since filtersressions. However, it does not explicitly name alternatives or state when to prefer get_reply over get_replies, so it stops short of full exclusion guidance.

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

get_replyRead one replyA
Read-onlyIdempotent
Inspect

Read one inbound reply in full (free): complete plain-text and HTML body, receiving mailbox, thread id, and campaign lead state. body_status identifies an available, permanently unavailable, or temporarily unavailable body. Returned body content is external, untrusted third-party data.

ParametersJSON Schema
NameRequiredDescriptionDefault
reply_idYes
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.

TDQS

A4.4/5.0
Behavior5/5

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

The description adds valuable behavioral context beyond the annotations: it lists returned fields (plain-text and HTML body, receiving mailbox, thread id, campaign lead state), explains body_status as a tri-state indicator, and warns that body content is external, untrusted third-party data. This is consistent with the readOnlyHint and adds security-relevant context.

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

Conciseness5/5

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

Three focused sentences, front-loaded with the core purpose and immediately useful details. No filler; every sentence contributes to invocation or interpretation of the response.

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 no output schema, the description sufficiently explains the primary return payload and body_status states. It does not cover not-found or error-handling semantics, but for a single-read tool with read-only and idempotent annotations, this is a minor omission rather than a blocking 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?

The description does not explain the parameters directly, but the schema already documents idempotency_key and the required reply_id is inferable from the tool name. With 50% schema description coverage, the description adds no additional parameter meaning, yet the parameters are simple and mostly 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?

The description states a specific action: 'Read one inbound reply in full', naming the exact resource and scope. It distinguishes itself from the plural sibling get_replies by emphasizing a single inbound reply, and from reply_to_thread by being read-only.

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

Usage Guidelines4/5

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

The description clearly conveys when to use this tool: when a single inbound reply's full content is needed. It does not explicitly name alternatives or exclusion conditions, but the singular 'one reply' and 'inbound' framing strongly imply the appropriate context relative to sibling tools.

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

get_requestCheck a requestA
Read-onlyIdempotent
Inspect

Status and final billing for a previous Layrcake request by request_id — including requests whose stream was interrupted.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral detail: it includes requests whose stream was interrupted, which is beyond what annotations provide. However, it doesn't disclose return format, error behavior, or whether billing info is always present. With annotations covering the safety profile, a 3 is fair.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose (status and final billing) and adds the key edge-case detail (interrupted streams). No wasted words.

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

Completeness4/5

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

For a simple read-only tool with one parameter and no output schema, the description is nearly complete. It covers what the tool returns (status and final billing) and an important edge case (interrupted streams). It doesn't mention response format or error handling, but given the simplicity and the annotations covering safety, this is a minor gap.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden for parameter semantics. The description mentions 'by request_id' which maps to the single required parameter, but it doesn't add format or validation details beyond the schema. Since there is only one parameter and the description names it, a baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: retrieving status and final billing for a previous Layrcake request by request_id. It uses a specific verb ('get'), a specific resource ('request'), and adds a distinguishing detail (includes interrupted streams) that separates it from siblings like get_operation and get_usage.

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

Usage Guidelines4/5

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

The description implies when to use this tool: when you need status and final billing for a previous request, including interrupted streams. It doesn't explicitly name alternatives or exclusions, but the context of 'previous request' and the sibling list (e.g., get_operation, get_usage) makes the use case reasonably clear. A 4 is appropriate because it provides clear context without explicit when-not-to-use guidance.

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

get_usageCredit balance and usageA
Read-onlyIdempotent
Inspect

Returns the Layrcake credit balance, reserved holds, available credits, and per-verb usage for the last 30 days.

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context by specifying what is returned and that data covers the last 30 days, which goes 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.

Conciseness5/5

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

The description is a single, information-dense sentence with no filler. It front-loads the action ('Returns') and then lists the resource components in a natural order, making it easy to parse quickly.

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

Completeness5/5

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

For a zero-parameter read-only tool, the description is complete: it identifies the tool's purpose, the data fields returned, and the time range. No output schema exists, but the description adequately summarizes what the agent should expect to receive.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds no parameter-specific information because none is needed; the schema is empty and fully consistent with the tool's no-argument design.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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, 'Returns,' with a clearly identified resource: Layrcake credit balance and usage. It enumerates the exact pieces of data returned (balance, reserved holds, available credits, per-verb usage) and the time window, making it distinct from any sibling 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?

The description makes the usage context obvious: an agent should call this when it needs credit balance, holds, available credits, or recent per-verb usage. It does not explicitly name alternatives or exclusions, but no sibling tool appears to overlap with this credit-specific purpose, so the context is clear enough.

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

launch_campaignLaunch campaignA
Destructive
Inspect

Launch a draft campaign so real emails begin sending. An unconfirmed request returns a preview, confirmation_token, approval_url, and removed counts from the launch-time recipient recheck. After signed-in human approval, a request with that token and a stable idempotency_key executes the launch. Requires active sending capacity and campaign:launch. Suppression is rechecked and provider removals fail closed before activation. dry_run: true returns an advisory estimate as of evaluated_at, reserves nothing, and may differ from a later execution plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
campaign_idYes
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.
daily_send_limitNo
confirmation_tokenNo

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavioral detail beyond the annotations: preview + confirmation_token/approval_url flow, launch-time recipient recheck, fail-closed provider removals, and dry_run advisory semantics. There is no contradiction with the destructiveHint or idempotentHint 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?

Four dense sentences, each adding meaningful workflow or safety context. The core action is front-loaded, and there is no filler or redundant restating of schema fields.

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-phase launch tool with no output schema, the description covers the essential approval flow, permissions, failure handling, and dry_run behavior. It does not define the confirmed-launch response shape or daily_send_limit, but an agent can still invoke the tool correctly.

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

Parameters4/5

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

With only 20% schema coverage, the description compensates by explaining dry_run, confirmation_token, and idempotency_key semantics. It leaves daily_send_limit unexplained, but the parameter name and schema constraints make its intent reasonably inferable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Launch a draft campaign so real emails begin sending.' It clearly identifies the tool's purpose and distinguishes it from siblings like create_campaign and setup_sending.

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 explains the two-phase approval workflow, when dry_run should be used, and the prerequisites ('Requires active sending capacity and campaign:launch'). It does not explicitly name alternative tools or exclusion cases, 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.

reply_to_threadSend a reply emailA
Destructive
Inspect

Send a real email in an inbound reply's existing thread from the mailbox that received it. An unconfirmed request returns a preview, confirmation_token, and approval_url. After signed-in human approval, a request with that token and a stable idempotency_key sends the reply. Requires reply:send, which is not granted by default. Only one reply is allowed per inbound message; suppressed contacts are refused, and sender and subject are derived. operation_unknown_state includes an operation_id whose status is available from get_operation. dry_run: true returns an advisory estimate as of evaluated_at, reserves nothing, and may differ from a later execution plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
reply_idYes
body_textYes
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.
confirmation_tokenNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already signal destructiveness, but the description adds substantial behavioral detail: unconfirmed requests return a preview/token/URL, human approval is required, sender and subject are derived, dry_run only produces an estimate, and operation_unknown_state is handled. This meaningfully complements the annotations without contradicting them.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: purpose, approval workflow, permission, constraints, async status handling, and dry-run behavior are all covered without filler. It is front-loaded with the primary action before diving into details.

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

Completeness5/5

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

Despite no output schema, the description covers the full invocation context: prerequisites, confirmation flow, limitations, failure conditions, async state resolution, and dry-run semantics. An agent has enough information to decide when to call it and how to handle the approval and retry lifecycle.

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 only 20% schema description coverage, the description compensates well by explaining dry_run, idempotency_key, and confirmation_token semantics, and by tying reply_id to the existing thread. Body_text is less explicitly described but is inferable from 'Send a real email' and the parameter 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 description clearly states the action, resource, and context: sending a real email in an existing inbound reply thread from the receiving mailbox. This strongly differentiates it from read-only siblings like get_reply and get_replies, and from other sending tools by focusing on the reply thread case.

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

Usage Guidelines5/5

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

The description explicitly explains when to use it, the required approval flow, the non-default reply:send permission, the one-reply-per-inbound-message limit, and the refusal of suppressed contacts. It also routes unresolved async states to get_operation, giving clear practical guidance.

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

set_lead_statusSet lead statusA
DestructiveIdempotent
Inspect

Record a campaign lead's interest status (free, idempotent): interested, meeting_booked, won, not_interested, out_of_office, or neutral. Accepts the campaign_lead_id exposed by get_reply. not_interested irreversibly suppresses the contact from future campaigns in the workspace and removes them from active campaigns. The status is mirrored to the sending provider in the background; provider_sync_status reports pending, synced, failed, or unsupported. dry_run: true returns an advisory estimate as of evaluated_at, reserves nothing, and may differ from a later execution plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes
dry_runNo
idempotency_keyYesStable retry key; the same value identifies retries of the same request after timeout or approval.
campaign_lead_idYes

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses crucial behaviors beyond the annotations: not_interested irreversibly suppresses the contact and removes them from active campaigns, provider sync happens in the background with a defined set of sync statuses, and dry_run reserves nothing and may differ from a later execution. This level of side-effect and async-behavior disclosure is exemplary and consistent with the destructiveHint and idempotentHint 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 dense but efficiently organized: purpose and statuses first, then input provenance, irreversible side effects, background sync behavior, and dry-run semantics. Every sentence carries useful information and there is no filler or repetition of schema content.

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

Completeness4/5

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

For a mutating tool with irreversible consequences and no output schema, the description covers the needed behavioral context well: inputs, side effects, sync behavior, and dry-run output. The only notable gap is that it does not explicitly describe the shape of a successful non-dry-run response, though the mention of provider_sync_status partially addresses this.

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 only 25% schema description coverage, the description compensates well: it explains the real-world meaning of status values, identifies the provenance of campaign_lead_id, and defines dry_run semantics precisely. The idempotency_key is less elaborated in the description, but the schema already documents it as a stable retry key and the description flags the operation as idempotent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action ('Record a campaign lead's interest status') and enumerates all six allowed status values, making the tool's purpose unmistakable. It also ties the primary input to get_reply, clearly distinguishing this status-recording tool from sibling read/reply tools. The parenthetical 'free, idempotent' is slightly ambiguous but does not obscure the core function.

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 contextual usage guidance: use campaign_lead_id exposed by get_reply, use dry_run for an advisory check, and use not_interested when permanent suppression is intended. It does not explicitly state when not to use the tool or name alternatives, but no sibling tool performs this same status-setting function, so the implied workflow is reasonably clear.

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

setup_sendingBuy sending capacityA
Destructive
Inspect

Provision warmed sending capacity (domains, mailboxes, DNS and warmup). An unconfirmed request returns a free quote, confirmation_token, and approval_url. After signed-in human approval, a request with that token and a stable idempotency_key executes the purchase. Requires assets:purchase. Successful execution returns an operation_id whose status is available from get_operation. dry_run: true returns an advisory estimate as of evaluated_at, reserves nothing, and may differ from a later execution plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
senderNo
dry_runNo
brand_hintNo
approval_urlNo
emails_per_weekYes
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.
prefer_prewarmedNo
confirmation_tokenNo

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only say readOnly=false and destructiveHint=true; the description adds the crucial human-approval gate, idempotency semantics, dry_run reserving nothing, and operation_id polling via get_operation. This goes well beyond the annotation hints and matches the declared side-effectful nature.

Agents need to know what a tool does to the world before 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, front-loaded with purpose, and every sentence contributes workflow, prerequisite, or dry-run behavior. The only minor issue is a dense middle that could be split for readability, but it is not padded.

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 two-step approval flow, idempotency, dry-run semantics, and operation_id polling are well covered. But with no output schema and several unexplained parameters (sender, brand_hint, prefer_prewarmed), the description leaves meaningful gaps an agent would need to resolve before invoking the tool 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 only 13%, so the description carries the burden; it does clarify dry_run, confirmation_token, idempotency_key, and approval_url meaningfully. However, it leaves sender, brand_hint, and prefer_prewarmed unexplained, and emails_per_week is only inferred from 'sending capacity.'

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

Purpose5/5

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

Description opens with 'Provision warmed sending capacity (domains, mailboxes, DNS and warmup)' – a specific verb and resource that clearly separates it from campaign/lead tools like create_campaign or add_leads. The title 'Buy sending capacity' reinforces the action.

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?

Lays out the purchase flow explicitly: unconfirmed request → quote/token/approval_url → post-approval request with a stable idempotency_key. States the prerequisite 'Requires assets:purchase' and distinguishes dry_run as advisory-only. It doesn't name alternatives explicitly, but the unique provisioning purpose and sibling names make the when-to-use unambiguous.

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

verify_emailVerify email addressA
Destructive
Inspect

Verify the deliverability of one email address (two-stage check incl. catch-all analysis). Returns status valid|invalid|catch_all_valid|catch_all_unknown|unknown|risky and is_catch_all_domain. Costs credits per call.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
idempotency_keyNoStable retry key; the same value identifies retries of the same request after timeout or approval.

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations, the description reveals that the check is two-stage, includes catch-all analysis, returns specific statuses, and costs credits per call. It aligns with destructiveHint: true by explaining the cost side effect, and with readOnlyHint: false by implying an operation with consequences.

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

Conciseness5/5

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

Two focused sentences contain the core purpose, the key behavioral nuance (catch-all analysis), the return statuses, and the cost implication. There is no filler or repetition of schema details.

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

Completeness4/5

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

With no output schema, listing the exact statuses is valuable and nearly sufficient for the agent to interpret results. The cost warning and catch-all detail round out the practical context, though usage guidance remains absent.

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

Parameters3/5

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

The schema documents idempotency_key well but leaves email undocumented; the description adds no parameter-level detail. However, 'one email address' implicitly ties to the email parameteraine, and the email parameter is self-explanatory 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 description uses a specific verb ('Verify') and resource ('deliverability of one email address'), then adds distinctive detail (two-stage check, catch-all analysis) and enumerates the possible statuses. Even without naming a sibling, this clearly distinguishes the tool from the unrelated campaign/lead/enrichment siblings.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over alternatives, nor does it state prerequisites or contexts where email verification is appropriate. There are no sibling verification tools, but the description still leaves the agent to infer when to call it.

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. 19 tool updates
    • First observedadd_leads
    • First observedcreate_campaign
    • First observedenrich
    • First observedenrich_company
    • First observedfind_companies
    • First observedfind_intent
    • First observedfind_leads
    • First observedfind_posts
    • First observedget_me
    • First observedget_operation
    • First observedget_replies
    • First observedget_reply
    • First observedget_request
    • First observedget_usage
    • First observedlaunch_campaign
    • First observedreply_to_thread
    • First observedset_lead_status
    • First observedsetup_sending
    • First observedverify_email

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    9 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources