Connect your AI Agents to Apollo in minutes

Merge lets you securely connect your agents to Apollo and thousands of tools instantly

Available tools

create_account

Create a new account/company in Apollo CRM. Name is required. Optionally set domain, owner, stage and custom fields. Call listaccountstages for a valid accountstageid. For ownerid, call listusers (needs a master API key) or reuse an ownerid from searchaccounts or get_account.

get_account

Get an account by ID from Apollo CRM. Returns full account details including contacts count.

update_account

Update an existing account in Apollo CRM. Only provided fields will be updated.

search_accounts

Search accounts (companies) in Apollo CRM by company name, stage, owner, or labels. Use qorganizationname to filter by name. Use listaccountstages for stage IDs and listusers (needs a master API key) for owner IDs. Returns account IDs for getaccount, updateaccount and searchcontacts.

list_account_stages

List all available account stages in Apollo CRM. Use stage IDs when creating or updating accounts.

update_account_stages

Update the stage for multiple accounts at once. Provide account IDs and the new stage ID.

update_account_owners

Reassign ownership of multiple accounts to a different user. For ownerid, call listusers (needs a master API key; a non-master key returns a permission error) or reuse the ownerid already on a record from searchaccounts or getaccount. Use searchaccounts to find account IDs.

create_contact

Create a new contact in Apollo CRM. Provide name, email, title, company, and optional account association.

get_contact

Get a contact by ID from Apollo CRM. Returns full contact details including custom fields.

update_contact

Update an existing contact in Apollo CRM. Only provided fields will be updated.

search_contacts

Search contacts in Apollo CRM by keywords, stage, owner, account, or labels. Supports sorting and pagination.

list_contact_stages

List all available contact stages in Apollo CRM. Use stage IDs when creating or updating contacts.

update_contact_stages

Update the stage for multiple contacts at once. Provide contact IDs and the new stage ID.

update_contact_owners

Reassign ownership of multiple contacts to a different user. For ownerid, call listusers (needs a master API key; a non-master key returns a permission error) or reuse the ownerid already on a record from searchcontacts or getcontact. Use searchcontacts to find contact IDs.

create_opportunity

Create a new deal/opportunity in Apollo CRM. Name is required. Optionally set amount, close date, stage, and associations.

get_opportunity

Get an opportunity/deal by ID from Apollo CRM. Returns full deal details including stage and associations.

update_opportunity

Update an existing opportunity in Apollo CRM. Change stage, amount, close date, or mark as won/lost.

search_opportunities

Search opportunities in Apollo CRM pipeline. Filter by stage, owner, account, amount range, or close date.

enrich_organization

Enrich company data by domain. Returns company details including size, industry, funding, technologies, and social profiles.

bulk_enrich_organizations

Bulk enrich multiple companies by domain, returning company details for each. Consumes one Apollo credit per enriched company.

search_organizations

Search Apollo database for companies by name, industry keywords, location, or employee count. Returns company profiles.

get_organization_job_postings

Get current job postings for a company by Apollo organization ID. Useful for understanding hiring activity and company growth.

search_people

Search Apollo database for people by title, seniority, location, company domain, or keywords. Returns contact info and company details.

enrich_person

Enrich a person's profile by Apollo id, email, LinkedIn URL, or name+company domain. Returns full contact details, employment history, and social profiles. To enrich someone found with searchpeople, pass their id from that result: search withholds lastname, email and linkedin_url, so the id is the only usable handle. Consumes one Apollo credit per match.

bulk_enrich_people

Bulk enrich up to 10 people per call. Provide a list of Apollo id, email, LinkedIn URL, or name+domain combinations. To enrich people found with searchpeople, pass each id from that result: search withholds lastname, email and linkedinurl. Unmatched entries are omitted from matches (see missingrecords). Consumes one Apollo credit per match.

list_email_accounts

List email accounts/mailboxes linked to Apollo. Returns email account IDs needed for addcontactsto_sequence. Requires master API key.

search_sequences

Search email sequences by NAME, and read their steps and performance metrics. qname matches sequence names only -- Apollo offers no other filter on this endpoint, and no way to fetch one sequence by ID, so a name search is how you find a sequence again after createsequence. Returns each sequence's emailersteps, IDs included, which updatesequence needs.

add_contacts_to_sequence

Add one or more contacts to an email sequence. Optionally specify email account to send from and override settings.

update_contact_sequence_status

