Connect Hermes to Hunter
Set up in minutes
Choose where it runs
On your computer through your own Hermes, or hosted in the cloud. The rest of setup adapts to your choice:
Pick what it can do in Hunter
A preset of real Hunter operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.
Connect Hunter
One sign-in. The agent acts through your account, scoped to the operations you picked.
Add your personal MCP link
The last step mints a private MCP URL for this agent and walks you through exactly this, with your real link filled in. The page flips to Connected the moment your Hermes first calls in. Hermes connects when it next starts a session.
1. Run this in your terminal
2. Answer no when asked if the server requires authentication — the link itself is the key
<your-link> is your personal server URL — setup mints it for you.
Tools Hermes gets
Hunter
182 tools(POST /campaigns/{id}/recipients).
(POST /company-lists/{id}/companies).
(POST /sequences/{id}/recipients).
(POST /sequences/{sequence_id}/archive).
Create or update up to 100 leads in one call. Each lead is matched on `email` and written in its own transaction, so one invalid lead does not cancel the others. The team's lead limit is checked for each new lead using the current committed lead count. If an item would exceed that limit, earlier successful items remain saved and that item returns a `leads_limit_reached` error. If another request is creating leads for the team, the new lead's item returns `status: failed` with error `lead_creation_in_progress` and code 409. Retry only those failed items after one second; other items still run normally. The response is always 200: read `status` and `errors` of each result to know what happened to each lead. The call is free and consumes no request. (PUT /leads/bulk).
(GET /leads/exist).
(GET /leads/bulk/exist).
(POST /companies/bulk/copy).
Return aggregate counts without revealing individual email addresses. This operation is free. (GET /email-count).
(GET /domain-count).
(POST /api-keys).
(POST /campaigns/{id}/follow-ups).
(POST /companies).
(POST /company-lists).
When `color` is omitted the folder gets a random color from the palette's vivid swatches. (POST /company-lists/folders).
(POST /company-tags).
(POST /discover/views).
(POST /feedback).
Creates a lead, or adds an existing lead to the requested lists. When an `email` matches a lead already on your team, the request is additive: it adds only the missing list memberships and returns 201 rather than an email duplicate error. When the matched lead belongs to a teammate, the request still adds it to your lists, and the teammate's lead itself is only updated if you have permission to edit it. A request without an `email` is never matched by email — it does not reuse an existing email-less lead — though a lead with an identical name, company, and list is still rejected as a duplicate. Accepts `department` since HUN-23171, normalized to its canonical key so a localized display label ("Sales") is stored as `sales`. Lead attributes are not modelled field-by-field in this contract yet — the response uses the generic resource envelope — so this note is where the accepted set is recorded. When another request is creating leads for the team, returns 409 with `lead_creation_in_progress` and `Retry-After: 1`. Retry the request after one second. (POST /leads).
(POST /leads_custom_attributes).
(POST /leads_lists).
When `color` is omitted the folder gets a random color from the palette's vivid swatches. (POST /leads_lists/folders).
When `color` is omitted the folder gets a random color from the palette's vivid swatches. (POST /leads-lists/folders).
(POST /leads-lists).
Creates a draft leads import and returns its id, the guessed column matching, and a configuration_url. This call does not import anything: a person must open that URL in a browser and complete the mapping step before any lead is created. It is intended for clients that can hand off to a browser session, not for unattended automation. csv_data must be sent in the request body; it is rejected in the query string, where it would reach access logs verbatim. (POST /leads-imports).
The sender must be available for outreach to the authenticated user. On the Free plan, extra or SMTP accounts retained only for Inbox Protection cannot send one-off messages. Selecting one returns 422 with error ID email_account_not_found. (POST /messages).
(POST /message-templates).
Sender IDs must be available for outreach to the sequence owner. On the Free plan, extra or SMTP accounts retained only for a paid Inbox Protection period cannot be selected as senders. Submitting one returns 422 with error ID unknown_email_account_ids. Enabling `ai_assistant_enabled` requires a plan that includes the AI writing assistant. A request that turns it on without that entitlement is rejected with `ai_assistant_requires_upgrade` (422). (POST /sequences).
(POST /sequences/{id}/follow-ups).
(POST /tags).
(POST /webhooks).
(DELETE /api-keys/{id}).
(POST /companies/bulk/delete).
(DELETE /companies/{id}).
(DELETE /company-lists/{id}).
(DELETE /company-lists/folders/{id}).
(DELETE /company-tags/{id}).
(DELETE /discover/views/{id}).
(DELETE /leads/{id}).
(DELETE /leads_custom_attributes/{id}).
(DELETE /leads_lists/{id}).
(DELETE /leads_lists/folders/{id}).
(DELETE /leads-lists/folders/{id}).
(DELETE /leads-lists/{id}).
(POST /leads/bulk/delete).
(DELETE /message-templates/{id}).
(DELETE /sequences/{id}).
(DELETE /sequences/{id}/follow-ups/{follow_up_id}).
(DELETE /tags/{id}).
(DELETE /webhooks/{id}).
(DELETE /webhooks).
Find companies matching a structured filter set. This operation is free. (POST /discover).
(GET /discover/people).
(POST /discover/people).
(GET /companies/find).
(POST /leads/{id}/enrich).
(GET /people/find).
(GET /combined/find).
(POST /company-lists/{id}/favorite).
(POST /leads_lists/{id}/favorite).
(POST /leads-lists/{id}/favorite).
(GET /domain-finder).
(POST /domain-finder).
Supply a LinkedIn handle, or supply a domain/company plus either a full name or first and last name. A found email address is also saved automatically to your leads. This is enabled by default and can be disabled for your account. The saved lead leaves out a phone number that is on a data broker deletion list, such as California's DROP. (GET /email-finder).
Found-only variant of email finder. Supply a LinkedIn handle, or supply a domain/company plus either a full name or first and last name. (GET /email-finder/found).
Found-only variant of email finder using request-body parameters. (POST /email-finder/found).
(GET /account).
(GET /account-stats).
(GET /campaigns/{id}/follow-ups/{follow_up_id}).
(GET /companies/{id}).
(GET /company-lists/{id}).
(GET /company-lists/folders/{id}).
(GET /company-tags/{id}).
(GET /connected-apps/{id}).
(GET /discover/views/{id}).
The account's `signature` is returned HTML-sanitized (HUN-22571). (GET /email-accounts/{id}).
(GET /email-accounts/capacities).
(GET /email-accounts/{id}/health-report).
(GET /email-accounts/{id}/usage).
(GET /email-accounts/{id}/warmup-report).
(GET /email-insight).
Returns `department` since HUN-23171. It was filterable on the collection endpoint and settable by enrichment before that, but never emitted, so a caller could filter on a field it could not read back. (GET /leads/{id}).
(GET /leads_custom_attributes/{id}).
(GET /leads_lists/{id}).
(GET /leads_lists/folders/{id}).
(GET /leads-lists/folders/{id}).
(GET /leads-lists/{id}).
(GET /message-templates/{id}).
(GET /sequences/{id}).
(GET /sequences/{id}/follow-ups/{follow_up_id}).
(GET /sequences/{id}/stats).
(GET /tags/{id}).
(GET /usage).
(GET /usage/history).
(GET /webhooks/{id}).
(GET /api-keys).
(GET /campaigns/{id}/recipients).
Each campaign carries `editable`. It is true when the API key's user owns the campaign or is a team admin or owner, and only then can that user add recipients to it. (GET /campaigns).
(GET /companies).
(GET /company-lists/folders).
(GET /company-lists).
(GET /company-tags).
(GET /connected-apps).
(GET /discover/views).
(GET /email-accounts/{id}/sequences).
(GET /email-accounts).
(GET /leads_custom_attributes).
(GET /leads_lists/folders).
(GET /leads-lists/folders).
(GET /leads_lists).
(GET /leads-lists).
Each lead carries `department` since HUN-23171. It was already a filter on this endpoint, but was never emitted, so a caller could filter on a field it could not read back. (GET /leads).
Finds companies that look like the ones in one of your company lists. The companies in the list are used as a seed, and we return the most similar companies ranked by a similarity score. This endpoint is not paginated: it returns a single ranked page of the top limit results, so the offset parameter is not supported and returns 400 if supplied. This call is free. (GET /lookalikes).
(GET /message-templates).
(GET /messages).
(GET /sequences/{id}/follow-ups).
(GET /sequences/{id}/recipients).
Each sequence carries `editable`. It is true when the API key's user owns the sequence or is a team admin or owner, and only then can that user add recipients to it. (GET /sequences).
(GET /tags).
(GET /team/members).
(GET /webhooks).
(POST /leads_lists/{id}/merge).
(POST /leads-lists/{id}/merge).
(POST /companies/bulk/move).
(POST /leads/bulk/move).
Search professional email addresses across many companies at once using a structured filter set. Returns masked rows — no email address or phone number; use the reveal endpoint to unmask. This masked survey operation is free. At least one filter is required. Filters may be sent in the request body (JSON or form-encoded) or as query-string parameters; the body is therefore optional. (POST /multi-domain-search).
(POST /sequences/{sequence_id}/pause).
(POST /connected-apps/{id}/push).
(DELETE /campaigns/{id}/recipients).
(DELETE /company-lists/{id}/companies/{company_id}).
(DELETE /sequences/{id}/recipients).
(PUT /api-keys/{id}).
(PUT /company-lists/{id}).
(PUT /company-lists/folders/{id}).
(PUT /company-tags/{id}).
(PUT /email-accounts/{id}).
Accepts `department` since HUN-23171. The value is normalized to its canonical key, so a localized display label ("Sales") is stored as `sales`. Lead attributes are not modelled field-by-field in this contract yet — the response uses the generic resource envelope — so this note is where the accepted set is recorded. (PUT /leads/{id}).
(PUT /leads_custom_attributes/{id}).
(PUT /leads_lists/{id}).
(PUT /leads_lists/folders/{id}).
(PUT /leads-lists/folders/{id}).
(PUT /leads-lists/{id}).
(PUT /message-templates/{id}).
Sender IDs must be available for outreach to the sequence owner. On the Free plan, extra or SMTP accounts retained only for a paid Inbox Protection period cannot be selected as senders. Submitting one returns 422 with error ID unknown_email_account_ids. Enabling `ai_assistant_enabled` requires a plan that includes the AI writing assistant. A request that turns it on without that entitlement is rejected with `ai_assistant_requires_upgrade` (422). (PUT /sequences/{id}).
(PUT /sequences/{id}/follow-ups/{follow_up_id}).
(PUT /tags/{id}).
(PUT /webhooks/{id}).
(DELETE /sequences/{sequence_id}/pause).
(POST /multi-domain-search/reveal).
(GET /domain-search).
Use POST for nested location filters. The body can be JSON or URL-encoded form data. (POST /domain-search).
(POST /campaigns/{id}/start).
(POST /sequences/{id}/start).
(GET /domains-suggestion).
(POST /companies/bulk/tag).
(POST /leads/{id}/tags).
(POST /companies/{id}/tags).
Queues one test message per follow-up of the sequence, in step order, to the supplied address. When A/B testing is enabled on a step, both variants are sent. Subjects are prefixed with [TEST]. Returns 422 when the sequence has no step, a step is missing its subject or body, the sequence has no email account, the account cannot send, or the recipient cannot be contacted. At most 30 test emails can be queued per 10 minutes. (POST /sequences/{sequence_id}/test).
(DELETE /company-lists/{id}/favorite).
(DELETE /leads_lists/{id}/favorite).
(DELETE /leads-lists/{id}/favorite).
(DELETE /leads/{id}/tags/{tag_id}).
(DELETE /companies/{id}/tags/{tag_id}).
(PUT /account).
(PATCH /api-keys/{id}).
(PATCH /company-lists/{id}).
(PATCH /company-lists/folders/{id}).
(PATCH /company-tags/{id}).
(PATCH /email-accounts/{id}).
Accepts `department` since HUN-23171. The value is normalized to its canonical key, so a localized display label ("Sales") is stored as `sales`. Lead attributes are not modelled field-by-field in this contract yet — the response uses the generic resource envelope — so this note is where the accepted set is recorded. (PATCH /leads/{id}).
(PATCH /leads_custom_attributes/{id}).
(PATCH /leads_lists/{id}).
(PATCH /leads_lists/folders/{id}).
(PATCH /leads-lists/folders/{id}).
(PATCH /leads-lists/{id}).
(PATCH /message-templates/{id}).
Sender IDs must be available for outreach to the sequence owner. On the Free plan, extra or SMTP accounts retained only for a paid Inbox Protection period cannot be selected as senders. Submitting one returns 422 with error ID unknown_email_account_ids. Enabling `ai_assistant_enabled` requires a plan that includes the AI writing assistant. A request that turns it on without that entitlement is rejected with `ai_assistant_requires_upgrade` (422). (PATCH /sequences/{id}).
(PATCH /sequences/{id}/follow-ups/{follow_up_id}).
(PATCH /tags/{id}).
(PATCH /webhooks/{id}).
Accepts `department`, normalized to its canonical key so a localized display label ("Sales") is stored as `sales`. This operation keeps its own allowlist, separate from the one `createLead` uses, so the two can differ — it does not currently accept `company_type`, `lead_country_code`, `lead_city` or `lead_state`. When creating a new lead while another request is creating leads for the team, returns 409 with `lead_creation_in_progress` and `Retry-After: 1`. Retry the request after one second. Existing leads can still be updated. (PUT /leads).
Check the deliverability of an email address. A verified email address is also saved automatically to your leads. This is enabled by default and can be disabled for your account. The saved lead leaves out a phone number that is on a data broker deletion list, such as California's DROP. (GET /email-verifier).
About Hermes
Frequently asked questions
More ways to connect
Open your Hermes agent in one click.
NoClick runs Hermes for you with Hunter wired in as tools. Connect your account and run.