Skip to main content
Glama

AIsa Sales

Server Details

Your agent needs a pipeline, not a list — the companies worth calling, the people who decide inside them, a way to reach those people, and the market evidence that the account is worth the call.

What you can ask for • "Find Series-B fintech companies in Germany and the heads of marketing there, with emails." • "Enrich these 200 domains with headcount, funding and tech stack." • "Which of these accounts is hiring for roles that imply they need us?" • "How much traffic does this prospect get, and where does it come from?" • "Create the account and contact records and move this opportunity to the next stage."

How to use it Point any MCP client at https://mcp.aisa.one/sales/mcp and sign in with OAuth — there is no key to create or paste. 79 tools: Apollo people and company search, enrichment, accounts, contacts, opportunities and stages, job postings, sequences and call activity; Similarweb traffic, audience, referrals, ad spend and competitors; plus creator discovery.

Why this rather than the source Prospecting, enrichment, market sizing and the CRM writes behind one login instead of three.

It is also a door to the rest The same login reaches 26 sources and 580+ operations. Build the list here, then ask the same agent what those companies rank for or what is being said about them — without adding a second server.

What it costs Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident.

Where else it reaches https://mcp.aisa.one/apollo/mcp or https://mcp.aisa.one/similarweb/mcp for one of them alone; https://mcp.aisa.one/gtm/mcp adds the social side.

Ownership verified
Status
Healthy
Uptime
89.6% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.2/5.0

Scored across 85 tools

Disambiguation4/5

Apollo tools are well-differentiated by verb+resource (get_ vs post_ vs patch_ vs put_ on contacts, accounts, opportunities, sequences), and SimilarWeb/WaveInflu endpoints target distinct metrics. The main ambiguity is between the meta-tools (search, use, get_details, batch_use) and the directly pinned tools, plus several near-sibling SimilarWeb audience endpoints, but descriptions actively clarify these.

Naming Consistency4/5

The bulk of tools follow a strict snake_case provider_resource_action pattern (get_apollo_*, post_apollo_*, get_similarweb_*, post_waveinflu_*), which is highly predictable. The router meta-tools (search, use, batch_use, get_details, list_categories) break the pattern with bare verbs, a minor deviation.

Tool Count2/5

85 tools is far beyond a well-scoped set and mixes three unrelated providers (Apollo CRM, SimilarWeb analytics, WaveInflu creators) plus router meta-tools in one surface. The search/use/batch_use pattern mitigates this somewhat by offering an escape hatch, but the pinned catalogue is still overwhelming.

Completeness4/5

Apollo coverage is broad — create/read/update plus bulk variants for contacts, accounts, opportunities, tasks, calls, sequences, fields, reports and usage. The notable gap is delete operations for most entities (contacts, accounts, deals, tasks), which agents must work around, and WaveInflu is limited to three operations.

Available Tools

85 tools
batch_useRun up to 20 operationsA
Destructive
Inspect

