apollo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APOLLO_API_KEY | Yes | Apollo API key used by local clients. | |
| APOLLO_BASE_URL | No | Override for testing or proxies. | https://api.apollo.io/api/v1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| apollo_search_peopleB | Search for people in Apollo with advanced filtering options. Use filters to target specific roles, locations, seniority levels, and companies. |
| apollo_search_companiesB | Search for companies/organizations in Apollo with comprehensive filtering options. Use filters to target specific company types, locations, sizes, and industries. |
| apollo_enrich_personA | Enrich a person by email, linkedin_url, or name+domain/name+organization_name using Apollo match. Returns a compact summary by default (~25 fields trimmed to the most useful ones). Pass full=true to return the raw Apollo payload — those can exceed 100KB and may overflow MCP token limits, so only use full=true when you need the complete employment_history / current_technologies / org block. |
| apollo_reveal_personA | Reveal full contact info (name, email, phone, LinkedIn) for a person by their Apollo ID. Use person IDs from search results. Costs 1 export credit per call. |
| apollo_enrich_companyB | Enrich a company/organization by domain or name using Apollo match. |
| apollo_bulk_enrich_peopleA | Bulk enrich multiple people using Apollo match. Provide an array of people with email, linkedin_url, name+domain, or name+organization_name. |
| apollo_bulk_enrich_organizationsA | Bulk enrich multiple organizations using Apollo match. Provide an array of organizations with domain or name. |
| apollo_get_organization_job_postingsA | Get job postings for a specific organization by organization ID. |
| apollo_get_complete_organization_infoC | Get complete information for a specific organization by organization ID. |
| apollo_search_news_articlesB | Search Apollo for news articles about specific companies. organization_ids is REQUIRED — Apollo returns 422 without it. Optionally filter by event categories (e.g. 'hires', 'investment', 'contract') and a published-date range. |
| apollo_get_personA | Look up a single person by Apollo ID via /people/{id}. By default returns a compact summary (~50 fields trimmed to the most useful ones). Pass full=true to return the raw Apollo payload (can be 100KB+ — only do this when you specifically need the full record). |
| apollo_search_contactsA | Search YOUR Apollo CRM contacts (vs the prospect database). Accepts arbitrary Apollo search params (q_keywords, contact_label_ids, contact_stage_ids, sort_ascending, sort_by_field, page, per_page, etc.). |
| apollo_search_accountsA | Search YOUR Apollo CRM accounts (vs the prospect database). Accepts q_organization_name, account_stage_ids, sort fields, pagination, etc. |
| apollo_search_dealsA | Search deals/opportunities. Filter by name keyword, owner, stage, and date ranges. Accepts pagination and a freeform 'extra' bag for less-common Apollo params. |
| apollo_create_dealA | Create a new deal/opportunity in your Apollo account. Requires a master Apollo API key. 'name' is the only required field. |
| apollo_update_dealA | Update an existing deal/opportunity. Requires a master Apollo API key. Pass only the fields you want to change. |
| apollo_list_deal_stagesA | List the deal stages configured for your Apollo team. Use the IDs returned here to set 'opportunity_stage_id' on create/update deal. Requires a master Apollo API key. |
| apollo_list_usersB | List teammates (users) in your Apollo account. Returns IDs needed for owner_id/user_id on deals and tasks. Requires a master Apollo API key. |
| apollo_create_taskC | Create a task assigned to a teammate, scoped to one or more contacts. All six core fields (user_id, contact_ids, type, priority, status, due_at) are required by Apollo. |
| apollo_search_tasksC | Search tasks. Accepts open_factor (open_tasks/closed_tasks/etc.), due_at_range, owner_ids, pagination, and a freeform 'extra' bag. |
| apollo_bulk_complete_tasksB | Mark multiple tasks as complete by ID. |
| apollo_search_sequencesB | Search emailer sequences (campaigns) in your Apollo account. Requires a master API key. |
| apollo_add_contacts_to_sequenceC | Add one or more contact IDs to an emailer sequence. send_email_from_email_account_id is typically required by Apollo. |
| apollo_get_organization_top_peopleB | Get the top contacts at a given organization (good for ICP mapping). Calls GET /mixed_people/organization_top_people?organization_id=…. This endpoint is not formally documented on docs.apollo.io but appears in your usage-stats catalog and is used in the wild. |
| apollo_add_to_my_prospectsC | Save people from prospect search results to 'My Prospects'. Pass the entity (person) IDs returned from people search. |
| apollo_create_contactA | Create a single CRM contact in your Apollo account. Apollo dedupes by email when run_dedupe is true. Common fields are explicit; pass anything else (custom phones, label_names, typed_custom_fields, etc.) via the 'extra' bag. |
| apollo_update_contactA | Update a CRM contact via PATCH /contacts/{id}. Pass only the fields you want to change. label_names REPLACES the existing list. |
| apollo_bulk_create_contactsA | Bulk-create CRM contacts (up to 100 per call). Pass 'contacts' as a list of dicts with first_name/last_name/email and any other fields (title, organization_name, linkedin_url, contact_stage_id, owner_id, phone_numbers, etc.). Apollo returns created_contacts and existing_contacts. |
| apollo_match_contactA | Match a CRM contact via POST /contacts/match. Like people/match but scoped to your CRM contacts. Provide email, linkedin_url, or name+org. |
| apollo_bulk_match_contactsA | Bulk-match CRM contacts. Pass 'details' as a list of dicts with email/linkedin_url/name+org. RATE LIMIT: 100/hour, 20/minute. |
| apollo_list_contact_stagesA | List the contact stages configured for your team. Use the IDs to set contact_stage_id on create/update contact. Requires a master API key. |
| apollo_create_accountB | Create a single CRM account. Common fields are explicit; pass anything else (label_names, typed_custom_fields, etc.) via 'extra'. |
| apollo_update_accountB | Update a CRM account via PATCH /accounts/{id}. |
| apollo_bulk_create_accountsB | Bulk-create CRM accounts. Pass 'accounts' as a list of dicts with name/domain/phone/etc. |
| apollo_list_account_stagesA | List the account stages configured for your team. Use the IDs to set account_stage_id on create/update account. Requires a master API key. |
| apollo_bulk_create_tasksA | Bulk-create tasks. One task is created per contact in contact_ids. Same required fields as create_task except note is optional. |
| apollo_create_phone_callA | Log a phone call in Apollo. Common fields are explicit; pass less-common fields (recording_url, etc.) via 'extra'. |
| apollo_update_phone_callC | Update a phone-call record via PATCH /phone_calls/{id}. |
| apollo_remove_contacts_from_sequenceB | Remove or stop contacts in one or more sequences. mode is typically 'mark_as_finished'. Returns a job descriptor (async on Apollo's side). |
| apollo_approve_sequenceB | Approve a sequence so it can start sending. |
| apollo_abort_sequenceA | Abort an active sequence (stops sending immediately). |
| apollo_archive_sequenceB | Archive a sequence (hide from active list). |
| apollo_search_emailer_messagesB | Search sent emailer messages. Filter by sequence, recipient, status, date range, etc. via the freeform 'extra' bag. |
| apollo_get_emailer_message_activitiesA | Get engagement activities (opens, clicks, replies, bounces) for a single emailer message ID. |
| apollo_get_api_usage_statsA | View your team's Apollo API usage and per-minute/hour/day rate limits across endpoints. Requires a master Apollo API key — non-master keys will receive HTTP 403. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dyngai/apollo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server