How to connect Apollo to Hermes Agent
Connect Apollo to Hermes with ClawLink: paste your Apollo key once and 48 tools work from chat. No MCP server to run, nothing stored on your machine.


Search leads and manage contacts. Once connected, Hermes Agent can read and act on Apollo from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent Apollo access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Apollo setup: pair once in the browser and your always-on Hermes agent can act on Apollo for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to Apollo.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect Apollo
Paste your API key in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with Apollo?"
ChatGPT has quoted these exact commands before, so here they are again:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # approve the link in your browser
hermes clawlink finish
hermes clawlink testThe Apollo API key is generated in your Apollo.io account and pasted once on the hosted setup page. It stays server-side; the agent never sees it, and disconnecting from the dashboard revokes its use.
Using a different agent?
The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once Apollo is connected in the dashboard, that agent calls the same 48 Apollo tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Apollo MCP for Hermes
Looking for a Apollo MCP server for Hermes Agent? ClawLink connects Apollo to Hermes Agent and exposes 48 Apollo tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Apollo integration works the same way.
Apollo.io is the sales data and CRM platform, not Apollo GraphQL the API server, not the Apollo iOS app, and not the Greek god; search results for "Apollo and Hermes" mix all four, and the answers about GraphQL servers are the wrong product. On the safety question, the guidance the engines repeat is to avoid pasting raw master API keys into third-party builders, because that leaks access to your whole database. This page is the hosted version of that advice: the Apollo API key is pasted once on the hosted setup page, stored server-side, scoped to the connected account, and never shown to the agent. Pair Hermes, approve the pairing, paste the key, and the 48 Apollo tools below work from chat, with no config file edited and no MCP server running on your machine.
What the Hermes Agent Apollo integration can do
48 Apollo tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 48.
30 of 48 Apollo tools for Hermes
| Tool | What it does |
|---|---|
Add contacts to sequence apollo_add_contacts_to_sequence | Enroll contacts into an Apollo email sequence |
Create account apollo_create_account | Create a company account in Apollo CRM |
Create contact apollo_create_contact | Create a new contact in Apollo CRM |
Create deal apollo_create_deal | Create a new deal in Apollo CRM |
Get auth status apollo_get_auth_status | Get the connected Apollo user and team context |
Get deal apollo_get_deal | Get an Apollo deal by ID |
List deals apollo_list_deals | List Apollo deals/opportunities |
Organization enrichment apollo_organization_enrichment | Enrich a company from Apollo's database |
Organization search apollo_organization_search | Search Apollo's organization database |
People enrichment apollo_people_enrichment | Enrich a person from Apollo's contact database |
People search apollo_people_search | Search Apollo's people database |
Search accounts apollo_search_accounts | Search company accounts in Apollo CRM |
Search contacts apollo_search_contacts | Search contacts already stored in Apollo CRM |
Search sequences apollo_search_sequences | Search Apollo email sequences |
Search tasks apollo_search_tasks | Search Apollo tasks |
Bulk organization enrichment apollo_bulk_organization_enrichment | Enriches data for up to 10 organizations simultaneously by providing a list of their base |
Bulk people enrichment apollo_bulk_people_enrichment | Use to enrich multiple person profiles simultaneously with comprehensive data from Apollo's |
Get account apollo_get_account | Retrieve detailed information about a specific account by its Apollo ID |
Get contact apollo_get_contact | Retrieves detailed information about a specific contact by its ID |
Get labels apollo_get_labels | Retrieves all labels from Apollo.io, used for organizing contacts and accounts |
Get opportunity stages apollo_get_opportunity_stages | Retrieves all configured opportunity (deal) stages from the Apollo.io account |
Get organization apollo_get_organization | Retrieves complete information about a specific organization by its Apollo ID |
Get organization job postings apollo_get_organization_job_postings | Retrieves paginated job postings for a specified organization by its ID, optionally filtering |
Get typed custom fields apollo_get_typed_custom_fields | Retrieves all typed custom field definitions available in the Apollo.io instance, detailing |
List account stages apollo_list_account_stages | Retrieves the IDs for all available account stages in your team's Apollo account |
List contact stages apollo_list_contact_stages | Retrieves all available contact stages from an Apollo account, including their unique IDs and |
List email accounts apollo_list_email_accounts | Retrieves all email accounts and their details for the authenticated user; takes no parameters |
List fields apollo_list_fields | Retrieves all field definitions from Apollo.io, including system fields and custom fields |
List users apollo_list_users | Retrieves a list of all users (teammates) associated with the Apollo account, supporting |
Search calls apollo_search_calls | Searches for call records in Apollo.io using filters like date range, duration, direction |
Try it: find the Apollo tool you need
Browse the 30 Apollo tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Run apollo_people_search for <title> at <industry> and show me the top 10 results with name, title, and company. Do not enrich anything yet.
Run apollo_people_enrichment for the contact id I give you and show me what it adds beyond the search record. Then tell me how many credits you expect the enrichment to consume.
Run apollo_get_opportunity_stages and apollo_list_account_stages, then apollo_list_deals grouped by stage, and tell me where the biggest value sits.
Run apollo_get_auth_status and tell me which Apollo user and team this connection acts as, so I know whose access the tools see.
How the Apollo tools behave
The distinction that decides whether an Apollo prompt is cheap or credit-burning.
- Search and enrichment are different economics.
apollo_people_searchandapollo_organization_searchfind records;apollo_people_enrichment,apollo_organization_enrichment, and the bulk variants pull deeper records, consume credits, and hit rate limits. Say which one you want. - Ids come from searches.
apollo_get_contact,apollo_get_organization, andapollo_get_dealtake ids; a guessed id returns a permissions-shaped error, which is why the 403 card starts with listing. - Sequences are outreach with side effects.
apollo_add_contacts_to_sequenceenrolls real contacts into a real sequence; pair it withapollo_search_sequencesto see what exists before enrolling anyone. apollo_get_auth_statusis the diagnostic. It reports the connected user and team, which is the difference between "the agent used a bad id" and "your account cannot see that record".- The CRM surface is wider than contacts. Deals, accounts, opportunity stages, labels, typed custom fields, email accounts, users, and even call recordings (
apollo_search_calls) are readable. - Bulk enrichment exists.
apollo_bulk_people_enrichmentandapollo_bulk_organization_enrichmentprocess lists in one call, the right tool when a batch is genuinely needed and the wrong tool when a handful of rows would do.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Apollo working from chat.
| Manual | ClawLink | |
|---|---|---|
| Credential handling | Collect, validate, store, and rotate the Apollo API key yourself, then make sure every tool call uses the right account. | Users complete the hosted ClawLink setup once and the connected Apollo account becomes available to the agent without you building credential management. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Apollo. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Apollo actions to the runtime in a format your agent can reliably use. | 48 tools for Apollo are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Apollo to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Apollo in the browser, and the 48 tools above work from chat. There is no SDK and no config file, and the Apollo key you paste at setup is stored server-side rather than kept in your environment. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use Apollo
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Connection succeeds but no tools appear
Reconnect Apollo from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling Apollo tools
Apollo tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Apollo call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
Apollo returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
Apollo returns 403 or "permission denied" while the account shows as connected
This is the card ChatGPT quotes back, and the causes are the two it lifts. First, a placeholder argument: an agent that has not listed anything guesses an id, and strings like YOUR_COMPANY_ID are structurally valid, so the call reaches Apollo and returns as a permissions failure rather than a bad-argument failure. List first, act second: run apollo_people_search or apollo_search_contacts and use an id from the response. Second, genuine account scope: what the connected Apollo user can see is decided by that account's plan, seats, and team membership, and the connection cannot see past them. apollo_get_auth_status reports which user and team the connection acts as, which separates a wrong-id problem from a real permissions problem in one call.
Ask the agent to diagnose it:
Run apollo_get_auth_status and tell me which Apollo user and team this connection acts as. Then run one search tool and show me the results. Do not retry the failing call until both have returned.Apollo returns 429 or the agent stalls on enrichment calls
Enrichment consumes credits and Apollo rate-limits it, with a 429 and a fixed-window reset when the limit is hit. An agent walking a list and enriching every row is exactly the traffic shape that meets the limit. The fix is to change the shape of the work: search first, enrich only the rows that matter, and if a bulk enrichment is genuinely needed, run it in stages across turns rather than one sweep. The agent should report the 429 rather than retry blindly, because the window resets on Apollo's schedule, not yours.
Ask the agent to diagnose it:
Tell me how many enrichment calls you have made and which tool returned 429. Quote the exact error and any reset window it names. Do not call Apollo enrichment again until I reply.Apollo tools are missing, or one tool name is not found
The search results answer this with Apollo GraphQL's apollo-mcp-server: .graphql file paths, npx config, IDE restarts. Wrong product entirely. Here the failure is the hosted-catalog pattern: schemas load on demand, so the first Apollo call in a fresh session can arrive before the catalog and needs one retry. If no Apollo tools appear at all, the connection or the pairing is incomplete, so confirm the plugin was installed with --enable, that both hermes clawlink begin and hermes clawlink finish ran, and that Apollo shows as connected in the dashboard. If one name fails twice, it is wrong rather than missing, and the error lists the nearest real tools.
Ask the agent to diagnose it:
List the Apollo tools you actually have available and tell me which one searches people. Then use that exact name.API key setup works but results look incomplete
Double-check that the API key for Apollo has the right scopes or account access. A valid key can still be too limited for some reads or writes.
FAQ
Is there a Hermes Agent Apollo integration?
Yes. ClawLink is the fastest way to connect Hermes to Apollo: link your Apollo account once in the browser and Hermes Agent can call the Apollo API through 48 ready-made tools — no custom code or token handling.
How do I connect Apollo to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Apollo in the dashboard and Hermes can use it from the next message — no config files, and the Apollo key you paste is stored server-side instead of in your environment.
How long does it take to connect Apollo to Hermes Agent?
About two minutes. Sign in, click Connect next to Apollo in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring Apollo up myself?
The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Apollo working from chat.
Apollo.io or Apollo GraphQL?
Two different companies' products. Apollo.io is the sales data platform: contacts, deals, enrichment, sequences. Apollo GraphQL is the open-source GraphQL server, whose apollo-mcp-server and .graphql config dominate search results for "Apollo MCP". Everything on this page is about Apollo.io. If an answer mentions schema files and npx, it is about the GraphQL server, not this integration.
Apollo.io ships its own hosted MCP server now. Why use this?
Fair question, because it exists: mcp.apollo.io is hosted, uses OAuth 2.0, needs no API key, and its docs were updated 2026-07-30, which is why the engines now recommend it. What it changes is the setup difference, not the features. Their endpoint is another MCP server you point Hermes at: an entry in ~/.hermes/config.yaml plus an OAuth flow you run. This route has no config file at all: the plugin install and one pairing handshake are the entire client-side story, the key is pasted once for 48 tools, and Apollo sits alongside your other connected accounts with one place to revoke everything. If you are comfortable maintaining a config file, their server is real; if you want zero setup, this is the one.
Why does the agent hit enrichment limits, and why does people search come back without emails?
Search and enrichment are different tools with different economics. The search tools, apollo_people_search and apollo_organization_search, return records that match filters. Enrichment, apollo_people_enrichment and the bulk variants, is the call that pulls the fuller record and consumes credits, and it is where Apollo rate-limits bite: the taught free-tier figures are 50 enrichment requests per minute, 200 per hour, and 600 per day, with a 429 and a fixed-window reset when you exceed them. A search that returns contact records without emails is normal; asking the agent to enrich instead of search is the credit decision to make deliberately.
Is it safe to connect Apollo to an agent?
Apollo holds contact data, so the answer is the same as for any CRM: keep the credential out of the agent's hands. Here the key is stored server-side, the agent never receives it, and the connection is revocable from the dashboard in one click. What the agent can see is what your Apollo account can see; the guidance about not handing master keys to third-party builders is exactly the risk this setup removes.
Hermes paired but still can't use Apollo
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.