Execute up to 20 operations concurrently (tool-router's batch_use). Each item answers independently; one failure never cancels the others. Billed per call to your AIsa key.

ParametersJSON Schema
NameRequiredDescriptionDefault
callsYesUp to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch
search_idNosearch_id from the search that found these operations
max_price_usdNoPer-call price cap applied to every item

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.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, so safety is covered. The description adds valuable behavior: independence of items (one failure doesn't cancel others) and per-call billing. These are not derivable from annotations and help the agent set expectations.

Agents need to know what a tool does to the world before 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 zero filler. The action and limit are front-loaded. The phrase 'tool-router's batch_use' is redundant since it restates the tool name, but it's a minor flaw. Overall it is concise and well-structured.

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

Completeness4/5

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

With annotations covering destructive behavior and an output schema presumably describing results, the description covers the key operational aspects: concurrency limit, independence, and billing. It doesn't mention error reporting formats, but those likely live in the output schema. It is sufficiently complete for a batch tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents each parameter. The description adds no parameter-specific details. The calls parameter's description already explains the structure and batching context, so the baseline of 3 applies; the description doesn't need to compensate.

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 clear action (execute) and resource (operations) with a concrete limit (up to 20) and concurrency. It doesn't explicitly name the sibling 'use' for single operations, but the distinction is clear enough from the concurrency and limit. The redundancy of 'tool-router's batch_use' is minor.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus the sibling 'use' tool. The schema note about 'steps at the same execution_level of a plan go in one batch' is helpful, but it lives in the schema, not the description. The description only implies batching via concurrency but doesn't state when to choose it over the single-operation alternative.

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

get_apollo_accounts_idView an AccountA
Read-onlyIdempotent
Inspect

One saved account by its Apollo id, with its full field set including custom fields and owner. Find the id with post_apollo_accounts_search. This reads the shared AIsa workspace, not Apollo's global database — for a company you have not saved, use get_apollo_organizations_enrich.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAccount ID

Output Schema

ParametersJSON 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, openWorldHint, idempotentHint, and destructiveHint false. The description adds valuable context about workspace scope ('shared AIsa workspace, not Apollo's global database') and return content ('full field set including custom fields and owner'), 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?

Two concise sentences, front-loaded with the core purpose, followed by essential routing guidance. No wasted words; every sentence 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 single-parameter read tool with an output schema, the description covers what it returns, how to get the id, and when to use alternatives. 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 describes the id simply as 'Account ID' (100% coverage). The description adds meaning by specifying it's an Apollo id and explaining how to obtain it via post_apollo_accounts_search, which is helpful for correct parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 exactly what the tool does: retrieves one saved account by its Apollo id, with a full field set including custom fields and owner. It clearly distinguishes from siblings by referencing how to find the id and an alternative for unsaved companies.

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 instructs when to use this tool (saved accounts) and when not (unsaved companies → get_apollo_organizations_enrich), and tells the agent to use post_apollo_accounts_search to find the id. No ambiguity.

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

get_apollo_account_stagesList Account StagesA
Read-onlyIdempotent
Inspect

The account stages configured in this workspace, as an account_stages array of id, name, display_name, display_order, category and is_meeting_set. Takes no parameters. Call it before creating or updating accounts: stage fields expect a stage id, and the set is workspace-specific rather than a fixed enum.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON 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 annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds useful behavior context: the result is a workspace-specific list rather than a global enum, and it returns an `account_stages` array with the relevant fields. No contradiction with annotations, though auth or rate-limit details are not added.

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

Conciseness5/5

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

The description is two sentences with no filler. It front-loads the resource and response shape, then supplies the operational caveat and usage timing. Every clause contributes either return-structure information or actionable call context.

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 list tool with an output schema and rich annotations, the description is complete: it states the resource, return shape, usage timing, and the workspace-specific caveat. Nothing an agent needs to invoke the 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?

There are zero parameters, and the schema already documents this with an empty properties object and no required fields. The description confirms 'Takes no parameters,' which matches the schema. With zero parameters, the baseline is 4, and the description adds no extra burden.

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

Purpose5/5

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

The description names a specific verb and resource: it lists the 'account stages' configured in the workspace and enumerates the exact response fields (`id`, `name`, `display_name`, `display_order`, `category`, `is_meeting_set`). The 'account' qualifier clearly distinguishes this from the sibling stage tools for contacts and opportunities, so an agent can select 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?

The description gives explicit when-to-use guidance: 'Call it before creating or updating accounts' and explains why: stage fields expect a stage id and the set is workspace-specific rather than a fixed enum. It does not explicitly name alternative stage tools, but the account-specific framing makes the intended context clear.

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

get_apollo_contacts_contact_idView a ContactA
Read-onlyIdempotent
Inspect

One saved contact by its Apollo id, with the full field set including custom fields, owner and stage. Find the id with post_apollo_contacts_search. Reads the shared workspace, not Apollo's global database.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID

Output Schema

ParametersJSON 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 cover the read-only, idempotent, non-destructive profile. The description adds useful behavioral context beyond those annotations: it returns the full field set including custom fields/owner/stage, and it targets the shared workspace rather than the global database. No contradiction.

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: what the tool returns, how to find the input id, and which data scope is read. Front-loaded and free of 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 with rich annotations and an output schema, nothing critical is missing. The agent knows the id source, the workspace scope, and the returned fields. No further behavioral or safety disclosure is needed.

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 100% schema description coverage, baseline is 3. The description adds practical meaning by clarifying that the parameter is an Apollo contact id and that it should be obtained via post_apollo_contacts_search. This goes beyond the schema's bare 'Contact ID' label.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 operation: retrieve one saved contact by its Apollo id. It adds meaningful specifics—the full field set including custom fields, owner, and stage—and clearly distinguishes itself from search and bulk sibling tools. No tautology.

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 prerequisite for correct use: find the id with post_apollo_contacts_search. It also scopes the data source by noting it reads the shared workspace rather than Apollo's global database. It does not enumerate every when-not condition, but the routing context is clear.

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

get_apollo_contact_stagesList Contact StagesA
Read-onlyIdempotent
Inspect

The contact stages configured in this workspace, as a contact_stages array of id, name, display_name, display_order, category and is_meeting_set. Takes no parameters. Call it before setting a contact's stage: post_apollo_contacts_update_stages expects a stage id from this list, and the set is workspace-specific.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/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 workspace-specific scoping and output array details, but beyond that it provides no additional behavioral context such as pagination or rate limits. This is a reasonable score given the strong annotation coverage.

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

Conciseness5/5

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

Three concise sentences: the first states the result and shape, the second notes zero parameters, and the third gives a concrete usage workflow. Every sentence earns its place, and the important scoping and downstream usage are 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?

Given zero parameters, rich annotations, and an output schema, the description provides everything needed to invoke the tool correctly. It also explains the workspace-specific nature and the downstream consumer, so no critical 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?

The tool has zero parameters and schema description coverage is 100%, so there is no parameter documentation burden. The description reinforces 'takes no parameters,' which meets the baseline for a parameterless 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?

The description clearly states the tool returns the workspace's contact stages as a `contact_stages` array with named fields. The 'contact' qualifier differentiates it from sibling tools like `get_apollo_account_stages` and `get_apollo_opportunity_stages`, so an agent can select it correctly.

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 context for when to call this tool: before setting a contact's stage, because `post_apollo_contacts_update_stages` expects a stage id from this list. It does not mention exclusions or alternatives, but the primary use case is made clear.

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

get_apollo_email_accountsGet a List of Email AccountsA
Read-onlyIdempotent
Inspect

The mailboxes connected to this workspace, as an email_accounts array with sending limits and per-account state. Takes no parameters. Check it before activating a sequence: a sequence with no healthy connected mailbox will not send.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON 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, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral context beyond those hints: the notion of per-account state ('sending limits and per-account state') and the operational consequence of unhealthy mailboxes, which is valuable for an agent deciding whether a sequence is ready. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences with no fluff: the first identifies the resource and return payload, the second confirms no parameters and adds a practical usage tip. Every sentence earns its place and the key 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 no-parameter, read-only, idempotent tool with an output schema, the description covers everything an agent needs: what it returns, that it requires no arguments, and when to invoke it in a sequence workflow. Nothing essential 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?

The tool has zero parameters, so the schema provides no explanatory burden. The description explicitly states 'Takes no parameters,' removing any ambiguity about hidden or optional inputs, fully covering parameter semantics for an agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('mailboxes connected to this workspace') and the return shape ('email_accounts array with sending limits and per-account state'), making it clear this is a list/read tool for email accounts. It is distinct from siblings like get_apollo_accounts_id or get_apollo_users_search because it explicitly identifies mailboxes rather than org accounts or users.

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

Usage Guidelines4/5

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

The description gives a concrete trigger: 'Check it before activating a sequence' and explains the consequence (a sequence without a healthy mailbox won't send). It provides clear context for when to use it, though it does not explicitly name alternatives or exclusions, which keeps it one step 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.

get_apollo_emailer_messages_id_activitiesCheck Email StatsA
Read-onlyIdempotent
Inspect

Engagement events for one sent email: opens, clicks, replies and bounces, with timestamps. Get the message id from get_apollo_emailer_messages_search. Use this rather than inferring engagement from the message record itself, which carries delivery state but not recipient behaviour.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEmailer message ID.

Output Schema

ParametersJSON 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 cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description adds meaningful behavioral context beyond them: the specific event types returned and the semantic distinction between delivery state and recipient behaviour. It does not cover pagination or volume limits, but the output schema exists and the added semantics are genuinely useful.

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

Conciseness5/5

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

Three sentences, each earning its place: the first states the core purpose, the second gives the required prerequisite, the third explains the sibling distinction. The most important scoping information is front-loaded and there is zero 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-only tool with an output schema and full schema coverage, nothing an agent needs to call it correctly is missing. The description covers purpose, the dependency on the search tool, and the alternative to avoid; the annotations and output schema cover safety and return shape.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description adds value above that by telling the agent exactly where to source the value for the `id` parameter ('Get the message id from get_apollo_emailer_messages_search'). This cross-tool provenance is more helpful than typical parameter descriptions.

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

Purpose5/5

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

The description states a specific verb and resource ('Engagement events for one sent email: opens, clicks, replies and bounces, with timestamps') and immediately differentiates it from the message record tool, which 'carries delivery state but not recipient behaviour.' An agent can tell this apart from get_apollo_emailer_messages_search and the campaign tools 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?

The description explicitly routes the workflow: 'Get the message id from get_apollo_emailer_messages_search.' It also names the alternative and explains why not to use it ('rather than inferring engagement from the message record itself'), giving a clear when-to-use and when-not-to-use signal with a concrete prerequisite.

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

get_apollo_fieldsGet a List of FieldsA
Read-onlyIdempotent
Inspect

Every field Apollo exposes, standard and custom, as fields (roughly 323 entries with id, field_name, label, type, category, modality, description and example) plus field_groups describing how they are organised. Takes no parameters. This is the reference for what can be filtered or written anywhere else in the API. For custom fields alone, get_apollo_typed_custom_fields is much smaller.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON 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 readOnly, idempotent, and non-destructive behavior. The description adds useful context beyond that: the approximate entry count, the shape of the response, and the fact that it takes no parameters. This is meaningful supplementary detail for a simple 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.

Conciseness5/5

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

The description is information-dense with no filler. It front-loads the main purpose, then efficiently covers response contents, alternative tools, and usage relevance in a compact 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 zero-parameter read-only tool with an output schema and rich annotations, the description is complete. It tells the agent what comes back, how much, how it is organized, and how it relates to the rest of the API.

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 input schema contains zero parameters, so the baseline is 4. The description reinforces this with 'Takes no parameters' and adds no unnecessary parameter information, which 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 resource: every Apollo field, standard and custom, returned as `fields` and `field_groups`. It includes specific attributes of the entries and explicitly distinguishes itself from `get_apollo_typed_custom_fields`, making 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 Guidelines5/5

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

It explicitly frames this tool as the reference for what can be filtered or written elsewhere in the API, which tells an agent when to reach for it. It also names the smaller alternative for custom fields only, providing a clear routing decision.

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

get_apollo_labelsGet a List of All ListsA
Read-onlyIdempotent
Inspect

The lists (labels) defined in this workspace. The HTTP response is a bare JSON array; called as an MCP tool it arrives wrapped as {"result": [...]}, because a top-level array is not a valid structured result. Takes no parameters. Empty is a normal answer when no lists exist. Use it to resolve a list name into the id that contact and account filters expect.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON 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?

The annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior, so the bar is lower. The description adds genuinely valuable runtime context: the bare-array-to-wrapped-response behavior, that an empty result is normal, and that the tool's practical purpose is ID resolution. This goes beyond what annotations provide.

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

Conciseness5/5

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

Every sentence earns its place: it names the resource, explains the response wrapping quirk, states there are no parameters, clarifies the empty case, and gives the intended use. It is compact while covering all necessary operational nuance.

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 list tool with an output schema, the description is complete. It covers what is returned, how it appears as an MCP result, the empty case, and how the tool should be used. 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?

There are zero parameters and the schema is fully covered, so no parameter documentation is needed. The description correctly states 'Takes no parameters,' which matches the schema and removes any doubt about required inputs.

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 ('lists (labels) defined in this workspace') and the tool's role in resolving list names to IDs for filters. It does not explicitly name sibling tools to differentiate itself, but the resource is unambiguous among the many get_apollo_* 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 gives a concrete, actionable usage directive: 'Use it to resolve a list name into the id that contact and account filters expect.' It does not state when not to use the tool or mention alternatives, but the context is clear enough for an agent to decide.

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

get_apollo_notesGet a List of NotesA
Read-onlyIdempotent
Inspect

Notes attached to workspace records. ⚠️ At least one filter is required — calling it bare returns HTTP 400 with "At least one argument is required". Pass one of contact_id, account_id, opportunity_id, calendar_event_id, conversation_id, conversation_ids, contact_ids or a start_date. The spec marks every one of them optional individually, which is true only in the sense that no single one is mandatory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (when supported). At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
per_pageNoResults per page (when supported). At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
account_idNoFilter by an account ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
contact_idNoFilter by a contact ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
start_dateNoOnly include notes created on/after this date (when supported). At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
contact_idsNoFilter by contact IDs. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
opportunity_idNoFilter by an opportunity ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
conversation_idNoFilter by a conversation ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
conversation_idsNoFilter by conversation IDs. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
calendar_event_idNoFilter by a calendar event ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".

Output Schema

ParametersJSON 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 description discloses the HTTP 400 error behavior and explicitly warns that the schema's 'optional' flags are misleading—valuable context beyond the annotations (readOnlyHint, idempotentHint, etc.). It adds meaningful behavioral information without contradicting the annotations.

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

Conciseness4/5

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

The description is compact—two sentences—with the core purpose first and the critical warning second. It avoids redundancy with the schema and earns its 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 10-parameter read tool with a full input schema and an output schema (indicated), the description covers the most important behavioral gotcha (mandatory filter) and is sufficient for an agent to invoke it correctly. It does not mention pagination or return format, but those are handled by the schema and 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.

Parameters3/5

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

Schema description coverage is 100%, so each parameter already has a descriptive comment. The tool description lists the filter options but adds no new meaning beyond the schema—it merely repeats the filter names. The filter-requirement warning is already embedded in every schema parameter description, so the description provides no incremental parameter insight.

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 clear verb and resource ('Notes attached to workspace records'), which immediately conveys what the tool returns. It lists the specific filter parameters, adding precision. Although it does not explicitly contrast with siblings, none of the many sibling tools appear to overlap with note retrieval, so 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 Guidelines3/5

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

The description gives crucial usage guidance: at least one filter is required, otherwise the endpoint returns HTTP 400. It also clarifies that the spec's per-parameter 'optional' markings are misleading. However, it does not mention when to choose this tool over alternatives or any exclusions, so it falls 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.

get_apollo_opportunities_opportunity_idView DealA
Read-onlyIdempotent
Inspect

One deal by its Apollo id, with the full field set. Find the id with get_apollo_opportunities_search.

ParametersJSON Schema
NameRequiredDescriptionDefault
opportunity_idYesOpportunity ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds 'full field set' and 'one deal' context, but does not disclose error behavior, rate limits, or other edge-case behavior. It 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.

Conciseness5/5

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

Two clear, front-loaded sentences with no redundancy. The core purpose is stated firstks, and the workflow hint is placed second.

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 with an output schema and comprehensive annotations, the description supplies everything needed: what to pass, how to get it, and what to expect. No significant gaps remain.

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

Parameters4/5

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

Schema coverage is 100%, so the parameter is fully described structurally. The description adds value by clarifying that the opportunity_id is an Apollo id and by telling the agent how to find that id before invoking the 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?

The description clearly states a specific verb ('deal' fetch) and resource ('one deal by its Apollo id'), and explicitly contrasts it with the search tool that finds ids. This distinguishes it from sibling tools like get_apollo_opportunities_search and patch_apollo_opportunities_opportunity_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?

The description provides a clear usage workflow: use get_apollo_opportunities_search to find the id, then call this tool. It does not explicitly state when not to use it, but the context is enough for an agent to select it appropriately for id-based fetches.

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

get_apollo_opportunity_stagesList Deal StagesA
Read-onlyIdempotent
Inspect

The deal stages configured in this workspace, as an opportunity_stages array of id, name, display_order, probability, is_won, is_closed, forecast_category_cd and type. Takes no parameters. Call it before creating or moving a deal: stage fields expect an id from this list, and probability is what turns a stage into a forecast number.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON 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 signal read-only, idempotent, and non-destructive behavior, and the description adds a non-obvious behavioral detail: `probability` is what turns a stage into a forecast number. Nothing in the description 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.

Conciseness5/5

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

The description is two concise sentences: the first front-loads the return shape, and the second provides practical usage context. There is no filler or redundant restating of schema details.

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

Completeness5/5

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

For a simple parameterless lookup, it includes the main output shape, key field names, when to call it, and an important nuance around probability and forecasting. Combined with the existing output schema and annotations, nothing needed for correct invocation 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?

The input schema is empty and the description explicitly states 'Takes no parameters,' which is sufficient for a zero-parameter tool. This matches the baseline for parameterless tools, and no further semantic detail 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 clearly states that the tool returns the deal stages configured in the workspace, specified as an `opportunity_stages` array with named fields. This is specific, not a tautology, and the 'deal stages' scope distinguishes it from sibling stage tools for accounts and contacts. The intent 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 explicitly instructs the agent to call this tool before creating or moving a deal, and explains that stage fields expect an id from this list. This gives a clear when-to-use context, though it does not explicitly name stage-related alternatives or when-not-to-use cases.

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

get_apollo_organizations_enrichOrganization EnrichmentA
Read-onlyIdempotent
Inspect

Enrich one company by domain. domain is the only parameter and it must be the bare domain (apple.com), not a full URL. Returns an organization object with id, name, website_url, linkedin_url, twitter_url, facebook_url, angellist_url, phone, founded_year, alexa_ranking, publicly_traded_symbol, publicly_traded_exchange and languages. Use it as the entry point when all you have is a domain. For several domains at once use post_apollo_organizations_bulk_enrich; for the full record including funding and technology detail use get_apollo_organizations_id, which needs the Apollo organization id this call returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain of the company that you want to enrich. Do not include www., the @ symbol, or similar. Example: apollo.io or microsoft.com

Output Schema

ParametersJSON 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=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations: the domain must be bare (not a URL), and the returned organization object contains a specific set of fields. It also notes that the returned id is needed for a sibling tool, which is valuable operational context. It doesn't mention rate limits or error behavior, but the annotations carry the main safety burden.

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: the core action and constraint appear in the first sentence, followed by the return shape and routing guidance. Every sentence earns its place, and the sibling references are concise without being verbose.

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-only, idempotent tool with a full output schema, the description is complete. It covers the input constraint, the return object, the entry-point use case, and the alternatives. 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.

Parameters4/5

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

Schema coverage is 100%, so the schema already documents the domain parameter well. The description adds value by reinforcing the bare-domain requirement and clarifying that the parameter is the only one, plus explaining what the return object contains. This goes slightly beyond the schema's example and format guidance, so it earns above the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Enrich'), a specific resource ('one company by domain'), and the exact input format ('bare domain, not a full URL'). It also distinguishes itself from sibling tools by naming the alternatives for bulk enrichment and full-record retrieval, so an agent can tell it apart 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?

The description explicitly says to use this tool as the entry point when all you have is a domain, and names two alternatives with their conditions: post_apollo_organizations_bulk_enrich for several domains, and get_apollo_organizations_id for the full record including funding and technology detail. This is clear when-to-use and 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_apollo_organizations_idGet Complete Organization InfoA
Read-onlyIdempotent
Inspect

The complete Apollo record for one company, by Apollo organization id (not by domain). Returns an organization object carrying everything enrichment returns plus the deeper fields: funding history, technology stack, department headcounts and related organizations. Get the id from get_apollo_organizations_enrich or post_apollo_mixed_companies_search first — this endpoint cannot take a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe Apollo ID for the organization that you want to research. To find organization IDs, call the Organization Search endpoint and identify the organizaton_id value for the organization. Example: 5e66b6381e05b4008c8331b8

Output Schema

ParametersJSON 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 cover read-only, idempotent, open-world, and non-destructive behavior; the description adds useful constraints that the endpoint is id-keyed only and enumerates the deeper field categories returned. It does not discuss errors, rate limits, or authentication, but those are less critical with a single read-only parameter and output schema 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?

Three sentences with no filler: purpose, return contents, and prerequisite/constraint. Important information is front-loaded and every sentence 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 single-parameter, read-only endpoint with full schema coverage and an output schema, the description covers the necessary calling context: what is returned, how to obtain the id, and what input is not accepted. No critical information for correct invocation 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 100%, so a baseline of 3 applies. The description adds value by emphasizing that the param must be an Apollo organization id (not a domain), reinforcing the source endpoints, which is useful beyond the schema's generic string 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?

Description opens with a specific resource (complete Apollo record for one company), identifies the key-by identifier (Apollo organization id, not domain), and contrasts with the enrichment sibling by saying it returns 'everything enrichment returns plus deeper fields.' This clearly distinguishes it from get_apollo_organizations_enrich and other siblings.

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 tells the agent to first obtain the id from get_apollo_organizations_enrich or post_apollo_mixed_companies_search, and states the endpoint cannot take a domain. This is a clear when/when-not with named alternatives.

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

get_apollo_organizations_organization_id_job_postingsOrganization Job PostingsA
Read-onlyIdempotent
Inspect

Live job postings for one company, by Apollo organization id. Each posting carries its title, location, posted date and source URL. Useful as a hiring signal — which functions a company is expanding, and where. Get the organization id from get_apollo_organizations_enrich first. This reads Apollo's job board data, not the company's own careers page, so absence of postings is not proof a company is not hiring.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoThe page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4
per_pageNoThe number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10
organization_idYesThe organization ID of the company for which you want to find job postings. Each company in the Apollo database is assigned a unique ID. To find IDs, call the Organization Search endpoint and identify the values for organization_id. Example: 5e66b6381e05b4008c8331b8

Output Schema

ParametersJSON 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, openWorldHint, idempotentHint, and destructiveHint. The description adds meaningful behavioral context: the data is live, sourced specifically from Apollo's job board, and absence of postings is not proof of no hiring. This supplements the annotations without contradicting them.

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

Conciseness5/5

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

Four sentences, each carrying distinct value: what the tool returns, why it is useful, how to get the required ID, and a data-source caveat. No redundant words 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?

The description covers the prerequisite, the use case, and the key caveat, while the output schema handles return values. For a tool with three simple parameters and rich annotations, nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100% — all three parameters (page, per_page, organization_id) are fully documented with examples. The description adds nothing beyond the schema for these parameters, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

Description states the tool retrieves live job postings for a company by Apollo organization ID, specifying the exact resource (job postings) and the method (organization ID from Apollo). It also distinguishes the data source (Apollo's job board) from the company's career page, which differentiates it from other organization-related tools.

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

Usage Guidelines4/5

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

The description gives a clear use case (hiring signal) and a prerequisite (get organization ID from get_apollo_organizations_enrich). It also provides an important caveat about interpreting missing postings. However, it does not explicitly name alternative tools or state when not to use this tool, so it stops just 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.

get_apollo_typed_custom_fieldsGet a List of All Custom FieldsA
Read-onlyIdempotent
Inspect

The custom fields defined in this workspace, as a typed_custom_fields array of id, name, system_name, type, modality, picklist_options and CRM mapping state. Takes no parameters. Call it before writing a custom field: the field key and, for picklists, the allowed values are workspace-specific, and a wrong value is rejected rather than coerced.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON 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 cover read-only, idempotent, non-destructive behavior, so the description is not required to restate those. It adds meaningful context by disclosing that the data is workspace-specific and that invalid values are rejected rather than coerced. No contradiction with annotations; the read-only claim aligns with the tool's role as a pre-write lookup.

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 every sentence earns its place: return shape, parameterlessness, and usage guidance. The most important information is front-loaded, and there is no filler or repetition of annotation details.

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

Completeness5/5

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

For a parameterless, read-only list tool, the description is complete: it names the returned data, explains workspace-specific variability, and tells the agent when to use it. The output schema and annotations cover return structure and safety semantics, so nothing needed for correct invocation 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?

There are zero parameters and the input schema is empty, so the description's explicit 'Takes no parameters' fully resolves any ambiguity. Per the baseline for zero-parameter tools, no further parameter explanation 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 clearly identifies what is returned: custom fields defined in this workspace, with the exact output shape (`typed_custom_fields` array of `id`, `name`, `system_name`, etc.). It also distinguishes this read operation from write operations by framing it as 'Call it before writing a custom field'. Even without naming a sibling, 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?

The description explicitly states when to use this tool: before writing a custom field, because field keys and picklist values are workspace-specific and invalid values are rejected rather than coerced. It does not name alternative tools or explicitly state when not to use it, 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.

get_detailsShow operation detailsA
Read-only
Inspect

Full contract of one or more operations: arguments_schema, response_schema, read_only, side_effects, availability, price, suggested_max_price_usd and known_pitfalls. Free — a quote authenticates like a call but stops before any spend.

price.model distinguishes the sources: quoted is what this account would be charged now, list is the published price, dynamic means the price varies with the request and only a quote states it, composed means the operation runs several upstream calls. suggested_max_price_usd is that estimate with headroom, in the shape use and batch_use take as max_price_usd.

ParametersJSON Schema
NameRequiredDescriptionDefault
argumentsNoThe arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them.
with_quoteNoWhether each operation is priced for this account before the answer. One round trip per operation; spends nothing.
operation_idNoOne operation_id from search
operation_idsNoUp to 20 operation_ids, for a batch

Output Schema

ParametersJSON 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=true and destructiveHint=false. The description adds meaningful context: it is free, stops before any spend, and explains how price.model varies (quoted, list, dynamic, composed). It also clarifies that suggested_max_price_usd has headroom. This goes beyond the annotation flags and gives the agent a clear model of what happens.

Agents need to know what a tool does to the world before 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 moderately long but well structured: it opens with the core purpose, then explains the price model in a dedicated paragraph. No redundancy or filler. It front-loads the most critical information (contract fields) and then gives necessary detail about price semantics. Slightly dense but not overly 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?

The tool has an output schema, so return values need no description. The description covers the key behavioral aspects (no spend, pricing models, max_price headroom) and clarifies edge cases like routes without a price. For a read-only informational tool, this is complete enough for an agent to use 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 description coverage is 100%, so parameters are already documented. The description adds some nuance, such as how arguments affect pricing and that required parameters may be needed before a price can be quoted. It also clarifies with_quote's purpose (one round trip, spends nothing). These are useful but not essential given the schema's completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 purpose: returning the full contract of one or more operations, including schemas, read_only, side_effects, price, and known_pitfalls. It clearly distinguishes this from executing operations (use, batch_use) and from discovery (search, list_categories). The verb 'get' and the noun 'details' align with the title, and the first sentence is 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?

The description implies the tool is used to assess an operation before spending (e.g., 'A quote authenticates like a call but stops before any spend'), and the schema says 'One operation_id from search', hinting at a flow. However, it never explicitly states when to choose this over siblings like use or search, nor does it give exclusions. The guidance is implied, not stated.

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

get_similarweb_ad_networksAd NetworksC
Read-onlyIdempotent
Inspect

Ad Networks. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly.
traffic_sourceNoTraffic-source filter.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

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

Annotations cover safety (readOnly, idempotent, non-destructive), but the description adds only a note about the response envelope (meta + data). It does not disclose pagination behavior, rate limits, or any operational constraints beyond what the schema already implies. Minimal added value over annotations.

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 extremely short, but this is under-specification rather than effective conciseness. It omits essential purpose and usage context. The response-format note is the only substantive content, but it does not earn its place given the critical missing information.

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

Completeness2/5

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

Despite having an output schema, the description fails to explain what 'Ad Networks' data represents, when to use the tool, or how it differs from similar tools. For a 10-parameter endpoint with many siblings, this is severely incomplete. The only useful hint is the response envelope, 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 100%, so all 10 parameters are fully documented in the schema. The description adds no parameter-specific meaning, but the baseline of 3 applies because the schema already handles the semantic load.

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

Purpose2/5

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

The description restates the title ('Ad Networks') without specifying the action (e.g., retrieve, list) or the resource context (domain ad networks). It gives no verb and no differentiation from sibling SimilarWeb tools, making it tautological rather than informative.

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

Usage Guidelines1/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. With over 40 SimilarWeb sibling tools, no selection criteria or exclusions are provided. The agent must infer usage purely from the name and schema.

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

get_similarweb_audience_interestAudience InterestC
Read-onlyIdempotent
Inspect

Audience Interest. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly.
traffic_sourceNoTraffic-source filter.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, so the bar is lower. The description adds the SimilarWeb v5 envelope shape (meta + data), which is useful context, but no other behavior or side-effect information is disclosed.

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 description is extremely short and the envelope sentence is terse and useful, but the opening phrase merely restates the title and does not earn its place.

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

Completeness2/5

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

Despite rich schema and annotations, the description omits the fundamental meaning of 'audience interest', what data will be returned conceptually, and why an agent would invoke this sibling over closely related SimilarWeb audience tools.

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

Parameters3/5

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

Parameter semantics are fully handled by the schema at 100% coverage, and the description adds nothing about parameters. This meets the baseline but contributes nothing beyond the schema.

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

Purpose2/5

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

The description is essentially a title repetition ('Audience Interest') plus a note on the response envelope. It names no verb or resource, and gives no basis for distinguishing it from sibling tools like get_similarweb_audience_overlap.

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 choose this tool over other SimilarWeb tools. The agent must infer intent purely from the tool name, with no exclusions or alternatives provided.

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

get_similarweb_audience_overlapAudience OverlapC
Read-onlyIdempotent
Inspect

Audience Overlap. Response follows the SimilarWeb v5 envelope (meta + data). Note: data may arrive grouped as an array of arrays; billing counts rows across all groups.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
domainsYesTwo to five target domains, comma-separated (e.g. cnn.com,bbc.com).
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
granularityNoTime granularity. Allowed: monthly. Default: monthly.monthly

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. On top of that, the description adds genuinely useful behavioral details: the response shape follows the SimilarWeb v5 envelope, data may be grouped as an array of arrays, and billing counts rows across groups. This goes beyond the annotations and helps agents interpret results correctly.

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 useful content is compact and front-loaded: the envelope format and the array-of-arrays caveat are stated in two sentences. However, the first sentence 'Audience Overlap.' is redundant with the tool title and does not earn its place. The structure is adequate but not tight.

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?

Although the schema and output schema are rich, the description still fails to explain what 'audience overlap' means semantically or when an agent should invoke this tool. It provides response-shape details but omits the core conceptual context needed to distinguish it from SimilarWeb siblings. The billing caveat is useful but not sufficient for completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter clearly, including domains, dates, country, and granularity. The description does not add any additional parameter-level meaning, but it does not need to because the schema carries the full burden. Baseline 3 is appropriate.

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

Purpose2/5

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

The description opens with 'Audience Overlap,' which simply repeats the title and does not state what the tool does. There is no verb or explicit resource explanation, so an agent gets no functional definition beyond the tool's name. The name hints at the metric, but the description itself is tautological.

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 call this tool versus the many sibling SimilarWeb tools. There are no exclusions, alternatives, or conditions. The surrounding metadata is rich, but the description provides no decision support for tool selection.

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

get_similarweb_deduplicated_audienceDeduplicated AudienceC
Read-onlyIdempotent
Inspect

Deduplicated Audience. Response follows the SimilarWeb v5 envelope (meta + data). Date constraint: the start_date-end_date span must cover between 1 and 120 monthly buckets.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain, e.g. example.com.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly. Default: monthly.monthly
main_domain_onlyNoRestrict to the main domain only (true/false). Default: True.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the response envelope format (meta + data) and the date span constraint, which are useful context beyond the annotations. However, it does not disclose anything about pagination, rate limits, or error behavior, but given the annotation coverage, a 3 is reasonable.

Agents need to know what a tool does to the world before 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 very short (two sentences) and front-loads the title, with the response envelope and date constraint following. It is efficient and not bloated, but it is under-specified. Conciseness alone is high, though it sacrifices completeness.

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

Completeness2/5

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

Given the tool has 7 parameters and many sibling SimilarWeb tools, the description is severely incomplete. It does not explain what 'deduplicated audience' means, what data it returns, or how it relates to other audience-related tools. While an output schema exists, the description fails to give an agent enough context to decide when to invoke this tool versus a 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 100% — every parameter has a description in the schema (e.g., domain, country, granularity, etc.). The description adds no parameter-specific meaning beyond what the schema already provides. Baseline 3 applies because the schema fully documents parameters.

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

Purpose2/5

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

The description is essentially the tool name itself: 'Deduplicated Audience' is a noun phrase that restates the title without a verb or specific resource. It does not state what the tool does (e.g., 'get deduplicated audience metrics for a domain') and does not differentiate it from sibling SimilarWeb tools like get_similarweb_audience_overlap or get_similarweb_traffic_engagement. The added notes about the response envelope and date constraint are peripheral, not the core purpose.

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 on when to use this tool versus the many similar SimilarWeb audience tools. The only usage-related information is a date constraint (span must be 1–120 monthly buckets), which is a validation rule rather than a decision guide. There are no exclusions or alternative tools mentioned.

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

get_similarweb_demographicsDemographicsD
Read-onlyIdempotent
Inspect

Demographics. Response follows the SimilarWeb v5 envelope (meta + data). Date constraint: start_date and end_date must fall in the SAME month (exactly one monthly bucket).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain, e.g. example.com.
formatNoResponse format. Allowed: json.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: total.
granularityYesTime granularity. Allowed: monthly.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior3/5

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

The description adds two behavioral details beyond the annotations: the response envelope ('meta + data') and the critical constraint that start_date and end_date must be in the same month. These are useful and non-obvious. However, it does not describe other behavior such as error conditions or rate limits. It does not contradict the readOnlyHint/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.

Conciseness2/5

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

The description is extremely short (two sentences) but the first sentence 'Demographics.' is useless filler that adds no information. The valuable date constraint is placed second, not front-loaded. It reads as under-specified rather than deliberately concise.

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

Completeness1/5

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

For a tool with 8 parameters, 4 required, and an output schema, the description fails to explain what the tool actually returns or when to use it. The core question—what demographic metrics are provided—is left unanswered. The two behavioral notes (envelope and date constraint) are helpful but far from sufficient for an agent to understand the tool's role among dozens of SimilarWeb siblings.

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

Parameters3/5

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

The input schema already provides descriptions for all 8 parameters (100% coverage), which sets a baseline of 3. The description adds the month-matching constraint that directly clarifies the date parameters. It does not elaborate on other parameters like main_domain_only or web_source, but the schema covers those adequately.

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

Purpose1/5

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

The description is merely the word 'Demographics.' with no verb, resource, or scope. It doesn't state what demographic data is returned (e.g., age, gender, income) or how it differs from the many similar SimilarWeb audience tools. It is nearly a tautology of 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 Guidelines1/5

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

No guidance is given on when to use this tool versus alternative tools like get_similarweb_audience_interest or get_similarweb_website_top_geographies. It does not mention prerequisites, typical scenarios, or exclusions.

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

get_similarweb_keyword_competitorsKeyword CompetitorsC
Read-onlyIdempotent
Inspect

Keyword Competitors. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoWeb source. This endpoint accepts desktop only (the gateway rejects mobile_web and total with 400).
granularityNoTime granularity. Allowed: monthly.
traffic_sourceNoTraffic-source filter.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds one useful behavioral detail: the response follows the SimilarWeb v5 envelope (meta + data). This is genuinely helpful context beyond the annotations, but nothing more is disclosed about pagination, error behavior, or data coverage limits. A 3 is appropriate given the moderate 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.

Conciseness2/5

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

The description is a single short sentence, which is efficient, but it is under-specification rather than helpful conciseness. It front-loads a label but provides almost no operational information. For a 10-parameter tool, the terseness leaves the agent with nearly nothing to act on.

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

Completeness2/5

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

Despite having an output schema and rich parameter descriptions, the tool is complex (10 parameters, 3 enums) and the description contributes almost nothing. An agent cannot tell what data this returns (beyond the generic envelope), what makes it distinct from sibling SimilarWeb and Semrush tools, or when it is the right choice. The description is inadequate for the complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The input schema already documents every parameter with descriptions (e.g., web_source noting the 400 rejection for mobile_web/total, limit being billed as 20 if exceeded). The description adds no parameter semantics beyond what the schema provides, which is acceptable given the high schema coverage.

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

Purpose2/5

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

The description is essentially a label ('Keyword Competitors') that restates the tool name without stating what the tool does with a verb and resource. It mentions the response envelope format, which is useful, but it does not explain what 'keyword competitors' means operationally nor how it differs from siblings like get_similarweb_organic_competitors or get_similarweb_similar_sites.

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 get_similarweb_keywords, get_semrush_organic_competitors, or get_similarweb_similar_sites. No context is given about the use case for keyword competitor data, and no exclusions or prerequisites are mentioned.

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

get_similarweb_keywordsWebsite KeywordsB
Read-onlyIdempotent
Inspect

Website Keywords. Response follows the SimilarWeb v5 envelope (meta + data). Date constraint: the start_date-end_date span must cover between 1 and 3 monthly buckets. Note: data may arrive grouped as an array of arrays; billing counts rows across all groups.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
formatNoResponse format. Allowed: json.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: total.
granularityYesTime granularity. Allowed: monthly.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior5/5

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

Annotations already declare the operation read-only and idempotent, and the description adds a surprising array-of-arrays response grouping, a 1–3 monthly-bucket date restriction, and a billing rule that counts rows across all groups. These are exactly the kind of non-obvious behaviors an agent needs before invoking.

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 two substantive sentences are dense and valuable, but the opening 'Website Keywords' is a tautological filler that occupies the front-loaded position. It should have been replaced with an actual action statement.

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 100% schema coverage, an output schema, and safety-focused annotations, the description covers the remaining non-obvious contract details: date-range span, response grouping, and billing. Nothing needed to call the tool correctly appears missing, though the absent purpose statement lowers the overall completeness.

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

Parameters4/5

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

With 100% schema description coverage, the baseline is met. The description goes beyond the schema by constraining the start_date/end_date span to 1–3 monthly buckets, which cannot be inferred from any individual parameter description.

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

Purpose2/5

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

The opening phrase 'Website Keywords' simply restates the title and implies an action only through the tool name. The rest of the description covers response shape and date constraints, not what the tool actually retrieves. It also does not differentiate it from the sibling get_similarweb_keyword_competitors.

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 get_similarweb_keyword_competitors or other SimilarWeb siblings. The date constraint is a precondition for a valid call, not a usage rule.

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

get_similarweb_landing_pagesLanding PagesD
Read-onlyIdempotent
Inspect

Landing Pages. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly.
traffic_sourceNoTraffic-source filter.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds one behavioral detail: the response follows the SimilarWeb v5 envelope (meta + data). This is useful context beyond the annotations, but it does not disclose rate limits, auth, or other operational traits. Given the strong annotation coverage, a 3 is appropriate.

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

Conciseness3/5

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

The description is very short (two sentences), so it is concise, but the first sentence 'Landing Pages' is redundant with the title and adds no value. The second sentence about the envelope is the only useful content. It is front-loaded but under-specified; it is not bloated, but it also doesn't earn all its space.

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

Completeness1/5

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

With 10 parameters, 3 enums, and a clear need to know what data is returned, the description is grossly incomplete. It fails to state the tool's purpose, which is fundamental. Even though an output schema exists, the agent cannot correctly select this tool because it doesn't know what it does. The description is inadequate for a tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter already has a description in the schema. The tool description adds no extra meaning about parameters – it doesn't mention any of them or clarify their semantics beyond what the schema provides. Baseline 3 is correct.

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

Purpose1/5

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

The description simply repeats the title 'Landing Pages' without stating the function. It does not specify that the tool returns landing page data for a domain, and the only additional detail is about the response envelope, which is about format, not purpose. This is a tautology that gives an agent no clue what the tool actually does.

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

Usage Guidelines1/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 like get_similarweb_popular_pages or other SimilarWeb endpoints. No context is given about use cases, prerequisites, or why an agent would choose this over siblings. The description provides zero directional help.

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

get_similarweb_marketing_channel_sources_legacyMarketing Channel SourcesB
Read-onlyIdempotent
Inspect

Marketing Channel Sources. Response follows the SimilarWeb v5 envelope (meta + data). Date constraint: the start_date-end_date span must cover between 1 and 120 monthly buckets.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain, e.g. example.com.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly. Default: monthly.monthly
main_domain_onlyNoRestrict to the main domain only (true/false). Default: True.

Output Schema

ParametersJSON 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 declare readOnlyHint, openWorldHint, idempotentHint, and non-destructiveness, so the bar for description-added context is lower. The description adds useful behavioral information beyond annotations: the SimilarWeb v5 envelope format and the 1–120 monthly-bucket date constraint. 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 description is brief and front-loaded: it gives the resource name, response envelope, and key date constraint in two short statements. The initial noun phrase duplicates the title, but the overall size is appropriate and there is 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?

Given the rich input schema, strong annotations, and presence of an output schema, the description covers the essential extra context: response envelope and date-window limitation. The 'legacy' suffix is not explained, and the tool's exact semantic output is left to inference, but an agent has enough to invoke 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?

The input schema already covers 100% of parameters with descriptions, defaults, and enums, so the baseline is 3. The description adds a cross-parameter constraint — start_date and end_date must span between 1 and 120 monthly buckets — which is not present in the schema and is directly relevant to invocation.

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 opening phrase 'Marketing Channel Sources' simply restates the tool title and lacks a verb such as 'retrieves' or 'returns.' The response-envelope and date-constraint notes imply this is a data-returning endpoint, so it is not a pure tautology, but the actual purpose and payload semantics remain vague.

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 sibling tools like get_similarweb_referrals, get_similarweb_ad_networks, or get_similarweb_traffic_engagement. The only operational note is a date-window validation rule, which is not a usage condition or alternative-selection criterion.

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

get_similarweb_ppc_spendPPC SpendC
Read-onlyIdempotent
Inspect

PPC Spend. Response follows the SimilarWeb v5 envelope (meta + data). Date constraint: the start_date-end_date span must cover between 1 and 120 monthly buckets.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain, e.g. example.com.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly. Default: monthly.monthly
main_domain_onlyNoRestrict to the main domain only (true/false). Default: True.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/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 two useful behavioral details: the response follows the SimilarWeb v5 envelope, and the requested date span is limited to 1–120 monthly buckets. It does not describe pagination, rate limits, or what happens on invalid spans, but it adds meaningful 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.

Conciseness3/5

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

The description is short and mostly to the point, with the substantive constraint front-loaded after the opening phrase. However, the initial sentence "PPC Spend." is redundant with both the tool name and title, wasting the first opportunity to say something informative. It is concise but not maximally 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?

The schema and output schema carry a lot of the burden, and the description adds the date constraint and response envelope. What is missing is a clear statement of what the returned PPC spend metrics represent and how this tool differs from the many other get_similarweb_* metrics. For an agent choosing among more than 30 SimilarWeb siblings, this is a meaningful 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 100%, so the baseline is 3 because the schema already documents every parameter. The description adds value beyond the schema by stating the allowable start_date–end_date span in monthly buckets, a constraint not present in any parameter description. This is a genuinely useful semantic addition for correctly constructing the request.

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

Purpose2/5

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

The description opens with "PPC Spend," which restates the tool title and does not use a verb to state what the tool does. The later envelope and date constraint mentions provide context, but they never clarify that this tool retrieves paid-search/PPC spending metrics for a domain. Purpose is therefore left to inference from 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?

No when-to-use or when-not-to-use guidance is provided, and no alternative tools are named despite many SimilarWeb sibling tools that could overlap (e.g., get_similarweb_ad_networks). The only guidance is a date-span constraint, which is parameter-level rather than selection guidance. An 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.

get_similarweb_rankingWebsite RankingC
Read-onlyIdempotent
Inspect

Website Ranking. Response follows the SimilarWeb v5 envelope (meta + data). Date constraint: the start_date-end_date span must cover between 1 and 120 monthly buckets.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain, e.g. example.com.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly. Default: monthly.monthly
main_domain_onlyNoRestrict to the main domain only (true/false). Default: True.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior4/5

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

Annotations already establish the operation as read-only, idempotent, and non-destructive, so the description's extra notes are valuable rather than redundant. It adds a concrete behavioral contract: the response follows the SimilarWeb v5 envelope (meta + data) and the date span must cover 1 to 120 monthly buckets.

Agents need to know what a tool does to the world before 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 very short and front-loads the key constraint after a terse title-like opening. The first phrase 'Website Ranking' is redundant with the title, but the remaining two sentences are packed and free of filler.

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?

Although the schema, annotations, and output schema are rich, the description itself fails to establish what the tool actually returns or when to prefer it over closely related SimilarWeb ranking tools. An agent gets the constraint details but not enough context to confidently select this tool among many similar siblings.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds a useful constraint not present in the schema: start_date and end_date must span between 1 and 120 monthly buckets. This gives the agent actionable validation semantics beyond the individual field descriptions.

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

Purpose2/5

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

The description opens with 'Website Ranking,' which merely restates the tool title and name without a verb or a specific resource. It never states what the returned ranking means or what domain-related data is fetched, so an agent must infer the purpose from the name and schema.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus the many SimilarWeb siblings such as get_similarweb_website_traffic_trend or get_similarweb_traffic_engagement. The only stated constraints are the response envelope and a date-range rule, neither of which helps an agent decide between alternatives.

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

get_similarweb_referralsReferralsC
Read-onlyIdempotent
Inspect

Referrals. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly.
traffic_sourceNoTraffic-source filter.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds a note about the SimilarWeb v5 envelope (meta + data), which is useful for interpreting responses, but it does not disclose any other behavioral aspects like rate limits or authentication needs. The bar is lowered by annotations, so this 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.

Conciseness2/5

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

The description is extremely brief, but the first sentence is a redundant tautology ('Referrals.') that adds no value. The second sentence about the envelope is useful but does not compensate for the missing purpose. It is not front-loaded with actionable information and feels under-specified rather than 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 tool with 10 parameters and an output schema, the description is inadequate. It does not explain what referrals are, how the data can be used, or any specifics about pagination (though offset exists in the schema). The output schema covers return values, but the tool's purpose and typical use cases remain unclear.

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

Parameters3/5

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

Schema description coverage is 100%, so all 10 parameters are individually documented. The description adds no additional parameter details, but the schema carries the burden effectively. Baseline of 3 is appropriate given high coverage.

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

Purpose2/5

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

The description 'Referrals' simply restates the tool name and title without specifying what the tool retrieves or how it differs from the many other get_similarweb_* tools. The only substantive statement, about the response envelope, concerns format rather than purpose, leaving the agent to infer the tool's function.

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

Usage Guidelines1/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 any of the sibling SimilarWeb tools, no context about referral traffic, and no mention of limitations or prerequisites. The agent must guess which tool is appropriate for a given task.

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

get_similarweb_serp_players_aggregatedSERP Players - AggregatedC
Read-onlyIdempotent
Inspect

SERP Players - Aggregated. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
keywordYesTarget keyword.
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
granularityNoTime granularity. Allowed: monthly.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already cover the safety profile with readOnlyHint, idempotentHint, openWorldHint, and destructiveHint. The description adds one useful behavioral detail: the response follows the SimilarWeb v5 envelope (meta + data). However, it does not disclose other behavioral traits like pagination behavior, rate limits, or what 'aggregated' means relative to the timeseries sibling.

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 description is very short, which is good, but the first sentence merely repeats the title and earns no place. The second sentence about the response envelope is useful and front-loaded, but overall the structure wastes the opening on a tautology.

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

Completeness2/5

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

Despite the rich schema and annotations, the description does not state the core purpose of the tool, how it relates to get_similarweb_serp_players_timeseries, or what 'aggregated' means operationally. The output schema exists and reduces the need to explain return values, but the missing purpose and usage context leave the description incomplete for selection and invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so all seven parameters are already documented in the input schema. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies. It does not clarify the format or semantics of keyword, dates, or limit beyond what the schema already provides.

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

Purpose2/5

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

The description is essentially a restatement of the tool's title: 'SERP Players - Aggregated.' It contains no verb and does not explicitly state that the tool retrieves aggregated SERP players for a keyword and date range. It also does not differentiate this tool from its sibling get_similarweb_serp_players_timeseries, relying entirely on 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?

The description provides no guidance on when to use this tool or when to prefer an alternative such as get_similarweb_serp_players_timeseries. There is no mention of use cases, exclusions, or trade-offs, so an agent must infer appropriate usage from the name and schema.

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

get_similarweb_serp_players_timeseriesSERP Players - Clicks over timeB
Read-onlyIdempotent
Inspect

SERP Players - Clicks over time. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
keywordYesTarget keyword.
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
granularityNoTime granularity. Allowed: monthly.

Output Schema

ParametersJSON 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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the envelope format ('SimilarWeb v5 envelope (meta + data)'), which is useful behavioral context beyond the annotations. However, it doesn't disclose pagination behavior, rate limits, or billing implications (though the limit parameter description covers billing). The description adds some value but not rich 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?

Two sentences with no waste. The core resource and metric are front-loaded, and the envelope note is a useful addition. It could arguably include a hint about the time-series nature, but the title already covers that. Efficient and appropriately sized.

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 are covered. The annotations cover safety. The description covers the envelope format. However, for a time-series tool with 7 parameters, an agent might benefit from knowing how the data is shaped (e.g., one row per month per player) or how it differs from the aggregated sibling. The description is adequate but not complete for distinguishing from get_similarweb_serp_players_aggregated.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 7 parameters. The description adds no parameter-specific meaning beyond what the schema provides. The 'Clicks over time' phrasing implies the time-series nature of the data, which relates to start_date/end_date/granularity, but doesn't add syntax or format details. Baseline 3 is appropriate when schema does the heavy lifting.

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 ('SERP Players') and metric ('Clicks over time'), which clearly distinguishes it from sibling tools like get_similarweb_serp_players_aggregated. However, it doesn't explicitly mention that this is a time-series variant, though the name and title convey that. The verb is implied ('get') rather than stated, but the resource and metric are 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 description provides no explicit when-to-use guidance or alternatives. The sibling list includes get_similarweb_serp_players_aggregated, which is the likely alternative, but the description doesn't mention it. The context of 'Clicks over time' implies a time-series use case, but an agent would have to infer when to choose this over the aggregated variant.

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

get_similarweb_similar_sitesSimilarSitesA
Read-onlyIdempotent
Inspect

SimilarSites. Response follows the SimilarWeb v5 envelope (meta + data). Date window (upstream SimilarWeb constraint): start_date and end_date must span EXACTLY 3 consecutive months — a 1- or 2-month span is rejected with upstream error 120 ('must span exactly 3 month(s)'). That span must also be SimilarWeb's most recent supported window, which advances forward each month; an older or out-of-range span is rejected with error 101 ('Dates not in range'). In practice, request the three most recent completed months (e.g. if the latest published month is 2026-07, use start_date=2026-05 and end_date=2026-07). To read the exact currently-supported range, call SimilarWeb's /describe endpoint for this API.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM. Together with start_date must span exactly 3 consecutive months, and must be the most recent supported month (the window rolls forward monthly; see the endpoint description).
start_dateYesStart month, format YYYY-MM. Must be exactly 2 months before end_date: the window has to span exactly 3 consecutive months within SimilarWeb's latest supported range (see the endpoint description).
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly.
traffic_sourceNoTraffic-source filter.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON 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?

It discloses the SimilarWeb v5 response envelope, the exact-3-month upstream constraint, the specific upstream errors (120 and 101), the rolling monthly window, and a practical example. This goes well beyond the readOnly/idempotent annotations and clarifies the main non-obvious behavior of the 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?

The description is dense and focused; the date-window guidance, error codes, and /describe pointer all earn their place. The opening one-word fragment 'SimilarSites.' is somewhat redundant with the title, but overall the section is tight and information-rich.

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 a strict rolling date constraint and an output schema, the description thoroughly covers the one truly non-obvious behavior, gives an actionable example, and points to /describe for state that changes monthly. The schema covers parameter defaults/enums and the output schema covers return values, 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 100%, so the baseline is 3. The description adds real value for the date parameters—concrete example, exact error codes, and rolling-window semantics—rather than repeating schema text. Other parameters are left to the schema, which is complete.

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 name and title ('get_similarweb_similar_sites' / 'SimilarSites') make the resource clear and distinguish it from sibling SimilarWeb tools. However, the description itself never explicitly states a verb+resource action like 'returns a list of similar sites for a domain'; it opens with the one-word title and moves straight to response envelope and date constraints.

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 concrete date-usage guidance: request the three most recent completed months, and call the /describe endpoint to discover the exact currently-supported range. It does not discuss when to prefer this tool over sibling SimilarWeb tools, but the context is clear enough to prevent obvious misuse.

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

get_similarweb_subdomainsWebsite SubdomainsC
Read-onlyIdempotent
Inspect

Website Subdomains. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly.
traffic_sourceNoTraffic-source filter.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile and data volatility. The description adds the note that the response follows the SimilarWeb v5 envelope (meta + data), which is a useful behavioral detail about the response structure but not about side effects or call behavior. It does not mention pagination, rate limits, or any other operational aspects, but annotations carry the main burden. This is a minimal but acceptable contribution.

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 description is extremely short, but it is not well-structured. The first sentence 'Website Subdomains' is redundant with the tool name and title, wasting a sentence. The second sentence about the response envelope is useful but minimal. Overall it is concise in length but not optimally front-loaded; the redundant phrase dilutes the value. A tighter description would start with the envelope note and perhaps add a verb phrase. Score 3 reflects acceptable conciseness with a redundant element.

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 10 parameters, 4 required, and a complex domain like SimilarWeb, the description is severely lacking. It provides almost no context beyond the schema: no mention of date format requirements (though schema has it), no explanation of the limit billing behavior, no coverage limitations (though schema mentions country coverage), and no typical use scenarios. The output schema exists, so return values are covered, but the description fails to help an agent understand when and how to use this tool effectively. It is not complete for a tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (limit, domain, offset, country, end_date, start_date, web_source, granularity, traffic_source, main_domain_only) already has a description in the schema. The tool description adds nothing about parameters beyond the schema. The baseline is 3 because the schema does the heavy lifting, and the description does not compensate for any missing nuance.

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

Purpose2/5

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

The description 'Website Subdomains' is a noun phrase that merely echoes the tool name and title. It does not state a specific verb or resource, and it does not differentiate this tool from the many similar get_similarweb_* siblings. The only additional detail is about the response envelope, which is about output format, not the core purpose. An agent would have to infer from the name alone that this retrieves subdomains for a domain.

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

Usage Guidelines1/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 like get_similarweb_similar_sites, get_similarweb_website_traffic_snapshot, or other SimilarWeb endpoints. No context is given about typical use cases, prerequisites (e.g., domain must exist in SimilarWeb), or conditions that would select this tool over siblings. The agent receives no help in choosing among the many get_similarweb_* tools.

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

get_similarweb_technologiesWebsite TechnologiesB
Read-onlyIdempotent
Inspect

Website Technologies. Response follows the SimilarWeb v5 envelope (meta + data). Date constraint: start_date and end_date must be the SAME month, and that month must be the latest available data month — a single monthly bucket that advances as SimilarWeb refreshes its data, and which may differ by country. Supplying any other month returns SimilarWeb error_code 101 ("Dates not in range"); the error message states the currently-allowed range.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
domainYesTarget domain, e.g. example.com.
formatNoResponse format. Allowed: json.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: total.
granularityYesTime granularity. Allowed: monthly.
main_domain_onlyNoRestrict to the main domain only (true/false).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, openWorld, idempotent, and non-destructive, and the description adds meaningful behavioral detail beyond them: the single-month date bucket, the latest-available-month requirement, country-dependent availability, and the specific error_code 101. This materially helps an agent anticipate failure and avoid invalid calls.

Agents need to know what a tool does to the world before 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 mostly dense with the critical date constraint explained efficiently. The opening phrase 'Website Technologies.' is redundant filler, but the remaining sentences earn their place by explaining the envelope and the non-obvious date behavior without unnecessary detail.

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 and annotations carry much of the burden, and the description covers the main hidden trap (date range). However, it never explicitly states what the returned technologies data actually represents, and it leaves tool-selection context entirely absent for an agent choosing among other SimilarWeb 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 100%, which provides a baseline of 3. The description goes beyond the schema by clarifying the relationship between start_date and end_date: they must be the same month, must be the latest available month, may differ by country, and invalid combinations return error_code 101. This is important semantic content the schema does not express.

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

Purpose2/5

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

The description opens by repeating the title 'Website Technologies' but never states an action such as retrieves, lists, or returns the technologies used by a domain. It focuses almost entirely on the response envelope and date constraints, so an agent must infer the tool's purpose from its name rather than from the description.

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

Usage Guidelines2/5

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

The description gives no guidance on when to choose this tool over the many similar get_similarweb_* siblings, nor does it name an alternative. The date constraint is invocation-level guidance, not tool-selection guidance, so an agent deciding between this and similar tools gets no help.

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

get_similarweb_top_sites_rankingTop Sites RankingC
Read-onlyIdempotent
Inspect

Top Sites Ranking. Response follows the SimilarWeb v5 envelope (meta + data).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesNumber of rows to return; max 20, billed as 20 if exceeded.
offsetNoRow offset for pagination.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
categoryYesIndustry category, e.g. Finance.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/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, covering the safety profile. The description adds a small behavioral detail beyond annotations: 'Response follows the SimilarWeb v5 envelope (meta + data)'. This is useful but minimal, and does not address pagination, rate limits, or other behavioral traits.

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 extremely short, but 'Top Sites Ranking' is redundant with the title and earns no place. The envelope sentence is a useful detail but the overall structure wastes its limited space on repetition rather than conveying core purpose.

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

Completeness2/5

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

Despite strong annotations and a complete schema, the description leaves the tool's core purpose ambiguous and fails to differentiate it from similarly named siblings. An agent could not confidently decide when to call this tool over get_similarweb_ranking or similar tools. The output schema exists, but that does not compensate for missing operational context.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents all four parameters, including defaults and allowed values. The description adds no parameter-specific meaning, which matches the baseline of 3 when the schema carries the weight.

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

Purpose2/5

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

The description is essentially a restatement of the title: 'Top Sites Ranking' repeats the tool's name and title without an active verb or explicit resource. The only additional content is about the response envelope, which does not clarify what the tool does or how it differs from similar siblings like get_similarweb_ranking.

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 the many similarweb siblings, such as get_similarweb_ranking or get_similarweb_traffic_engagement. No context, exclusions, or alternative conditions are provided, leaving the agent to infer its place among the tools.

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

get_similarweb_traffic_engagementTraffic & EngagementC
Read-onlyIdempotent
Inspect

Traffic & Engagement. Response follows the SimilarWeb v5 envelope (meta + data). Date constraint: the start_date-end_date span must cover between 1 and 120 monthly buckets.

ParametersJSON Schema
NameRequiredDescriptionDefault
mtdNoMonth-to-date flag (true/false).
domainYesTarget domain, e.g. example.com.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww
metricsYesComma-separated metrics, e.g. visits,pages_per_visit.
end_dateYesEnd month, format YYYY-MM.
start_dateYesStart month, format YYYY-MM.
web_sourceNoTraffic source device split. Allowed: desktop, mobile_web, total.
granularityNoTime granularity. Allowed: monthly. Default: monthly.monthly
main_domain_onlyNoRestrict to the main domain only (true/false). Default: True.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior4/5

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

The annotations already establish read-only, idempotent, non-destructive behavior, and the description adds useful behavioral context beyond that: the response follows the SimilarWeb v5 envelope and the date span must cover between 1 and 120 monthly buckets. These are concrete operational constraints an agent would need. It does not go into pagination or rate limits, but the output schema reduces the burden.

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 description is short and front-loaded and avoids unnecessary prose, but the first sentence 'Traffic & Engagement.' adds no value because it just repeats the title. The envelope and date-constraint sentences are useful, so overall it is efficient but not 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?

For a 9-parameter tool, the description provides one key operational constraint and the response envelope, and the input/output schemas cover parameter details and return structure. However, it does not differentiate this tool from closely related SimilarWeb siblings, leaving an agent to infer when this specific 'traffic & engagement' call is appropriate. It is minimally adequate but with clear contextual gaps.

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

Parameters4/5

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

Schema documentation covers 100% of parameters, so the baseline is 3, and the description adds meaningful semantic value to start_date and end_date by specifying the allowed 1–120 monthly-bucket span. This is beyond the schema's basic YYYY-MM format info, though no other parameters receive additional description-level clarification.

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

Purpose2/5

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

The description begins with 'Traffic & Engagement.', which simply restates the title and does not use a verb to state what the tool does. The envelope and date constraint sentences add operational detail, but the core purpose—'retrieves traffic and engagement metrics for a domain'—is only implied by 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?

The description gives no guidance on when to use this tool versus sibling tools such as get_similarweb_website_traffic_snapshot or get_similarweb_website_traffic_trend. The date-range constraint is a validity condition, not a usage guideline, and there are no stated exclusions, prerequisites, or alternatives.

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

get_similarweb_website_top_geographiesWebsite Top GeographiesA
Read-onlyIdempotent
Inspect

Top countries by share of a domain's traffic for the latest available month (data.countries, up to 10 rows with country_code, country_name, share and visits). Geography coverage is worldwide (ww) and fixed: a country parameter is not accepted for this endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain, e.g. example.com.

Output Schema

ParametersJSON 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 annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds valuable behavioral context beyond the annotations: latest available month, maximum 10 rows, field names, and fixed worldwide scope. No contradiction with annotations 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 two concise sentences with no filler. The core output and constraints are front-loaded, and every clause adds information: time period, row cap, fields, coverage, and parameter restriction.

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 single-parameter tool with a rich output schema and strong annotations, the description is fully sufficient. It covers the relevant behavioral constraints and return-shape details without requiring an agent to open the schema or infer hidden limitations.

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

Parameters4/5

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

Schema coverage is 100% for the single required `domain` parameter, so the baseline is already covered. The description adds extra semantic value by clarifying that a country parameter is not accepted and that the fixed worldwide scope is part of the endpoint's behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 identifies the resource (a domain's traffic) and the specific metric (top countries by share for the latest available month), and specifies the returned fields and row limit. It also distinguishes this endpoint from alternatives by stating that geography coverage is worldwide and fixed, with no country parameter accepted.

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 invocation: it returns country-level traffic share for the latest month and explicitly tells agents that a country parameter is not accepted, implying this tool is for worldwide breakdowns rather than country-filtered reports. It does not name a specific alternative tool, but the exclusion is clear enough.

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

get_similarweb_website_traffic_snapshotWebsite Traffic SnapshotA
Read-onlyIdempotent
Inspect

Latest-month traffic snapshot for a domain: visits plus core engagement metrics (average visit duration, bounce rate, pages per visit) in a single object. The most recent available month is selected automatically and echoed in meta.start_date / meta.end_date.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain, e.g. example.com.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww

Output Schema

ParametersJSON 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, idempotentHint, and destructiveHint, so the description does not need to repeat safety. It adds useful behavioral context: the tool automatically selects the most recent available month and echoes the date range in meta.start_date/meta.end_date, which helps the agent interpret results. No contradiction with annotations.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence front-loads the core purpose and metrics; the second explains the automatic month selection and meta fields. Every phrase 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?

With an output schema present, the description need not detail return fields. It covers the essential behavioral nuance (auto-selected month, meta echoing) and scope (domain + country). No missing information that an agent needs to call 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 coverage is 100%: both domain and country have descriptions, including the enum and default for country. The description adds no parameter-specific detail beyond what the schema already provides (e.g., it doesn't explain domain format or country restrictions beyond the schema). Baseline 3 applies because the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb ('get') and resource ('website traffic snapshot') and enumerates the exact metrics returned: visits, average visit duration, bounce rate, pages per visit. It is clearly distinguishable from sibling tools like get_similarweb_website_traffic_trend (trend) or get_similarweb_traffic_engagement (broader engagement) by the 'latest-month' qualifier and the single-object format.

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

Usage Guidelines3/5

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

The description implies usage for retrieving the most recent month's snapshot ('latest-month traffic snapshot') and notes that the month is auto-selected, but it does not explicitly contrast with alternatives or state when not to use it. The guidance is implicit rather than explicit, so a 3 is appropriate.

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

get_similarweb_website_traffic_trendWebsite Traffic TrendA
Read-onlyIdempotent
Inspect

Monthly traffic time series for a domain over the recent available window (data.points, one entry per month). The window is selected automatically and echoed in meta.start_date / meta.end_date.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain, e.g. example.com.
countryNoTwo-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan.ww

Output Schema

ParametersJSON 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 cover the safety profile (readOnly, idempotent, non-destructive). The description adds valuable context that the time window is selected automatically and echoed in meta.start_date/meta.end_date, which is beyond what annotations provide. It does not contradict any 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, focused sentence that front-loads the core purpose (monthly traffic time series) and includes the key behavioral detail about the window. No wasted words or redundancy.

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

Completeness4/5

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

With an output schema present and annotations covering safety, the description sufficiently explains the response structure and automatic window behavior. It could be more complete by noting when to prefer this tool over related Similarweb tools, but given the schema and annotations, it's adequate for invocation.

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

Parameters3/5

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

Both parameters (domain and country) have full descriptions in the schema, covering their meaning and allowed values. The description text adds no additional semantic value beyond the schema, so the baseline of 3 for 100% schema coverage is appropriate.

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

Purpose4/5

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

The description clearly states the tool returns a monthly traffic time series for a domain, which is specific and unambiguous. It differentiates from snapshot-style tools by emphasizing the time-series nature, though it doesn't explicitly name sibling alternatives like get_similarweb_website_traffic_snapshot.

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 on when to use this tool versus the many similar Similarweb tools in the sibling list. There are no prerequisites, exclusions, or comparative use cases mentioned, leaving the agent to infer usage 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.

list_categoriesBrowse the AIsa catalogueA
Read-only
Inspect

The AIsa catalogue at a glance: categories, the servers in each, tool counts, and the dedicated endpoint to connect if you only need one category. Free; no key needed. (AIsa-only: tool-router has no equivalent.)

Use mcp.aisa.one/mcp?modules=<category> (or mcp.aisa.one/<category>/mcp) to have that category's tools listed directly instead of via search.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON 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 destructiveHint=false. The description adds meaningful behavioral context beyond annotations: the tool is free, requires no key, and can direct users to a category-specific endpoint that lists tools directly rather than through search.

Agents need to know what a tool does to the world before 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 moderately detailed but every sentence adds useful information: output scope, cost/auth, sibling differentiation, and endpoint usage. It is slightly longer than strictly necessary but remains well-structured and front-loaded with the core purpose.

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 with an output schema and safety annotations, the description is complete. It covers what the tool returns, the free/no-key access model, and provides the category endpoint for specialized use, leaving no essential gap for an agent 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?

The tool has zero parameters, so the baseline is 4. The description includes a <category> placeholder only in the endpoint examples, not as a tool parameter, which is appropriate supplementary guidance rather than a parameter-semantics 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 clearly states what the tool does: it presents the AIsa catalogue at a glance, including categories, servers, tool counts, and a dedicated category endpoint. It also distinguishes itself from search by explaining that the endpoint lists tools directly instead of via search.

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

Usage Guidelines4/5

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

The description provides clear usage context: use list_categories for a catalogue overview, and use the provided endpoint when you only need one category. It explicitly contrasts with search ('instead of via search') and notes tool-router has no equivalent, although it does not exhaustively cover all sibling alternatives.

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

patch_apollo_accounts_account_idUpdate an AccountA
Destructive
Inspect

Update one account by its Apollo id. Send only the fields you intend to change; anything you omit keeps its current value. Stage fields expect an id from get_apollo_account_stages. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoAccount name
phoneNoPhone number
domainNoAccount domain
owner_idNoOwner ID
account_idYesAccount ID
raw_addressNoRaw address
account_stage_idNoAccount stage ID
typed_custom_fieldsNoTyped custom fields object

Output Schema

ParametersJSON 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?

The description adds critical behavioral context beyond the annotations: the shared AIsa workspace with no per-caller isolation, and the fact that omitted fields retain their current values. It also reinforces the destructive/mutating nature implied by the annotations. This is valuable, non-obvious context that an agent needs to anticipate side effects.

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

Conciseness5/5

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

Three concise sentences, front-loaded with the purpose and scope. Every sentence contributes: purpose, partial-update semantics, stage field reference, and shared-workspace warning. No filler or redundancy.

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

Completeness5/5

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

Given the output schema and annotations, the description covers all essential aspects: what it does, how to use it (partial update), a key parameter dependency, and a side-effect warning about shared workspace. It is complete for an agent to invoke it correctly without additional 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?

Even though schema coverage is 100%, the description adds essential usage semantics: the partial-update behavior (omit fields to keep current value) directly informs which parameters to include. It also clarifies that the account_stage_id must be a valid id from get_apollo_account_stages, which is not in the schema. This goes beyond the bare field descriptions.

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

Purpose5/5

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

The description clearly states the action ('Update one account by its Apollo id') and distinguishes it from batch operations (post_apollo_accounts_bulk_update) and create (post_apollo_accounts). It is specific about the resource and the granularity (one account), leaving no ambiguity.

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

Usage Guidelines4/5

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

The description explains the partial-update usage (send only fields to change) and explicitly links the account_stage_id parameter to get_apollo_account_stages. It does not explicitly name alternative tools for multi-account updates or exclusions, but the single-account scope is clear. The guidance is adequate but could be more explicit about when to use bulk vs single.

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

patch_apollo_contacts_contact_idUpdate a ContactA
Destructive
Inspect

Update one contact by its Apollo id. Send only the fields you intend to change. Stage fields expect an id from get_apollo_contact_stages. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail
titleNoTitle
last_nameNoLast name
account_idNoAccount ID
contact_idYesContact ID
first_nameNoFirst name
home_phoneNoHome phone
label_namesNoLabels to set on the contact
other_phoneNoOther phone
website_urlNoWebsite URL
direct_phoneNoDirect phone
mobile_phoneNoMobile phone
corporate_phoneNoCorporate phone
contact_stage_idNoContact stage ID
organization_nameNoOrganization name
present_raw_addressNoRaw address
typed_custom_fieldsNoTyped custom fields object

Output Schema

ParametersJSON 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?

The description warns that writes affect all callers in the shared 'AIsa workspace' and lack per-caller isolation, which is critical for a destructive write operation. Annotations already indicate destructiveHint=true, but the description adds specifics about visibility and sharing, going 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 three sentences, each adding critical value: the operation scope, the partial-update guidance, and the shared-workspace warning. No filler, and the safety warning is front-loaded after the core purpose.

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-record update tool with many optional fields, the description covers the essential usage rules (partial update, stage id source, shared workspace) and output schema exists. The warnings about shared state are crucial and complete. 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?

With 100% schema coverageaint but all parameters are simple strings; the description adds meaningful guidance especially for contact_stage_id, noting it expects an id from get_apollo_contact_stages. This clarifies the parameter's expected source, which the schema does not. Given high coverage, the baseline is 3, but the added stage-id guidance justifies 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?

The title 'Update a Contact' and description 'Update one contact by its Apollo id' clearly state the specific verb (update), resource (contact), and target identifier (Apollo id). It distinguishes from siblings like post_apollo_contacts (create) and post_apollo_contacts_bulk_update (bulk).

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 instructs to 'Send only the fields you intend to change' and notes the shared workspace side-effect, which clarifies when to use it. It doesn't explicitly mention alternatives for bulk updates or creation, but the sibling names (post_apollo_contacts, post_apollo_contacts_bulk_update) imply such options.

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

patch_apollo_opportunities_opportunity_idUpdate DealA
Destructive
Inspect

Update one deal by its Apollo id — amount, close date, stage or owner. Send only what changes. Moving a deal to a closed stage is what marks it won or lost, since is_won and is_closed come from the stage rather than being set directly. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOpportunity name
amountNoAmount
owner_idNoOwner ID
closed_dateNoClosed date (date string)
opportunity_idYesOpportunity ID
typed_custom_fieldsNoTyped custom fields object
opportunity_stage_idNoStage ID

Output Schema

ParametersJSON 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 destructiveHint=true and readOnlyHint=false. The description adds critical context: that won/lost status is derived from the stage, not set directly, and that writes are shared across all callers in the AIsa workspace with no isolation. This goes beyond the schema and 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, no fluff. Front-loaded with the main action and fields, then adds critical behavioral notes. Each 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?

Covers main purpose, partial update semantics, stage-derived won/lost logic, and the shared-workspace side effect. Output schema exists, so return values need not be described. Adequate for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The description reinforces which fields are typically updated (amount, close date, stage, owner) and notes 'send only what changes,' but does not provide additional meaning beyond the schema. The behavior around stage is mentioned, but the specific parameter `opportunity_stage_id` is already described as 'Stage 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?

Clearly states 'Update one deal by its Apollo id' with a specific resource and identifier. Lists the updatable fields (amount, close date, stage, owner) and notes partial updates. Distinguishes from sibling patch tools by targeting opportunities specifically.

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

Usage Guidelines4/5

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

The description implies usage for updating existing opportunities and emphasizes sending only changed fields. It does not explicitly name alternatives but the context is clear. It also explains when stage changes are meaningful (closed stages) and warns about shared workspace, which helps decide when to use.

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

post_apollo_accountsCreate an AccountA
Destructive
Inspect

Create an account — a company saved into this workspace. Duplicate domains are rejected, so search with post_apollo_accounts_search before creating. Requires a master API key. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation. To enrich a company without saving it, use get_apollo_organizations_enrich.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAccount name
domainYesAccount domain
owner_idNoOwner ID
account_stage_idNoAccount stage ID

Output Schema

ParametersJSON 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 meaningful context beyond annotations: requires a master API key, writes to shared AIsa workspace with no per-caller isolation, making records visible and editable by others. No contradiction with annotations; adds shared-state and 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.

Conciseness5/5

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

Three sentences with no redundancy; purpose is front-loaded, duplicate warning and alternatives are clear, and the structure is efficient.

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 key operational details: purpose, duplicate handling, auth requirement, shared workspace implications, and the non-saving enrichment alternative. With an output schema present, return-value explanation is unnecessary; the description is complete for an agent to call 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 covers all parameters with descriptions (100% coverage). The description adds the unique-domain constraint, which enriches the 'domain' parameter semantics, but does not elaborate on other parameters beyond schema.

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

Purpose5/5

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

The description clearly states 'Create an account — a company saved into this workspace' with a specific verb and resource, and explicitly contrasts with get_apollo_organizations_enrich, distinguishing it from the enrichment 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?

Provides explicit guidance: search with post_apollo_accounts_search before creating to avoid duplicate domains, and use get_apollo_organizations_enrich to enrich without saving. Clearly states when not to use and the alternative.

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

post_apollo_accounts_bulk_createBulk Create AccountsA
Destructive
Inspect

Create several accounts in one call. Same duplicate-domain rule as post_apollo_accounts, applied per record, so a partial success is normal — read the response rather than assuming every row was created. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountsYesArray of accounts to create
run_dedupeNoEnable deduplication. Default false.
append_label_namesNoLabel names to append to each created account

Output Schema

ParametersJSON 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?

Beyond the annotations (readOnlyHint false, destructiveHint true, idempotentHint false), the description adds critical behavioral detail: partial success is normal, the response must be inspected rather than assuming all rows succeeded, and writes land in a shared AIsa workspace with no per-caller isolation. This explains the practical consequences of the destructive and non-idempotent flags, making it highly transparent.

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

Conciseness5/5

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

Two sentences, each earning its place. The first states purpose and ties to the sibling; the second delivers essential behavioral caveats. No redundant phrasing, and the most critical information (purpose) is front-loaded.

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

Completeness4/5

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

The description covers the core behaviors needed to call correctly: partial success, shared workspace, and the reference to the duplicate-domain rule. An output schema exists, so return value details are covered. It could mention the exact format of the `accounts` parameter, but the schema handles that. The only minor gap is not spelling out when to choose this over the bulk update tool, but given the sibling list and the clear 'create' verb, it's sufficient.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters (accounts, run_dedupe, append_label_names). The description does not add parameter-level details beyond mentioning 'several accounts' and 'per record,' which aligns with the accounts parameter. Baseline 3 is appropriate since the schema carries the semantic load.

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

Purpose5/5

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

The description opens with a clear verb-object statement — 'Create several accounts in one call' — and immediately distinguishes it from the singular `post_apollo_accounts` by referencing the same rule but for bulk. It unambiguously identifies the resource and 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 explicitly frames the tool as the bulk counterpart of `post_apollo_accounts` and warns about partial success, which informs when to use it (multiple records) and what to expect. It doesn't explicitly say 'use this instead of the singular version when you have many accounts,' but the context strongly implies it. No alternative tools are named beyond the singular one, which is sufficient given the sibling list.

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

post_apollo_accounts_bulk_updateBulk Update AccountsA
Destructive
Inspect

Update several accounts in one call, each identified by its Apollo id. Partial success is normal; check the response per record. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoRun asynchronously. Default false.
account_idsYesIDs of accounts to update
account_attributesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already mark this as destructive and not read-only. The description adds critical behavioral context: partial success is normal and the response must be checked per record. It also discloses the shared workspace with no per-caller isolation, which is beyond what annotations convey. 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 core purpose, followed by two concise behavioral notes. 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?

Given the output schema exists, return values are covered. The description covers the key operational caveats: partial success and shared workspace. It does not discuss error handling or idempotency, but idempotency is already declared in annotations as false, so that is covered. The description is adequate for an agent to call it correctly.

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 coverage is 67%, meaning account_attributes lacks a top-level description. The description only clarifies that accounts are identified by Apollo id, which relates to account_ids, but does not explain the structure of account_attributes or the async parameter. It does not compensate 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?

The description clearly states the verb (update), the resource (several accounts), and the identifier (Apollo id). It distinguishes from single-account update and bulk create tools by emphasizing 'several accounts' and 'in one call'. It is specific and unambiguous.

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

Usage Guidelines3/5

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

The description implies bulk usage by saying 'several accounts in one call', but it does not explicitly contrast with patch_apollo_accounts_account_id for single updates or state conditions for when to prefer this tool. The context of shared workspace is given, but no exclusions or alternatives are named.

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

post_apollo_accounts_searchSearch for AccountsA
Read-onlyIdempotent
Inspect

Search accounts — the companies saved in this Apollo workspace, as opposed to Apollo's global database. Filter by name, owner, stage and custom fields; page with page and per_page. Returns accounts and pagination, plus breadcrumbs echoing the filters applied. ⚠️ This workspace is shared by every AIsa caller, so results include records other callers created. To search Apollo's global company database instead, use post_apollo_mixed_companies_search.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
per_pageNoItems per page
sort_by_fieldNoSort field (e.g. account_last_activity_date, account_created_at, account_updated_at)
sort_ascendingNoSort ascending
account_label_idsNoFilter by account label IDs
account_stage_idsNoFilter by account stage IDs
q_organization_nameNoOrganization name query

Output Schema

ParametersJSON 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 cover readOnlyHint, idempotentHint, and destructiveHint=false, so the description is not required to re-state those. The description adds crucial context beyond the annotations: the workspace is shared by all AIsa callers, so results may include records created by other callers. That is exactly the kind of behavioral disclosure that helps an agent interpret results correctly. Minor credit for mentioning 'breadcrumbs' echoing applied filters, though output schema already documents the response shape.

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 adding distinct information: scope, filters/pagination, a workspace-specific warning, and the sibling alternative. No filler or repetition–it earns its length.

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 search tool with 7 optional parameters (all documented in schema), an output schema that defines the response, and a sibling routing hint, the description provides the full context an agent needs: what is searched, what affects the results, and how to invoke the other tool for a different search target. Nothing critical is 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?

Schema description coverage is 100%, so the baseline is 3. However, the description claims you can 'filter by name, owner, stage and custom fields,' while the schema shows no 'owner' parameter and no 'custom fields' parameter–labels/stages are the closest but not the same. This inaccuracy can mislead an agent into passing non-existent parameter names. The pagination mention is accurate, but the false extra terms outweigh that benefit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action and resource ('Search accounts') and immediately scopes it to 'the companies saved in this Apollo workspace, as opposed to Apollo's global database.' It explicitly differentiates from the sibling `post_apollo_mixed_companies_search`, so an agent can tell them apart at a glance.

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 names the exact alternative for the other use case ('To search Apollo's global company database instead, use post_apollo_mixed_companies_search') and lists the query capabilities (filter by name, owner, stage, custom fields; paginate with page/per_page). This tells the agent exactly when to pick this tool and when to switch.

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

post_apollo_accounts_update_ownersUpdate Account Owner for Multiple AccountsA
Destructive
Inspect

Reassign the owner of several accounts at once. Owner ids come from get_apollo_users_search. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation. Reassignment is visible to whoever owned them before.

ParametersJSON Schema
NameRequiredDescriptionDefault
owner_idYesNew owner ID
account_idsYes

Output Schema

ParametersJSON 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=true, openWorldHint=true), the description adds concrete side effects: writes land in a shared AIsa workspace with no per-caller isolation, and reassignment is visible to previous owners. This enriches the agent's understanding of consequences without contradicting 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 sentences with the core action first, followed by necessary context. It is concise and well-structured, though the second sentence about workspace sharing is a bit dense. Overall efficient 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?

Given the tool's complexity (bulk mutation, shared workspace, visibility changes), the description covers the essential points: what it does, where owner IDs come from, and side effects. It does not mention where account_ids come from or any failure modes, but the output schema exists and annotations cover safety. It is reasonably complete for an agent to call 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 50% (minimal descriptions: 'New owner ID' and 'Account IDs'). The description compensates partially by telling where owner IDs come from, but gives no additional context for account_ids, such as how to obtain them or any constraints. It adds some value but does not fully bridge the low schema coverage.

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

Purpose5/5

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

The description clearly states the action ('Reassign the owner of several accounts at once') with a specific verb and resource. It distinguishes from the sibling post_apollo_contacts_update_owners by explicitly mentioning 'accounts', so an agent can tell them apart 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?

It provides a clear source for the owner_id parameter ('Owner ids come from get_apollo_users_search'), which is actionable guidance. However, it does not explicitly state when to use this tool versus the contact-owner update sibling, nor does it give any 'when not to use' guidance. The context is useful but not exhaustive.

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

post_apollo_contactsCreate a ContactA
Destructive
Inspect

Create a contact — a person saved into this workspace. Search with post_apollo_contacts_search first to avoid duplicates, which Apollo does not reject here the way it rejects duplicate account domains. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation. To look someone up without saving them, use post_apollo_people_match.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail
titleNoTitle
last_nameNoLast name
account_idNoAccount ID
first_nameNoFirst name
home_phoneNoHome phone
run_dedupeNoEnable deduplication. Default false.
label_namesNoLabels to set on the contact
other_phoneNoOther phone
website_urlNoWebsite URL
direct_phoneNoDirect phone
mobile_phoneNoMobile phone
corporate_phoneNoCorporate phone
contact_stage_idNoContact stage ID
organization_nameNoOrganization name
present_raw_addressNoRaw address
typed_custom_fieldsNoTyped custom fields object

Output Schema

ParametersJSON 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=true, readOnlyHint=false), the description discloses meaningful behavioral context: writes land in a shared workspace visible and editable by other callers, there is no per-caller isolation, and duplicate contacts are not rejected. This is exactly the kind of side-effect 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.

Conciseness5/5

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

Three sentences, each earning its place: the core definition, the duplicate-avoidance guidance, and the shared-workspace side effect. The most important information is front-loaded, and 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 create operation with 17 parameters, a rich output schema, and shared-workspace side effects, the description covers what an agent needs to call it safely: what it does, what to check first, what side effects to expect, and which sibling to use for non-mutating lookups.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific syntax or format details, though its duplicate-rejection warning lightly informs email/identity-related parameters. The schema itself carries the parameter meaning.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Create a contact — a person saved into this workspace.' It clearly distinguishes itself from search and match siblings by naming post_apollo_contacts_search and post_apollo_people_match and explaining what each is used for instead.

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 explicit when-to-use guidance: search first to avoid duplicates, since Apollo does not reject duplicate contacts, and use post_apollo_people_match when the goal is to look someone up without saving. This leaves no ambiguity about which sibling to choose.

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

post_apollo_contacts_bulk_createBulk Create ContactsA
Destructive
Inspect

Create several contacts in one call. Partial success is normal; read the response per record rather than assuming every row landed. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactsYesArray of contacts to create
run_dedupeNoEnable deduplication. Default false.
append_label_namesNoLabel names to append to each created contact

Output Schema

ParametersJSON 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 already mark this as destructive and not idempotent, but the description adds critical behavioral context beyond that: partial success is normal, responses must be evaluated per record, and writes land in a shared AIsa workspace visible/editable by other callers with no isolation. These are exactly the kind of non-obvious traits an agent needs to know.

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

Conciseness5/5

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

The description is compact, front-loaded with the core purpose, and every sentence earns its place: bulk behavior, per-record success handling, and shared-workspace side effects. There is no redundant or distracting wording.

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 full output schema and 100% schema coverage, the description need not explain return values or parameter formats. It supplies the essential usage caveats for a destructive bulk mutation tool, though it could have been slightly stronger by explicitly naming the singular create sibling as the alternative for one-off creation.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters like run_dedupe and append_label_names are already documented. The description adds no additional parameter-level meaning beyond restating the bulk nature, so the baseline 3 baseline applies.

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

Purpose4/5

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

The description clearly states the verb ('Create') and resource ('several contacts in one call'), making the bulk nature obvious. It is distinguishable from the singular post_apollo_contacts sibling by the explicit 'several contacts in one call' phrasing, though it does not name that sibling 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?

The description implies usage for bulk contact creation but does not explicitly state when to prefer this tool versus alternatives like post_apollo_contacts. It does provide important operational guidance: partial success is expected and responses must be read per record, plus the shared-workspace warning that affects whether this tool is appropriate in a given context.

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

post_apollo_contacts_bulk_updateBulk Update ContactsA
Destructive
Inspect

Update several contacts in one call, each identified by its Apollo id. Partial success is normal. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true. The description adds valuable context beyond these: partial success is normal (failure semantics) and writes land in a shared workspace with no per-caller isolation (side-effect and concurrency implications). This is exactly the kind of behavioral disclosure that helps an agent predict outcomes.

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 with no filler. The main action is stated first, followed by failure behavior and workspace implications. Every sentence adds information, and the description is appropriately short for the tool's simplicity.

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

Completeness3/5

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

Given the tool has no input schema, the description must explain how to invoke it. It mentions Apollo IDs but not the request body structure, the set of updatable fields, or how partial success is reported. The output schema exists but is not described, so the agent still lacks guidance on what to pass and what to expect. For a bulk mutation tool, 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?

The schema has zero parameters, so the description carries the entire burden. It mentions 'each identified by its Apollo id,' which indicates that the input must include Apollo IDs, but it does not specify the structure (e.g., a list of objects, how to pass them, or what fields are updatable). For a tool with no schema parameters, this is only a partial hint and leaves the agent guessing about the exact request 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?

The description clearly states the action: 'Update several contacts in one call, each identified by its Apollo id.' It names the resource (contacts), the verb (update), and the bulk scope, which distinguishes it from single-contact patch tools and bulk-create tools. It effectively differentiates itself without needing to name 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 does not explicitly say when to use this tool instead of alternatives, such as patching contacts individually or using bulk create. It only implies bulk updates, but provides no exclusions or conditions like 'use this when updating more than one contact' or 'not for single updates.' This is a significant gap for an agent deciding between many sibling tools.

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

post_apollo_contacts_searchSearch for ContactsA
Read-onlyIdempotent
Inspect

Search contacts — the people saved in this Apollo workspace. Filter by name, title, account, owner, stage and custom fields; page with page and per_page. Returns contacts with id, name, first_name, last_name, title, organization_name, linkedin_url, contact_stage_id, owner_id, person_id and source, alongside pagination and model_ids. ⚠️ The workspace is shared across AIsa callers, so results include contacts other callers created. To find people who are not saved here, use post_apollo_mixed_people_api_search.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
per_pageNoItems per page
q_keywordsNoKeyword query
sort_by_fieldNoSort field (e.g. contact_last_activity_date, contact_created_at, contact_updated_at)
sort_ascendingNoSort ascending. Default false.
contact_label_idsNoFilter by contact label IDs
contact_stage_idsNoFilter by contact stage IDs

Output Schema

ParametersJSON 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, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds genuinely useful context beyond these: that the workspace is shared across AIsa callers so results include contacts other callers created. This concretizes the abstract openWorldHint into a practical behavioral implication. It could go further on pagination behavior, but the shared-workspace caveat is strong 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.

Conciseness5/5

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

Three dense sentences with zero filler: purpose and filters first, then return shape, then the shared-workspace caveat and the alternative tool. Each sentence earns its place and the most important scoping 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 read-only search tool with a full output schema, the description is complete: it states the purpose, filters, pagination, return fields, the shared-workspace caveat, and the alternative for non-saved people. 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.

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description lists filter dimensions (name, title, account, owner, stage, custom fields) and pagination params, but these largely restate what the schema already documents for each property. It doesn't add syntax, value formats, or usage nuances beyond the schema, so the baseline is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Search') with a clear resource ('contacts — the people saved in this Apollo workspace') and enumerates the filterable fields (name, title, account, owner, stage, custom fields). It distinguishes itself from the sibling post_apollo_mixed_people_api_search by explicitly scoping to saved workspace contacts.

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 explicit when-to-use guidance ('To find people who are not saved here, use post_apollo_mixed_people_api_search') and warns that the shared workspace means results include contacts created by other callers. This routes the agent away from the wrong sibling without ambiguity.

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

post_apollo_contacts_update_ownersUpdate Contact Owner for Multiple ContactsA
Destructive
Inspect

Reassign the owner of several contacts at once. Owner ids come from get_apollo_users_search. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
owner_idYesNew owner ID
contact_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

The description goes beyond the annotations by explaining that writes land in a shared AIsa workspace, become visible and editable by others, and provide no per-caller isolation. This is valuable behavioral context that complements the destructiveHint and openWorldHint annotations without contradicting them.

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

Conciseness5/5

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

Two compact sentences lead with the core action, then immediately add the critical shared-workspace side effect. Every sentence earns its place, and there is no redundant or filler content.

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

Completeness4/5

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

Given the simple two-parameter schema, the output schema, and annotations already covering destructive and non-idempotent behavior, the description is largely complete. It explains the bulk nature, owner ID source, and shared side effects; it does not mention optional prerequisites or limits, but those are not required for a correct 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?

The description adds real meaning to `owner_id` by specifying that owner IDs come from `get_apollo_users_search`, which is useful beyond the schema's generic 'New owner ID.' However, `contact_ids` receives only implicit context from 'several contacts at once,' so the low 50% schema description coverage is only partially compensated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Reassign the owner of several contacts at once.' It clearly names the resource (contacts, not accounts or tasks) and identifies the batch action, making it easy to distinguish from similar contact update tools.

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

Usage Guidelines3/5

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

The description implies bulk usage via 'several contacts at once' and points to `get_apollo_users_search` for owner IDs, giving useful context. However, it does not explicitly state when to prefer this over a single-contact patch or another bulk update tool, and it offers no exclusions.

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

post_apollo_contacts_update_stagesUpdate Contact Stage for Multiple ContactsA
Destructive
Inspect

Move several contacts to a different stage at once. The stage id must come from get_apollo_contact_stages — stages are workspace-specific rather than a fixed enum, and an unknown id is rejected. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation. Stage changes can trigger workspace automations.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idsYes
contact_stage_idYesNew contact stage ID

Output Schema

ParametersJSON 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?

With annotations already declaring destructiveHint=true, openWorldHint=true, and readOnlyHint=false, the description adds meaningful context: writes land in a shared AIsa workspace with no per-caller isolation, records become visible/editable by others, and stage changes can trigger workspace automations. This expands on the annotation hints with concrete side effects, exactly what a mutation tool needs. It stops short of a 5 by not mentioning failure/partial-update semantics, but the annotations lower the bar here.

Agents need to know what a tool does to the world before 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 at roughly 80 words, with the core action front-loaded and the prerequisite and side effects following in logical order. No filler or redundancy; every sentence earns its place. Could arguably be tightened but is well within acceptable bounds.

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 2-parameter mutation with an output schema present, the description covers purpose, the parameter source/prerequisite, workspace-wide visibility effects, and automation triggers. The output schema handles return-value documentation, so nothing critical is missing. Minor gaps like partial-failure behavior or rate limits are not essential given the tool's complexity.

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 50%: contact_ids gets a terse 'Contact IDs' and contact_stage_id gets 'New contact stage ID,' which merely restates the name. The description compensates well for the complex parameter by explaining that contact_stage_id must come from get_apollo_contact_stages, is workspace-specific, and that an unknown id is rejected. It adds no new meaning for contact_ids, but the description carries the weight for the harder 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 opens with 'Move several contacts to a different stage at once,' a specific verb plus resource and scope. It is clearly distinct from siblings like post_apollo_contacts_bulk_update by focusing on the stage-change operation, though it never explicitly names a sibling to differentiate itself from. 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 Guidelines3/5

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

It gives a valuable prerequisite — the stage id must come from get_apollo_contact_stages, and stages are workspace-specific rather than a fixed enum. However, it does not state when to prefer this tool over alternatives such as post_apollo_contacts_bulk_update or post_apollo_contacts_update_owners, nor does it give explicit exclusions. The usage context is implied rather than explicit.

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

post_apollo_emailer_campaigns_add_contact_idsAdd Contacts to a SequenceA
Destructive
Inspect

Add contacts to an email sequence. ⚠️ This is the endpoint that causes real email to be sent: once added to an active sequence, contacts start receiving its steps from the workspace's connected mailboxes. Get the sequence id from post_apollo_emailer_campaigns_search and confirm its state before adding anyone. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation. Sending cannot be recalled once a step goes out.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idsNoContact IDs to add. Provide either contact_ids[] or label_names[] (or both).
label_namesNoLabel names for contacts to add. Provide either label_names[] or contact_ids[] (or both).
sequence_idYesSequence (emailer campaign) ID.
sequence_no_emailNoAllow contacts without email.
emailer_campaign_idYesSequence ID (same as sequence_id).
sequence_job_changeNoAllow contacts with job change.
sequence_unverified_emailNoAllow contacts with unverified email.
send_email_from_email_addressNoOptional from-address alias.
send_email_from_email_account_idYesEmail account ID (or IDs) to send from.
sequence_active_in_other_campaignsNoAllow contacts active in other sequences.
sequence_finished_in_other_campaignsNoAllow contacts finished in other sequences.

Output Schema

ParametersJSON 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 major behavioral consequences: causes real emails to be sent, is not recallable once steps go out, and writes into a shared workspace with no per-caller isolation. These are exactly the non-obvious side effects 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.

Conciseness5/5

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

Four focused sentences, each earning its place. The warning is front-loaded, the prerequisite is stated concretely, and the shared-workspace caveat adds essential context without 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 complex, destructive tool, the description covers the non-obvious inputs: where to fetch the sequence id, how the sequence must be confirmed, what side effects entry triggers, and how writes are shared. An output schema covers the return value, so no further explanation is required.

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

Parameters3/5

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

Schema description coverage is 100% and every parameter has a description. The description adds no new parameter-level meaning, so the baseline of 3 applies.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Add contacts to an email sequence.' It immediately distinguishes this from look-up siblings by warning that this endpoint triggers real email sending, which clarifies its unique role among the many search/read tools.

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

Usage Guidelines4/5

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

The description gives a concrete prerequisite: obtain the sequence id from post_apollo_emailer_campaigns_search and confirm its state before adding anyone. It does not explicitly contrast with alternatives like the remove/stop sibling, but it clearly signals that this tool should only be used when sending is intended.

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

post_apollo_emailer_campaigns_remove_or_stop_contact_idsUpdate Contact Status in a SequenceA
Destructive
Inspect

Remove contacts from a sequence, or stop it for them without removing them. Use it to halt sending to someone who replied or asked to stop. Already-sent messages are unaffected — this only prevents future steps. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesOne of: mark_as_finished, remove, stop.
contact_idsYesContact IDs.
emailer_campaign_idsYesSequence IDs.

Output Schema

ParametersJSON 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 valuable behavioral detail beyond annotations: it states that already-sent messages are unaffected and only future steps are prevented, and it discloses that writes land in a shared AIsa workspace with no per-caller isolation. This goes well beyond the annotations' destructiveHint and openWorldHint, providing concrete consequences of the operation.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence, followed by a concrete use case, a key side effect, and a critical shared-state warning. Every sentence earns its place, with no fluff or repetition of schema details.

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

Completeness5/5

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

Given the tool's complexity (three modes, destructive, shared workspace) and the presence of an output schema, the description covers the essential operational aspects: purpose, when to use, side effects, and shared-state implications. Nothing critical is missing for an agent to decide and invoke 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 100%, so baseline is 3. The description clarifies the difference between 'remove' and 'stop' modes but does not mention 'mark_as_finished'. It adds some semantic value by explaining the practical effect of two of the three modes, but could have been more 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 clearly states the action (remove contacts or stop them) on a specific resource (sequence), and distinguishes between removing and stopping. It also names the concrete use case (halt sending to someone who replied or asked to stop), making it unambiguous even among sibling tools like add_contact_ids.

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 specific when-to-use scenario ('Use it to halt sending to someone who replied or asked to stop') but does not explicitly mention alternatives such as the add_contact_ids sibling or sequence abort operations. It implies the distinction but leaves the agent to infer which tool is appropriate for other cases.

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

post_apollo_emailer_campaigns_searchSearch for SequencesA
Read-onlyIdempotent
Inspect

Search email sequences in this workspace. Returns emailer_campaigns with pagination and breadcrumbs. Use it to find a sequence id before adding contacts to it or changing its state. ⚠️ Sequences here are shared: activating or archiving one affects every AIsa caller, and a live sequence sends real email from the workspace's connected accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number.
q_nameNoKeywords to match sequence names.
per_pageNoResults per page.

Output Schema

ParametersJSON 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, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read. The description adds valuable context beyond annotations: the warning that sequences are shared and that activating/archiving affects every caller, plus that a live sequence sends real email. This explains consequences of subsequent actions on returned objects, which is useful for decision-making even though the search itself is read-only.

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

Conciseness5/5

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

The description is two sentences plus a concise warning. It front-loads the core purpose and usage, then adds a critical caveat. There is no filler or redundancy. Every sentence earns its place, making it easy for an agent 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 read-only search tool with an output schema and fully documented parameters, the description covers all necessary ground: what it does, when to use it, and a warning about the shared nature of sequences. The output schema handles return format details, so nothing critical is missing for an agent to call this 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 100% — all three parameters (page, q_name, per_page) have descriptions in the schema. The tool description does not add significant parameter semantics beyond restating that it searches sequences. The baseline is 3 because the schema fully documents parameters, and the description offers no additional nuance like formatting or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 email sequences in this workspace.' It clearly states the operation and the object. It also provides the purpose: to find a sequence id before adding contacts or changing state, which distinguishes it from sibling operations like archive or add contacts. The tool's role as a lookup 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?

The description gives explicit usage context: 'Use it to find a sequence id before adding contacts to it or changing its state.' This tells an agent when to invoke the tool. It does not name alternative tools or state when not to use it, but the context is clear enough for a search operation. The shared-sequence warning also informs the agent of downstream implications.

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

post_apollo_emailer_campaigns_sequence_id_abortDeactivate a SequenceA
Destructive
Inspect

Deactivate a sequence so it stops sending. Contacts stay in it and already-sent messages are unaffected; only future steps are halted. Use it as the stop switch when something is going wrong. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
sequence_idYesSequence ID.

Output Schema

ParametersJSON 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 readOnlyHint=false, so the description's mutation warning is consistent. The description adds valuable context beyond annotations: it explains the partial effect (already-sent messages unaffected, contacts remain), and it discloses the shared-workspace side effect (no per-caller isolation, visible/editable by others). This is meaningful behavioral context that annotations alone do not provide.

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

Conciseness5/5

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

The description is compact and front-loaded: the core action and effect appear in the first sentence, followed by the use-case signal and the shared-workspace caveat. Every sentence earns its place, and there is no redundant restatement of the tool name or 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?

For a single-parameter mutation tool with an output schema and clear annotations, the description covers the essential behavioral aspects: what happens, what doesn't happen, when to use it, and the shared-workspace side effect. It does not describe the output/return value, but the presence of an output schema reduces the need for that. It also doesn't mention idempotency, but annotations already cover that (idempotentHint=false).

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

Parameters3/5

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

Schema coverage is 100% and the only parameter (sequence_id) is documented as 'Sequence ID.' The description does not add further parameter-level detail, but with a single required parameter and full schema coverage, the baseline of 3 is appropriate. The description's behavioral context indirectly clarifies that sequence_id refers to the sequence to deactivate, but no additional syntax or format 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 clearly states the action ('Deactivate a sequence so it stops sending'), the resource (a sequence), and the effect (halts future steps while preserving contacts and already-sent messages). It distinguishes this from sibling tools like archive or remove contacts by explicitly noting what it does not affect.

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 frames this as 'the stop switch when something is going wrong,' giving a clear when-to-use signal. It also contrasts with sibling tools like post_apollo_emailer_campaigns_remove_or_stop_contact_ids by clarifying that contacts stay in the sequence, which helps an agent choose between aborting the whole sequence vs removing specific contacts.

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

post_apollo_emailer_campaigns_sequence_id_approveActivate a SequenceA
Destructive
Inspect

Activate a sequence, which makes it start sending. ⚠️ Every contact already in it begins receiving steps from the workspace's connected mailboxes. Check membership with post_apollo_emailer_campaigns_search and mailbox health with get_apollo_email_accounts first. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation. Activation affects everyone using this workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
sequence_idYesSequence ID.

Output Schema

ParametersJSON 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?

The description goes well beyond the annotations by disclosing that every existing contact starts receiving emails via connected mailboxes, that writes land in a shared workspace, that there is no per-caller isolation, and that activation affects all workspace users. This materially informs an agent about side effects and shared-state 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?

The description front-loads the core action and effect, then adds concise, high-value warnings and prerequisite checks. Every sentence contributes useful operational context without 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 single-parameter tool with annotations and an output schema, the description covers what the tool does, side effects, shared-workspace implications, and recommended pre-checks. Nothing essential is missing for an agent to invoke it knowingly.

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

Parameters3/5

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

Schema coverage is 100% with a clear 'Sequence ID.' description for sequence_id. The tool description adds no deeper meaning about the parameter beyond the schema, which is acceptable but not extra value.

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

Purpose5/5

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

The description states a specific action ('Activate a sequence') and its immediate consequence ('makes it start sending'). It clearly identifies the resource being acted on and distinguishes the tool from siblings like abort and archive by focusing on activation.

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

Usage Guidelines4/5

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

The description provides clear context and prerequisites: the agent should check membership with post_apollo_emailer_campaigns_search and mailbox health with get_apollo_email_accounts before activating. However, it does not explicitly name alternatives or state when not to use this tool, 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.

post_apollo_emailer_campaigns_sequence_id_archiveArchive a SequenceA
Destructive
Inspect

Archive a sequence, removing it from the active list while keeping its history. Archiving does not stop an active sequence on its own — deactivate it with post_apollo_emailer_campaigns_sequence_id_abort first if it is still sending. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
sequence_idYesSequence ID.

Output Schema

ParametersJSON 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 true, openWorldHint true), the description adds crucial behavioral context: it clarifies that archiving does not stop an active sequence, and it warns that writes land in a shared workspace with no per-caller isolation. These details are not visible in structured fields and significantly help an agent anticipate side effects. No contradiction with annotations 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 description is two sentences, front-loaded with the core purpose and immediate effect, then supplying the critical caveat about aborting active sequences and the workspace side effect. Every sentence serves a distinct purpose with no redundancy 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?

Given the tool's simplicity (single parameter, no nested objects, output schema present), the description covers everything an agent needs to invoke it correctly: what it does, when to use it instead of abort, and the shared-workspace consequence. The presence of an output schema reduces the need to describe return values, and the description covers both the operational and environmental context.

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

Parameters3/5

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

The schema description covers the single parameter 'sequence_id' with 'Sequence ID.' The tool description does not add further meaning to this parameter beyond that. Since schema description coverage is 100%, the description carries no extra burden; baseline 3 is appropriate as it neither enhances nor degrades the schema's clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Archive a sequence'), the resource ('sequence'), and the effect ('removing it from the active list while keeping its history'). It also explicitly differentiates this from the sibling abort tool by noting that archiving does not stop an active sequence, making its purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool versus the alternative: it instructs callers to deactivate a still-sending sequence with `post_apollo_emailer_campaigns_sequence_id_abort` before archiving. This directly addresses usage context and exclusion criteria, leaving no ambiguity about the correct invocation scenario.

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