Change a contact's status in a sequence: 'remove' to remove them, 'stop' to halt their progress, or 'markasfinished' to mark the sequence completed. Use searchsequences for sequence IDs and searchcontacts for contact IDs.

list_email_schedules

List the sending-window schedules a sequence can run on — which hours and weekdays Apollo is allowed to send in, and in whose time zone. Call this before createsequence when the sequence should not use the team default, and pass the id as emailerschedule_id.

create_sequence

Create an email sequence with its steps and the subject and body each step sends. Creates it INACTIVE: nothing sends until you call activatesequence. Each step needs a type and waittime; email steps also need emailertouches carrying the template. Use listemailschedules for emailerschedule_id, or omit it for the team default. Needs the sequences/create endpoint enabled on the API key.

update_sequence

Update a sequence: rename it, change owner, schedule, labels, caps or CC/BCC, or edit its steps. emailersteps is REQUIRED and is the COMPLETE list -- a step left out is DELETED, each needs a position, and email steps need a template. Apollo never returns existing step copy, so what you send BECOMES the copy: re-send subjects and bodies you want kept. searchsequences gives the ID.

archive_sequence

Archive a sequence. This CANNOT BE UNDONE -- Apollo publishes no unarchive endpoint -- and it deactivates the sequence and finishes every contact currently in it, so anyone mid-sequence stops receiving the remaining steps. To pause reversibly, use deactivatesequence instead. Use searchsequences for the ID.

activate_sequence

Turn a sequence on. Contacts already enrolled begin receiving REAL email from the sending mailbox as soon as the schedule allows, and sent email cannot be recalled. Confirm the steps, the copy and the sending mailbox first. Use search_sequences for the sequence ID.

deactivate_sequence

Turn a sequence off, pausing every contact in it so no further steps are sent. Reversible with activatesequence, but it does not recall email already sent. Use searchsequences for the sequence ID.

search_outreach_emails

Search the emails a sequence sent. Filter by emailermessagestats (['replied'], ['opened'], ['bounced']) and emailermessagereplyclasses (['willingtomeet']). Filters are reliable; per-message flags often are not -- read bounce (not bounced) and status, and count filtered results rather than trusting opened/clicked. Set includefull_payload for message bodies.

create_task

Create a sales task/reminder in Apollo. Requires userid, contactids, priority, dueat and type. Call searchcontacts for contact IDs. For userid, call listusers (needs a master API key) or reuse an ownerid from searchaccounts or search_contacts. One task is created per contact.

search_tasks

Search tasks in Apollo. Filter by assignee, contact, account, type, priority, status, or due date range.

list_users

List users on the Apollo team with their IDs. Use it for an ownerid for updateaccountowners or updatecontactowners, or a userid for createtask. Requires a master API key; a non-master key returns a permission error, in which case reuse an ownerid already on a record from searchaccounts or searchcontacts. Supports pagination.

validate_credential

Validate Apollo credentials. Verifies credentials during setup.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Apollo  MCP server

FAQs on using Merge's Apollo  MCP server

What is an Apollo MCP server?

It’s an MCP server that exposes data and functionality from Apollo via tools. Your agents can use these tools to create contacts, enrich a person’s profile, search and retrieve sequences, and more.

Apollo doesn’t offer an official MCP server at the moment (an MCP server that they would provide and manage), so you’ll need to use one from a 3rd-party vendor, like Merge.

How can I use the Apollo MCP server?

Here are some common use cases:

  • Sequence assignment and launch: Enroll the right contacts into the right sequences automatically (persona, segment, intent, etc.), with guardrails like throttling and variant selection
  • Persona-based outreach personalization: Generate high-quality first-touch emails and LinkedIn messages using Apollo person and company context (role, industry, initiatives, etc.)
  • Lead list building from ICP criteria: Turn “our ICP is X” into repeatable Apollo searches and curated lists that sales can use immediately
  • Automated contact discovery for target accounts: For a named-account list, find the full buying committee (titles, seniority), including verified emails and phone numbers when available
  • Inbound lead triage and routing: Enrich new leads in real time, match to the right account/person, and recommend priority and ownership

What are popular tools for Apollo’s MCP server?

Here are some popular tools across data types:

Sequences

  • <code class="blog_inline-code">search_sequences</code>
  • <code class="blog_inline-code">add_contacts_to_sequence</code>
  • <code class="blog_inline-code">update_contact_sequence_status</code>

