Skip to main content
Glama
Inferensys

Apollo.io MCP Server

by Inferensys

Apollo.io MCP Server

A Model Context Protocol (MCP) server for the Apollo.io API -- giving AI coding assistants like Claude Code, Cursor, and any MCP-compatible client direct access to Apollo.io's sales intelligence platform.

Search leads, enrich contacts with verified emails and phone numbers, manage CRM records, run email sequences, track outreach, manage deals, tasks, notes, labels, and more -- all through natural language via 45 ready-to-use tools.

Why Use This?

  • AI-native prospecting -- Ask your AI assistant to "find CTOs at Series B fintech companies in NYC" and get results instantly

  • Automated enrichment -- Enrich leads with verified emails and phone numbers without leaving your editor

  • CRM operations -- Create, update, search, and delete contacts, accounts, deals, tasks, and notes through conversation

  • Sequence management -- Add contacts to email sequences and monitor outreach performance

  • Full pipeline visibility -- Access contact stages, account stages, opportunity stages, labels, and team members

  • Credit-aware -- Every tool description includes credit cost so your AI avoids unexpected charges

Related MCP server: Apollo.io MCP Server

Quick Start

1. Clone & Build

git clone https://github.com/Chainscore/apollo-io-mcp.git
cd apollo-io-mcp
npm install
npm run build

2. Get Your Apollo API Key

Get your API key from Apollo.io Settings > Integrations > API.

3. Add to Your MCP Client

Claude Code (~/.claude/settings.json):

