Skip to main content
Glama
dyngai

apollo-mcp

by dyngai

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool targets a distinct resource (people, contacts, companies, accounts, deals, sequences, tasks, messages, phone calls) with clear verbs. Overlap is avoided by scoping searches to either the prospect database or CRM, and by differentiating get/enrich/reveal operations.

    Naming Consistency5/5

    All tools follow the apollo_<verb>_<noun> pattern with snake_case. Verbs like get, search, list, create, update, bulk, add, remove, abort, archive, approve, reveal, enrich, match are consistently applied to the appropriate nouns. No mixing of conventions.

    Tool Count3/5

    45 tools is a high count, bordering on overwhelming, but the server aims to provide comprehensive access to the Apollo platform. While the count exceeds the typical 15-25 range for well-scoped servers, each tool serves a distinct and necessary function, justifying the number.

    Completeness4/5

    The tool set covers most major CRM workflows: search, create, update, enrich, and manage contacts, accounts, deals, tasks, and sequences. However, there are notable gaps such as no delete operations for contacts, accounts, or deals, and no tool to create sequences, which slightly hinders full lifecycle management.

  • Average 3.5/5 across 38 of 45 tools scored. Lowest: 2.3/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is failing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior1/5

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

    The description mentions parameters like 'open_factor' and 'due_at_range' that are not present in the input schema, making it misleading. No annotations exist to provide behavioral context, so the description alone is inaccurate and fails to disclose important traits like pagination limits or default behavior.

    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 sentence but is not concise due to inaccuracies and overpromises parameters. It could be shorter and more accurate by listing only schema-defined parameters.

    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 does not mention return values. It fails to cover all schema parameters (e.g., contact_ids) and provides no usage context. For a 5-param tool with no annotations, this is inadequate.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. However, it only partially describes actual parameters (owner_ids, extra, pagination) while inventing others (open_factor, due_at_range). It does not explain page vs per_page behavior, owner_ids format, or the extra bag's structure, leaving significant gaps.

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

    Purpose4/5

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

    The tool's purpose is stated as 'Search tasks,' which is a clear verb+resource pair. It is specific but does not distinguish from sibling search tools like apollo_search_people or apollo_search_contacts, which could cause confusion about the exact domain of tasks.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, such as apollo_create_task or other search tools. There is no mention of prerequisites, when not to use it, or expected use cases.

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

  • Behavior2/5

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

    Without annotations, the description should disclose behavioral traits like side effects, prerequisites, or error conditions. It only states the action without explaining what happens when contacts are added, whether it's idempotent, or if permissions are needed. This is insufficient for safe usage.

    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 concise at one sentence plus a note, but it is too brief given the tool has 8 parameters. It sacrifices completeness for brevity, making it less useful than it could be.

    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 8 parameters, no annotations, and a brief description, the tool is underdescribed. The output schema exists but does not compensate for the lack of behavioral context. The description does not cover typical use cases, prerequisites, or outcomes.

    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 low (38%). The description adds value for one parameter (send_email_from_email_account_id) by noting it is typically required, but the other 5 parameters lack any description in both schema and description, leaving their semantics unclear.

    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 'Add one or more contact IDs to an emailer sequence', using a specific verb and resource. However, it does not differentiate from sibling tools like remove_contacts_from_sequence or abort_sequence, which limits distinction.

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

    Usage Guidelines3/5

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

    The description mentions that send_email_from_email_account_id is typically required, giving some usage guidance. But it does not provide context on when to use this tool versus alternatives (e.g., remove or abort), nor exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It indicates a write operation ('Save') but lacks details on permissions, side effects, error handling, or constraints beyond the vague 'prospect search results' context.

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

    Conciseness5/5

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

    The description is extremely concise with two front-loaded sentences. Every word carries weight and there is no extraneous text.

    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 three parameters, the description fails to cover the purpose of optional parameters or the output shape. For a tool that mutates data, this is insufficient.

    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 only 33% (only entity_ids has a description). The description merely repeats that entity_ids should come from people search, adding minimal value. The optional parameters (analytics_context, skip_fetching_people) are not explained at all.

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

    Purpose4/5

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

    Description states a specific action ('Save people from prospect search results to My Prospects') with a clear resource. It distinguishes from sibling tools like search_people (search) and create_contact (creation).

    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 implies usage after a people search ('Pass the entity IDs from search results'), but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for transparency. It mentions that six fields are required, but fails to disclose side effects, permission needs, rate limits, or whether the operation is idempotent. The basic create action is implied, but important behavioral details are missing.

    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 core action. Every sentence is necessary and informative.

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

    Completeness2/5

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

    Even with an output schema, the description lacks context about prerequisites (e.g., user_id or contact_ids must exist), default behavior for the optional note parameter, or clarification of terms like 'teammate'. For a 7-parameter create tool, the description is too sparse to be considered complete.

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

    Parameters3/5

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

    Schema coverage is 100% with descriptions for all 7 parameters, so the schema already documents meaning well. The description redundantly lists the six required fields but adds no new semantic value beyond emphasizing requirements, warranting a baseline 3.

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

    Purpose4/5

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

    Description clearly states 'Create a task assigned to a teammate, scoped to one or more contacts', specifying the verb (create) and resource (task). Sibling tools like apollo_bulk_create_tasks and apollo_search_tasks are distinct by name, but the description does not explicitly differentiate usage, leaving some ambiguity.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., apollo_bulk_create_tasks for batch creation). The description simply explains what the tool does without providing contextual or exclusionary cues.

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

  • Behavior2/5

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

    With no annotations, the description should disclose behavioral traits like read-only nature, authentication requirements, or error handling. It only states the action without any behavioral context, leaving the agent uninformed.

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

    Conciseness4/5

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

    The description is a single, concise sentence that front-loads the key information. While it could include more detail without being verbose, it is not unnecessarily wordy.

    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 output schema exists and the tool is simple, the description is adequate but lacks completeness in terms of behavioral and usage context. It does not mention that this is a read operation or any prerequisites.

    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 parameter description is adequate ('The Apollo organization ID'). The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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

    Purpose4/5

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

    The description clearly states the action ('get') and resource ('complete information for a specific organization'), and the parameter identifies the organization by ID. It distinguishes from siblings like apollo_search_companies (search) and apollo_enrich_company (enrich), but could be more explicit about what 'complete' encompasses.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives such as apollo_enrich_company or apollo_get_organization_top_people. The description lacks any 'when to use' or 'when not to use' directives.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden for behavioral disclosure. It only mentions the endpoint and method, lacking details on side effects, authorization needs, or update semantics (e.g., partial vs. full update).

    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 a single sentence, but it contains the essential purpose. However, it could benefit from additional information without becoming verbose.

    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 moderate complexity (5 parameters, 1 required) and no annotations, the description is insufficient. It does not explain what fields are updatable, validation rules, or error conditions, even though an output schema exists.

    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?

    The description does not explain any parameters beyond the input schema, which has only 20% coverage. The tool description adds no meaning to note, extra, status, or duration.

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

    Purpose5/5

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

    The description clearly states the verb 'Update' and the resource 'phone-call record', and includes the HTTP method and endpoint. This distinguishes it from sibling tools like 'apollo_create_phone_call'.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, such as when to update vs. create a phone call. No prerequisites or exclusions are mentioned.

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

  • Behavior2/5

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

    Without annotations, description should fully disclose behavior. It indicates output includes IDs but does not mention pagination (despite page/per_page parameters), rate limits, or that it is a safe read operation. Behavioral traits are partially described but incomplete.

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

    Conciseness4/5

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

    Description is two sentences and front-loaded with the main action. It is concise, though could include a quick note on parameters without becoming verbose.

    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 optional pagination parameters and output schema, description lacks parameter usage context and fails to mention pagination behavior. It notes the utility of returned IDs but is not complete for an agent to reliably use the tool.

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

    Parameters1/5

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

    Schema coverage is 0% and description adds no meaning to the parameters 'page' and 'per_page'. The agent must infer from parameter names alone, which is insufficient for correct invocation.

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

    Purpose5/5

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

    Description clearly states 'List teammates (users) in your Apollo account.' It specifies the action and resource, and distinguishes from sibling tools like apollo_search_contacts by focusing on users/teammates. The mention of returning IDs needed for owner_id/user_id adds specificity.

    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?

    Description mentions requirement of a master Apollo API key, but provides no guidance on when to use vs alternatives like apollo_search_contacts or apollo_get_person. No explicit exclusions or contexts given.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It mentions PATCH but does not explain idempotency, partial update behavior, error handling (e.g., 404 if account not found), or authorization requirements.

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

    Conciseness4/5

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

    Single sentence that is front-loaded and efficient. However, it could be slightly expanded to include parameter hints without losing conciseness.

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

    Completeness2/5

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

    Despite having an output schema, the tool has 9 parameters with low schema coverage and no annotations. The description does not provide enough context about parameter dependencies, value ranges, or typical usage scenarios.

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

    Parameters1/5

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

    Schema coverage is only 11% (only account_id has a description). The description does not explain any of the 9 parameters, leaving the agent to guess the meaning of fields like account_stage_id or label_names.

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

    Purpose5/5

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

    Clearly states verb 'Update', resource 'CRM account', and HTTP method 'PATCH'. Distinguishes from sibling tools like apollo_create_account (creation) and apollo_search_accounts (listing).

    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?

    Implies usage for updating existing accounts via the verb 'Update', but no explicit guidance on when to use vs alternatives like apollo_create_account, or prerequisites such as needing an existing account ID.

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

  • Behavior2/5

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

    With no annotations, description carries full burden. Only says 'hide from active list' but does not disclose if reversible, permissions needed, or side effects. Minimal transparency for a mutation.

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

    Conciseness4/5

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

    Extremely concise (6 words), front-loaded with key action. Could include more detail without becoming verbose, but no wasted words.

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

    Completeness2/5

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

    Given the tool's simplicity and presence of an output schema, the description is too minimal. Lacks context on post-archive state, undo, or impact on contacts and sequences.

    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 description for the single parameter. The description adds no additional parameter context beyond what the schema provides.

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

    Purpose5/5

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

    The description clearly states the action (archive) and resource (sequence) with additional clarification (hide from active list). It distinguishes from sibling tools like abort, approve, add/remove contacts.

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

    Usage Guidelines2/5

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

    No guidance on when to archive vs abort or other sequence actions. Does not mention prerequisites or context for choosing this tool over alternatives.

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

  • Behavior2/5

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

    No annotations are provided, so the description must fully disclose behavior. It only hints at input format without discussing error handling, idempotency, rate limits, or partial failures common in bulk operations. This omission leaves agents unaware of critical 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.

    Conciseness4/5

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

    The description is a single sentence that is concise and front-loaded. It wastes no words but could benefit from additional structure to improve readability for a bulk operation with multiple parameters.

    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 (per context), the description lacks essential context for a bulk creation tool: no mention of limits, error responses, success confirmation, or handling of duplicate accounts. This incompleteness hinders safe and reliable execution.

    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 low (33%), with only 'accounts' described in the schema. The description adds value by listing example fields ('name/domain/phone/etc.'), clarifying what dicts should contain. However, it does not explain 'run_dedupe' or 'append_label_names', leaving gaps.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: 'Bulk-create CRM accounts.' This verb+resource format is specific and distinguishes it from siblings like 'apollo_create_account' (single account) and 'apollo_bulk_create_contacts' (different entity).

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, such as 'apollo_create_account' for single creation or 'apollo_bulk_create_contacts' for contacts. No context on prerequisites or conditions is given.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the tool searches messages, implying a read operation, but does not confirm that, nor does it discuss any side effects, authentication needs, rate limits, or what happens with empty results. The description adds minimal value beyond the obvious.

    Agents need to know what a tool does to the world before 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 (two sentences) and front-loads the main purpose. It wastes no words but could benefit from a slightly more structured listing of filter capabilities. Still, efficient for its length.

    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 5 parameters and an output schema (not shown), the description ignores pagination details and does not explain how to use page/per_page. The freeform 'extra' bag is mentioned but not documented in terms of supported filter keys. For a search tool, more detail about filter syntax and pagination would be expected.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It explains that the 'extra' parameter is a freeform bag for filters (sequence, recipient, status, date range), which provides some meaning not captured by the schema. However, it does not clarify the expected format of 'extra' or the purpose of page/per_page. Partial compensation.

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

    Purpose5/5

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

    The description clearly states the action ('Search') and the resource ('sent emailer messages'), and lists specific filter dimensions (sequence, recipient, status, date range) via the 'extra' bag. It effectively distinguishes this tool from siblings like apollo_get_emailer_message_activities or apollo_search_sequences.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives. The description mentions filtering via 'extra' but does not explain when to use specific parameters (sequence_ids, contact_ids) versus the freeform bag. There is no mention of prerequisites or cases where other tools might be more appropriate.

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

  • Behavior2/5

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

    No annotations exist, so the description must carry the burden. The only behavioral trait disclosed is the requirement for a master API key. The description does not mention whether the operation is read-only, what data is returned, or any potential 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?

    The description is extremely concise—two sentences covering purpose and a key requirement. No extraneous words, efficiently front-loaded.

    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 three parameters (only one described), no annotations, and an output schema that is not referenced, the description is insufficient for agent understanding. It lacks details on pagination, filtering behavior, and output structure, even though output schema exists.

    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 low (33%, only q_name has a description). The tool description adds no parameter-specific meaning beyond the schema; it only implies that q_name is for keyword filtering. Page and per_page are not addressed, and the description does not compensate for the low 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 that the tool searches emailer sequences (campaigns) in a user's Apollo account, using the specific verb 'Search' and the resource 'sequences'. This purpose is distinct from sibling tools that search other entities like contacts or companies.

    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 provide any guidance on when to use this tool versus alternatives, such as sequence manipulation tools (apollo_abort_sequence, apollo_archive_sequence) or other search tools. No exclusions or context are given.

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

  • Behavior2/5

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

    No annotations provided, so description must carry full burden. Only says approval enables sending; lacks details on side effects, reversibility, permissions, or what happens if already approved.

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

    Conciseness5/5

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

    Single sentence front-loading the action and purpose. No wasted words.

    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 mutation tool with no annotations, the description is too minimal. Despite having output schema (not shown), it doesn't explain return behavior, confirmation, or failure cases. Lacks completeness for safe 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 the schema already documents the parameter. Description adds no additional meaning beyond the schema's 'Apollo emailer_campaign (sequence) 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 the action (approve) and the resource (sequence) with the purpose of enabling sending. Distinguishes well from sibling tools like abort, archive, search, add/remove contacts.

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

    Usage Guidelines2/5

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

    No guidance on when to use, prerequisites (e.g., sequence must exist and not already approved), or alternatives. Only states the primary action.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. Only states action, but no details on side effects (e.g., irreversible?), error handling for invalid IDs, idempotency, or concurrency limits.

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

    Conciseness5/5

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

    Single sentence, concise and to the point, no redundancy.

    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 an output schema present, return values need not be explained. However, the description lacks usage and behavioral context, making it insufficient for an AI agent to confidently use the tool without external knowledge.

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

    Parameters3/5

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

    Schema coverage is 100% with one parameter (task_ids) described as 'Task IDs to complete'. The description adds 'multiple tasks' context but does not significantly enhance the schema's 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 'Mark multiple tasks as complete by ID' clearly specifies a verb (mark), resource (tasks), action (complete), and method (by ID). It distinguishes from sibling tools like apollo_create_task (creation) and apollo_search_tasks (searching).

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives (e.g., apollo_create_task, apollo_bulk_create_tasks) or prerequisites like task IDs must exist. Lacks exclusion criteria.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. It states 'Create' implying a write operation, but does not mention idempotency, side effects, or outcomes (e.g., whether a duplicate is created if run_dedupe is false). Key parameters like run_dedupe and owner_id are left unexplained, leaving the agent unaware of potential impacts.

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

    Conciseness5/5

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

    The description is extremely concise, containing only two sentences. The first sentence states the purpose, and the second provides a key usage tip about 'extra'. No wasted words.

    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 8 optional parameters and no annotations, the description is incomplete. It does not explain the output (despite an output schema existing), does not discuss error conditions, and lacks context about when to create versus update. The agent would need to infer critical details from the parameter names alone.

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

    Parameters2/5

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

    The description explains the 'extra' parameter's purpose (for additional fields), but does not describe the meaning of the other 7 explicit parameters (name, phone, domain, owner_id, run_dedupe, raw_address, account_stage_id). Schema coverage is 0%, so the description fails to compensate adequately.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a single CRM account', which is a specific verb and resource. It distinguishes from bulk creation by emphasizing 'single', and hints at handling extra fields via 'extra' parameter. This sets it apart from sibling tools like apollo_bulk_create_accounts.

    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 implicit guidance by mentioning 'single' versus bulk creation, but does not explicitly state when to use this tool over alternatives like apollo_update_account or apollo_bulk_create_accounts. It also lacks prerequisites or contextual cues about required fields or permissions.

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

  • Behavior2/5

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

    With no annotations available, the description carries full burden for behavioral disclosure. It does not explain what 'enrich' entails (e.g., whether it mutates data, requires authentication, or has rate limits). The phrase 'using Apollo match' adds minimal clarity.

    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 12-word sentence with no fluff. It front-loads the verb and is perfectly concise.

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

    Completeness3/5

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

    Given the tool's simplicity (2 optional params, output schema present), the description is partially complete. It conveys the core action but lacks usage context, behavioral details, and differentiation from siblings, leaving gaps for an AI agent.

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

    Parameters3/5

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

    The input schema has 0% description coverage, so the description must compensate. It implies at least one of 'name' or 'domain' should be provided, but does not specify format, priority, or behavior when both are given. This provides basic but insufficient detail.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 enriches a company/organization by domain or name using Apollo match. The verb 'enrich' and resource 'company/organization' are specific, and it distinguishes from siblings like apollo_enrich_person (different resource) and apollo_search_companies (search vs enrich).

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives such as apollo_search_companies or apollo_get_complete_organization_info. It does not specify context, prerequisites, or when not to use it.

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

  • Behavior3/5

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

    With no annotations, the description carries full burden. It discloses async behavior and return of a job descriptor. However, it lacks details on side effects, reversibility, or authorization needs. Adequate but incomplete.

    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 (two sentences) and front-loaded with purpose. Every sentence adds value: first states the operation, second provides mode and async detail. No fluff.

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

    Completeness3/5

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

    The description is minimally complete: states purpose and basic behavior. However, for a mutation tool, it lacks context on prerequisites, side effects, and error states. The output schema is referenced but not detailed. With sibling tools, more guidance would be beneficial.

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

    Parameters3/5

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

    Schema descriptions cover all parameters (100% coverage). The tool description adds no meaningful parameter semantics beyond reiterating the default mode. Baseline score of 3 is appropriate.

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

    Purpose4/5

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

    The description clearly states the action ('remove or stop contacts in one or more sequences') and resource. It provides context about the mode and async nature. However, it does not explicitly distinguish from sibling tools like apollo_abort_sequence or apollo_archive_sequence, which could be confused.

    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 offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when-not to use, or point to alternative tools for different use cases, such as aborting or archiving sequences.

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

  • Behavior2/5

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

    With no annotations provided, the description must fully disclose behavior. It only mentions 'comprehensive filtering options' but does not discuss pagination, rate limits, error handling, or what happens with invalid inputs. This is insufficient for safe invocation.

    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. Every word adds value, and it is front-loaded with the main purpose. No wasted information.

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

    Completeness3/5

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

    Given the moderate complexity (4 parameters, output schema exists), the description is adequate but not fully complete. It lacks mention of pagination limits (though schema covers per_page) or typical use cases, but the high schema coverage compensates.

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

    Parameters3/5

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

    The input schema has 100% description coverage, so each parameter is already documented. The description adds a general usage hint ('target specific company types...') but no new semantic value beyond what the schema provides. Baseline 3 is appropriate.

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

    Purpose4/5

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

    The description clearly states the action ('Search') and resource ('companies/organizations'), which is specific. However, it does not explicitly differentiate from sibling search tools like apollo_search_people or apollo_search_contacts, though the name makes the target 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 implies usage ('Use filters to target...') but does not specify when to use this tool versus alternatives, or provide exclusion criteria. The guidance is minimal and leaves the agent to infer context.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It reveals the HTTP method and endpoint, and notes the endpoint is undocumented. However, it omits important behaviors such as pagination, rate limits, authentication requirements, or the definition of 'top people.'

    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 very concise: two sentences covering purpose, use case, endpoint, and a caveat. Every sentence earns its place with no redundancy or fluff.

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

    Completeness4/5

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

    Given a single required parameter with full schema description and the existence of an output schema (not shown), the description is mostly complete. It could hint at the return shape (e.g., 'returns a list of people'), but the essential information for invocation is present.

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

    Parameters3/5

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

    Schema coverage is 100% with the parameter description 'Apollo organization ID'. The tool description adds no additional meaning beyond that. Baseline 3 is appropriate as the schema adequately documents the 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 clearly states the function: 'Get the top contacts at a given organization' and provides a use case ('good for ICP mapping'). It identifies the specific resource (organization) and resource type (top contacts). However, it does not explicitly differentiate from sibling tools like apollo_search_contacts or apollo_get_person, which could be ambiguous.

    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 ICP mapping, offering some context. However, it lacks explicit when-to-use or when-not-to-use guidance, and does not mention alternatives among the many sibling tools.

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

  • Behavior2/5

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

    No annotations provided, so description bears full burden. It warns about 422 for missing required param, but does not disclose read-only nature, rate limits, authentication needs, or return format. Lacks depth.

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

    Conciseness5/5

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

    Two sentences, front-loaded with purpose, includes key constraint and optional filters. 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?

    With 6 parameters and an output schema, description covers main use case and constraints. Could mention pagination or sorting, but not critical. Adequate.

    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 good descriptions. Description adds: explicitly states organization_ids is required (schema already marks it), gives example categories, and specifies date format. Adds modest value.

    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?

    Cleary states it searches for news articles about companies, with filters. Could more explicitly differentiate from sibling tools like apollo_search_companies, but the verb and resource are specific.

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

    Usage Guidelines3/5

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

    Provides important constraint: organization_ids is required and leads to 422 if omitted. Also mentions optional filters (categories, date range). However, does not advise when to use this tool versus alternatives (e.g., when to search companies instead).

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

  • Behavior2/5

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

    No annotations are provided, and the description omits behavioral traits such as pagination limits, rate limits, or data freshness. The input schema mentions per_page max 100, but the description does not highlight any behavioral constraints or 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.

    Conciseness4/5

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

    The description is a single sentence, concise and direct. It could benefit from slightly more detail without becoming verbose, but it efficiently communicates the core purpose.

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

    Completeness3/5

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

    Given the presence of an output schema and high parameter coverage, the description minimally covers the tool's functionality. However, without annotations, behavioral expectations are missing, making it adequate but not comprehensive for a complex search tool.

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

    Parameters3/5

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

    Schema description coverage is 100%, with each parameter having a clear description in the schema. The tool description adds no additional semantic meaning beyond stating 'advanced filtering options', so baseline score of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the verb 'Search' and resource 'people in Apollo', and mentions advanced filtering options. It distinguishes from sibling tools like apollo_get_person (single person retrieval) and apollo_enrich_person (enrichment) by emphasizing search with filters.

    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 use when searching for people with filters but does not explicitly contrast with alternatives like apollo_search_contacts or apollo_get_person. No guidance on when not to use is provided.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavior. It mentions immediate stop but lacks details on reversibility, permissions, or 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?

    Single sentence, front-loaded with key action and effect. No unnecessary words.

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

    Completeness3/5

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

    For a simple tool with one parameter and an output schema, the description is minimal but adequate. More detail on behavioral impact would improve 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 coverage is 100%, and the description adds no extra meaning beyond the schema's parameter description. Baseline score of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the verb 'Abort', the resource 'active sequence', and the effect 'stops sending immediately'. This distinguishes it from sibling tools like archive or approve.

    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 aborting active sequences but does not explicitly mention when to use vs alternatives or any prerequisites.

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

  • Behavior2/5

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

    No annotations are provided, so the description is the sole source of behavioral info. It mentions 'using Apollo match' but does not disclose whether this operation is destructive, whether it requires special authentication, or if there are rate limits. The input schema note that only 'domain' is used adds a small behavioral hint, but overall transparency is low.

    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 exceptionally concise: one sentence with no redundant words. It conveys the essential purpose and input format without any fluff.

    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 that an output schema exists (mentioned in context), the description need not detail return values. However, for a bulk operation, it is missing important contextual details like maximum batch size, error handling behavior, or performance considerations. The tool's complexity is moderate, and siblings exist for similar tasks, so the description is minimally adequate.

    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 the single parameter. The description adds one useful piece of information beyond the schema: the hint about providing domain or name. However, it does not elaborate on the format or constraints of the input beyond what the schema provides. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the tool's action: 'Bulk enrich multiple organizations using Apollo match.' It specifies the input as an array of organizations with domain or name, which distinguishes it from single-organization enrich tools like apollo_enrich_company and other bulk tools like apollo_bulk_enrich_people.

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

    Usage Guidelines3/5

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

    The description provides a basic instruction ('Provide an array of organizations with domain or name') but does not explicitly explain when to use this bulk tool versus the single-organization enrich tool, nor does it mention any prerequisites or alternatives among siblings.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It does not disclose behavioral traits like auth requirements, rate limits, or whether the tool is read-only. The description is minimal and does not add behavioral context beyond the basic search functionality.

    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 sentence that front-loads the core purpose and lists key parameters without wasted words. It is concise and efficiently conveys the tool's function.

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

    Completeness3/5

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

    With 5 parameters, low schema coverage, no annotations, and an existing output schema, the description is adequate but not thorough. It fails to explain search behavior (e.g., partial matching), constraints, or how to use parameters effectively, leaving gaps for an agent.

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

    Parameters3/5

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

    Schema description coverage is only 20%, with only the 'extra' parameter described. The description mentions q_organization_name and account_stage_ids, adding some meaning, but also references 'sort fields' which have no corresponding parameter, potentially misleading. It partially compensates but is incomplete.

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

    Purpose5/5

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

    The description clearly states the tool searches the user's own Apollo CRM accounts, distinguishing it from searching the prospect database. It lists specific parameters, making the purpose unambiguous and differentiating from siblings like apollo_search_companies.

    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 internal CRM accounts vs. the prospect database, but does not explicitly name alternative tools or provide when-not-to-use guidance. The mention of 'vs the prospect database' gives context but lacks exclusions.

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

  • Behavior3/5

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

    With no annotations, the description carries full burden, but it only states a simple read operation. It does not add behavioral details like pagination, rate limits, or result format, but for a straightforward get tool, this is minimally adequate.

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

    Conciseness5/5

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

    A single sentence that conveys everything needed without unnecessary words. It is front-loaded and 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?

    Given that an output schema exists, the description need not explain return values. It covers the essential purpose and parameter usage, making it complete for its simplicity. Could optionally mention list nature, but not 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 coverage is 100%, so the schema already describes the parameter. The description adds minimal beyond 'by organization ID', which mirrors the schema. Baseline score of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the verb 'Get' and the resource 'job postings for a specific organization by organization ID'. It is specific and distinguishes itself from sibling like apollo_get_complete_organization_info, which likely returns more general organizational info.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives, such as apollo_get_complete_organization_info. Agents are left to infer usage without helpful context.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the burden. It discloses the return behavior (created_contacts and existing_contacts) and the batch limit of 100. However, it does not mention authentication needs, rate limits, or side effects like deduplication.

    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 efficient front-loading of purpose and limit. Every sentence adds value with no repetition of schema fields.

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

    Completeness3/5

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

    With 3 parameters, no annotations, and an existing output schema, the description covers purpose, limit, and output fields. Missing context includes error handling, authentication, and usage guidance versus sibling 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?

    Schema coverage is low (33%) – only 'contacts' has a minimal description. The description adds valuable detail for 'contacts' (list of dicts with required and optional fields) but provides no explanation for 'run_dedupe' or 'append_label_names'. For the coverage gap, the description only partially compensates.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('bulk-create'), the resource ('CRM contacts'), and a key constraint ('up to 100 per call'). This distinguishes it from single-contact creation (apollo_create_contact) and matching (apollo_bulk_match_contacts).

    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 use this tool versus alternatives (e.g., single create). 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.

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions the bulk behavior but does not disclose authentication needs, rate limits, error handling, or whether the operation is atomic. For a creation tool, more behavioral context would be helpful.

    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 consists of two short sentences, with the action and key behavior front-loaded. Every sentence contributes meaning without redundancy.

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

    Completeness3/5

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

    Given 6 parameters and an output schema, the description covers the core behavior but omits details like batch size limits, partial failure handling, and return value specifics. It is adequate but not fully comprehensive.

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

    Parameters3/5

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

    Schema coverage is 100%, so the baseline is 3. The description adds value by noting that 'note is optional' compared to create_task, but does not elaborate on each parameter beyond what the schema provides.

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

    Purpose5/5

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

    The description clearly states the verb 'Bulk-create' and the resource 'tasks'. It distinguishes from the sibling 'create_task' by explaining the one-task-per-contact behavior and referencing shared required fields.

    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 use for multiple contacts by saying 'One task is created per contact in contact_ids' and references 'Same required fields as create_task'. It does not explicitly state when not to use it or list alternatives, but the context is clear.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden but only states the basic action. It does not disclose potential side effects (e.g., credit consumption), error handling for partial failures, or any behavioral traits like idempotency. The description lacks depth for safe invocation.

    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 purpose, no redundant information. Every word serves a clear function.

    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 presence of an output schema, return value details are not needed. However, for a bulk operation, the description lacks guidance on partial failures, rate limits, or processing behavior. It is minimally adequate for simple use but incomplete for robust usage.

    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 covers all parameters inline (100% coverage). The description adds value by specifying valid identifier combinations (email, linkedin_url, name+domain, name+organization_name) beyond the schema's individual property listings, clarifying required patterns for successful enrichment.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Bulk enrich multiple people using Apollo match') and explicitly lists the acceptable identifier combinations (email, linkedin_url, name+domain, name+organization_name). It distinguishes from sibling tools like `apollo_enrich_person` (single) and `apollo_bulk_enrich_organizations` (organizations) by specifying 'people' and 'bulk'.

    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 input requirements ('provide an array of people with...') but does not specify when to use this tool over alternatives (e.g., single vs bulk enrichment, or when to use `apollo_bulk_enrich_organizations`). No explicit when-not or context for selection is given.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It mentions the API key requirement but does not disclose other behavioral aspects such as idempotency, side effects, rate limits, or return value details. The description is insufficient for a create 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 two sentences long, front-loaded with the purpose, and contains no extraneous information. Every word adds value.

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

    Completeness3/5

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

    Given the tool has 7 parameters and an output schema exists (context indicates true), the description is relatively complete in terms of basics. However, it lacks information about error handling, typical usage scenarios, and what the response contains, which would be helpful for an agent.

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

    Parameters3/5

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

    Schema description coverage is high (86%), so the baseline is 3. The description adds that 'name' is the only required field, which is slightly beyond the schema, but it does not elaborate on other parameters or provide additional context beyond what the schema already offers.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a new deal/opportunity in your Apollo account,' which is a specific verb-resource combination. This purpose distinguishes it from sibling tools like apollo_search_deals and apollo_update_deal.

    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 mentions 'Requires a master Apollo API key,' providing a clear prerequisite. However, it does not provide guidance on when not to use this tool or mention alternatives beyond the tool name itself.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It only mentions the endpoint and scope but does not disclose behavioral traits such as whether the operation is read-only or modifies data, potential side effects, authentication requirements, or error handling (e.g., what happens on no match).

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

    Conciseness5/5

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

    The description is extremely concise: two sentences that front-load the action and endpoint. Every word adds value without repetition.

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

    Completeness3/5

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

    The tool has an output schema (exists but not shown) which covers return values. However, with 7 optional parameters and no schema documentation, the description should provide more context on matching logic, handling of multiple matches, or required permissions. The current description leaves gaps for an agent to correctly use the tool.

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

    Parameters3/5

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

    Schema coverage is 0%, so the description must explain parameters. It lists email, linkedin_url, and name+org (first_name, last_name, organization_name) as input options, providing partial guidance. However, it omits 'extra' and 'domain' parameters and does not explain their purpose 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 clearly states the action (match a CRM contact), the resource (CRM contact), and the endpoint. It distinguishes itself from the sibling tool 'people/match' by noting it is scoped to CRM contacts.

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

    Usage Guidelines4/5

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

    The description provides explicit guidance on required input combinations: 'Provide email, linkedin_url, or name+org.' It also hints at when to use this tool vs people/match. However, it does not specify when not to use it or mention other alternatives beyond the comparison.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. Only states it's a search operation; lacks details on side effects, auth, rate limits, or data scoping.

    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 purpose, no wasted words.

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

    Completeness3/5

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

    Covers main filters and pagination but omits sorting, max results, and default behavior; output schema exists but not leveraged in description.

    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?

    Adds meaning beyond schema by explaining 'extra' as a freeform bag for less-common params and grouping filters; however, date range mention is vague and not directly in schema.

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

    Purpose5/5

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

    Clearly states verb 'search' and resource 'deals/opportunities', distinguishes from sibling mutation and search 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?

    Implies usage for searching deals/opportunities but lacks explicit when-to-use vs alternatives or exclusions.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It discloses that the operation is a PATCH (partial update) and that label_names replaces the list, but does not mention any side effects, permissions, or rate limits. Basic transparency is present but not comprehensive.

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

    Conciseness5/5

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

    Two sentences, front-loaded with the action and key details. No unnecessary words. Every sentence earns its place.

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

    Completeness2/5

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

    Given the tool's complexity (16 parameters, no annotations, output schema exists but unused), the description is too minimal. It does not explain common use cases, error handling, or how to leverage the return value. While output schema reduces the need to describe return values, the lack of parameter descriptions makes it incomplete.

    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 only 6%, meaning most parameters are undocumented in the schema. The description adds meaning only for label_names (replaces list), leaving 15 other parameters undescribed. This is insufficient to help the agent understand field semantics beyond their names.

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

    Purpose5/5

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

    The description clearly states 'Update a CRM contact via PATCH /contacts/{id}', specifying the verb (update), resource (CRM contact), and HTTP method. This distinguishes it from siblings like apollo_create_contact.

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

    Usage Guidelines4/5

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

    Provides clear guidance to 'Pass only the fields you want to change' and warns that 'label_names REPLACES the existing list.' This sets expectations for partial updates and specific field behavior, though it lacks explicit when-not-to-use or alternative tools.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It discloses the cost of 1 export credit per call, but does not mention other behavioral traits such as idempotency, rate limits, or authentication requirements. The action 'reveal' might imply mutation but is unclear.

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

    Conciseness5/5

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

    The description is three concise sentences that front-load the purpose, provide usage context, and add cost information. Every sentence is valuable without 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?

    Given 3 parameters with full schema coverage and an output schema, the description is mostly complete. It explains what the tool does, when to use it, and its cost. However, it lacks details on error handling or response format, but that is expected with an output schema.

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

    Parameters3/5

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

    Schema coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema: it repeats the ID parameter's origin but does not deepen understanding of the reveal_phone_number or reveal_personal_emails parameters.

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

    Purpose5/5

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

    The description clearly states 'Reveal full contact info' for a person by Apollo ID, specifying the verb and resource. It distinguishes from siblings like apollo_search_people by requiring an ID from search results and apollo_get_person by revealing more details.

    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 says to use person IDs from search results, providing context. However, it does not explicitly state when not to use this tool versus alternatives like apollo_enrich_person or apollo_get_person, nor does it mention prerequisites or exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description must cover behavioral traits. It only states it accepts arbitrary params and searches CRM contacts, but omits details on authentication, rate limits, or side effects. The description is minimal.

    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 succinct sentences that front-load the purpose and list example parameters. No unnecessary words or repetition.

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

    Completeness4/5

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

    Given an output schema exists, the description adequately covers the input parameters and scope. It could mention pagination limits or the 'extra' escape hatch more explicitly, but overall 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?

    With only 33% schema description coverage, the description lists example parameters (q_keywords, contact_label_ids, etc.) but does not elaborate on their semantics beyond what the schema provides. It adds some meaning but not comprehensive.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Search' and resource 'YOUR Apollo CRM contacts', and explicitly distinguishes it from the prospect database, which sets it apart from sibling tools like apollo_search_people.

    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 indicates when to use (searching CRM contacts vs prospect database) and lists example parameters, providing clear context. However, it does not explicitly mention when not to use or name alternative tools.

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

  • Behavior4/5

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

    With no annotations, the description carries full burden. It discloses dedup behavior via run_dedupe and the escape hatch via extra parameter. Lacks info on permissions or rate limits but is adequate for a create tool.

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

    Conciseness5/5

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

    Two concise sentences front-load the purpose and add key behavioral details without redundancy. 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 standard contact fields and the existence of an output schema, the description is sufficiently complete. The extra parameter covers custom fields. Could mention optionality, but overall adequate.

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

    Parameters3/5

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

    Schema description coverage is only 8% (only extra has a description). The description adds meaning by explaining extra as an escape hatch and that common fields are explicit. However, for 12 parameters, more guidance on required/optional fields would help.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a single CRM contact' with specific verb and resource, and distinguishes from bulk sibling by mentioning 'single'. It also adds dedup behavior.

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

    Usage Guidelines3/5

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

    The description implies usage for creating a single contact but does not explicitly contrast with alternative tools like apollo_bulk_create_contacts or apollo_update_contact. No 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.

  • Behavior3/5

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

    With no annotations, the description carries the behavioral transparency burden. It explains the extra field mechanism but does not disclose side effects, permissions, rate limits, or success behavior. The existence of an output schema partially compensates for the return format.

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

    Conciseness5/5

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

    Two sentences, front-loaded with the core purpose, and every sentence adds value. 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 9 optional parameters, an output schema exists, and no annotations, the description briefly covers purpose and parameter usage. It is sufficient for a simple creation tool but could be more comprehensive about each parameter's meaning.

    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 only 33% (status, duration, called_at have descriptions). The description adds clarity on the role of 'extra' but does not provide additional semantics for the six undocumented parameters. It offers modest value beyond the schema.

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

    Purpose5/5

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

    The description clearly states 'Log a phone call in Apollo', specifying the verb (log) and resource (phone call). It distinguishes from siblings like apollo_update_phone_call by implying creation. The mention of common vs. less-common fields further clarifies scope.

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

    Usage Guidelines4/5

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

    The description provides guidance on how to use the tool by distinguishing common fields from less-common ones passed via 'extra'. However, it does not explicitly state when to use this tool versus alternatives (e.g., update_phone_call).

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

  • Behavior4/5

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

    No annotations provided, so the description carries full burden. It clearly indicates a read operation (get activities) with no side effects. Although it could mention authentication or validation, the simplicity of the tool makes it 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?

    Single sentence with no wasted words. Front-loaded with the action and resource, explicitly listing activity types. Optimal 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?

    Given the tool has an output schema, the description need not detail return values. It covers purpose, scope, and input adequately. Could mention read-only nature, but overall complete for a simple getter.

    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 meaningful parameter description. The description adds no extra meaning beyond 'for a single emailer message ID', which already aligns with the schema. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the verb 'Get', the resource 'engagement activities', and specifies four types (opens, clicks, replies, bounces). It also scopes to 'a single emailer message ID', distinguishing it from siblings like apollo_search_emailer_messages which lists messages.

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

    Usage Guidelines3/5

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

    The description implies usage when you have a specific message ID and need engagement data, but does not explicitly state when to use or avoid it compared to siblings, nor mention prerequisites or alternatives.

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

  • Behavior4/5

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

    Discloses mutation behavior ('update'), authentication requirement, and partial update pattern. With no annotations, the description carries this burden effectively. Could mention idempotency or response details, but current coverage is good.

    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 wasted words. Front-loaded with purpose, followed by critical prerequisites and usage hint. Efficiently structured.

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

    Completeness3/5

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

    Adequate for a simple update tool with an output schema, but missing explanations for custom fields and parameter formats. The description is too brief given the 7 parameters and 29% schema coverage.

    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 low (29%), yet the description adds minimal parameter-specific information beyond the schema. It provides a general instruction but does not explain fields like typed_custom_fields, owner_id, or opportunity_stage_id structure.

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

    Purpose5/5

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

    Description clearly states 'Update an existing deal/opportunity', specifying the verb and resource. It distinguishes from sibling tools like apollo_create_deal and apollo_search_deals, which have different purposes.

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

    Usage Guidelines4/5

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

    Provides explicit prerequisite: 'Requires a master Apollo API key'. Also advises 'Pass only the fields you want to change', which is a clear usage guideline. However, it does not explicitly contrast with sibling tools or mention 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.

  • Behavior3/5

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

    With no annotations, the description carries full burden. It discloses that full=true returns raw Apollo payload which may exceed token limits, but does not mention whether the tool is read-only or has side effects. The safety profile (destructive or auth) is absent.

    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 that are front-loaded with purpose and then detail on the key behavioral nuance. Every sentence adds value without 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?

    Given the tool has 9 parameters and no annotations, the description covers the essential identifiers and output options. It mentions compact vs raw payload and token risks. Missing details on required identifiers or return schema, but the output schema exists.

    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 44%, but the description adds value by explaining the identifier combinations (email, linkedin_url, name+domain/name+organization_name) and the full parameter's effect. It also notes the 'company' parameter is deprecated. However, some parameters like reveal_phone_number are only in schema.

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

    Purpose5/5

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

    The description explicitly states the tool enriches a person using identifiers like email, linkedin_url, or name+domain/name+organization_name. Among siblings like apollo_get_person, this tool is distinct for its enrichment capability with a compact or full output mode.

    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 guidance on when to use full=true (only when needed for complete data) versus default compact mode, warning about token limits. However, it does not directly compare to sibling tools like apollo_get_person or apollo_search_people.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries full burden. It discloses the authentication requirement (master API key) and implies a read-only list operation. No contradictions.

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

    Conciseness5/5

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

    Two sentences, each earning its place: first sentence defines purpose, second sentence adds usage context and requirements. No unnecessary words.

    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 and the presence of an output schema, the description fully explains the tool's behavior and usage. It provides enough context for selection and invocation.

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

    Parameters4/5

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

    The input schema has no parameters (0 params, 100% coverage). According to the baseline rule, a score of 4 is appropriate since the description does not need to add parameter information.

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

    Purpose4/5

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

    The description clearly states it lists account stages and explains how the IDs are used. However, it does not explicitly differentiate from sibling list tools like apollo_list_deal_stages or apollo_list_contact_stages.

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

    Usage Guidelines4/5

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

    Provides clear context: requires a master API key and the IDs are used for setting account_stage_id on create/update. Does not include explicit when-not-to-use or alternatives.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It states it lists stages and requires a master API key, which are behavioral traits. However, it doesn't elaborate on typical list behavior like pagination or caching, but the output schema covers return format.

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

    Conciseness5/5

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

    Two concise sentences: first states purpose, second adds usage guidance and requirement. No unnecessary words.

    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 and an output schema, the description fully covers necessary context: what the tool does, how to use the output, and a key requirement. No gaps.

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

    Parameters4/5

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

    The tool has 0 parameters, so baseline is 4 per instructions. The description correctly adds no param info since none exist.

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

    Purpose5/5

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

    The description clearly states the tool lists deal stages for the Apollo team, using specific verb 'List' and resource 'deal stages'. This distinguishes it from sibling tools like apollo_list_contact_stages or apollo_list_account_stages.

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

    Usage Guidelines4/5

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

    The description explicitly says to use the returned IDs to set 'opportunity_stage_id' on create/update deal, and mentions the prerequisite of a master API key. It doesn't explicitly state when not to use, but the use case is clear.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries the burden. It explicitly states rate limits (100/hour, 20/minute), which is a key behavioral constraint. It does not mention whether the operation is read-only or modifies data, but 'match' typically implies non-destructive 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?

    Two sentences, concise and front-loaded with the primary purpose. Every clause provides essential information: purpose, input format, and rate limits. No unnecessary words.

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

    Completeness4/5

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

    The description covers purpose, input format, and rate limits adequately. An output schema is present (not shown), so details on return values are not required. Minor gap: it does not clarify whether unmatched contacts are handled, but the output schema likely addresses that.

    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 describes the 'details' parameter as a list of contact-identifier dicts (100% coverage). The description adds value by specifying the fields to include: email/linkedin_url/name+org, which are not present in the schema's property 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 'Bulk-match CRM contacts' clearly states the verb (match) and resource (contacts), with 'bulk' distinguishing it from the singular sibling apollo_match_contact. This is specific and non-tautological.

    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 it should be used for matching multiple contacts at once, differentiating from singular alternatives. However, it does not explicitly state when not to use it or list alternative tools for specific scenarios.

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

  • Behavior4/5

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

    With no annotations, the description carries full burden. It discloses the need for a master API key and the error for non-master keys. The read-only nature is implied by 'View'. It could add more behavioral context, but the output schema likely covers the return structure.

    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 consists of two concise sentences: the first states the purpose, the second adds a critical usage requirement. No extraneous words 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 no parameters, the presence of an output schema, and the simple nature of the tool, the description is complete. It covers what the tool does, the authentication requirement, and the error case. No additional context seems necessary.

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

    Parameters4/5

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

    The tool has no parameters and the schema description coverage is 100% (trivially). The description adds value by confirming no input is needed, serving as a baseline. No parameter information is missing.

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

    Purpose5/5

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

    The description clearly states 'View your team's Apollo API usage and per-minute/hour/day rate limits across endpoints', using a specific verb and resource. It effectively distinguishes this tool from siblings, as none of the other 43 tools are for viewing API usage stats.

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

    Usage Guidelines4/5

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

    The description explicitly says when to use it (to view usage/rate limits) and provides a crucial prerequisite (requires a master API key) along with the consequence of using a non-master key (HTTP 403). However, it does not mention any alternative tools or when not to use it beyond the key restriction.

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

  • Behavior4/5

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

    With no annotations, the description carries the transparency burden. It discloses that the tool requires a master API key and implies a read-only listing operation. No contradictions or hidden behaviors are introduced.

    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: purpose, usage guidance, and auth requirement. No fluff, all information valuable.

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

    Completeness5/5

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

    For a simple list tool with no parameters and an output schema, the description covers purpose, usage, and auth. It is complete without redundancy.

    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 0 parameters, so the baseline is 4. The description does not need to add parameter info as there are none.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List the contact stages configured for your team' with a specific verb and resource. It distinguishes from siblings like apollo_list_deal_stages by focusing on contact stages.

    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: use IDs from this list to set contact_stage_id on create/update contact. It also mentions the required master API key. It does not explicitly exclude use cases, but the purpose is well-defined.

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

  • Behavior5/5

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

    With no annotations provided, the description fully discloses behavior: default compact summary of ~50 fields, full payload can be 100KB+ and may exceed token limits. This is comprehensive and honest.

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

    Conciseness5/5

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

    Two sentences, no wasted words. Purpose is front-loaded, critical detail about compact vs full follows immediately. Highly 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?

    For a simple 2-parameter tool with output schema, the description covers purpose, parameter behavior, return format, and limitations. Nothing 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%, but the description adds significant value by explaining the default compact behavior, the meaning of full=true, and warning about size constraints and token limits. This enhances the parameter meaning beyond the schema.

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

    Purpose5/5

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

    The description clearly states 'Look up a single person by Apollo ID' with a specific verb and resource, effectively distinguishing it from sibling tools like apollo_search_people which searches multiple people.

    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 on when to use the compact vs full response, advising full=true only when the full record is needed due to size. It lacks explicit exclusion criteria but is sufficient for a lookup tool.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

apollo-mcp MCP server

Copy to your README.md:

Score Badge

apollo-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dyngai/apollo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server