post_apollo_fieldsCreate a Custom FieldA
Destructive
Inspect

Create a custom field. ⚠️ This changes the workspace's schema rather than its data: the field appears on every record of that modality, for every caller, and removing it later is not something this API offers. Check get_apollo_typed_custom_fields first — the field you want may already exist. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
metaNoAdditional field config.
typeNoField type (e.g., textarea).
labelNoField label.
modalityNoEntity modality (e.g., contact).

Output Schema

ParametersJSON 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 destructiveHint=true and readOnlyHint=false, but the description adds critical context beyond that: it changes the schema, not just data, affects every record and caller, and removal is not offered. It also discloses that writes land in a shared AIsa workspace with no isolation. This significantly enriches the behavioral profile without contradicting 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 every sentence earns its place: it starts with the core action, then the most important caveat (schema vs data), then a concrete preventive check, then the shared-workspace warning. The warning symbol and bold text highlight the risk. No filler or redundancy.

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

Completeness5/5

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

For a destructive mutation tool with no required parameters and a nested object, the description covers the essential operational caveats: schema-level impact, non-removability, duplication check, and shared workspace implications. Combined with the existing annotations and an output schema, nothing critical is missing for an agent to call this 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 100%, so the parameters (meta, type, label, modality) are already documented. The description does not add any parameter-specific detail, examples, or constraints beyond what the schema provides. Per the calibration baseline, 3 is appropriate when the schema carries the burden.

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