{
  "mcpServers": {
    "apollo-io": {
      "command": "node",
      "args": ["/path/to/apollo-io-mcp/dist/index.js"],
      "env": {
        "APOLLO_API_KEY": "your_key_here"
      }
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "apollo-io": {
      "command": "node",
      "args": ["/path/to/apollo-io-mcp/dist/index.js"],
      "env": {
        "APOLLO_API_KEY": "your_key_here"
      }
    }
  }
}

Tools (45)

People Search & Enrichment

Tool

Description

Cost

search_people

Search Apollo's 270M+ contact database by title, company, location, seniority, tech stack, funding stage

FREE

enrich_person

Get verified email, phone number, and full profile for a person

1 credit

bulk_enrich_people

Enrich up to 10 people in a single request

1 credit/person

Company / Organization Data

Tool

Description

Cost

search_organizations

Search companies by name, industry, employee count, revenue

1 credit/page

enrich_organization

Get detailed company info (tech stack, funding, size) by domain

1 credit

get_organization

Get organization details by Apollo ID

FREE

get_organization_job_postings

Get current job postings for a company

1 credit

CRM -- Contacts

Tool

Description

Cost

create_contact

Create a contact with automatic deduplication

FREE

update_contact

Update an existing contact

FREE

get_contact

Retrieve a contact by ID

FREE

search_contacts

Search your saved contacts

FREE

delete_contact

Permanently delete a contact

FREE

bulk_create_contacts

Create up to 100 contacts at once

FREE

bulk_update_contacts

Update up to 100 contacts at once

FREE

CRM -- Accounts

Tool

Description

Cost

create_account

Create a company record in your CRM

FREE

update_account

Update an existing account

FREE

search_accounts

Search your saved accounts

FREE

CRM -- Opportunities/Deals

Tool

Description

Cost

search_opportunities

Search deals in your pipeline by keyword, stage, or owner

FREE

get_opportunity

Get a single deal by ID

FREE

create_opportunity

Create a new deal with name, amount, stage, contacts

FREE

update_opportunity

Update deal details, stage, or amount

FREE

CRM -- Tasks

Tool

Description

Cost

search_tasks

Search tasks by keyword, assignee, or completion status

FREE

get_task

Get a single task by ID

FREE

create_task

Create a call, email, linkedin, or other task

FREE

update_task

Update task details or mark as completed

FREE

CRM -- Notes

Tool

Description

Cost

search_notes

Search notes by keyword or contact

FREE

create_note

Create a note, optionally attached to a contact

FREE

delete_note

Delete a note

FREE

Email Sequences & Outreach

Tool

Description

Cost

search_sequences

Search email sequences/campaigns

FREE

add_contacts_to_sequence

Add contacts to an email sequence

FREE

update_sequence_status

Remove or pause contacts in a sequence

FREE

search_outreach_emails

Search sent outreach emails with open/click tracking

FREE

get_email_activities

Get opens, clicks, and replies for an email

FREE

list_email_accounts

List connected sending email accounts

FREE

Labels & Tags

Tool

Description

Cost

list_labels

List all labels/tags in your workspace

FREE

create_label

Create a new label for contacts or accounts

FREE

update_label

Rename an existing label

FREE

delete_label

Delete a label

FREE

Pipeline Stages

Tool

Description

Cost

list_contact_stages

List contact pipeline stages (Cold, Approaching, etc.)

FREE

list_account_stages

List account pipeline stages

FREE

list_opportunity_stages

List deal pipeline stages (Lead, Qualified, Won, etc.)

FREE

Team & Users

Tool

Description

Cost

search_users

Search team members by name or email

FREE

Activity Tracking

Tool

Description

Cost

search_activities

Search activity logs (emails, calls, clicks, replies)

FREE

search_phone_calls

Search phone call records and outcomes

FREE

Custom Fields & Metadata

Tool

Description

Cost

list_fields

List all available fields for contacts/accounts

FREE

create_custom_field

Create a custom field (text, number, dropdown, etc.)

FREE

list_custom_fields_deprecated

List custom fields via legacy endpoint

FREE

News, Usage & Health

Tool

Description

Cost

search_news_articles

Search recent news about target companies

Credits

get_api_usage_stats

Check API credit usage and remaining balance

FREE

health_check

Verify API key and check Apollo API health

FREE

Usage Tips

  • Verify your setup -- Start with health_check or get_api_usage_stats (both FREE) to confirm your API key works

  • Save credits -- Use search_people (FREE) for prospecting before enriching with enrich_person (1 credit)

  • Prefer people search -- search_people is free while search_organizations costs 1 credit/page

  • Auto-cleaned domains -- Pass https://www.google.com, www.google.com, or @google.com -- all resolve to google.com

  • Built-in deduplication -- Contact creation enforces dedup so you never accidentally create duplicates

  • Pipeline workflow -- Use list_contact_stages / list_opportunity_stages to get stage IDs, then filter contacts and deals by stage

  • Task management -- Create tasks with create_task, assign to team members found via search_users

  • Label organization -- Create labels with create_label, then apply them when creating/updating contacts

Requirements

  • Node.js 18+

  • Apollo.io API key (get one here)

  • An MCP-compatible client (Claude Code, Cursor, etc.)

License

MIT

Contact

Need help integrating MCP servers into your workflow? Reach out at prasad@inferensys.com. We help companies build agentic workflows seemlessly that saves time and operational cost.

Stallion cover

Built by Inferensys. Contact Us: https://inferensys.com/contact

Available Tools

50 tools
add_contacts_to_sequenceB

Add contacts to an email sequence. FREE. Provide the sequence ID and an array of contact IDs. Contacts will start receiving the sequence emails. You must also specify the email_account_id to send from.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailer_campaign_idYesSequence/campaign ID
contact_idsYesContact IDs to add to the sequence
emailer_campaign_step_idNoStep ID to start from (defaults to first step)
send_email_from_email_account_idYesEmail account ID to send from. Use list_email_accounts to find this.
sequence_active_in_other_campaignsNoAllow adding contacts already active in other sequences

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Mentions contacts will start receiving emails, but does not disclose side effects (e.g., what happens if contacts already in sequence? No mention of idempotency or failure modes). The 'FREE' tag is useful but not sufficient.

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

Conciseness4/5

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

Three sentences, efficient. 'FREE' is slightly out of place but not detrimental. No excess verbosity.

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 operation and key required parameters, but lacks details on success/error behavior, rate limits, or handling of optional parameters. Output schema absent increases need for more context.

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

Parameters3/5

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

Schema coverage is 100% with descriptions. Description reinforces requirement for email_account_id but adds little new meaning beyond schema.

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

Purpose4/5

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

Clear verb-resource combination ('Add contacts to an email sequence'). Specifies inputs needed (sequence ID, contact IDs). Does not explicitly differentiate from sibling tools, but the action is unique.

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?

States when to use (adding contacts to a sequence) and required parameters, but no explicit 'when not to use' or alternatives. Sibling tools do not include similar functionality.

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

bulk_create_contactsA

Create multiple contacts at once. FREE. Deduplication is enforced. Max 100 contacts per request.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactsYesArray of contact objects to create

TDQS

A3.8/5.0
Behavior2/5

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

Without annotations, the description should disclose behavioral traits. It mentions deduplication and a size limit but omits important details like error handling, atomicity, or response format. For a bulk creation tool, this is insufficient.

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 with no redundancy. Critical details are front-loaded: purpose, cost, dedup, limit.

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?

The description lacks information about return values, success/failure indications, and partial success behavior. Given no output schema and no annotations, the description should provide a more complete picture for a bulk operation.

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

Parameters4/5

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

Schema coverage is 100%, so the description adds value by noting 'FREE,' 'Deduplication is enforced,' and 'Max 100,' which are not in the schema. This helps the agent understand constraints beyond the property definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Create multiple contacts at once,' clearly identifying the action (create) and resource (contacts). The bulk aspect distinguishes it from sibling tools like 'create_contact' (singular).

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

Usage Guidelines4/5

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

The description implies when to use this tool (bulk creation) but does not explicitly mention alternatives or when to avoid it. However, the presence of 'Max 100 contacts per request' sets a clear constraint.

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

bulk_enrich_peopleB

Enrich multiple people in a single request. COSTS 1 CREDIT PER PERSON matched. Each detail object should contain identifying info (name, domain, email, linkedin_url). Max 10 people per request.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailsYesArray of person details to enrich (max 10)
reveal_personal_emailsNo
reveal_phone_numberNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It states cost and max batch size, but omits safety profile, error behavior, authentication needs, or whether the operation is idempotent. This is insufficient for a billing-related tool.

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

Conciseness5/5

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

Two sentences with no fluff, front-loaded with purpose and key constraints. Every word earns its place.

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

Completeness2/5

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

No output schema exists, so the description should cover return values, but does not. Given the complexity (nested parameter, billing implications), more context on errors, partial successes, and field requirements is needed for completeness.

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

Parameters3/5

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

Schema coverage is low (33%), but the description adds context for the 'details' parameter by specifying it should contain identifying info (name, domain, email, linkedin_url). The boolean parameters are not explained, so the description provides partial added value.

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

Purpose5/5

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

The description explicitly states the tool enriches multiple people in a single request. It distinguishes from singletons like 'enrich_person' and other sibling tools by highlighting the batch capability and cost structure.

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

Usage Guidelines3/5

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

The description implies when to use (for batch enrichment) but does not provide explicit when-not scenarios or alternatives. It mentions max 10 people and cost per person, but lacks guidance on when to prefer this over single enrichment or search tools.

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

bulk_update_contactsB

Update multiple contacts at once. FREE. Provide contact IDs and fields to update. Max 100 per request.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactsYesArray of contact objects with IDs and updated fields

TDQS

B3.3/5.0
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 batch limit and that it updates contacts, but does not explain if the operation is idempotent, what happens on errors, or the return format (e.g., success response). This is adequate but minimal.

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

Conciseness4/5

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

The description is very concise with three short sentences. The first sentence clearly states the purpose. The inclusion of 'FREE' is extraneous but not harmful, keeping the overall structure clean.

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 no output schema or annotations, the description is incomplete for a mutation tool. It lacks information about return values, error handling (e.g., partial failures), and any side effects. The 100-item limit is helpful but behavioral details are missing.

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

Parameters3/5

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

Schema description coverage is 100% (the array parameter has a description), so baseline is 3. The tool description adds 'Provide contact IDs and fields to update' which largely restates the schema, adding little new meaning.

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 'Update multiple contacts at once' which distinguishes it from single-contact update tools like 'update_contact'. It also specifies the key inputs (contact IDs and fields), making the purpose 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 mentions 'Max 100 per request' which gives a constraint, but does not provide guidance on when to use this tool versus alternatives like 'update_contact' for single updates. No when-not or explicit comparison is given.

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

create_accountA

Create an account (company record) in your Apollo CRM. FREE. An account represents a company you're tracking. Provide at least the name and domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCompany name
domainNoCompany domain, e.g. 'google.com'. Will be auto-cleaned.
phone_numberNoCompany phone number
raw_addressNoFull company address
owner_idNoApollo user ID of the account owner

TDQS

A3.8/5.0
Behavior3/5

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

Without annotations, the description must convey behavioral traits. It mentions 'FREE' and that the domain 'will be auto-cleaned', but does not disclose permissions, idempotency, or side effects of creating the record.

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, front-loaded sentences with no wasted words. Every sentence adds value: action, resource, cost, minimal requirements.

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

Completeness4/5

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

Given no output schema, the description sufficiently explains the tool's purpose and basic requirements. It could mention what the created account looks like or error cases, 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 coverage is 100%, so parameters are well-documented. The description adds marginal value: only 'will be auto-cleaned' for domain and a redundant example. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'account (company record) in your Apollo CRM', distinguishing it from update and other account-related tools. The mention of 'FREE' adds a unique selling point.

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 advises to 'provide at least the name and domain', but the schema only requires 'name'; 'domain' is optional. No explicit guidance on when to use this vs alternatives like 'update_account' or when not to use.

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

create_contactA

Create a new contact in your Apollo CRM. FREE. Deduplication is enforced (run_dedupe=true) to prevent duplicates. Provide at least first_name, last_name, and either email or organization_name.

ParametersJSON Schema
NameRequiredDescriptionDefault
first_nameYesContact's first name
last_nameYesContact's last name
emailNoContact's email address
titleNoJob title
organization_nameNoCompany name
website_urlNoCompany website URL
account_idNoApollo account ID to associate with
phone_numbersNoPhone numbers to add
label_namesNoLabels/tags to apply
present_raw_addressNoFull address string
cityNo
stateNo
countryNo
postal_codeNo

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description must disclose behavioral traits. It mentions deduplication is enforced, which is a key behavior. But it does not address authentication requirements, rate limits, whether it is a destructive operation, or what happens on duplicate (error vs. update). The description is adequate 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?

The description is two clear sentences. It front-loads the core purpose and then adds key details (FREE, deduplication, minimum requirements). Every sentence adds value without redundancy.

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

Completeness3/5

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

Given 14 parameters and no output schema, the description covers the most important aspects (purpose, deduplication, required fields). However, it lacks information about response format, error handling for duplicates, and the effect of optional parameters like account_id or phone_numbers on the creation process. It is reasonably complete but has gaps.

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

Parameters4/5

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

Schema coverage is 71%, and the description adds critical context beyond the schema: it clarifies that deduplication is enforced (run_dedupe=true) and that either email or organization_name is required in addition to first_name and last_name. This provides guidance on parameter combinations not evident from the schema alone.

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

Purpose5/5

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

The description clearly states the tool creates a new contact in Apollo CRM, and the context of sibling tools like 'bulk_create_contacts' and 'update_contact' helps distinguish it. The verb-create and resource-contact are explicit.

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

Usage Guidelines4/5

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

The description specifies required minimum fields (first_name, last_name, and email or organization_name), indicates deduplication is enforced, and mentions it is FREE. However, it does not explicitly state when to use this vs. alternatives like bulk_create_contacts or search_contacts for finding existing contacts.

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

create_custom_fieldC

Create a custom field for contacts or accounts. FREE. Custom fields let you store additional data on your CRM records.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the field
field_typeYesData type of the field
entity_typeYesWhich entity type this field applies to
picklist_valuesNoOptions for dropdown type fields

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must reveal behavior. It only states it creates a field and adds data storage context, but omits side effects (e.g., duplicate handling, required permission levels, or impact on existing records).

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

Conciseness4/5

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

Two sentences with no redundancy. The first sentence states the action, the second provides context. Could be slightly more informative without sacrificing conciseness, 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?

For a tool with 4 parameters, 2 enums, and no output schema, the description is incomplete. It misses explaining the relationship between picklist_values and field_type, and does not cover error conditions or success responses.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to explain parameters individually. The description adds a general use case but does not clarify the dependency between picklist_values and field_type or entity_type with 'opportunity'. 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?

Description explicitly states it creates custom fields for contacts or accounts, and the input schema adds 'opportunity'. The action is clear, but the omission of 'opportunity' in the description slightly reduces precision.

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 others, or any prerequisites like admin permissions. The word 'FREE' hints at cost but does not inform usage context.

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

create_labelB

Create a new label (tag/list) in Apollo. FREE. Labels help organize contacts and accounts. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLabel name, e.g. 'Hot Leads Q1'
modalityNoWhether this label applies to contacts or accountscontacts

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It states 'Undocumented endpoint,' hinting at instability, but does not mention side effects, idempotency, duplicate handling, auth requirements, or what the tool returns. Minimal behavioral insight.

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?

Extremely concise: three sentences cover purpose, cost, utility, and a warning. No redundant information, and the main action is front-loaded.

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

Completeness3/5

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

For a simple create tool with two parameters and no output schema, the description is mostly sufficient. However, it lacks details on duplicate name behavior, the structure of the response, and prerequisites, leaving some gaps.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions for name and modality. The description adds context that labels organize contacts and accounts, but this does not significantly enhance parameter meaning beyond the schema.

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

Purpose4/5

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

The description clearly states 'Create a new label' in Apollo, identifying the verb and resource. It distinguishes labels as organizing contacts and accounts, but does not explicitly differentiate from sibling tools like delete_label or update_label.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like delete_label or update_label. The description mentions it's FREE, but provides no context on prerequisites or appropriate scenarios.

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

create_noteC

Create a note in Apollo. FREE. Notes can be associated with a contact. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesNote content/body text
contact_idNoContact ID to attach the note to

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It mentions 'Undocumented endpoint' hinting at instability, but fails to disclose side effects, idempotency, or success/failure behavior.

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

Conciseness4/5

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

Very concise with purpose front-loaded. The fragments 'FREE' and 'Undocumented endpoint' are extra but not bloated. No unnecessary repetition.

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?

Lacks description of return value or outcome upon success. No output schema and no mention of error conditions. For a creation tool, it is incomplete.

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

Parameters3/5

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

Schema covers both parameters at 100%. Description adds the fact that notes can be associated with a contact, slightly clarifying contact_id, but no further detail on content formatting or constraints.

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

Purpose4/5

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

Clearly states the action (create) and resource (note in Apollo). The mention of association with contact gives context, and distinguishes from note-related siblings like delete_note and search_notes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like create_task or create_contact. No mention of prerequisites or exclusions.

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

create_opportunityB

Create a new deal/opportunity in your Apollo CRM. FREE. At minimum, provide a name. Optionally set amount, stage, close date. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDeal/opportunity name
amountNoDeal value in dollars
opportunity_stage_idNoStage ID (use list_opportunity_stages to get IDs)
owner_idNoOwner user ID
closed_dateNoExpected close date, e.g. '2026-03-15'
account_idNoAssociated account/company ID
contact_idsNoAssociated contact IDs

TDQS

B3/5.0
Behavior2/5

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

No annotations provided. Description only says 'FREE' and 'Undocumented endpoint' but does not disclose behavioral traits like side effects, required permissions, or safety. As a creation tool, mutation is implied but not detailed.

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

Conciseness3/5

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

Short but disjointed with abrupt period between 'FREE' and 'At minimum'. Includes unnecessary 'Undocumented endpoint' phrase. Could be more polished.

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?

Lacks output information, error handling, prerequisites, and detailed behavior. Leaves gaps for a tool with 7 parameters and no annotations.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds minimal extra meaning by summarizing optional fields, but mostly restates schema info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Create a new deal/opportunity' with specific verb and resource. Siblings are other create tools for different entities, so no confusion.

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 when-to-use or alternatives. Only gives minimal parameter input guidance ('At minimum, provide a name'). Does not distinguish from other create tools.

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

create_taskB

Create a new task in Apollo. FREE. Tasks can be associated with contacts. Requires a user_id for assignment. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID to assign the task to (use search_users to find)
contact_idNoContact ID to associate with
typeNoTask typeother
priorityNoTask prioritymedium
noteNoTask description/note
due_atNoDue date in ISO 8601, e.g. '2026-03-01T09:00:00Z'

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses the endpoint is undocumented, implying potential instability, and states tasks can be associated with contacts. However, it does not detail mutation behavior, error handling, or idempotency, leaving gaps.

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 three sentences, front-loading the purpose. Every sentence is necessary and there is no redundant information.

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

Completeness2/5

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

Given 6 parameters and no output schema, the description should hint at return value or behavior. It lacks information on response format, pagination, or side effects, making it incomplete for a creation tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds context like 'requires user_id' and association with contacts, but does not explain enum values beyond the schema. Added value is minimal.

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

Purpose4/5

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

The description clearly states the tool creates a new task in Apollo, specifying verb and resource. However, it does not explicitly differentiate from sibling creation tools like create_note or create_contact, relying on the name for identification.

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 mentions 'FREE' and requires user_id, but provides no guidance on when to use this tool versus alternatives like update_task or create_note. No explicit when-to-use or when-not-to-use context is given.

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

delete_contactB

Delete a contact from your Apollo CRM. FREE. This permanently removes the contact. Undocumented but functional.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesApollo contact ID to delete

TDQS

B3.2/5.0
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 mentions permanence ('permanently removes') and says 'Undocumented but functional,' but lacks details on side effects, permissions, or error handling. Critical behavioral traits 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.

Conciseness3/5

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

The description is three sentences, but the third sentence 'Undocumented but functional' adds little value and may confuse. It is not as concise as it could be, though the first sentence is well front-loaded.

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

Completeness4/5

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

For a simple delete operation with one parameter and no output schema, the description covers the purpose and permanence. It is adequate, though it could mention that the contact must exist and what happens if the ID is invalid.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the single parameter. The description does not add additional meaning beyond what the schema already provides, so baseline score 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 'Delete a contact from your Apollo CRM' with a specific verb and resource. It distinguishes from siblings like 'create_contact' and 'update_contact' by implying the destructive action.

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. For example, it does not mention scenarios where deleting is preferred over updating or archiving. No prerequisites or exclusions are provided.

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

delete_labelB

Delete a label from Apollo. FREE. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
label_idYesLabel ID to delete

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states 'Undocumented endpoint,' hinting at instability, but does not disclose whether the deletion is irreversible or if there are any 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 extremely brief with one sentence, which is efficient, but it lacks detail that could be included without verbosity.

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 delete operation with one parameter and no output schema, the description provides minimal context. The 'Undocumented endpoint' warning is useful, but it does not specify success behavior or return values.

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 single parameter 'label_id' already described as 'Label ID to delete.' The description adds no additional meaning 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 'Delete a label from Apollo' clearly states the verb (delete) and resource (label), distinguishing it from sibling tools like create_label and update_label.

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 mentions 'FREE' and 'Undocumented endpoint' but does not provide explicit guidance on when to use this tool versus alternatives like delete_contact or delete_note.

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

delete_noteC

Delete a note from Apollo. FREE. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYesNote ID to delete

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden. It mentions 'FREE' (cost implication) and 'Undocumented endpoint' (negative signal), but fails to disclose whether deletion is irreversible, authorization requirements, or side effects like cascading deletes.

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

Conciseness3/5

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

The description is very short, but includes extraneous phrases 'FREE.' and 'Undocumented endpoint.' that do not aid an AI agent. It could be more focused on essential details.

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 simple deletion tool with no output schema and no annotations, the description is incomplete. It lacks information about response behavior, error handling, or constraints (e.g., cannot delete notes in use).

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

Parameters3/5

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

Schema description coverage is 100% as the single parameter note_id has a clear description. The tool description adds no additional parameter information beyond what the schema already provides, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states 'Delete a note from Apollo,' which is a specific verb+resource. It distinguishes from sibling tools like create_note or delete_contact. However, the added 'FREE. Undocumented endpoint.' does not enhance purpose clarity.

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. The description does not specify prerequisites, such as whether the note must exist, or conditions under which deletion is allowed.

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

enrich_organizationA

Enrich a single organization by domain to get detailed company info. COSTS 1 CREDIT. Returns company size, industry, funding, tech stack, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany domain to enrich, e.g. 'google.com'. Will be auto-cleaned.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description discloses cost (1 credit) and output details (company size, industry, etc.), and notes domain auto-cleaning. It lacks disclosure on rate limits or side effects, but for a read-like enrichment tool, this is satisfactory.

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

Conciseness5/5

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

Two sentences, zero waste. The first sentence states purpose and cost, the second lists output. Essential information is front-loaded.

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

Completeness4/5

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

Given no output schema, the description adequately lists key returned fields. It could mention error cases or partial enrichment, but is complete for a simple enrichment tool.

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

Parameters4/5

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

Schema already describes domain with 100% coverage. The description adds value by implying the tool works on a single organization and listing returned fields, though parameter specifics are already clear.

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

Purpose5/5

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

The description uses specific verb 'enrich' and resource 'organization by domain', clearly stating the action. It distinguishes from siblings like 'enrich_person' and 'bulk_enrich_people' by specifying 'single organization'.

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 mentions credit cost, which is key usage context. However, it does not explicitly state when to use this tool versus batch alternatives or mention any prerequisites or exclusions.

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

enrich_personA

Enrich a single person to get their email, phone, and detailed profile. COSTS 1 CREDIT per successful match. Provide as many identifying fields as possible for best match accuracy. At minimum provide name + domain, or LinkedIn URL, or email.

ParametersJSON Schema
NameRequiredDescriptionDefault
first_nameNoPerson's first name
last_nameNoPerson's last name
nameNoFull name (use if you don't have first/last split)
emailNoKnown email address
organization_nameNoCompany name
domainNoCompany domain, e.g. 'google.com'. Will be auto-cleaned.
linkedin_urlNoLinkedIn profile URL, e.g. 'linkedin.com/in/johndoe'
reveal_personal_emailsNoIf true, also return personal email addresses
reveal_phone_numberNoIf true, also return phone numbers

TDQS

A4.2/5.0
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 credit cost per match and hints at matching behavior, but does not explain failure scenarios (e.g., if no match found, does it still cost?), or whether the tool is read-only or modifies data. It lacks details on rate limits or authentication requirements.

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

Conciseness5/5

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

The description is concise with two lines. The first line states the core purpose ('Enrich a single person...'), and the second covers critical usage details (cost, required fields). No unnecessary words, and information is front-loaded.

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

Completeness4/5

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

Given 9 parameters fully described in schema, no output schema, and no nested objects, the description adequately covers the tool's function and input requirements. It lacks explicit output structure details but the intended output (email, phone, profile) is clear from the purpose. Minor gap in explaining what 'detailed profile' includes.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by highlighting important combinations (name+domain, LinkedIn URL, email) and mentioning credit cost, which goes beyond the schema's parameter descriptions. It gives actionable advice for effective use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Enrich a single person to get their email, phone, and detailed profile.' It uses specific verbs ('Enrich', 'get') and identifies the resource ('single person'). It distinguishes from siblings like 'bulk_enrich_people' by specifying 'single person'.

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: costs 1 credit, requires name+domain, LinkedIn URL, or email, and suggests providing as many fields as possible. However, it does not explicitly state when not to use this tool or mention alternatives like 'bulk_enrich_people' for multiple enrichments.

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

get_api_usage_statsA

Get API usage statistics for your Apollo account. FREE. Shows credit usage, remaining credits, and rate limit info. Call this first to verify your API key works.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool is read-only (gets stats) and mentions it is FREE. It does not explicitly state it is non-destructive, but the context implies a safe read operation. For a zero-parameter tool, this is sufficiently transparent.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It includes the purpose, the data shown, and a usage tip. Every sentence provides value.

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

Completeness5/5

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

Given no output schema, the description explains what is returned (credit usage, remaining credits, rate limit info). It also adds context for when to use (verify API key). With zero parameters and simple semantics, the description is fully complete.

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

Parameters4/5

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

There are no parameters in the input schema, so the baseline score of 4 applies. The description does not need to add parameter details, and it does not mislead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 purpose: 'Get API usage statistics for your Apollo account'. It specifies what is shown (credit usage, remaining credits, rate limit info) and suggests a use case. This distinguishes it from all sibling tools, which are about contacts, sequences, etc.

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: 'Call this first to verify your API key works.' This tells the agent when to use it. There are no alternative tools for this purpose, so exclusion is naturally handled.

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

get_contactB

Get a single contact by ID from your Apollo CRM. FREE.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesApollo contact ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, or side effects. It only states the operation is a simple get, but without annotations, more transparency is expected.

Agents need to know what a tool does to the world before 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 single sentence. However, it could be structured with more context (e.g., read-only hint). Still, it lacks waste.

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?

No output schema and the description does not hint at return values or structure. For a simple get tool, some indication of what fields are returned would be helpful. Missing 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 has 100% coverage on the single parameter contact_id with description 'Apollo contact ID'. The tool description adds no extra meaning beyond the schema, so baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get', resource 'single contact', and scope 'by ID from your Apollo CRM'. It distinguishes from sibling tools like search_contacts and 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 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, no prerequisites, and no context on when not to use it. Only mentions 'FREE' which is not usage advice.

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

get_email_activitiesC

Get activities (opens, clicks, replies) for a specific outreach email. FREE.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailer_message_idYesEmailer message ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries full responsibility. It indicates a read operation ('Get') but does not disclose any side effects, required permissions, rate limits, or behavior beyond the basic action. The 'FREE' note is ambiguous and not standard.

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

Conciseness4/5

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

The description is very short, consisting of two brief sentences. While concise, the second sentence 'FREE.' adds little value and could be considered unnecessary. Nonetheless, it is not verbose.

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 mentions the types of activities retrieved but does not describe the return format or structure. Given the simplicity of the tool (one parameter, no output schema), it is somewhat complete but lacks details about what the response contains.

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 minimal parameter description ('Emailer message ID'). The tool description does not add any further meaning or context about the parameter, so it meets the baseline but does not exceed.

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

Purpose4/5

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

The description clearly states that the tool retrieves activities (opens, clicks, replies) for a specific outreach email, using the verb 'Get' and specifying the resource. It distinguishes from sibling tools like search_activities which are broader in scope, though the addition of 'FREE' is somewhat extraneous.

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 search_activities or other related tools. The description lacks context about appropriate scenarios or prerequisites.

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

get_opportunityB

Get a single deal/opportunity by ID. FREE. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
opportunity_idYesApollo opportunity ID

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description only adds 'FREE' and 'Undocumented endpoint', which hint at cost and stability but omit critical details like authentication, rate limits, or error handling.

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

Conciseness3/5

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

The description is brief and front-loaded, but the extreme brevity sacrifices necessary operational detail, making it less effective than a slightly longer but more complete description.

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 no output schema, the description fails to explain what is returned (e.g., the opportunity object) or any error behaviors, leaving the agent underinformed about the tool's full behavior.

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% for the single parameter 'opportunity_id', so the description doesn't need to add detail. The description adds no extra 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 the verb 'Get' and the resource 'single deal/opportunity by ID', distinguishing it from sibling tools that create or search opportunities.

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 like search_opportunities or create_opportunity, nor does it mention prerequisites or limitations.

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

get_organizationA

Get details for an organization by its Apollo ID. FREE -- no credit cost. Use this when you already have the organization ID from a previous search.

ParametersJSON Schema
NameRequiredDescriptionDefault
organization_idYesApollo organization ID

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, but the description adds value by stating 'FREE -- no credit cost.' It doesn't disclose read-only nature or rate limits, but for a simple get tool, it's 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?

Two informative sentences with no wasted words. The purpose and usage guidelines are front-loaded.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, no output schema), the description fully covers what the agent needs to know to use it correctly.

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

Parameters3/5

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

Schema coverage is 100% and the description does not add extra semantics 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 it retrieves details for an organization using an Apollo ID. It distinguishes from sibling tools like search_organizations by implying the ID is already known.

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

Usage Guidelines5/5

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

Explicitly says 'Use this when you already have the organization ID from a previous search,' guiding the agent on when to invoke this tool vs. searching.

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

get_organization_job_postingsA

Get current job postings for an organization. COSTS 1 CREDIT. Useful for understanding hiring priorities and team growth areas.

ParametersJSON Schema
NameRequiredDescriptionDefault
organization_idYesApollo organization ID

TDQS

A3.7/5.0
Behavior3/5

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

The description notes the credit cost (a behavioral trait) but lacks details on error handling, pagination, or rate limits. With no annotations, more transparency is needed.

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

Conciseness4/5

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

The description is concise and front-loaded with purpose. The all-caps 'COSTS 1 CREDIT' is slightly jarring but overall efficient.

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

Completeness4/5

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

For a simple tool with one parameter and no output schema, the description provides necessary context: purpose, cost, and a use case. Minor gap in return format.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the only parameter. The tool description adds minimal extra meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'current job postings for an organization', distinguishing it from sibling tools which focus on contacts, accounts, etc.

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 the credit cost and suggests use for understanding hiring priorities, but does not explicitly state when to use or avoid using this tool, nor compare with alternatives.

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

get_taskB

Get a single task by ID. FREE. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesApollo task ID

TDQS

B3.3/5.0
Behavior3/5

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

The description labels the tool as 'FREE' and 'Undocumented endpoint', hinting at cost and reliability characteristics. However, it lacks details on read-only behavior, error responses, or required permissions, leaving significant behavioral gaps.

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 with no fluff. It directly states the purpose and adds two metadata tags ('FREE', 'Undocumented endpoint') without sacrificing clarity.

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

Completeness3/5

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

For a simple get-by-ID tool, the description is minimally adequate but lacks details on return value, error handling, and prerequisites. The 'undocumented endpoint' note introduces uncertainty about stability.

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% for the single parameter ('Apollo task ID'). The description adds no further meaning beyond the schema, so baseline score applies.

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

Purpose4/5

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

The description clearly states the action ('Get a single task by ID') and identifies the resource (task). It specifies the identifier method, but does not differentiate from sibling tools like 'search_tasks' or 'update_task'.

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. For example, it does not mention that this tool retrieves a single task by ID while 'search_tasks' may be used for filtering or listing tasks.

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

health_checkA

Check Apollo API health and verify your API key is working. FREE. Returns basic account info if the key is valid. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so the description carries the burden. It discloses that the endpoint is undocumented and returns basic account info, but does not explicitly state it is read-only or mention any side effects. For a health check, the assumed safe behavior is implied but not confirmed.

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 short sentences. It front-loads the core purpose ('Check Apollo API health and verify your API key is working.') and adds essential context (FREE, input/output, undocumented). No wasted 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?

For a zero-parameter health check tool with no output schema, the description fully covers what the tool does, its output, and an important caveat (undocumented endpoint). It is complete given the tool's simplicity.

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

Parameters4/5

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

The tool has no parameters, so schema coverage is effectively 100%. The description does not need to add param info. Baseline for 0 params is 4, and no additional clarification is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: checking Apollo API health and verifying API key. It uses a specific verb ('Check') and resource ('Apollo API health'), and distinguishes from sibling tools which focus on specific CRUD operations.

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

Usage Guidelines4/5

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

The description indicates when to use this tool (to check health and verify key) and notes it is free and returns account info, but does not explicitly state when not to use or provide alternatives. However, for a simple health check, this is adequate guidance.

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

list_account_stagesA

List all account stages in your Apollo pipeline. FREE. Use these stage IDs when creating or filtering accounts. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read-only list operation but does not mention authentication needs, rate limits, or whether the endpoint is stable. The phrase 'Undocumented endpoint' hints at potential instability but lacks explicit safety or side-effect info.

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: one core sentence plus two brief notes ('FREE.' and 'Undocumented endpoint.'). It is front-loaded with the main action and purpose, with 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?

For a simple tool with no parameters and no output schema, the description adequately states the purpose and the nature of the output (stage IDs). However, it does not describe the response format or provide any details about the staging system, leaving some ambiguity about what exactly is returned.

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, so schema coverage is 100% by default. The description adds value by explaining what the output (stage IDs) is used for, which helps the agent understand the purpose beyond the empty schema.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'all account stages', and explains the purpose of using the stage IDs for creating or filtering accounts. It distinguishes from sibling tools like 'list_contact_stages' by specifying '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 Guidelines3/5

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

The description mentions that the stage IDs are used when creating or filtering accounts, implying a use case, but it does not explicitly state when to use this tool versus alternatives like list_contact_stages or list_opportunity_stages. No guidance on when not to use.

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

list_contact_stagesA

List all contact stages in your Apollo pipeline (e.g. Cold, Approaching, Replied). FREE. Use these stage IDs when creating or filtering contacts. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description bears the burden. Mentions 'FREE' and 'Undocumented endpoint', providing some behavioral context (cost and stability). However, does not explicitly state it's read-only or safe, though the action implies it.

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 action and examples. Every word is informative with no 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?

Covers purpose and usage well. Provides examples and hints at output contents. Could mention output format (e.g., list of objects), but acceptable for a simple tool with no output schema.

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

Parameters4/5

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

No parameters in the schema, so baseline is 4. The description does not need to add further parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (list), resource (contact stages), and context (Apollo pipeline). Includes examples (Cold, Approaching, Replied) for clarity. Implicitly distinguishes from sibling tools like list_account_stages by specifying '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?

Explicitly directs to use stage IDs when creating or filtering contacts. Does not mention alternatives or when not to use, but the purpose is clear enough for the agent to infer.

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

list_custom_fields_deprecatedA

List custom fields using the legacy typed_custom_fields endpoint. FREE. Prefer list_fields instead. This endpoint is deprecated but still functional.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Mentions deprecation and free status, but does not explicitly state that it is a read-only operation or any 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?

Two concise sentences with no wasted words. Front-loaded with purpose and immediate distinction from sibling.

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

Completeness4/5

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

For a simple parameterless tool with no output schema, the description covers purpose, deprecation, and preference. Return format is implicit for a list operation.

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

Parameters4/5

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

No parameters exist, and schema coverage is 100%. Baseline score of 4 is appropriate as description adds no parameter info, which is not needed.

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

Purpose5/5

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

Clearly states it lists custom fields using a legacy endpoint, and distinguishes from sibling 'list_fields' by noting a preference for the newer tool.

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

Usage Guidelines4/5

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

Explicitly advises to prefer list_fields, giving clear usage guidance. Does not provide when-not-to-use scenarios, but the preference implies it.

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

list_email_accountsA

List all email accounts connected to your Apollo workspace. FREE. Use this to find the email_account_id needed for add_contacts_to_sequence. Requires a master API key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Discloses that it lists all accounts, is free, and requires a master API key. Does not mention potential side effects, rate limits, or what happens when no accounts exist. Adequate for a simple read tool but could be more 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?

Three concise sentences, front-loaded with purpose, and every sentence provides essential information (what, why, prerequisite). No redundancy or filler.

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

Completeness4/5

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

Given no output schema and zero parameters, the description covers the core functionality, use case, and requirements. It implies the return of email_account_id, but could explicitly state that the response includes IDs. Still sufficiently complete for a simple list tool.

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

Parameters4/5

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

Tool has zero parameters, so schema coverage is 100%. According to guidelines, baseline is 4. Description does not need to add param details, and it mentions the key output (email_account_id) indirectly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 tool lists email accounts, specifies the context (Apollo workspace), and explicitly connects it to finding email_account_id for add_contacts_to_sequence. This directly informs the agent of the tool's role and output.

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?

Indicates when to use (to get email_account_id for add_contacts_to_sequence) and mentions a prerequisite (requires a master API key). Does not provide explicit alternatives or when-not-to-use, but the sibling set is large and the purpose is distinct enough.

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

list_fieldsB

List all available fields for contacts and accounts in Apollo. FREE. Useful for understanding what data you can search/filter on.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_typeNoFilter fields by entity type

TDQS

B3/5.0
Behavior2/5

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

No annotations provided; description mentions 'FREE' but doesn't explain behavior like rate limits, auth, or default entity handling. Minimal beyond schema.

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

Conciseness4/5

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

Two sentences, front-loaded, no wasted words. Could be slightly more precise about entity types.

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 list tool with one optional param, but doesn't describe output format or pagination; completeness is acceptable given sibling tool context.

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

Parameters2/5

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

Schema coverage is 100% with enum and description, so baseline 3; but description misstates allowed values (omits 'opportunity'), actually adding less value than the schema.

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

Purpose4/5

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

Clear verb 'List' and resource 'all available fields' for contacts and accounts, but the schema includes 'opportunity' which is omitted in the description, causing slight inconsistency.

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?

Indicates usefulness for understanding search/filter data, implying when to use, but lacks explicit when-not-to-use or alternatives among siblings like search tools.

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

list_labelsB

List all labels (tags/lists) in your Apollo workspace. FREE. Labels are used to organize contacts and accounts into groups. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
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 only states that the tool is read-only ('List') and notes 'Undocumented endpoint', which hints at potential instability but offers no detail on behavior, permissions, rate limits, or response format.

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

Conciseness3/5

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

The description is short but includes filler ('FREE', 'Undocumented endpoint') that does not add value. It could be more concise by focusing on the core action and label purpose. Front-loading is present with the action verb.

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 simple nature (no parameters, no output schema), the description adequately states the functionality and label purpose. However, it omits any mention of output format, limitations, or whether labels are hierarchical. It is minimally complete.

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

Parameters4/5

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

The input schema has zero parameters with 100% coverage, so the description needs no parameter details. It adds context about labels' purpose, which is helpful but not required for parameter semantics. Baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List all labels' with synonyms 'tags/lists' and specifies the workspace context. It clearly distinguishes this list operation from sibling tools like create_label and delete_label.

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., list_account_stages, list_contact_stages). The description does not provide usage context or exclusions, leaving the agent without decision support.

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

