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 |
Capabilities
Features and capabilities supported by this server
| 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