Purpose5/5

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

States the specific verb and resource ('Create a custom field') and immediately distinguishes it from get_apollo_typed_custom_fields, which is a sibling. The description also clarifies the scope (schema vs data) and the global effect on every record, making the tool's purpose unambiguous and distinct from other post_* 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?

Explicitly directs the agent to check get_apollo_typed_custom_fields first to avoid duplicate fields, providing a clear when-not-to-use condition. It also warns about the shared workspace and lack of per-caller isolation, guiding the agent on whether this is appropriate given the context. No 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.

post_apollo_mixed_companies_searchOrganization SearchA
Read-onlyIdempotent
Inspect

Find companies matching criteria: name, domain, headcount, industry, location, funding stage and technologies in use. Returns organizations and accounts side by side — organizations are Apollo's global database, accounts are records that already exist in this Apollo workspace — plus pagination and breadcrumbs echoing the filters that were applied. Use it to build a target list. When you already know the domain, get_apollo_organizations_enrich answers directly and costs less.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoThe page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4
per_pageNoThe number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10
revenue_rangeNo
organization_idsNoThe Apollo IDs for the companies you want to include in your search results. Each company in the Apollo database is assigned a unique ID. To find IDs, identify the values for organization_id when you call this endpoint. Example: 5e66b6381e05b4008c8331b8
q_organization_nameNoFilter search results to include a specific company name. If the value you enter for this parameter does not match with a company's name, the company will not appear in search results, even if it matches other parameters. Partial matches are accepted. For example, if you filter by the value marketing, a company called NY Marketing Unlimited would still be eligible as a search result, but NY Market Analysis would not be eligible. Example: apollo or mining
total_funding_rangeNo
organization_locationsNoThe location of the company headquarters. You can search across cities, US states, and countries. If a company has several office locations, results are still based on the headquarters location. For example, if you search chicago but a company's HQ location is in boston, any Boston-based companies will not appearch in your search results, even if they match other parameters.. To exclude companies based on location, use the organization_not_locations parameter. Examples: texas; tokyo; spain
latest_funding_date_rangeNo
q_organization_job_titlesNoThe job titles that are listed in active job postings at the company. Examples: sales manager; research analyst
organization_job_locationsNoThe locations of the jobs being actively recruited by the company. Examples: atlanta; japan
organization_not_locationsNoExclude companies from search results based on the location of the company headquarters. You can use cities, US states, and countries as locations to exclude. This parameter is useful for ensuring you do not prospect in an undesirable territory. For example, if you use ireland as a value, no Ireland-based companies will appear in your search results. Examples: minnesota; ireland; seoul
latest_funding_amount_rangeNo
organization_num_jobs_rangeNo
q_organization_domains_listNoThe domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. This parameter accepts up to 1,000 domains in a single request. Examples: apollo.io; microsoft.com
q_organization_keyword_tagsNoFilter search results based on keywords associated with companies. For example, you can enter mining as a value to return only companies that have an association with the mining industry. Examples: mining; sales strategy; consulting
organization_job_posted_at_rangeNo
organization_num_employees_rangesNoThe number range of employees working for the company. This enables you to find companies based on headcount. You can add multiple ranges to expand your search results. Each range you add needs to be a string, with the upper and lower numbers of the range separated only by a comma. Examples: 1,10; 250,500; 10000,20000
currently_using_any_of_technology_uidsNoFind organizations based on the technologies they currently use. Apollo supports filtering by 1,500+ technologies. Apollo calculates technologies data from multiple sources. This data is updated regularly. Check out the full list of supported technologies by downloading this CSV file . Use underscores (_) to replace spaces and periods for the technologies listed in the CSV file. Examples: salesforce; google_analytics; wordpress_org