list_opportunity_stagesA

List all deal/opportunity stages in your Apollo pipeline (e.g. Lead, Qualified, Won). FREE. Use these stage IDs when creating or filtering opportunities. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
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 adds that the endpoint is 'FREE' and 'Undocumented', hinting at stability issues, but lacks details on authentication, rate limits, or any side effects.

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

Conciseness5/5

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

Three sentences, each serving a purpose: listing function, providing examples, explaining ID usage, and warning about documentation. No superfluous text.

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

Completeness3/5

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

While the tool is simple (no params, no output schema), the description could be more complete by specifying the output format (e.g., includes both ID and name) or indicating required authentication. It is adequate but not thorough.

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

Parameters4/5

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

With zero parameters, the baseline is 4. The description adds no extra parameter info, but the schema covers all (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 the tool lists all opportunity stages in the Apollo pipeline, with examples. It implicitly distinguishes from sibling tools like list_account_stages by specifying 'opportunity 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?

It explains to use the returned stage IDs when creating or filtering opportunities, providing clear context. However, it doesn't explicitly mention when not to use this tool or compare it to alternatives.

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

search_accountsC

Search accounts in your Apollo CRM. FREE. These are company records you've already saved.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_keywordsNoKeyword search
sort_by_fieldNoField to sort by, e.g. 'account_last_activity_date'
sort_ascendingNo
pageNo
per_pageNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must cover behavioral traits. It only mentions 'FREE' and that records are 'already saved', but omits authentication needs, rate limits, pagination behavior, or what happens with no results. Significant gaps remain.

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

Conciseness3/5

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

The description is extremely concise (one sentence plus 'FREE.'), which is efficient, but it lacks structure and important details. It front-loads the purpose but fails to elaborate beyond that.

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 search tool with 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain pagination, sorting, filtering, or response format, leaving the agent without sufficient context to use the tool correctly.

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

Parameters2/5

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

Schema description coverage is only 40% (q_keywords and sort_by_field have descriptions). The description adds no additional meaning beyond the schema; for the other three parameters (sort_ascending, page, per_page), no guidance is provided. Given low coverage, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 for 'accounts' in Apollo CRM, specifying it's for saved company records. It distinguishes from sibling tools like search_contacts or search_organizations by focusing on a specific resource type. The mention of 'FREE' adds a notable trait.

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 like search_organizations or search_contacts. With many sibling tools, the lack of usage context hinders selection.

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

search_activitiesB

Search activity logs in your Apollo workspace. FREE. Returns email sends, opens, clicks, replies, calls, and other team activities. Useful for monitoring outreach performance and team productivity. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_keywordsNoKeyword search in activities
user_idNoFilter by user who performed the activity
contact_idNoFilter activities for a specific contact
sort_by_fieldNo
sort_ascendingNo
pageNo
per_pageNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose safety and behavior. It mentions the tool is 'FREE' and 'Undocumented endpoint', giving some insight, but lacks details on rate limits, side effects, or expected response structure. The list of returned activity types is useful.

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

Conciseness4/5

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

The description is short with three sentences, no redundant information, and gets to the point quickly. The 'UNDOCUMENTED ENDPOINT' note is a quick warning but could be integrated more smoothly.

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 7 parameters without an output schema, the description is insufficient. It omits details about sorting, pagination, response limits, and the structure of returned data, leaving the agent unprepared for invocation.

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

Parameters2/5

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

Schema description coverage is only 43%; the description adds no additional parameter meaning beyond what the schema provides. Parameters like sort_by_field and pagination are left unexplained, and the description does not clarify their usage or format.

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

Purpose5/5

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

The description clearly states the tool searches activity logs in Apollo workspace and lists specific types of activities returned (email sends, opens, clicks, etc.). This distinguishes it from sibling tools that search contacts, accounts, or 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?

The description only vaguely says 'useful for monitoring outreach performance' without providing explicit guidance on when to use this tool versus alternatives like get_email_activities or search_outreach_emails. 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.

search_contactsA

Search contacts in your Apollo CRM. FREE. These are contacts you've already saved -- not the global Apollo database. Use search_people for prospecting new contacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_keywordsNoKeyword search
contact_stage_idsNoFilter by contact stage IDs
sort_by_fieldNoField to sort by, e.g. 'contact_last_activity_date'
sort_ascendingNoSort direction
pageNo
per_pageNo

TDQS

A4/5.0
Behavior2/5

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

No annotations provided. Description mentions 'FREE' but does not disclose behavioral traits such as read-only nature, rate limits, pagination behavior, or data freshness. For a search tool without annotations, more disclosure is needed.

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

Conciseness5/5

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

Three sentences, front-loaded with key verb and resource, no filler. Every sentence adds value.

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

Completeness4/5

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

Covers usage guidance well and distinguishes from sibling. However, without output schema, description could mention return format (e.g., list of contacts with pagination). Slightly incomplete.

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

Parameters3/5

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

Schema description coverage is high (100% of 6 parameters have descriptions in the schema). The description adds no extra meaning beyond what the schema provides, so baseline of 3 applies.

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

Purpose5/5

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

Clearly states verb (Search) and resource (contacts in your Apollo CRM). Explicitly distinguishes from sibling search_people by specifying scope: already saved contacts vs global database.

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

Usage Guidelines5/5

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

Explicitly tells when to use (for saved contacts) and when not (for prospecting, use search_people). Provides direct alternative tool name.

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

search_news_articlesB

Search news articles about companies in Apollo's database. COSTS CREDITS. Useful for finding recent news about target companies for personalized outreach.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_organization_domainsNoCompany domains to search news for
organization_idsNoApollo organization IDs
pageNo
per_pageNo

TDQS

B3.2/5.0
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 mentions 'COSTS CREDITS,' which is a behavioral trait. However, it does not disclose other aspects like authorization needs, rate limits, or what happens upon execution (e.g., data returned). The cost note is helpful 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 with two sentences: one for purpose and one for usage and cost. Every sentence adds value, and the important note about credits is 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?

Given the lack of output schema and annotations, the description is too brief. It does not explain return format, pagination behavior, or how to effectively combine the parameters. The use case is provided but not enough context for an agent to fully understand the tool's behavior.

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 50% (page and per_page lack descriptions). The tool description does not compensate by explaining these parameters or how they work together. The description adds no meaning beyond the schema for the covered parameters, leaving a gap for users.

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 searches news articles about companies in Apollo's database. It distinguishes from sibling tools like search_contacts or search_activities, which search different entities. However, it could be more specific about the scope (e.g., 'recent news' is vague).

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

Usage Guidelines3/5

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

The description gives a use case ('finding recent news about target companies for personalized outreach') but does not explicitly state when to use it vs. alternatives, nor any conditions where it should not be used. The guidance is implied but not explicit.

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

search_notesC

Search notes in your Apollo workspace. FREE. Notes can be attached to contacts, accounts, or opportunities. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_keywordsNoKeyword search in notes
contact_idNoFilter notes for a specific contact
pageNo
per_pageNo

TDQS

C2.4/5.0
Behavior1/5

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

No annotations provided, so description carries full burden. It only states 'Undocumented endpoint' and provides no behavioral traits such as whether it is read-only, destructive, or rate-limited. This is a significant gap for a search tool.

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

Conciseness3/5

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

The description is short but includes unnecessary text: 'FREE' and 'Undocumented endpoint' add no value. The first sentence is clear, but the fluff reduces 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?

With 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return format, pagination behavior, or how filtering across attached entities works.

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 50% (q_keywords and contact_id have descriptions). The description does not add meaning beyond the schema; it repeats 'Search notes' without clarifying parameter usage, defaults, or pagination for page/per_page.

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 'Search notes in your Apollo workspace', identifying the verb and resource. It also mentions notes can be attached to contacts, accounts, or opportunities. However, it does not differentiate from sibling search tools like search_contacts or search_accounts.

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. The description lacks prerequisites, context, or exclusions. The only hint is that notes are attached to other entities, but no explicit usage scenario.

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

search_opportunitiesC

Search deals/opportunities in your Apollo CRM. FREE. Returns deal name, amount, stage, close date, and associated contacts. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_keywordsNoKeyword search across opportunities
opportunity_stage_idsNoFilter by stage IDs (use list_opportunity_stages to get IDs)
owner_idNoFilter by deal owner user ID
sort_by_fieldNoField to sort by
sort_ascendingNo
pageNo
per_pageNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description bears full burden. It discloses return fields and that the endpoint is undocumented and free, but omits behavior like destructive actions, rate limits, pagination details, error handling, or stability implications.

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

Conciseness4/5

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

The description is very concise with two sentences front-loaded with purpose. However, the inclusion of 'FREE' and 'Undocumented endpoint' adds context but could be more structured (e.g., separated into usage notes).

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 7 parameters, no output schema, and no annotations, the description is incomplete. It lists some return fields but lacks pagination, sorting, filtering details, error codes, or any note about the undocumented endpoint's reliability, which is critical for an agent.

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

Parameters2/5

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

Schema coverage is 57%, with four parameters described. The description adds no parameter-level detail beyond restating 'keyword search' for q_keywords, and does not explain sorting, pagination, or the toggle parameter sort_ascending. It fails to compensate for the three undocumented parameters.

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

Purpose4/5

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

The description clearly states the tool searches for deals/opportunities in Apollo CRM, specifying verb and resource. However, it does not explicitly differentiate this from sibling search tools like search_contacts or search_accounts, which target different entities but could be confused in purpose.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus get_opportunity for individual records or other search tools. The mention of 'Undocumented endpoint' is a warning but lacks context on alternatives or when not to use.

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

search_organizationsA

Search for organizations/companies in Apollo's database. COSTS 1 CREDIT PER PAGE of results. Prefer search_people (FREE) when possible. Use this when you specifically need company-level data like revenue, tech stack, or funding info.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_organization_keyword_tagsNoIndustry keyword tags, e.g. ['saas', 'fintech']
q_organization_nameNoCompany name to search for
organization_locationsNoHQ locations, e.g. ['San Francisco, CA']
organization_num_employees_rangesNoEmployee count ranges, e.g. ['1,10', '51,200']
organization_revenue_rangesNoRevenue ranges in USD, e.g. ['1000000,10000000'] (1M-10M)
q_organization_domainsNoCompany domains to search, e.g. ['google.com']
organization_idsNoSpecific Apollo organization IDs
pageNoPage number
per_pageNoResults per page (max 100, default 10)

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, but description discloses cost (1 credit per page) and highlights the free alternative. It does not detail other behavioral aspects like pagination or response format, but the cost disclosure is important and well-communicated.

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

Conciseness5/5

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

Three sentences: purpose, cost, usage guidance. Front-loaded, no wasted words, and well-organized. Every sentence adds value.

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

Completeness4/5

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

Given the tool's complexity (9 parameters, no output schema), the description covers the primary purpose and cost effectively. However, it lacks description of the response structure or what data is returned, which is a minor gap for a 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 coverage is 100%, so all parameters are documented. The description adds no additional parameter-level meaning beyond the schema; it only adds the cost context. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states it searches for organizations/companies and distinguishes from sibling 'search_people' by noting cost and specific use case (company-level data like revenue, tech stack, funding).

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

Usage Guidelines5/5

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

Explicitly advises to prefer 'search_people' (free) when possible and specifies when to use this tool: for company-level data. This provides clear guidance on when to use versus alternative.

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

search_outreach_emailsA

Search outreach emails sent through Apollo sequences. FREE. Returns email messages with status, open/click tracking, and content.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailer_campaign_idNoFilter by sequence/campaign ID
contact_idNoFilter by contact ID
email_account_idNoFilter by sending email account ID
pageNo
per_pageNo

TDQS

A3.6/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It states the tool returns email messages with status, open/click tracking, and content, which implies a read-only operation, but does not explicitly confirm safety or disclose rate limits, destructive potential, or other side effects. The word 'FREE' is ambiguous but suggests no cost.

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 with no filler. It front-loads the purpose and immediately adds key return details. Every word adds value.

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

Completeness4/5

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

Given the absence of an output schema, the description adequately covers what the tool returns (email messages with status, open/click tracking, content). It does not explain pagination or result limits, but the parameters (page/per_page) cover that. Sibling tools are many, but the description's focus on outreach emails and sequence context provides sufficient differentiation.

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

Parameters3/5

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

The input schema already describes all 5 parameters with clear filter purposes (e.g., 'Filter by sequence/campaign ID'). The description does not add further meaning beyond the schema, and with 60% schema description coverage, it moderately compensates by stating the tool returns email messages with tracking data, but not specific parameter combinations or usage tips.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 outreach emails sent through Apollo sequences, with specific verb 'Search' and resource 'outreach emails'. It distinguishes from sibling search tools like search_activities or search_contacts by referencing Apollo sequences and mentioning return of tracking data.

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 search_activities or search_phone_calls. It does not mention prerequisites, limitations, or typical use cases, leaving 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.

search_peopleA

Search for people in Apollo's database. This is FREE and does not cost credits. Use this as the primary discovery tool. Returns name, title, company, and LinkedIn URL. Does NOT return email/phone -- use enrich_person to get contact info (costs 1 credit). Supports filtering by title, company, location, seniority, and more. Max 10 results per page.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_keywordsNoGeneral keyword search across all fields
person_titlesNoJob titles to filter by, e.g. ['CEO', 'CTO']
person_not_titlesNoJob titles to exclude
q_organization_domainsNoCompany domains to search within, e.g. ['google.com']. Will be auto-cleaned.
organization_locationsNoHQ locations of the company, e.g. ['San Francisco, CA', 'New York']
person_locationsNoLocations of the person, e.g. ['California, United States']
person_senioritiesNoSeniority levels: 'founder', 'c_suite', 'vp', 'director', 'manager', 'senior', 'entry'
contact_email_statusNoEmail status filter: 'verified', 'guessed', 'unavailable'
organization_num_employees_rangesNoEmployee count ranges, e.g. ['1,10', '11,50', '51,200']
organization_idsNoApollo organization IDs to filter by
q_organization_keyword_tagsNoCompany keyword tags, e.g. ['blockchain', 'DeFi', 'web3']
currently_using_any_of_technology_uidsNoTechnologies the company uses, e.g. ['solidity', 'ethereum']. Use underscores for spaces.
q_organization_job_titlesNoJob titles in the company's active postings, e.g. ['Solidity', 'Rust']
organization_latest_funding_stage_cdNoLatest funding stage: 'seed', 'series_a', 'series_b', 'angel', 'pre_seed', etc.
revenue_rangeNoRevenue range in USD, e.g. {min: 1000000, max: 10000000}
include_similar_titlesNoInclude similar titles to person_titles. Default true. Set false for exact match.
pageNoPage number (starts at 1)
per_pageNoResults per page (max 100, default 10)

TDQS

A4/5.0
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 states 'Max 10 results per page,' but the input schema allows per_page up to 100, contradicting this claim. This undermines transparency. It does disclose free status and return fields, but the contradiction is significant.

Agents need to know what a tool does to the world before 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 relatively concise, covering purpose, cost, return fields, alternatives, and filter support in a few sentences. It is front-loaded with the key point. However, the inaccurate 'Max 10 results per page' detracts from overall quality, preventing a 5.

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 18 parameters and no output schema, the description provides a good high-level overview but fails to accurately describe pagination limits (misleading 'max 10') and omits details about additional return fields beyond the stated four. This 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.

Parameters4/5

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

Schema coverage is 100%, so each parameter is described in the schema. The description adds value by summarizing supported filters ('title, company, location, seniority, and more') and noting free usage, which helps the agent prioritize. This exceeds the baseline of 3 for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool searches for people in Apollo's database, specifies it is free, and distinguishes it from enrich_person by noting what it returns (name, title, company, LinkedIn URL) and what it does not (email/phone). The phrase 'primary discovery tool' reinforces its role.

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

Usage Guidelines5/5

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

The description explicitly tells when to use it (primary discovery, free) and when not to (for email/phone, use enrich_person instead, which costs credits). It also mentions alternatives like enrich_person, providing clear guidance.

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

search_phone_callsB

Search phone call logs in your Apollo workspace. FREE. Returns call records, durations, and outcomes. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoFilter by caller user ID
contact_idNoFilter calls for a specific contact
pageNo
per_pageNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Mentions it's free and undocumented, hinting at potential instability. However, fails to disclose read/write nature, rate limits, authentication needs, or pagination behavior. Significant gaps for a search tool.

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

Conciseness4/5

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

Three sentences, front-loaded purpose. No wasted words. The warning about undocumented endpoint is relevant but could be integrated. Overall efficient for a simple search tool.

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

Completeness3/5

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

Covers purpose, return types, and a caution. Lacks detail on pagination, result structure, error handling, and how it fits among siblings. With no output schema, more context would be beneficial. Adequate but 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 50% (user_id and contact_id described in schema; page and per_page only have constraints). Description adds no additional meaning for parameters, doesn't explain page/per_page functionality or expected values. Does not compensate for schema 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?

Description clearly states 'Search phone call logs' with specific verb and resource. It distinguishes from siblings like search_contacts and search_activities by focusing on phone calls. Mentions return types (records, durations, outcomes) adding 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?

Indicates it's free and an undocumented endpoint, but lacks explicit when-to-use vs alternatives or prerequisites. Does not guide on when to use this over other search tools, though the name implies phone call-specific scope.

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

search_sequencesB

Search email sequences (campaigns) in your Apollo account. FREE. Returns sequence name, status, stats, and IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_nameNoSearch by sequence name
sort_by_fieldNoField to sort by, e.g. 'name'
sort_ascendingNo
pageNo
per_pageNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It states returns fields but fails to mention read-only nature, pagination details, or any side effects. Incomplete for safe agent usage.

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

Conciseness4/5

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

The description is very concise—one sentence with key info. However, it could be restructured to separate behavioral notes from return fields for better clarity.

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 5 optional parameters and no output schema, the description is minimal. It fails to explain pagination behavior, default sort, or response structure beyond listing a few fields.

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 (40%), and the description does not explain parameter semantics beyond the schema. It adds no examples or clarification for sort_by_field or pagination params.

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

Purpose5/5

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

The description clearly identifies the verb 'Search' and the resource 'email sequences (campaigns)' in Apollo. It distinguishes from sibling tools like update_sequence_status by focusing on search and return fields.

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 'FREE' but provides no explicit guidance on when to use this tool over other search tools (e.g., search_people). Usage context is implied but no exclusions or alternatives are given.

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

search_tasksC

Search tasks in your Apollo workspace. FREE. Returns manual tasks, call tasks, and sequence-triggered tasks. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_keywordsNoKeyword search
user_idNoFilter by assigned user ID
completedNoFilter by completion status
sort_by_fieldNo
sort_ascendingNo
pageNo
per_pageNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It mentions the endpoint is undocumented and free, but lacks details on authentication, rate limits, or potential instability. The warning 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.

Conciseness4/5

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

Extremely concise with two sentences, directly stating the function and key attributes. However, the phrase 'Undocumented endpoint' is vague and could be more informative without losing brevity.

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 low schema coverage and no output schema, the description is incomplete. It omits details about pagination, sorting, and filtering capabilities that are present in the input schema. The return format is not described.

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

Parameters2/5

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

Schema description coverage is only 43%, and the description adds no parameter-specific information. It does not explain how to use the 7 parameters effectively, leaving the agent to rely on incomplete schema documentation.

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

Purpose5/5

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

The description clearly states the verb 'Search' and the resource 'tasks', and specifies the types of tasks returned (manual, call, sequence-triggered), distinguishing it from sibling tools like search_contacts or search_opportunities. The mention of 'FREE' adds clarity.

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 search_activities or search_sequences. The description does not provide context for appropriate use cases or exclusions, leaving the agent without decision-making support.

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

search_usersC

Search team members/users in your Apollo workspace. FREE. Returns user IDs, names, and email addresses. User IDs are needed for assigning tasks, deals, and contacts. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
q_keywordsNoSearch by name or email
pageNo
per_pageNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only mentions 'FREE' and 'Undocumented endpoint,' which hints at possible instability but does not disclose rate limits, authentication needs, pagination behavior, or potential side effects. This is insufficient for a tool without annotations.

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

Conciseness4/5

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

The description is concise at 4 sentences and includes essential information upfront. It is well-structured but lacks bullet points or clear separation of details; however, it remains efficient and easy to read.

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 3 parameters, no output schema, and no annotations, the description should provide more context. It explains the output (user IDs, names, emails) and the need for user IDs, but omits pagination behavior, the meaning of 'Undocumented endpoint,' and potential issues. This leaves gaps for an agent using the tool.

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 33% with only q_keywords described in the schema. The description adds context about searching users and return fields but does not explain page or per_page parameters. It partially compensates for low schema coverage but not enough to provide complete parameter understanding.

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

Purpose5/5

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

The description clearly states it searches for team members/users in the Apollo workspace, returns user IDs, names, and emails, and explains the importance of user IDs for assigning tasks, deals, and contacts. This distinguishes it from sibling tools like search_people and search_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?

The description does not provide when or when not to use this tool versus alternatives. It mentions 'FREE' and 'Undocumented endpoint' but offers no guidance on context or exclusions. With many sibling search tools, explicit differentiation is missing.

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

update_accountC

Update an existing account in your Apollo CRM. FREE.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesApollo account ID to update
nameNo
domainNo
phone_numberNo
raw_addressNo
owner_idNo

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden of behavioral disclosure. It only states 'update,' implying mutation, but fails to specify whether fields are overwritten or merged, required permissions, rate limits, or side effects. 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.

Conciseness2/5

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

The description is extremely brief (one sentence plus 'FREE'), but this conciseness comes at the cost of completeness. For a tool with six parameters, the description should include more context to be useful. It is under-specified rather than efficiently concise.

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

Completeness1/5

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

Given the lack of an output schema, six parameters, and no annotations, the description is far from complete. It does not explain return values, error conditions, what fields can be updated, or how the update behaves with partial inputs. The agent cannot reliably use this tool based solely on the description.

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?

With schema description coverage at only 17% (only account_id has a description), the description adds no additional meaning for the five other parameters (name, domain, phone_number, raw_address, owner_id). The text does not explain their formats, constraints, or relationships. This leaves the agent with inadequate information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'existing account in your Apollo CRM,' which distinguishes it from sibling tools like create_account (create) and search_accounts (search). The mention of 'FREE' is extraneous but does not detract from clarity.

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 create_account or update_contact. No prerequisites, conditions, or exclusions are provided, leaving the agent uncertain about the appropriate context for invocation.

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

update_contactC

Update an existing contact in your Apollo CRM. FREE. Provide the contact ID and any fields to update.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesApollo contact ID to update
first_nameNo
last_nameNo
emailNo
titleNo
organization_nameNo
website_urlNo
account_idNo
phone_numbersNo
label_namesNo
present_raw_addressNo
cityNo
stateNo
countryNo
postal_codeNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description only mentions 'FREE' but does not disclose behavioral traits like whether updates are immediate, whether omitting a field clears it, or if the operation is idempotent.

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

Conciseness4/5

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

Two sentences, succinct and directly states the purpose. 'FREE' is extraneous but not detrimental.

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?

Missing information on return format, error handling, and which fields are updatable. With no output schema and many sibling tools, the description should provide more context but does not.

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?

Only one parameter (contact_id) has a description in the schema; the description does not compensate by explaining other fields or constraints. With 7% schema coverage and 15 parameters, the description adds minimal semantic 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?

The description clearly states the action ('update') and resource ('existing contact in Apollo CRM'), distinguishing it from create/delete tools. However, it could explicitly differentiate from bulk_update_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?

Implies usage when you have an existing contact ID and want to modify specific fields, but lacks explicit guidance on when to use versus alternatives (e.g., search then update).

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

update_labelA

Update a label name in Apollo. FREE. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
label_idYesLabel ID to update
nameYesNew name for the label

TDQS

A3.5/5.0
Behavior3/5

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

Mentions 'FREE' and 'undocumented endpoint', providing some transparency about cost and stability, but lacks details on side effects or required permissions.

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?

Extremely concise with no wasted words; front-loads the essential purpose.

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

Completeness3/5

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

For a simple two-parameter update tool with no output schema, the description is minimally adequate but omits return value or success criteria.

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 parameters are already described. The description adds no additional meaning beyond the schema (e.g., type or format 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?

Clearly states verb ('update'), resource ('label'), and specific attribute ('name'), distinguishing it from create_label and delete_label among siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like create_label or delete_label. No context about prerequisites or appropriate scenarios.

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

update_opportunityC

Update an existing deal/opportunity. FREE. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
opportunity_idYesApollo opportunity ID
nameNo
amountNo
opportunity_stage_idNo
owner_idNo
closed_dateNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided; the description only notes 'FREE' and 'Undocumented endpoint', which alerts to instability but lacks details on side effects, permissions, or return values.

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

Conciseness3/5

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

Very short and no wasted words, but lacks structure and substance. It is concise but insufficiently 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?

With 6 parameters, no output schema, and no annotations, the description is far from complete. It does not explain update behavior, constraints, or return values.

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 17% (only opportunity_id described). The description adds no parameter meaning; thus fails to compensate for low schema coverage.

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

Purpose4/5

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

The description clearly states 'Update an existing deal/opportunity', identifying the action and resource. However, it lacks differentiation from siblings like 'create_opportunity' or 'get_opportunity'.

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, prerequisites, or context. The description gives no usage information beyond the basic action.

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

update_sequence_statusB

Remove or stop contacts in a sequence. FREE. Use this to pause or remove contacts from an active sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailer_campaign_idYesSequence/campaign ID
contact_idsYesContact IDs to remove/stop
modeYes'remove' removes contacts entirely, 'stop' pauses their sequence

TDQS

B3.4/5.0
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 the two modes (remove vs stop) but does not explain side effects, reversibility, or required permissions, leaving significant gaps.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, no extraneous words. Every sentence adds value.

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?

No output schema, and the description does not mention return values, error handling, or batch behavior. For a tool with 3 required params, it lacks sufficient context beyond the basic action.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; the parameters are already well-documented in the input schema.

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

Purpose5/5

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

The description clearly states the action ('Remove or stop contacts in a sequence') and the specific resource (contacts in a sequence). It distinguishes from sibling tools like add_contacts_to_sequence by its opposite purpose.

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

Usage Guidelines3/5

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

The description says 'Use this to pause or remove contacts from an active sequence,' which provides clear context but lacks explicit when-not-to-use guidance or alternatives.

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

update_taskC

Update an existing task. FREE. Can mark as completed. Undocumented endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesApollo task ID
noteNoUpdated task note
completedNoMark as completed
priorityNo
due_atNo

TDQS

C2.6/5.0
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 'Undocumented endpoint' warns about reliability, but does not describe side effects, permissions, or required auth. The 'Can mark as completed' is vague.

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

Conciseness3/5

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

The description is very short but not well-structured as sentence fragments. It front-loads the main action but misses opportunity for clarity.

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 5 parameters and no output schema, the description is incomplete. It fails to explain optional parameters, expected formats (e.g., due_at), or the response after update.

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 60%, but the description adds minimal meaning. It mentions 'completed' which is already documented. Parameters 'priority' and 'due_at' are not explained beyond the schema.

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

Purpose4/5

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

The description clearly states 'Update an existing task' which identifies the action and resource. However, it does not differentiate from sibling tools like 'create_task' or 'get_task'.

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 mentions 'FREE' and 'Undocumented endpoint' indicating usage conditions but gives no guidance on when to use this tool versus alternatives like 'create_task' or 'update_account'.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 50 tool updatesv1.0.0
    • First observedadd_contacts_to_sequence
    • First observedbulk_create_contacts
    • First observedbulk_enrich_people
    • First observedbulk_update_contacts
    • First observedcreate_account
    • First observedcreate_contact
    • First observedcreate_custom_field
    • First observedcreate_label
    • First observedcreate_note
    • First observedcreate_opportunity
    • First observedcreate_task
    • First observeddelete_contact
    • First observeddelete_label
    • First observeddelete_note
    • First observedenrich_organization
    • First observedenrich_person
    • First observedget_api_usage_stats
    • First observedget_contact
    • First observedget_email_activities
    • First observedget_opportunity
    • First observedget_organization
    • First observedget_organization_job_postings
    • First observedget_task
    • First observedhealth_check
    • First observedlist_account_stages
    • First observedlist_contact_stages
    • First observedlist_custom_fields_deprecated
    • First observedlist_email_accounts
    • First observedlist_fields
    • First observedlist_labels
    • First observedlist_opportunity_stages
    • First observedsearch_accounts
    • First observedsearch_activities
    • First observedsearch_contacts
    • First observedsearch_news_articles
    • First observedsearch_notes
    • First observedsearch_opportunities
    • First observedsearch_organizations
    • First observedsearch_outreach_emails
    • First observedsearch_people
    • First observedsearch_phone_calls
    • First observedsearch_sequences
    • First observedsearch_tasks
    • First observedsearch_users
    • First observedupdate_account
    • First observedupdate_contact
    • First observedupdate_label
    • First observedupdate_opportunity
    • First observedupdate_sequence_status
    • First observedupdate_task

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, with only minor overlaps like search_contacts (saved contacts) vs. search_people (prospecting database) and list_custom_fields_deprecated vs. list_fields. Descriptions effectively resolve ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in lowercase with underscores (e.g., create_contact, search_people). No mixed conventions or confusing name styles.

Tool Count2/5

With 50 tools, the server is significantly oversized compared to typical MCP servers (3-15). While each tool serves a specific function, the sheer number makes it heavy for an agent to navigate, and many tools (e.g., search_phone_calls, search_activities) add complexity.

Completeness4/5

The tool surface covers most CRM and enrichment operations comprehensively (CRUD for contacts, opportunities, tasks, notes, labels; enrichment; search; sequences). Minor gaps exist: missing delete_account and delete_opportunity, and no get_sequence by ID, but these are not critical.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server implementation that enables AI assistants to interact with Apollo.io data, performing operations like people/organization enrichment, searching, and retrieving job postings through natural language commands.
    7
    93
    40
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server implementation that enables AI assistants to interact with Apollo.io data, allowing for people and organization enrichment, search capabilities, and job posting retrieval through natural language commands.
    7
    93
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Apollo.io B2B database enabling people and company search, enrichment, and insights through conversational interfaces.
    9
    507
    19
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Apollo.io B2B sales intelligence API. Enables searching and enriching people and organizations via natural language.
    7
    27
    4
    MIT

Latest Blog Posts

MCP directory API

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

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

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