Opportunities

  • <code class="blog_inline-code">create_opportunity</code>
  • <code class="blog_inline-code">get_opportunity</code>
  • <code class="blog_inline-code">update_opportunity</code>
  • <code class="blog_inline-code">search_opportunities</code>

Organizations

  • <code class="blog_inline-code">search_opportunities</code>
  • <code class="blog_inline-code">get_organization_job_postings</code>
  • <code class="blog_inline-code">enrich_organization</code>
  • <code class="blog_inline-code">bulk_enrich_organization</code>

What makes Merge Agent Handler’s Apollo MCP server better than alternative Apollo MCP servers?

Merge Agent Handler’s Apollo MCP server comes with platform-level advantages:

  • Enterprise-grade security and DLP: Merge Agent Handler scans tool inputs and outputs for sensitive data and enforces configurable security rules, including blocking or redacting data when policies are violated
  • Managed authentication and credential handling: The platform supports dynamic authentication flows and manages credentials so agents can safely access third-party systems without custom auth logic.
  • Real-time observability and audit trails: Every tool call is logged with full context, and logs are fully searchable to support debugging, auditing, and compliance workflows.
  • Evaluation Suite: Test and compare Apollo MCP server behavior across realistic workflows while enforcing enterprise-grade security and DLP, managed authentication, and searchable audit logs for every tool call

Can I set custom security rules for Apollo tool calls in Merge Agent Handler?

Yes, Merge Agent Handler supports both default and custom security rules that scan tool inputs and outputs for sensitive data and enforce actions such as blocking, redacting, or masking fields. 

These rules apply to all connectors used through the platform, including Apollo.

Here are some examples of rules you can set:

  • Prevent bulk exports out of Apollo. Block or hard-limit Apollo actions that export large contact lists (for example, “export to CSV” or “push 5,000 contacts”) to reduce data exfiltration risk
  • Gate access to verified contact data. Allow Apollo “people search” results, but redact or block returning personal emails, mobile numbers, or direct dials unless the requesting agent is explicitly approved for that data
  • Domain and account allowlisting for enrichment. Only allow Apollo enrichment or contact discovery for companies whose domains match an approved target-account list (for example, only enrich approved-account.com domains, block everything else)
  • Query scope controls for Apollo searches. Block Apollo searches that are too broad or high-risk, such as “all engineers in the United States,” or require tighter filters (job title + seniority + company size + specific industries) before the tool call is allowed
  • Sensitive keyword and notes filtering. Block agents from writing or retrieving Apollo fields like notes/custom fields if they contain sensitive strings (for example, “SSN,” “password,” “health,” “immigration”), or automatically redact those snippets from Apollo responses

How can I start using Merge Agent Handler’s Apollo MCP server?

You can take these steps:

1. Sign up for Merge Agent Handler here.

2. Select the Apollo MCP server, and name it for the environment you want (e.g.,, “Apollo – Prod” vs “Apollo – Sandbox”).

3. Authenticate Apollo by completing the credential flow (typically using an Apollo API key or OAuth, depending on how your setup is configured), then store it in Agent Handler so agents don’t handle raw credentials directly.

4. Define what the agent is allowed to do with Apollo: choose which Apollo tools/endpoints are permitted (for example, search people, enrich contact, create/update contact, enroll in sequence), and set any limits (volume caps, read-only mode, allowlisted domains).

5. Set security rules for Apollo tool calls: configure DLP and policy rules such as blocking bulk exports, redacting personal emails/phone numbers, and preventing writes unless explicitly approved.

6. Test with a small, safe workflow: run a few low-volume calls (for example, “find 5 RevOps leaders at these 3 accounts”) and verify results, redactions, and logs look correct.

7. Ship a real use case behind guardrails: connect the Apollo MCP server to a production agent workflow (prospecting, enrichment, routing, sequencing), keep tight rate limits at first, then expand scope as the results look good.

Explore other MCP servers built and managed by Merge

activecampaign
ActiveCampaign
adobe_pdf_services
Adobe PDF Services
ahrefs
Ahrefs
airtable
Airtable
amadeus
Amadeus
amazon_s3
Amazon S3
amplitude
Amplitude
anaplan
Anaplan
arize
Arize
articulate
Articulate Reach 360
asana
Asana
ashby
Ashby
attio
Attio
avalara
Avalara
aviationstack
Aviationstack
axiom
Axiom
bamboohr
BambooHR
basecamp
Basecamp
biorxiv
bioRxiv
bitbucket
Bitbucket
bitly
Bitly
box
Box
brex
Brex
calendly
Calendly

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now