Output Schema

ParametersJSON 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, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds genuinely useful behavioral detail: the side-by-side organizations/accounts return structure, pagination, and breadcrumbs that echo applied filters. It does not discuss rate limits or data freshness, but the annotations carry most of the safety burden.

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 deliver action, return format, and usage guidance with zero filler. The key behavior is front-loaded and the sibling routing comes last, making the description easy 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 complex 18-parameter, 0-required-field search tool, the description covers what the tool does, what it returns, how results are scoped, and when to prefer a cheaper sibling. The output schema and rich input schema cover the remaining details, so 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.

Parameters3/5

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

The description provides a high-level summary of filter categories ('name, domain, headcount, industry, location, funding stage and technologies'), which helps orient an agent but adds no syntax, formatting, or interaction details beyond what the input schema already documents. With 67% schema description coverage, the schema does most of the parameter-level heavy lifting, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb ('Find companies matching criteria') and enumerates the filter dimensions, so an agent immediately knows what this tool does. It also clarifies the unusual 'mixed' behavior: results include both Apollo's global organizations and workspace-specific accounts, which distinguishes it from a simple company search. The explicit contrast with get_apollo_organizations_enrich further disambiguates it from a close 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 states the intended use case directly: 'Use it to build a target list.' It also names the alternative and gives the exact condition for choosing it: 'When you already know the domain, get_apollo_organizations_enrich answers directly and costs less.' This is clear when-to-use and when-to-use-something-else guidance.

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

post_apollo_mixed_people_api_searchPeople API SearchA
Read-onlyIdempotent
Inspect

Find people matching criteria rather than enriching someone you already identified. Filter by job title, seniority, location, company domain, headcount and industry, and page with page and per_page. Returns total_entries and a people array. Note what search deliberately withholds: entries carry last_name_obfuscated and boolean flags — has_email, has_direct_phone, has_city, has_state, has_country — instead of the values themselves. Search tells you a match exists; enrichment reveals the contact details. Feed the ids into post_apollo_people_match or post_apollo_people_bulk_match to get emails and phone numbers, which is also where the credits are spent.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoThe page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4
per_pageNoThe number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10
q_keywordsNoA string of words over which we want to filter the results.
person_titlesNoJob titles held by the people you want to find. For a person to be included in search results, they only need to match 1 of the job titles you add. Adding more job titles expands your search results. Results also include job titles with the same terms, even if they are not exact matches. For example, searching for marketing manager might return people with the job title content marketing manager. Use this parameter in combination with the person_seniorities[] parameter to find people based on specific job functions and seniority levels. Examples: sales development representative; marketing manager; research analyst
revenue_rangeNo
organization_idsNoThe Apollo IDs for the companies (employers) you want to include in your search results. Each company in the Apollo database is assigned a unique ID. To find IDs, call the Organization Search endpoint and identify the values for organization_id. Example: 5e66b6381e05b4008c8331b8
person_locationsNoThe location where people live. You can search across cities, US states, and countries. To find people based on the headquarters locations of their current employer, use the organization_locations parameter. Examples: california; ireland; chicago
person_senioritiesNoThe job seniority that people hold within their current employer. This enables you to find people that currently hold positions at certain reporting levels, such as Director level or senior IC level. For a person to be included in search results, they only need to match 1 of the seniorities you add. Adding more seniorities expands your search results. Searches only return results based on their current job title, so searching for Director-level employees only returns people that currently hold a Director-level title. If someone was previously a Director, but is currently a VP, they would not be included in your search results. Use this parameter in combination with the person_titles[] parameter to find people based on specific job functions and seniority levels. The following options can be used for this parameter: owner founder c_suite partner vp head director manager senior entry intern
contact_email_statusNoThe email statuses for the people you want to find. You can add multiple statuses to expand your search. The statuses you can search include: verified unverified likely to engage unavailable
include_similar_titlesNoThis parameter determines whether people with job titles similar to the titles you define in the person_titles[] parameter are returned in the response. Set this parameter to false when using person_titles[] to return only strict matches for job titles.
organization_locationsNoThe location of the company headquarters for a person's current employer. You can search across cities, US states, and countries. If a company has several office locations, results are still based on the headquarters location. For example, if you search chicago but a company's HQ location is in boston, people that work for the Boston-based company will not appear in your results, even if they match other parameters. To find people based on their personal location, use the person_locations parameter. Examples: texas; tokyo; spain
q_organization_job_titlesNoThe job titles that are listed in active job postings at the person's current employer. Examples: sales manager; research analyst
organization_job_locationsNoThe locations of the jobs being actively recruited by the person's employer. Examples: atlanta; japan
organization_num_jobs_rangeNo
q_organization_domains_listNoThe domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. This parameter accepts up to 1,000 domains in a single request. Examples: apollo.io; microsoft.com
organization_job_posted_at_rangeNo
organization_num_employees_rangesNoThe number range of employees working for the person's current company. This enables you to find people based on the headcount of their employer. You can add multiple ranges to expand your search results. Each range you add needs to be a string, with the upper and lower numbers of the range separated only by a comma. Examples: 1,10; 250,500; 10000,20000
currently_using_all_of_technology_uidsNoFind people based on all of the technologies their current employer uses. Apollo supports filtering by 1,500+ technologies. Apollo calculates technologies data from multiple sources. This data is updated regularly. Check out the full list of supported technologies by downloading this CSV file . Use underscores (_) to replace spaces and periods for the technologies listed in the CSV file. Examples: salesforce; google_analytics; wordpress_org
currently_using_any_of_technology_uidsNoFind people based on any of the technologies their current employer uses. Apollo supports filtering by 1,500+ technologies. Apollo calculates technologies data from multiple sources. This data is updated regularly. Check out the full list of supported technologies by downloading this CSV file . Use underscores (_) to replace spaces and periods for the technologies listed in the CSV file. Examples: salesforce; google_analytics; wordpress_org
currently_not_using_any_of_technology_uidsNoExclude people from your search based on any of the technologies their current employer uses. Apollo supports filtering by 1,500+ technologies. Apollo calculates technologies data from multiple sources. This data is updated regularly. Check out the full list of supported technologies by downloading this CSV file . Use underscores (_) to replace spaces and periods for the technologies listed in the CSV file. Examples: salesforce; google_analytics; wordpress_org

Output Schema

ParametersJSON 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?

Despite annotations already declaring readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, the description adds non-obvious behavioral context: entries return 'last_name_obfuscated' and boolean flags ('has_email', 'has_direct_phone', etc.) instead of actual values, and 'Search tells you a match exists; enrichment reveals the contact details.' This shapes agent expectations about response content and cost in a way the annotations do not.

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 sentences with no filler: purpose first, then filter categories, return shape, deliberate withholding, and routing to enrichment. Every sentence earns its place and the most important distinction (search vs. enrichment) is front-loaded.

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

Completeness4/5

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

The description is strong overall, covering purpose, filtering, return structure, obfuscation behavior, and downstream tool usage. Minor deduction: it mentions 'industry' as a filterable dimension, but the input schema contains no explicit industry parameter, which could briefly mislead an agent looking for that parameter in the schema.

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

Parameters3/5

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

Schema description coverage is high at 85%, so the input schema already provides detailed semantics for page, per_page, person_titles, person_seniorities, and the rest. The description only summarily lists filter categories and mentions pagination, adding little beyond what the schema says. This matches the baseline of 3 when the schema does the heavy lifting.

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

Purpose5/5

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

Description opens with 'Find people matching criteria rather than enriching someone you already identified,' using a specific verb and resource that separates it from the people_match and bulk_match siblings. It lists concrete filter dimensions (title, seniority, location, domain, headcount) and explicitly names the sibling tools for enrichment, so the agent can distinguish this search tool 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?

The description explicitly states when to use this tool ('Find people matching criteria') and when not to ('rather than enriching someone you already identified'). It goes further by routing to alternatives: 'Feed the ids into post_apollo_people_match or post_apollo_people_bulk_match to get emails and phone numbers,' and clarifies that credits are spent at enrichment, not search.

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

post_apollo_news_articles_searchNews Articles SearchA
Read-onlyIdempotent
Inspect

News coverage for specific companies. organization_ids[] is required — omitting it returns HTTP 422 with "organization_ids is required", so resolve the companies first with get_apollo_organizations_enrich or post_apollo_mixed_companies_search. Narrow further with categories[] (funding, hires, launches and similar), published_at[min], published_at[max], and page with page and per_page. Returns news_articles and pagination. Use it to catch a trigger event before reaching out.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoThe page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4
per_pageNoThe number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10
categoriesNoFilter your search to include only certain categories or sub-categories of news. Use the News search filter for companies within Apollo to uncover all possible categories and sub-categories. Examples: hires; investment; contract
published_atNo
organization_idsYesThe Apollo IDs for the companies you want to include in your search results. Each company in the Apollo database is assigned a unique ID. To find IDs, call the Organization Search endpoint and identify the values for organization_id. Example: 5e66b6381e05b4008c8331b8

Output Schema

ParametersJSON 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, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds a concrete behavioral detail beyond annotations: omitting organization_ids returns HTTP 422 with the exact error message. It also discloses the return contract (news_articles and pagination), which helps the agent predict the outcome.

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 carrying a distinct piece of information: scope, required parameter and failure mode, filter options, return shape, and intended use case. There is no filler or unnecessary repetition of schema details.

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

Completeness5/5

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

Given that a full output schema exists and the input schema is rich, the description still adds missing call context: prerequisite resolution, mandatory parameter behavior, filtering axes, pagination control, and the 422 failure condition. An agent has everything needed to invoke 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 description coverage is 80% and the input schema already provides detailed documentation for all five parameters. The description adds the required-status consequence for organization_ids and sample categories, but mostly restates what the schema already covers. This matches the baseline expected for high schema coverage.

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

Purpose4/5

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

The description clearly identifies the resource as news coverage for specific companies and scopes it by required organization_ids, distinguishing it from generic search siblings like get_reddit_search or get_twitter_tweet_advanced_search. However, the action verb 'search' is supplied by the tool name/title rather than explicitly in the description, so it misses a perfect 5.

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 tells the agent to resolve companies first, naming get_apollo_organizations_enrich and post_apollo_mixed_companies_search as prerequisite alternatives. It also explains when to use the tool: to catch a trigger event before reaching out. This is strong, actionable routing guidance.

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

post_apollo_opportunitiesCreate DealA
Destructive
Inspect

Create a deal. Stage ids come from get_apollo_opportunity_stages, and the account it belongs to comes from post_apollo_accounts_search. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation. Deals feed the workspace's forecast, so a test record distorts numbers other people read.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDeal name
amountNoDeal amount
owner_idNoOwner ID
account_idNoAccount ID
closed_dateNoClosed date (date string)
typed_custom_fieldsNoTyped custom fields object
opportunity_stage_idNoDeal stage ID

Output Schema

ParametersJSON 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?

The description adds significant behavioral context beyond the annotations: records land in a shared AIsa workspace, are visible/editable by all callers, have no per-caller isolation, and feed the workspace forecast so test records distort real numbers. This is exactly the kind of side-effect disclosure that annotations alone do not provide.

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

Conciseness5/5

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

The description is concise and effectively structured: one sentence states the operation, one gives ID sourcing guidance, and one gives critical shared-workspace side effects. Every sentence earns its place, and the most important caveat 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 full schema coverage, an output schema, and rich behavioral disclosure, this is nearly complete for a create operation. It could add an explicit pointer to the update sibling for existing deals or to typed custom fields, but nothing that prevents an agent needs to invoke the tool correctly.

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

Parameters4/5

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

The schema already describes all seven parameters, so the baseline is 3. The description goes beyond schema by explaining that `opportunity_stage_id` must come from `get_apollo_opportunity_stages` and `account_id` must come from `post_apollo_accounts_search`, adding meaningful provenance. The remaining parameters such as `owner_id`, `closed_date`, and `typed_custom_fields` receive no additional semantics 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 opens with the concrete action and object, 'Create a deal,' and immediately ties the two key related parameters to their source endpoints, making it distinct from the get/patch opportunity siblings. The action, resource, and scope are immediately 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?

It provides useful where-to-get guidance: stage ids come from `get_apollo_opportunity_stages` and the account comes from `post_apollo_accounts_search`. It does not, however, explicitly state when to prefer this over patch/update alternatives, so usage boundaries are implied rather than fully spelled out.

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

post_apollo_organizations_bulk_enrichBulk Organization EnrichmentA
Read-onlyIdempotent
Inspect

Enrich up to 10 companies in one call. Body takes domains, an array of bare domains. Returns the enriched organizations alongside status, total_requested_domains, unique_domains, unique_records and unique_enriched_records — compare the requested and enriched counts rather than assuming every domain resolved. For one domain get_apollo_organizations_enrich is a plain GET.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainsYesThe domain of each company that you want to enrich. Do not include www., the @ symbol, or similar. Example: apollo.io and microsoft.com

Output Schema

ParametersJSON 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?

The description reveals that the call may not return a record for every domain and explicitly instructs comparing requested vs enriched counts. It also communicates a scale limit ('up to 10'). These behaviors go beyond the readOnly/idempotent annotations, giving the agent essential expectations about partial successes.

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 sentences each cover a distinct necessity: the core action, the input, the output/caveat, and the single-domain alternative. No fluff; the most important info 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 bulk read-only tool with an output schema, the description covers purpose, payload, count-obsessed output semantics, and sibling routing. It gives an agent everything needed to select and call the tool correctly.

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

Parameters4/5

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

The schema already documents `domains` as an array of bare domains with format guidance, so the description adds little on domain format. However, 'Enrich up to 10 companies' adds a max array-size hint not present in the schema, raising it above baseline.

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

Purpose5/5

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

The description states a concrete action ('Enrich up to 10 companies in one call'), ties it to the `domains` array, and explicitly contrasts with `get_apollo_organizations_enrich` for a single domain. This clearly distinguishes the bulk POST from its sibling GET.

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 the bulk use case ('up to 10 companies in one call') and directs single-domain needs to `get_apollo_organizations_enrich`. It also warns that not all input domains will resolve, which affects how the agent evaluates results.

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

post_apollo_people_bulk_matchBulk People EnrichmentA
Read-onlyIdempotent
Inspect

Enrich up to 10 people in one call. Body takes details, an array of the same identifier objects post_apollo_people_match accepts. Returns matches alongside status, total_requested_enrichments, unique_enriched_records, missing_records and credits_consumed — read missing_records rather than assuming every input matched. Costs one credit per record enriched, not per call. Use this over a loop of single calls: same credits, one round trip. For a single person post_apollo_people_match is simpler.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailsYesProvide info for each person you want to enrich as an object within this array. Add up to 10 people.
webhook_urlNoIf you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40
reveal_phone_numberNoSet to true if you want to enrich the data of all matched people with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered.
run_waterfall_emailNoSet to true to enable email waterfall enrichment
run_waterfall_phoneNoSet to true to enable phone waterfall enrichment
reveal_personal_emailsNoSet to true if you want to enrich all matched people with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.

Output Schema

ParametersJSON 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 carry readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable non-obvious behavior: credit consumption per record rather than per call, and the instruction to read `missing_records` because not every input may match. It does not contradict annotations.

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

Conciseness5/5

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

Four tight sentences, each earning its place: purpose, request shape, response caveat, credit economics, and sibling comparison. The most important facts are front-loaded and 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 tool with 6 params (1 required), full schema coverage, an output schema, and annotations covering safety, the description adds the remaining decision-relevant context: batch size, credit costing, partial-match handling, and when to prefer this over the single-match sibling. 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all six parameters. The description adds light clarity by explaining that `details` accepts the same identifier objects as `post_apollo_people_match`, and it ties credit cost to enriched records rather than the call itself. This is helpful but not transformative, so a 3 at baseline is appropriate.

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

Purpose5/5

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

The description opens with 'Enrich up to 10 people in one call' – a specific verb, resource, and scope. It explicitly differentiates from the single-person sibling post_apollo_people_match by noting the same identifier objects and pointing to the simpler single call for one person, so an agent can distinguish tools 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?

It gives a clear decision rule: 'Use this over a loop of single calls: same credits, one round trip,' and explicitly states the boundary case, 'For a single person post_apollo_people_match is simpler.' This is direct when-to-use versus alternative guidance with no ambiguity.

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

post_apollo_people_matchPeople EnrichmentA
Read-onlyIdempotent
Inspect

Enrich one person: give whatever identifiers you have and get back Apollo's full record for them. Accepts email, first_name plus last_name, name, domain, organization_name, linkedin_url or hashed_email — the more you supply, the likelier the match. Returns a person object with id, name, title, headline, linkedin_url, twitter_url, github_url, photo_url, organization_id and an employment_history array, plus a request_id. Personal emails and phone numbers are withheld unless reveal_personal_emails or reveal_phone_number is set, and those cost extra credits. A 200 does not guarantee a match — check whether person actually came back. Use post_apollo_people_bulk_match for up to 10 people in one call; use post_apollo_mixed_people_api_search when you do not have an identifier and need to find candidates first.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoThe Apollo ID for the person. Each person in the Apollo database is assigned a unique ID. To find IDs, call the People API Search endpoint and identify the values for person_id. Example: 587cf802f65125cad923a266
nameNoThe full name of the person. This will typically be a first name and last name separated by a space. If you use this parameter, you do not need to use the first_name and last_name parameters. Example: tim zheng
emailNoThe email address of the person. Example: example@email.com
domainNoThe domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. Example: apollo.io or microsoft.com
last_nameNoThe last name of the person. This is typically used in combination with the first_name parameter. Example: zheng
first_nameNoThe first name of the person. This is typically used in combination with the last_name parameter. Example: tim
webhook_urlNoIf you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40
hashed_emailNoThe hashed email of the person. The email should adhere to either the MD5 or SHA-256 hash format. Example: 8d935115b9ff4489f2d1f9249503cadf (MD5) or 97817c0c49994eb500ad0a5e7e2d8aed51977b26424d508f66e4e8887746a152 (SHA-256)
linkedin_urlNoThe URL for the person's LinkedIn profile. Example: http://www.linkedin.com/in/tim-zheng-677ba010
organization_nameNoThe name of the person's employer. This can be the current employer or a previous employer. Example: apollo
reveal_phone_numberNoSet to true if you want to enrich the person's data with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the person's phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered.
run_waterfall_emailNoSet to true to enable email waterfall enrichment
run_waterfall_phoneNoSet to true to enable phone waterfall enrichment
reveal_personal_emailsNoSet to true if you want to enrich the person's data with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.

Output Schema

ParametersJSON 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?

The description adds substantial behavioral context beyond the annotations: personal emails and phone numbers are withheld unless reveal flags are set, those reveals cost extra credits, phone numbers are delivered asynchronously to a webhook, and HTTP 200 can still mean no match. These details meaningfully inform an agent's expectations without contradicting the readOnly, idempotent, and non-destructive 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 long but every sentence earns its place: the identifier list, the match-likelihood heuristic, the returned object shape, the hiding/credit behavior, the response caveat, and the sibling routing. It is front-loaded with the core action and uses the sibling distinction where it matters.

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 tool has 14 parameters, zero required parameters, and a rich input schema, the description covers all non-obvious behavior an agent needs to call it correctly: match probability, hidden data, costs, webhook delivery, match-failure semantics, and alternatives. The output schema exists, so return values do not need duplication in prose.

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

Parameters4/5

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

Since schema description coverage is 100%, the individual parameter documentation already carries the load. The description still adds value by grouping identifiers as a set, stating that supplying more identifiers increases match likelihood, and by explaining the credit/cost implication of reveal_personal_emails and reveal_phone_number.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 and resource: 'Enrich one person' against Apollo's people records, and clearly states the input-to-output contract (identifiers in, full record back). It also explicitly names sibling tools, such as post_apollo_people_bulk_match and post_apollo_mixed_people_api_search, so an agent can distinguish this tool 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?

The description provides explicit when-to-use guidance: use this for single-person enrichment when you have at least one identifier, use post_apollo_people_bulk_match for up to 10 people, and use post_apollo_mixed_people_api_search when no identifier exists and candidates must be found first. It also warns that a 200 response does not guarantee a match, telling the agent to check the returned person object.

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

post_apollo_phone_callsCreate Call RecordsA
Destructive
Inspect

Log a call record against a contact. This writes history into Apollo — it does not place a call and does not connect to any telephony system. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
loggedNoWhether to create an individual record.
statusNoCall status.
user_idNoCaller user IDs.
durationNoDuration in seconds.
end_timeNoISO 8601 end time.
to_numberNoDialed phone number.
account_idNoAccount ID.
contact_idNoContact ID.
start_timeNoISO 8601 start time.
from_numberNoCaller phone number.
phone_call_outcome_idNoOutcome ID.
phone_call_purpose_idNoPurpose ID.

Output Schema

ParametersJSON 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 indicate a write operation (readOnlyHint=false) and destructive potential (destructiveHint=true). The description adds valuable context: it does not connect to telephony systems, and writes are shared across the AIsa workspace with no per-caller isolation. This goes beyond annotation basics and helps agents understand side effects and scope. 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 purpose. Each sentence carries distinct value: purpose, non-telephony clarification, and workspace sharing behavior. No filler or redundant 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?

Given 12 parameters all documented, an output schema present, and annotations covering safety, the description covers the key behavioral aspects (shared workspace, non-telephony). It doesn't mention prerequisites, required fields, or error scenarios, but with zero required parameters and schema coverage, this is acceptable. The description is complete enough for an agent to understand how to invoke and what to expect.

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

Parameters3/5

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

Schema coverage is 100%, so all 12 parameters are already documented with descriptions. The description does not add extra semantic detail about parameters, such as required relationships (e.g., that contact_id is central) or formats. It relies on the schema, which is adequate, but provides no additional value beyond the baseline.

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

Purpose5/5

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

The description clearly states the tool logs a call record against a contact, distinguishing it from placing calls or telephony actions. It explicitly says it writes history into Apollo, making the purpose unambiguous and distinct from sibling read/search tools like get_apollo_phone_calls_search or update tools like put_apollo_phone_calls_id.

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 context (this is for logging, not placing calls) but does not explicitly name alternative tools or conditions for when to use them. It implies usage but doesn't give clear when-to-use vs when-not-to-use guidance beyond the telephony caveat. No mention of alternative write tools or when to prefer this over other record-creation endpoints.

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

post_apollo_reports_sync_reportQuery Analytics ReportA
Read-onlyIdempotent
Inspect

Run an analytics report and get its rows back. Despite being a POST this reads rather than writes; the method reflects that the query goes in the body. Reports cover the shared workspace, so figures include other callers' activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortsNoSort specs.
filtersNoFilter specs.
metricsNoMetrics to compute.
group_byNoDimensions to group by.
date_rangeNoDate range filter (when supported).
pivot_group_byNoOptional pivot dimensions.

Output Schema

ParametersJSON 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?

Beyond the annotations (readOnlyHint, idempotentHint, non-destructive), the description contributes two behavioral traits: results include other callers' activity due to the shared workspace, and the POST method exists because the query goes in the body. This is genuinely useful context over the structured metadata.

Agents need to know what a tool does to the world before 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 purpose, and each sentence contributes scope or method context. The second sentence is slightly verbose ('the methodology reflects that the query goes in the body') but not wastefully so.

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 100% schema coverage, an output schema, and strong annotations (read-only, idempotent, non-destructive), the description provides the key missing context—shared workspace behavior and the method/read mismatch. It does not spell out how the 6 optional parameters combine to produce a valid report, but this is not a required 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?

With 100% schema description coverage, the schema already explains each of the 6 parameters. The description adds no parameter-specific detail beyond the overall statement that the query goes in the body, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The opening sentence specifies the exact action and resource: run an analytics report and get its rows back. It further distinguishes itself from the many POST siblings by explaining that despite the method, it reads rather than writes, and it flags that results cover the shared workspace.

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

Usage Guidelines3/5

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

The description implies the obvious usage—call it when you need analytics report rows—but it names no alternatives, gives no when-not guidance, and leaves the agent to infer when this should be preferred over the many search and batch tools nearby.

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

post_apollo_tasksCreate a TaskA
Destructive
Inspect

Create a task assigned to a workspace user, optionally linked to a contact or account. Owner ids come from get_apollo_users_search. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesTask type.
titleNoOptional title.
due_atYesISO 8601 due datetime.
statusYesTask status.
user_idYesTask owner user ID.
priorityNoTask priority (default: medium).
contact_idYesContact ID.

Output Schema

ParametersJSON 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 convey mutation (readOnlyHint=false, destructiveHint=true), so the description is not required to restate that. It adds valuable behavioral context beyond annotations: writes land in a shared AIsa workspace, records become visible/editable by others, and there is no per-caller isolation. This is meaningful side-effect disclosure that helps an agent understand cross-caller impact.

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 with no filler. The primary purpose is front-loaded, followed by the most important parameter sourcing detail and then the shared-workspace caveat. Every sentence earns its place and the description is compact.

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

Completeness4/5

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

The description is well-rounded for a mutation tool with an output schema: it names the entity, sourcing guidance, and important cross-caller side effects. It falls slightly short of 5 because it does not mention the bulk-create alternative and leaves type/status value constraints entirely to the sparse schema descriptions.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds useful semantics by pointing to get_apollo_users_search as the source of owner IDs. It also clarifies optional linking to contact or account. However, 'account' is mentioned without a corresponding account_id parameter in the schema, and both type and status remain minimally described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (create), resource (task), and key scoping details (assigned to a workspace user, optionally linked to contact or account). It also names the source for owner IDs, which differentiates this from other post_apollo_* tools. This is immediately interpretable by an agent.

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 clear context for using this tool: create a single task, optionally linked to a contact or account, with owner IDs from get_apollo_users_search. However, it does not explicitly contrast it with siblings like post_apollo_tasks_bulk_create or state 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.

post_apollo_tasks_bulk_createBulk Create TasksA
Destructive
Inspect

Create several tasks in one call. Partial success is normal; read the response per record. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesTask type.
titleNoOptional title.
due_atYesISO 8601 due datetime.
statusYesTask status.
user_idYesTask owner user ID.
priorityNoTask priority (default: medium).
contact_idsYesContact IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

The description discloses that partial success is normal, that responses must be read per record, and that records land in a shared AIsa workspace visible and editable by others with no per-caller isolation. This adds meaningful behavioral context beyond the annotations (destructiveHint, openWorldHint) and aligns with them — the shared-workspace disclosure is especially valuable for a destructive, open-world write.

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 with no filler: the core purpose is front-loaded in the first sentence, followed by the two critical behavioral caveats. Every sentence earns its place without redundant phrasing.

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

Completeness4/5

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

With an output schema present, explaining return values isn't necessary. The description covers the key risks for a bulk, destructive, open-world write: partial-success semantics, shared workspace visibility, and per-record response reading. The 7-parameter tool is adequately contextualized for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so all seven parameters are already documented in the input schema with descriptions. The tool description adds no parameter-specific detail but does not need to; the baseline 3 applies when the schema carries the documentation burden.

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

Purpose5/5

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

The description states a specific verb ('create'), resource ('tasks'), and scope ('several in one call'), which clearly differentiates it from the single-task sibling post_apollo_tasks. It is not a tautology — it gives an agent an accurate mental model of the bulk operation.

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 conveys the bulk-use context ('several tasks in one call') and sets expectations that partial success is normal, which is useful operational guidance. However, it does not explicitly name the single-task alternative (post_apollo_tasks) or state conditions for choosing one over the other — the differentiation is implied by the word 'bulk' rather than stated.

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

post_apollo_tasks_searchSearch for TasksA
Read-onlyIdempotent
Inspect

Search tasks in this workspace. Returns tasks with pagination, breadcrumbs, faceting and pipeline_total. ⚠️ Shared workspace: results include tasks other AIsa callers created.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number.
per_pageNoResults per page.
sort_by_fieldNoSort field.
open_factor_namesNoOptional open factors.

Output Schema

ParametersJSON 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 declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds value by warning that results include tasks other AIsa callers created in the shared workspace, which is a meaningful behavioral disclosure beyond the annotations. It also lists return fields (tasks, pagination, breadcrumbs, faceting, pipeline_total), which helps set expectations.

Agents need to know what a tool does to the world before 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 useful information: the action, the return shape, and a critical shared-workspace warning. The warning is front-loaded after the action. No wasted words, though the emoji is slightly informal.

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

Completeness4/5

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

The tool has an output schema, so return values are already documented. The description covers the key behavioral context (shared workspace, result scope) and the annotations cover safety. For a search tool with 0 required parameters, this is reasonably complete. It could mention pagination defaults, but the output schema and parameter descriptions cover the basics.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 4 parameters. The description doesn't add parameter-level detail beyond what the schema provides. Baseline 3 is appropriate since the schema carries the parameter documentation burden.

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 ('Search tasks in this workspace') and distinguishes it from sibling tools like post_apollo_tasks (create) and post_apollo_tasks_bulk_create. It doesn't explicitly name a sibling alternative, but the scope is clear enough to differentiate from other task-related tools.

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

Usage Guidelines3/5

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

The description implies usage context: searching tasks in the current workspace. It doesn't explicitly state when to use this tool vs alternatives like post_apollo_contacts_search or post_apollo_opportunities_search, but the resource is clear. The shared workspace warning adds context about scope but doesn't provide 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.

post_apollo_usage_stats_api_usage_statsView API Usage Stats and Rate LimitsA
Read-onlyIdempotent
Inspect

Current API usage and rate-limit state for the Apollo key in use: consumption per window and how much headroom is left. Despite being a POST this reads rather than writes. ⚠️ The limits are the AIsa account's, shared across all callers — one caller exhausting a window affects everyone. Check it when calls start failing on rate limits rather than on their arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON 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?

Beyond the readOnly hint, the description explains the key behavioral nuance: despite the POST verb, the tool 'reads rather than writes,' and that the rate-limit state is 'shared across all callers.' This is exactly the kind of non-obvious behavioral context annotations alone would 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.

Conciseness5/5

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

Three concise sentences, each carrying distinct value: the core output, the POST-read caveat, and the shared-limit warning, plus the reactive usage trigger. No filler or repetition of structured 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?

For a parameterless tool with an existing output schema and read-only annotations, the description fully covers purpose, behavior, and when to call it. Nothing needed to safely invoke the tool 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?

There are zero parameters, and schema description coverage is 100%, so no additional parameter semantics are needed. The description adds context about resource scope and side effects rather than parameters, which is appropriate for a zero-argument 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?

The description states exactly what the tool provides: 'Current API usage and rate-limit state for the Apollo key in use: consumption per window and how much headroom is left.' It also disambiguates from the many POST siblings by explicitly noting that 'Despite being a POST this reads rather than writes.' The verb/resource pairing is clear and no sibling offers the same function.

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

Usage Guidelines1/5

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

The description adds meaningful behavior beyond the annotations: it clarifies the POST semantic mismatch, notes the shared shared-account limits and their cross-caller impact ('one caller exhausting a window affects everyone'). The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict any of them.

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

post_waveinflu_ai_searchAI SearchA
Destructive
Inspect

Finds creators from a natural-language brief instead of a seed account. platform and query are required; add limit (1–100, default 40) and the same optional filters as Similar Creators. Describe the creators you want in plain language (for example, "beauty creators in the US") and the response returns matching creators in the same rich shape as Similar Creators — full profile metrics plus AI-inferred gender, ageRange, ethnicity, faceVisibility, accountPositioning, aiDescription, and a relevance score. Billing is per delivered creator (data.count).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of creators to return. Default 40, range 1–100. Caps the billed count.
queryYesNatural-language description of the creators you are looking for.
filtersNoOptional filters applied before matching. All fields are optional.
platformYesTarget platform.

Output Schema

ParametersJSON 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 declare destructiveHint=true and readOnlyHint=false, which would otherwise be puzzling for a search; the description resolves this by disclosing 'Billing is per delivered creator (data.count),' giving concrete cost semantics beyond the annotations. It still omits rate limits or pagination behavior, 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-loads the core distinction and then packs required params, limit bounds, return shape, and billing into a compact block with no filler. It is dense but every clause carries an operational fact, with only minor repetition of the limit range.

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 an output schema exists, the description needn't detail return fields, yet it still names the AI-inferred attributes and relevance score, and it covers billing, required params, and filters. Nothing critical is missing, though pagination/ordering behavior is not addressed.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters and the nested filters object are already documented. The description adds the limit range/default and the 'same optional filters as Similar Creators' cross-reference, but repeats schema content rather than adding format or edge-case meaning, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Finds creators') and immediately distinguishes the mechanism from its sibling: 'from a natural-language brief instead of a seed account,' directly contrasting with post_waveinflu_similar_creators. An agent can tell the two apart 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?

The 'instead of a seed account' framing implies the selection condition — use this when you have a text brief rather than a seed creator — and explicitly points at the parameters to supply. It stops short of an explicit 'if you have a seed account, use Similar Creators' exclusion, so routing still requires slight inference.

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

post_waveinflu_email_lookupEmail LookupA
Read-onlyIdempotent
Inspect

Looks up the contact email for one Instagram, TikTok, or YouTube creator from a profile URL. Pass profile_url; the response returns the parsed platform, the normalized profile_url, and an email object {status, value}. A not_found status (with value null) is a normal result, not an error, and is still billed as one valid lookup. Handles one creator per call. To assemble a creator list first, use Similar Creators or AI Search — each match already includes an email for most creators; use this endpoint for the ones that come back null.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_urlYesInstagram, TikTok, or YouTube creator profile URL.

Output Schema

ParametersJSON 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 cover the read-only/idempotent safety profile, but the description adds genuinely non-structured behavior: not_found with null value is a normal result rather than an error, and it is still billed as one valid lookup. It also states the one-creator-per-call constraint.

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 tight sentences, front-loaded with the core action, then parameter/response, then the billing caveat, then the sibling routing. 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 single-parameter lookup with an output schema and full annotation coverage, the description supplies everything an agent needs: input, normal-vs-error semantics, billing implication, cardinality, and sibling routing.

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

Parameters3/5

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

Schema description coverage is 100% and there is a single required parameter, so the schema already documents profile_url fully. The description only says 'Pass profile_url' and otherwise spends its words on output shape, adding little meaning beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb (looks up), resource (contact email), scope (one creator), and the supported platforms (Instagram, TikTok, YouTube). An agent can distinguish this from the batch/search 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?

Explicitly routes the agent: assemble a creator list with Similar Creators or AI Search first, then call this endpoint for the ones that return null emails. Names the alternatives and the condition that selects this tool.

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

post_waveinflu_similar_creatorsSimilar CreatorsA
Read-onlyIdempotent
Inspect

Finds creators similar to a seed account on Instagram, TikTok, or YouTube. platform and target_account are required; add limit (1–100, default 40) and optional filters (regions, languages, follower and play-count ranges, gender, ethnicity, creator type, face visibility, workspace dedup). Each match returns a rich profile: biography, email, followerCount, averagePlayCount / medianPlayCount, averageEngagementRate / medianEngagementRate, plus AI-inferred gender, ageRange, ethnicity, faceVisibility, accountPositioning tags, and an aiDescription, with a relevance score. Results are sorted by score descending. Billing is per delivered creator (data.count).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of creators to return. Default 40, range 1–100. Caps the billed count.
filtersNoOptional filters applied before matching. All fields are optional.
platformYesTarget platform.
target_accountYesSeed account: a creator handle (with or without @) or profile URL to find similar creators for.

Output Schema

ParametersJSON 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 cover safety (readOnly, idempotent, non-destructive, open-world). The description adds genuinely non-obvious behavior: results are sorted by relevance score descending, and billing is per delivered creator tied to data.count, which is important cost context. It does not mention rate limits or error behavior, but the additions go meaningfully 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?

Front-loaded with the purpose, then parameters, then return shape in three dense sentences with no filler. The enumerated field list is somewhat long and partly duplicates the output schema, which costs a bit of efficiency.

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 purpose, required inputs, filter knobs, sorting, and billing, which is more than enough for a read-only search with a full output schema. The return-field enumeration is redundant given the output schema exists, but 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.

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description goes further by summarizing limit's default and range and by grouping the filter families (regions, languages, follower/play-count ranges, gender, ethnicity, creator type, face visibility, workspace dedup) into a scannable overview that helps the agent plan a call without reading the nested 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 (finds creators similar to a seed account) and names all three supported platforms, so the agent immediately knows the scope. It is clearly distinguishable from the Apollo/Similarweb siblings and from the other waveinflu tools (ai_search, email_lookup).

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 statement (find lookalike creators given a seed), and required vs optional inputs are spelled out. However, it never says when to prefer this over the sibling post_waveinflu_ai_search, nor any when-not conditions, so the routing guidance 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.

put_apollo_phone_calls_idUpdate Call RecordsA
Destructive
Inspect

Update a logged call by its id — outcome, notes, duration. Send only what changes. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCall record ID.
loggedNoWhether to create an individual record.
statusNoCall status.
user_idNoCaller user IDs.
durationNoDuration in seconds.
end_timeNoISO 8601 end time.
to_numberNoDialed phone number.
account_idNoAccount ID.
contact_idNoContact ID.
start_timeNoISO 8601 start time.
from_numberNoCaller phone number.
phone_call_outcome_idNoOutcome ID.
phone_call_purpose_idNoPurpose ID.

Output Schema

ParametersJSON 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?

The description adds significant behavioral context beyond the annotations: it warns that writes land in a shared AIsa workspace with no per-caller isolation, which is not captured in readOnlyHint/destructiveHint. It also implies partial update semantics ('send only what changes'). These details are consistent with destructiveHint=true and add value for the agent.

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

Conciseness4/5

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

The description is concise, consisting of three sentences that each serve a purpose: the first states the action and fields, the second gives the partial-update instruction, and the third warns about the shared workspace. It is front-loaded with the core purpose and contains no redundant filler. The only minor issue is the 'notes' inaccuracy, but structurally it is 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?

For a write operation with 13 parameters and an output schema, the description covers the essential behavioral aspects: it is an update by id, only changed fields are sent, and the write affects a shared workspace. It does not mention the required id (but the schema does) or error handling, but the output schema presumably covers the response. The shared-workspace warning is critical context that makes the description fairly complete for an agent.

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 coverage is 100%, so the schema already documents all parameters. The description adds the partial-update guidance, which is helpful, but it incorrectly lists 'notes' as an updatable field when no 'notes' parameter exists in the input schema (only phone_call_outcome_id, duration, etc.). This inaccuracy could mislead an agent into searching for a notes parameter. The description does not clarify which other fields can be updated beyond the three mentioned, so it only partially compensates for the schema's completeness.

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

Purpose5/5

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

The description clearly states the action (update), the resource (logged call), and identifies it by id. It lists specific updatable fields (outcome, notes, duration) which, while notes is not in the schema, the intent is unambiguous. It distinguishes from sibling tools like post_apollo_phone_calls (create) and get_apollo_phone_calls_search (search) through the verb and resource.

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

Usage Guidelines3/5

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

The description implies this is for modifying existing call records by requiring an id, and it gives a clear instruction to 'send only what changes,' which is a useful partial-update guideline. However, it does not explicitly mention when to use this over creating a new call (post_apollo_phone_calls) or searching, leaving the agent to infer from the name and context. It lacks explicit exclusions or alternative routing.

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

useRun an AIsa operationA
Destructive
Inspect

Execute one AIsa operation. Billed per call to your AIsa key.

Answers in tool-router's BatchCallResult shape: successful, data or error {type, status, message, retryable}. Pinned tools in tools/list can also be called directly; this is the way to call anything found through search.

ParametersJSON Schema
NameRequiredDescriptionDefault
argumentsNoArguments matching input_schema / arguments_schema
search_idNosearch_id from the search that found this operation
operation_idYesoperation_id as returned by search
max_price_usdNoRefuse the call before any spend if it would cost more than this many USD

Output Schema

ParametersJSON 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 provide readOnly=false, openWorldHint=true, and destructiveHint=true. The description adds valuable behavior beyond that: billing per call, the BatchCallResult response shape, and the error structure with retryable status. It does not spell out side effects, but the destructive flag is already carried by annotations, so the additional context is sufficient.

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

Conciseness5/5

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

Three short sentences, each earning its place: purpose, cost, response shape, and routing guidance. Key behavioral facts are front-loaded, and nothing is redundant with the schema or annotations.

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 all parameters have descriptions, the tool description is complete enough for correct invocation. It covers cost, return/error contracts, and how routing to this tool differs from calling pinned tools directly, leaving no 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 100%, and each parameter is already clearly documented: operation_id as returned by search, search_id provenance, arguments matching input_schema, and max_price_usd as a spend guard. The description does not need to add parameter detail, so baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Execute one AIsa operation,' a specific verb+resource statement. The word 'one' distinguishes it from the sibling batch_use, and the closing note distinguishes it from calling pinned tools directly. An agent can tell what this tool is for immediately.

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

Usage Guidelines5/5

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

It explicitly states when to use the tool: 'this is the way to call anything found through search.' It also gives the alternative: 'Pinned tools in tools/list can also be called directly.' This is clear when-versus-alternative guidance with no ambiguity.

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. 3 tool updates
    • Addedpost_waveinflu_ai_search
    • Changedpost_waveinflu_email_lookup3 fields changed
      • addedInput schema / properties / profile_url
        Added value: +{
        +  "description": "Instagram, TikTok, or YouTube creator profile URL.",
        +  "example": "https://www.instagram.com/onkimia/",
        +  "type": "string"
        +}
      • removedInput schema / properties / url
        Removed value: -{
        -  "description": "TikTok, Instagram, or YouTube creator profile URL.",
        -  "example": "https://www.instagram.com/onkimia/",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[
        +  "profile_url"
        +]
    • Changedpost_waveinflu_similar_creators21 fields changed
      • removedInput schema / properties / contentDirection
        Removed value: -{
        -  "description": "Natural-language description of the creator type you are looking for. Max 800 characters.",
        -  "example": "consumer tech creators covering AI apps, Android phones, productivity gadgets, and honest product reviews",
        -  "maxLength": 800,
        -  "type": "string"
        -}
      • addedInput schema / properties / filters / description
        Added value: +"Optional filters applied before matching. All fields are optional."
      • addedInput schema / properties / filters / properties / creatorTypes
        Added value: +{
        +  "description": "Creator account types, e.g. [\"individual\", \"brand\"].",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / filters / properties / ethnicities
        Added value: +{
        +  "description": "Inferred creator ethnicities.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / filters / properties / faceVisibilities
        Added value: +{
        +  "description": "Face-visibility classifications, e.g. [\"clear_face\", \"mixed\", \"no_face\"].",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / filters / properties / genders
        Added value: +{
        +  "description": "Inferred creator genders, e.g. [\"female\", \"male\"].",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / filters / properties / maxPlayCount
        Added value: +{
        +  "description": "Maximum play / view count, measured by `playCountMetric`.",
        +  "type": "number"
        +}
      • removedInput schema / properties / filters / properties / maxVideosAverageViews
        Removed value: -{
        -  "description": "Maximum average view / play count.",
        -  "type": "number"
        -}
      • addedInput schema / properties / filters / properties / minPlayCount
        Added value: +{
        +  "description": "Minimum play / view count, measured by `playCountMetric`.",
        +  "type": "number"
        +}
      • removedInput schema / properties / filters / properties / minVideosAverageViews
        Removed value: -{
        -  "description": "Minimum average view / play count.",
        -  "type": "number"
        -}
      • addedInput schema / properties / filters / properties / playCountMetric
        Added value: +{
        +  "description": "Whether `minPlayCount` / `maxPlayCount` are compared against the median or the average play count.",
        +  "enum": [
        +    "median",
        +    "average"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / filters / properties / regions / description
        Previous value: -"Creator regions, e.g. [\"US\", \"GB\", \"JP\"]."New value: +"Creator regions (ISO country codes), e.g. [\"US\", \"GB\", \"JP\"]."
      • addedInput schema / properties / filters / properties / workspaceDeduplicationEnabled
        Added value: +{
        +  "description": "When true, creators already saved in your workspace are excluded from the results.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / limit / default
        Previous value: -25New value: +40
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of creators to return. Default 25, range 1–100."New value: +"Maximum number of creators to return. Default 40, range 1–100. Caps the billed count."
      • changedInput schema / properties / platform / description
        Previous value: -"Target platform. Currently supports youtube and tiktok."New value: +"Target platform."
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "youtube",
        -  "tiktok"
        -]New value: +[
        +  "instagram",
        +  "tiktok",
        +  "youtube"
        +]
      • changedInput schema / properties / platform / example
        Previous value: -"youtube"New value: +"instagram"
      • removedInput schema / properties / seedProfileUrl
        Removed value: -{
        -  "description": "YouTube or TikTok creator profile URL as the seed for matching.",
        -  "example": "https://www.youtube.com/@mkbhd",
        -  "type": "string"
        -}
      • addedInput schema / properties / target_account
        Added value: +{
        +  "description": "Seed account: a creator handle (with or without @) or profile URL to find similar creators for.",
        +  "example": "@onkimia",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "platform"
        -]New value: +[
        +  "platform",
        +  "target_account"
        +]
  2. 84 tool updates
    • First observedbatch_use
    • First observedget_apollo_account_stages
    • First observedget_apollo_accounts_id
    • First observedget_apollo_contact_stages
    • First observedget_apollo_contacts_contact_id
    • First observedget_apollo_email_accounts
    • First observedget_apollo_emailer_messages_id_activities
    • First observedget_apollo_emailer_messages_search
    • First observedget_apollo_fields
    • First observedget_apollo_labels
    • First observedget_apollo_notes
    • First observedget_apollo_opportunities_opportunity_id
    • First observedget_apollo_opportunities_search
    • First observedget_apollo_opportunity_stages
    • First observedget_apollo_organizations_enrich
    • First observedget_apollo_organizations_id
    • First observedget_apollo_organizations_organization_id_job_postings
    • First observedget_apollo_phone_calls_search
    • First observedget_apollo_typed_custom_fields
    • First observedget_apollo_users_search
    • First observedget_details
    • First observedget_similarweb_ad_networks
    • First observedget_similarweb_audience_interest
    • First observedget_similarweb_audience_overlap
    • First observedget_similarweb_deduplicated_audience
    • First observedget_similarweb_demographics
    • First observedget_similarweb_keyword_competitors
    • First observedget_similarweb_keywords
    • First observedget_similarweb_landing_pages
    • First observedget_similarweb_marketing_channel_sources_legacy
    • First observedget_similarweb_popular_pages
    • First observedget_similarweb_ppc_spend
    • First observedget_similarweb_ranking
    • First observedget_similarweb_referrals
    • First observedget_similarweb_serp_players_aggregated
    • First observedget_similarweb_serp_players_timeseries
    • First observedget_similarweb_similar_sites
    • First observedget_similarweb_subdomains
    • First observedget_similarweb_technologies
    • First observedget_similarweb_top_sites_ranking
    • First observedget_similarweb_traffic_engagement
    • First observedget_similarweb_website_top_geographies
    • First observedget_similarweb_website_traffic_snapshot
    • First observedget_similarweb_website_traffic_trend
    • First observedlist_categories
    • First observedpatch_apollo_accounts_account_id
    • First observedpatch_apollo_contacts_contact_id
    • First observedpatch_apollo_opportunities_opportunity_id
    • First observedpost_apollo_accounts
    • First observedpost_apollo_accounts_bulk_create
    • First observedpost_apollo_accounts_bulk_update
    • First observedpost_apollo_accounts_search
    • First observedpost_apollo_accounts_update_owners
    • First observedpost_apollo_contacts
    • First observedpost_apollo_contacts_bulk_create
    • First observedpost_apollo_contacts_bulk_update
    • First observedpost_apollo_contacts_search
    • First observedpost_apollo_contacts_update_owners
    • First observedpost_apollo_contacts_update_stages
    • First observedpost_apollo_emailer_campaigns_add_contact_ids
    • First observedpost_apollo_emailer_campaigns_remove_or_stop_contact_ids
    • First observedpost_apollo_emailer_campaigns_search
    • First observedpost_apollo_emailer_campaigns_sequence_id_abort
    • First observedpost_apollo_emailer_campaigns_sequence_id_approve
    • First observedpost_apollo_emailer_campaigns_sequence_id_archive
    • First observedpost_apollo_fields
    • First observedpost_apollo_mixed_companies_search
    • First observedpost_apollo_mixed_people_api_search
    • First observedpost_apollo_news_articles_search
    • First observedpost_apollo_opportunities
    • First observedpost_apollo_organizations_bulk_enrich
    • First observedpost_apollo_people_bulk_match
    • First observedpost_apollo_people_match
    • First observedpost_apollo_phone_calls
    • First observedpost_apollo_reports_sync_report
    • First observedpost_apollo_tasks
    • First observedpost_apollo_tasks_bulk_create
    • First observedpost_apollo_tasks_search
    • First observedpost_apollo_usage_stats_api_usage_stats
    • First observedpost_waveinflu_email_lookup
    • First observedpost_waveinflu_similar_creators
    • First observedput_apollo_phone_calls_id
    • First observedsearch
    • First observeduse

Publisher details

Operator
AIsa · Publisher source
Operator website
https://aisa.one
Vendor relationship
Independent
Trust center
Not available
Restrictions
No paid plan, admin approval, regional limit or custom OAuth app is needed to connect. Sign-in is OAuth against auth.aisa.one with dynamic client registration (RFC 7591), or an Authorization: Bearer AIsa API key. search, get_details and list_categories are free. use and batch_use are billed per call to the caller's own AIsa key, and max_price_usd refuses anything above a cap before any spend. Some operations are subscription-only on the gateway and answer 402 without the Hive GTM Growth plan.

Related MCP Connectors

  • Your agent needs B2B contacts and the pipeline objects around them — find the company, find the person, get the email, then write it back where your team works. **What you can ask for** • "Find heads of engineering at Series-B SaaS companies in the Nordics, with emails." • "Enrich these companies with headcount, industry and funding." • "What roles is this company hiring for right now?" • "Create an account and a contact, then log this opportunity." • "Search our sequences for messages sent to this domain." **How to use it** Point any MCP client at https://mcp.aisa.one/apollo/mcp and sign in with OAuth — there is no key to create or paste. 54 tools: people and organisation search and enrichment, job postings, accounts, contacts, opportunities and their stages, custom fields, labels, notes, users, email accounts, sequence messages and phone-call search — reads and writes. **Why this rather than the source** The full object model, not just a search endpoint, so an agent can finish the job rather than hand you a CSV. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the person here, then ask the same agent what their company's traffic looks like or what they rank for — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/sales/mcp adds Similarweb and creator discovery around it.

  • Your agent needs one go-to-market picture — the market, the companies in it, the people who decide, and what is being said about them — in a single set of tools. **What you can ask for** • "Size this market: who ranks, who gets the traffic, who advertises." • "Find the companies that fit and the people to email inside them." • "What is being said about these brands on X, Reddit and Instagram?" • "Which of these prospects is hiring for roles that imply budget?" • "Give me a competitor's keywords, backlinks and traffic mix in one pass." **How to use it** Point any MCP client at https://mcp.aisa.one/gtm/mcp and sign in with OAuth — there is no key to create or paste. 43 tools drawn from Apollo, Similarweb, Semrush, Ahrefs, X/Twitter, Instagram, Reddit and Pinterest — company enrichment and job postings, traffic and audience, keywords, backlinks and domain rating, and social search. **Why this rather than the source** The cross-source questions that usually need four tabs, answered in one conversation. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Start anywhere here, then keep going — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/sales/mcp for the pipeline side, https://mcp.aisa.one/seo/mcp for the search side, https://mcp.aisa.one/social/mcp for the conversation side.

  • Your agent needs live data — a competitor's traffic, who to contact there, what people are saying, what Google and ChatGPT answer about you, a company's filings. Normally that is six vendor accounts, six sets of keys and six SDKs. This is one URL. **What you can ask for** • "How much traffic does stripe.com get, where does it come from, and who competes for the same keywords?" • "Find 20 Series-B fintech companies in Germany and the heads of marketing there, with emails." • "Does ChatGPT mention our brand when someone asks for the best CRM — and what does it cite?" • "What is X saying about $NVDA today, and what did the stock actually do?" • "Search the web for this, then scrape the three best pages into markdown." **How to use it** Point any MCP client at https://mcp.aisa.one/mcp and sign in with OAuth — there is no key to create or paste. Then just ask: the agent calls search to find the right operation and use to run it. **Why this rather than the source** 26 sources behind one account and one bill — DataForSEO, Semrush, Ahrefs, Similarweb, Apollo, X/Twitter, Instagram, Reddit, Pinterest, YouTube, Tavily, Exa, Perplexity, Firecrawl, CoinGecko, Kalshi, Polymarket, AgentMail and more, 580+ operations. tools/list returns five tools, not 580, so the introduction does not eat your context window. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** One slice at a time: https://mcp.aisa.one/seo/mcp · /finance/mcp · /social/mcp · /search/mcp · /sales/mcp · /mail/mcp · /gtm/mcp, or a single provider like /twitter-api/mcp. Same account, fewer tools listed, and search still reaches everything. Full list at https://mcp.aisa.one/servers

  • Your agent needs X/Twitter data — who follows a competitor, what a community is posting, who quoted that tweet, what is trending in Japan. Normally that means applying for an X developer account, passing app review, and managing a quota per endpoint. **What you can ask for** • "Who follows @stripe, and which of them are verified?" • "Pull every reply and quote on this tweet and summarise what people object to." • "List this community's moderators and its posts this week." • "What is trending in Japan right now?" • "Give me the full thread context behind this link, including the long-form article." **How to use it** Point any MCP client at https://mcp.aisa.one/twitter-api/mcp and sign in with OAuth — there is no key to create or paste. 29 read tools: users (profile, about, batch lookup by id, search, followers, verified followers, followings, follow check), tweets (timeline, latest, mentions, advanced search, replies, quotes, retweeters, thread context, articles), communities, lists, Spaces and trends. **Why this rather than the source** No developer account to apply for, no app review, no per-endpoint quota to manage. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Ask for a handle's followers here, then ask the same agent for that brand's search traffic, its backlinks, or the people to contact — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/social/mcp for X plus Instagram, Reddit, Pinterest and YouTube; https://mcp.aisa.one/gtm/mcp for those plus Similarweb and Apollo.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Apollo.io MCP server for prospecting, lead enrichment, sales intelligence, and outreach workflows. Integrates Apollo.io go-to-market data into MCP-compatible AI applications.
    25
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Give your AI agent access to 60M+ companies and 300M+ verified contacts. Enrich leads, find work emails, discover tech stacks, and identify buying intent — directly from Claude, Cursor, Windsurf, or any MCP-compatible AI agent.
    11
    26 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Argorant MCP Server — give your AI agent direct access to 614M verified B2B contacts. Query by industry, role, geography, and 100+ filters, then export emails verified by a live SMTP probe at request time (catch-alls flagged, invalids free). OAuth-secured. Works with Claude, ChatGPT, Cursor, and any MCP client. Endpoint: https://mcp.argorant.com/mcp
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A unified MCP server that connects HubSpot, Clay, Apollo, Slack, and email to enable AI agents to execute multi-step GTM workflows such as prospecting, enrichment, CRM updates, and notifications.
    26 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources