Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Emailchaser

REMOTE · APP.EMAILCHASER.COM · SCANNED SEP 29

Run cold email outbound from an AI agent: campaigns, leads, replies, sender accounts, autopilot.

+3 this week 85 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability73
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 15811 tokens (~156/item across 101 items; 101 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management57
  • Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 102 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Emailchaser MCP server?

Emailchaser is a hosted endpoint at https://app.emailchaser.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · app.emailchaser.com

# add to Claude Code
claude mcp add --transport http com-emailchaser-emailchaser 'https://app.emailchaser.com/api/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-emailchaser-emailchaser": {
      "url": "https://app.emailchaser.com/api/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-emailchaser-emailchaser": {
      "type": "http",
      "url": "https://app.emailchaser.com/api/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-emailchaser-emailchaser]
url = "https://app.emailchaser.com/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-emailchaser-emailchaser": {
      "type": "remote",
      "url": "https://app.emailchaser.com/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-emailchaser-emailchaser --url 'https://app.emailchaser.com/api/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-emailchaser-emailchaser:
    url: "https://app.emailchaser.com/api/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-emailchaser-emailchaser": {
      "Transport": "http",
      "Url": "https://app.emailchaser.com/api/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-emailchaser-emailchaser -t streamable-http -u 'https://app.emailchaser.com/api/mcp'
// mcp.json
{
  "mcpServers": {
    "com-emailchaser-emailchaser": {
      "type": "http",
      "url": "https://app.emailchaser.com/api/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 29 Sept 26 +1
    • Tool “connect_sender_email” rewrote its description, which is the text the model reads security
    • Tool “get_campaign” rewrote its description, which is the text the model reads security
    • Tool “get_sender_email” rewrote its description, which is the text the model reads security
    • Tool “get_sender_email_dns” rewrote its description, which is the text the model reads security
    • Tool “get_sender_email_warmup” rewrote its description, which is the text the model reads security
    • Tool “list_sender_emails” rewrote its description, which is the text the model reads security
    • Tool “update_campaign” rewrote its description, which is the text the model reads security
    • Tool “update_sender_email” rewrote its description, which is the text the model reads security
    • Tool “update_sender_email_warmup” rewrote its description, which is the text the model reads security
    • “create_campaign” added an optional parameter “minimumHealthScore” cosmetic
    • “update_campaign” added an optional parameter “minimumHealthScore” cosmetic
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “create_dfy_order” rewrote its description, which is the text the model reads security
    • “create_dfy_order” reworded the description of “domains” cosmetic
    • “create_dfy_order” reworded the description of “mailboxes” cosmetic
  • 22 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 21 Sept 26 0
    • New tool “cancel_email_verification_job” functional
    • New tool “create_email_verification_job” functional
    • New tool “get_email_verification_job” functional
    • New tool “get_email_verification_rates” functional
    • New tool “list_email_verification_jobs” functional
    • New tool “list_email_verification_results” functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 29 Sept 2026 · Probed https://app.emailchaser.com/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=app.emailchaser.com CN=YR1,O=Let's Encrypt,C=US 23 Aug 2026 21 Nov 2026 RSA 2048 SHA256-RSA 61021dee2caec2f53b2f84d9ba3be1caeeb
SANs: app.emailchaser.com
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of app.emailchaser.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
emailchaser.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer error="invalid_token", error_description="No authorization provided", resource_metadata="https://app.emailchaser.com/.well-known/oauth-protected-resource"

Bearer error="invalid_token", error_description="No authorization provided", resource_metadata="https://app.emailchaser.com/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=63072000

Protected resource metadata

Document https://app.emailchaser.com/.well-known/oauth-protected-resource
Retrieved No
Problem metadata_http_error

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://app.emailchaser.com/api/mcp Verified 200
http (plaintext) http://app.emailchaser.com/api/mcp HTTPS enforced 308 https://app.emailchaser.com/api/mcp
MCP tools · 101 exposed · ~15,569 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
import_instantly ~80

Imports your Instantly.ai campaigns and leads into Emailchaser using your Instantly API key. Imported campaigns are created as DRAFTS — nothing sends until you review and launch them. Runs in the background and returns a job id.

NameTypeReqDescription
instantlyApiKeystringyesYour Instantly.ai API key (Instantly → Settings → API keys)

No output schema declared.

No examples provided.

kill_autopilot_run ~108

Engages the kill switch: the run halts wherever it is and can NEVER be resumed, and any campaign the run launched is paused so nothing more sends. Use pause_autopilot_run instead when you might want to continue later. The optional reason is recorded in the run's audit trail.

NameTypeReqDescription
idintegeryesThe numeric autopilot run ID (from list_autopilot_runs)
reasonstring–Why the run is being killed, for the audit trail

No output schema declared.

No examples provided.

launch_campaign ~51

Launches a new campaign or resumes a paused one. The campaign configuration is validated before launching; emails start sending per the campaign schedule.

NameTypeReqDescription
idintegeryesThe numeric campaign ID (from list_campaigns)

No output schema declared.

No examples provided.

list_autopilot_runs ~89

Lists the workspace's autopilot runs, newest first, with status (pending, building_icp, writing_sequence, sourcing_prospects, awaiting_approval, running, paused, completed, failed) and linked ICP/campaign IDs.

NameTypeReqDescription
limitinteger–Page size (default 50, max 200)
pageinteger–Page number, starting at 1

No output schema declared.

No examples provided.

list_blocklist_entries ~162

Returns the suppression entries (blocked domains and email addresses) that apply to this workspace, newest first. Blocked entries are never emailed by any campaign. By default that spans both lists: this workspace's own entries and the account-wide ones inherited from the main workspace. Each entry reports which list it came from.

NameTypeReqDescription
limitinteger–Page size (default 100, max 1,000)
offsetinteger–Number of entries to skip (default 0)
scopestring–Which list to return: "workspace" for this workspace's own entries, "global" for the account-wide list, "all" for both (default)
searchstring–Case-insensitive substring match on the domain or address

No output schema declared.

No examples provided.

list_campaigns ~97

Lists cold email campaigns in the workspace with their status and stats (sent, replies, bounces). Supports pagination and filtering by status or folder.

NameTypeReqDescription
folderIdinteger–Filter by folder ID
limitinteger–Page size (default 20, max 200)
pageinteger–Page number, starting at 1 (20 campaigns per page)
statusstring–Filter by campaign status

No output schema declared.

No examples provided.

list_credit_transactions ~220

Lists the workspace's credit ledger, newest first: every grant, spend, reservation and refund with the balance after each entry. Filter by movement kind, reason or a time window. Use it to see where credits went, or to check for a stripe_topup entry after an unconfirmed purchase_credits call. An entry with free set to true was written while the workspace's credits were free: its amount is what the action would have cost, and no credits moved.

NameTypeReqDescription
kindstring–Filter by movement type
limitinteger–Page size (default 50, max 200)
pageinteger–Page number, starting at 1
reasonstring–Filter by what the credits were spent on or granted for
sincestring–Only entries at or after this time (RFC3339 or YYYY-MM-DD)
untilstring–Only entries at or before this time (RFC3339 or YYYY-MM-DD; a bare date means midnight UTC at the start of that day)

No output schema declared.

No examples provided.

list_dfy_orders ~76

Lists the workspace's done-for-you orders, newest first, each with status, cost breakdown and the ordered domains and mailboxes. Internal billing and provider records are never exposed.

NameTypeReqDescription
limitinteger–Page size (default 50, max 200)
pageinteger–Page number, starting at 1

No output schema declared.

No examples provided.

list_email_verification_jobs ~82

Lists the workspace's standalone email verification jobs, newest first, with live counts and what each has billed so far (meterEvents and spentUsd).

NameTypeReqDescription
pageinteger–Page number, starting at 1
searchstring–Filter by job name
sizeinteger–Page size (default 25, max 200)

No output schema declared.

No examples provided.

list_email_verification_results ~145

Returns one row per address with its verdict: valid, catchall_validated (the domain accepts everything, so delivery is likely but not proven), invalid, or unknown (no verdict, and not billed). Each row also carries what each provider said and how many verification credits it cost. Filter with result, where 'deliverable' means valid plus catch-all, which is what a campaign will actually send to.

NameTypeReqDescription
jobIdstringyesThe job ID
pageinteger–Page number, starting at 1
resultstring–Filter by verdict
sizeinteger–Page size (default 25, max 200)

No output schema declared.

No examples provided.

list_icps ~76

Lists the workspace's stored Ideal Customer Profiles (ICPs), newest first, with their targeting criteria, whether each is AI-generated or human-edited, and the estimated audience size.

NameTypeReqDescription
limitinteger–Page size (default 50, max 200)
pageinteger–Page number, starting at 1

No output schema declared.

No examples provided.

list_inbox_placement_run_results ~96

Returns one row per probe email of a run: which of your mailboxes sent it, which seed mailbox received it, where it landed and how many seconds it took to arrive. deliverySeconds is worth watching on its own: greylisting and throttling show up there before they show up in a placement number.

NameTypeReqDescription
idintegeryesThe numeric inbox placement run ID (from list_inbox_placement_runs)

No output schema declared.

No examples provided.

list_inbox_placement_runs ~134

Lists inbox placement runs, newest first, optionally only those of one test. Each run counts how many probe emails landed in the inbox, in spam, in a Gmail category tab (promotions) or nowhere (missing, which usually means a silent block). Counters are only final once status is completed. Any rate of -1 means NOT MEASURED yet and must never be reported as 0%.

NameTypeReqDescription
limitinteger–How many runs to return (default 50, max 200)
testIdinteger–Only runs of this test (from list_inbox_placement_tests)

No output schema declared.

No examples provided.

list_inbox_placement_tests ~89

Lists every inbox placement test defined in the workspace, newest first. A test is the definition: the email content, which mailboxes send it and, for a recurring test, how often it runs. Each execution of a test is a run (list_inbox_placement_runs). Inbox placement is a paid add-on: a workspace without it gets an error, not an empty list.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_instantly_accounts ~143

Fetches the sending accounts of an Instantly.ai workspace using your Instantly API key, together with a pre-filled CSV for Emailchaser's bulk IMAP/SMTP connection flow. A read-only preview before an import: nothing is written to the workspace. Mailbox passwords cannot be exported from any provider, so each account is either reconnected via Google/Microsoft OAuth in the app or bulk-uploaded with app passwords using the CSV. The backend treats all non-GET calls as writes, so this needs a read & write API key.

NameTypeReqDescription
instantlyApiKeystringyesYour Instantly.ai API key (Instantly → Settings → API keys)

No output schema declared.

No examples provided.

list_lead_finder_imports ~74

Lists the workspace's Lead Finder adds (people added to campaigns from the contact database), newest first, each with its progress: requested, added, skipped and why, what email verification said, and credits spent.

NameTypeReqDescription
limitinteger–How many to return (default 10, max 50)

No output schema declared.

No examples provided.

list_leads ~125

Lists the leads in the workspace, newest first, 20 per page. Filter by exact email to look up a single lead, or by campaign to list only that campaign's leads. This is how you find the ID of a lead you added earlier.

NameTypeReqDescription
campaignIdinteger–Filter to the leads in one campaign
emailstring–Filter by exact email address, which returns at most one lead
limitinteger–Page size (default 20, max 200)
pageinteger–Page number, starting at 1

No output schema declared.

No examples provided.

list_replies ~186

Lists inbound emails (replies received from prospects) in the workspace, newest first, 20 per page. Filter by AI response category, campaign, lead or a time floor. responseCategory is null while AI categorization is still pending. This tool only lists: to answer a reply, review its AI draft (list_reply_drafts), edit it if needed (update_reply_draft) and send it with send_reply_draft.

NameTypeReqDescription
campaignIdinteger–Filter by campaign ID
categorystring–Filter by AI response category
leadIdinteger–Filter by lead ID
limitinteger–Page size (default 20, max 200)
pageinteger–Page number, starting at 1
sincestring–Only replies received at or after this time (RFC3339 or YYYY-MM-DD)

No output schema declared.

No examples provided.

list_reply_drafts ~114

Lists AI-suggested reply drafts awaiting review, newest first, 20 per page. Each draft answers the inbound reply referenced by inReplyToEmailId. Nothing here has been sent: a draft stays a draft until a human sends it from the app or send_reply_draft is called. Edit one first with update_reply_draft if the wording needs work.

NameTypeReqDescription
limitinteger–Page size (default 20, max 200)
pageinteger–Page number, starting at 1

No output schema declared.

No examples provided.

list_sender_emails ~241

Lists the sending email accounts in the workspace, 20 per page, with their connection status, daily limits and health score. Filter to one campaign's senders, to connected or disconnected mailboxes only, or to one workspace on the account. healthScore is the account's health score: 0-100, higher is better, the share of its warm-up emails over the last 7 full days that landed in the inbox rather than spam. It moves daily as warm-up emails land in the inbox (up) or in spam (down), and is null while warm-up is off or before 20 warm-up emails were checked. Use it to pick the accounts to add to a campaign.

NameTypeReqDescription
campaignIdinteger–Only the sender emails attached to this campaign
isConnectedboolean–true for mailboxes that are connected and able to send, false for disconnected ones
limitinteger–Page size (default 20, max 200)
pageinteger–Page number, starting at 1
spaceIdinteger–Only the sender emails of this workspace (from list_workspaces)

No output schema declared.

No examples provided.

list_webhooks ~25

Lists the webhook endpoints registered for the workspace, with their event type and status.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_workspaces ~85

Lists the workspaces owned by the account behind the API key: the main workspace and its sub-workspaces, each with id, name, icon and creation date. isCurrent marks the workspace this key is bound to. Every other tool acts on the current workspace only; to work in another workspace, connect with that workspace's own key (create_workspace_api_key mints one).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mark_lead_meeting ~121

Records that a meeting was actually booked with this lead: sets meetingBookedAt to now, sets the lead's category to meeting_booked and fires the LeadCategoryUpdate webhook. Emailchaser never infers meetings from reply text or calendars, so this explicit mark is the only way a meeting is counted (in get_campaign_stats totals.meetings and get_outcomes_report). Idempotent: repeating the call keeps the original timestamp and fires no second webhook.

NameTypeReqDescription
idintegeryesThe numeric lead ID (returned when the lead was created)

No output schema declared.

No examples provided.

move_lead_to_campaign ~114

Moves a lead from one campaign to another: the lead's unsent emails in the source campaign are deleted, and if the target campaign is running, emails for the lead are enqueued there. Use it to re-route a lead into a better-fitting campaign.

NameTypeReqDescription
leadIdintegeryesThe numeric lead ID (returned when the lead was created)
sourceCampaignIdintegeryesThe campaign the lead is currently in
targetCampaignIdintegeryesThe campaign to move the lead into

No output schema declared.

No examples provided.

pause_autopilot_run ~69

Suspends an autopilot run that is still in flight; resume later with resume_autopilot_run. Pausing never skips the approval gate. A completed or failed run cannot be paused.

NameTypeReqDescription
idintegeryesThe numeric autopilot run ID (from list_autopilot_runs)

No output schema declared.

No examples provided.

pause_campaign ~37

Pauses a running campaign and cancels all currently scheduled emails.

NameTypeReqDescription
idintegeryesThe numeric campaign ID (from list_campaigns)

No output schema declared.

No examples provided.

plan_autopilot ~205

Turns a monthly budget in dollars into a concrete outbound setup: how many domains and mailboxes it buys, monthly sending volume, prospects per month, and costs (one-off setup, recurring, first month). creditsUsd, recurringUsd and firstMonthUsd value prospect credits at the list price, 1 credit ($0.033 at list) per revealed prospect, and a note says when that puts the monthly cost above the budget. Pure computation — nothing is created or charged. expectedMeetingsPerMonth is a planning estimate on pessimistic assumptions, not a promise. Use it to answer 'what does $X/month get me' before start_autopilot_run.

NameTypeReqDescription
budgetUsdnumberyesTotal monthly budget in US dollars, inclusive of the platform subscription
maxMailboxesinteger–Cap on mailboxes regardless of budget. 0 means no cap
platformUsdnumber–Subscription cost to reserve before sizing infrastructure. Defaults to 0

No output schema declared.

No examples provided.

purchase_credits ~262

SPENDS REAL MONEY. Immediately charges the workspace's saved default card (the one behind the active subscription), off-session, with no confirmation step beyond this call — every successful call is a new charge. Buys 1,000 to 10,000 prospect credits at the tiered list price: $33/1k · $20/1k from 5k. The server prices the charge, so treat this as the list price and not a quote. Errors carry a machine-readable code: billing_required and payment_failed mean no money moved (fix billing or the card, then retry); credits_free means this workspace's credits are free, so nothing was charged and there is nothing to buy; temporarily_unavailable means the purchase stopped before any charge, so it is safe to retry shortly; purchase_incomplete means the card WAS charged but crediting failed — do NOT retry, support is already notified; purchase_unconfirmed means the outcome is unknown or the purchase completed without a balance to report — check list_credit_transactions for a stripe_topup entry before retrying. After a timeout or a dropped connection, check the same way before calling this again.

NameTypeReqDescription
creditsintegeryesHow many prospect credits to buy (1,000 to 10,000)

No output schema declared.

No examples provided.

refresh_icp_audience_size ~71

Re-counts how many prospects match an ICP's targeting criteria against the live data provider and caches the result on the profile. Sizing is free — it never spends credits; only revealing contact details is metered.

NameTypeReqDescription
idintegeryesThe numeric ICP ID (from list_icps)

No output schema declared.

No examples provided.

remove_blocklist_entries ~194

Unblocks up to 1,000 domains or email addresses in one call, so campaigns can email them again. Pass values (domains or addresses, matched case-insensitively) and/or ids (entry IDs from list_blocklist_entries); a value that is not blocked is counted as skipped rather than failing the call. Scope defaults to "workspace" and never touches the account-wide list unless asked; removing an account-wide entry only works from the main workspace.

NameTypeReqDescription
idsarray–Blocklist entry IDs to remove (from list_blocklist_entries). Provide values, ids or both
scopestring–Which list to remove from: "workspace" (default), "global", or "all"
valuesarray–Email addresses and/or domains to unblock, e.g. ["competitor.com", "jane@acme.com"] (1 to 1,000 per request)

No output schema declared.

No examples provided.

remove_blocklist_entry ~91

Removes one suppression entry by ID, so campaigns can email that domain or address again. This cannot be undone: the entry and the record of when it was added are gone. A sub-workspace key cannot remove an account-wide entry it merely inherits. To unblock many values at once use remove_blocklist_entries.

NameTypeReqDescription
idintegeryesThe numeric blocklist entry ID (from list_blocklist_entries)

No output schema declared.

No examples provided.

replace_campaign_sequence ~133

Replaces a campaign's WHOLE sequence with the steps provided. This is not a partial edit: steps you leave out are removed, so send the full sequence every time. Sending the same payload twice leaves the same result, so a retry cannot duplicate steps. Editing a running campaign is allowed and changes future sends only; already-sent emails are untouched.

NameTypeReqDescription
idintegeryesThe numeric campaign ID (from list_campaigns)
signaturestring–Optional signature appended to every step
stepsarrayyesThe full sequence, first email first. The first step must have delayDays 0

No output schema declared.

No examples provided.

resume_autopilot_run ~81

Resumes a paused autopilot run. A run paused before approval goes back to awaiting approval — resuming can never skip the gate. A failed run resumes from the stage it failed at once the cause (e.g. insufficient credits) is fixed.

NameTypeReqDescription
idintegeryesThe numeric autopilot run ID (from list_autopilot_runs)

No output schema declared.

No examples provided.

search_dfy_domains ~120

Checks availability and pricing of sending domains derived from a brand name (e.g. 'acme' yields acme-mail.com and similar). Only .com and .org are supported. Free to call — use it to pick domains and see exact prices before create_dfy_order.

NameTypeReqDescription
limitinteger–Maximum suggestions to return
querystringyesBrand name to derive domain suggestions from
tldsstring–Comma-separated TLDs to check (default "com,org"; only com and org are supported)

No output schema declared.

No examples provided.

search_lead_finder ~549

Searches Emailchaser's B2B contact database (Lead Finder) with explicit filters and returns one page of matching people, masked: first name, last initial, title, seniority, job function, company name, industry, size and revenue band, and location. Email addresses, domains, LinkedIn URLs and phone numbers are never shown; contact details are revealed only when people are added to a campaign with add_lead_finder_prospects. Spends no credits, but every result row uses the account's daily browsing allowance (rowsLeftToday; 2,000 rows a day by default, 250 on a trial). An account may start 20 searches a minute. Searches that find nobody also draw on a bucket of 120 that refills one every 30 seconds; while it is empty every new search is refused for a moment (rate_limited, reason empty_searches, with retryAfterSeconds). The same page asked for again within 10 minutes costs nothing. total is the exact audience size only when totalIsExact is true; otherwise it is a lower bound (often 50,000). If status is running or totalStatus is pending, call get_lead_finder_search with the searchId: total, hasMore and maxPage are recomputed then. status failed means the search did not run, and error says why (rate_limited, timeout, provider_blocked, budget_exhausted, invalid_filters, expired or internal): it is not an empty audience, so try again later. Each result's ref is what add_lead_finder_prospects takes, valid for 60 minutes after its page was last shown. inWorkspace means Lead Finder added that person to this workspace and their lead is still there, so adding them again is skipped for free; someone who is a lead from another source shows false, and adding them is skipped for free too. A read-only key may use this tool.

NameTypeReqDescription
filtersobjectyesWho to look for. Every field is optional but at least one include filter is required. Free-text fields take up to 50 values of up to 100 characters each (get_lead_finder_filters has the limits that a…
pageinteger–Results page, starting at 1 (default 1). The deepest page is 100 by default, and a search's maxPage says how deep that audience goes
pageSize––People per page: 25 (default) or 50

No output schema declared.

No examples provided.

send_reply_draft ~142

Sends an AI reply draft to the prospect through the conversation's sender mailbox; it is scheduled for delivery right away and cannot be recalled. The draft's CURRENT subject and body are what goes out, so read it first (list_reply_drafts or get_lead_conversation) and fix it with update_reply_draft if needed. Refused with 409 for anything that is not a sendable AI reply draft (already sent or scheduled emails, inbound replies, sequence templates) and with 422 when the conversation has no connected sender mailbox or no resolvable recipient.

NameTypeReqDescription
idintegeryesThe numeric reply draft ID (from list_reply_drafts)

No output schema declared.

No examples provided.

set_billing_profile ~213

Creates or replaces the workspace's registrant and postal contact details. Do this before create_dfy_order: domain registration files these details with the registrar, so every field except addressLineTwo is required. Idempotent: sending the same body twice leaves the same state.

NameTypeReqDescription
addressLineOnestringyesStreet address
addressLineTwostring–Suite, floor or unit (optional)
citystringyesCity
companystringyesCompany name
countrystringyesISO 3166-1 alpha-2 country code, e.g. US
firstNamestringyesRegistrant first name
lastNamestringyesRegistrant last name
phonestringyesPhone number without the country code
phoneCcstringyesTelephone country calling code without the plus, e.g. 1
postalCodestringyesPostal or ZIP code
statestringyesState, province or region

No output schema declared.

No examples provided.

set_primary_icp ~54

Promotes an Ideal Customer Profile to the workspace's active one, demoting any existing primary. At most one profile is primary per workspace.

NameTypeReqDescription
idintegeryesThe numeric ICP ID (from list_icps)

No output schema declared.

No examples provided.

source_prospects ~265

SPENDS CREDITS. Queues a background job that searches Emailchaser's contact database with an Ideal Customer Profile's targeting criteria, reveals the matching people and adds them to the campaign as leads. Uses the workspace's primary ICP when icpId is omitted, and adds 50 prospects unless count says otherwise (max 500 per call). Every stored prospect costs the reveal price in credits (1 at the time of writing; the response reports creditsPerProspect and estimatedCredits, the most this batch can cost). Duplicates, blocklisted domains and contacts without an email address are filtered out before any credit is spent. Asynchronous: poll list_leads with campaignId to watch the prospects arrive. Calling again for the same campaign and profile pages deeper into the audience instead of re-revealing (and re-paying for) the same people. Check get_credit_balance and get_audience_size first.

NameTypeReqDescription
campaignIdintegeryesThe campaign the sourced prospects are added to (from list_campaigns)
countinteger–How many prospects to add in this call (default 50, max 500)
icpIdinteger–The ICP whose targeting criteria drive the search (from list_icps). Defaults to the primary ICP

No output schema declared.

No examples provided.

start_autopilot_run ~377

Starts an autopilot run for a company website: the AI builds an ICP, writes a sequence and checks that prospects match, then STOPS at an approval gate. Nothing is revealed, charged or sent and no sending accounts are bought until approve_autopilot_run is called; approval then reveals the first batch at 1 credit ($0.033 at list) per prospect, up to targetProspects and at most 2,000. The call is refused when the wallet cannot cover that batch. When budgetUsd is given, the sized budget plan is snapshotted on the run and returned in this response, the only response that carries it, with credits valued at list, and targetProspects defaults to the plan's monthly prospects. Without budgetUsd the run can never buy sending accounts, so the workspace needs one connected before approval or the run fails. Requires an active subscription (any plan).

NameTypeReqDescription
budgetUsdnumber–Monthly budget in US dollars; sizes a plan that is snapshotted on the run
maxMailboxesinteger–Cap on the budget plan's mailboxes. 0 means no cap
replyModestring–How inbound replies are handled: off, draft (default: AI drafts a reply for a human to send), approve, or auto. auto SENDS AI replies to interested prospects without review, so only pass it when the…
targetProspectsinteger–How many prospects approval reveals first, at 1 credit ($0.033 at list) each (at most 2,000 in one batch). Defaults to the budget plan's monthly prospects when budgetUsd is given, else 50
websitestringyesThe company website to seed the run from, e.g. https://acme.com

No output schema declared.

No examples provided.

unmark_lead_meeting ~100

Removes the booked-meeting mark from a lead, e.g. when it was recorded by mistake or the meeting was canceled: clears meetingBookedAt and, when the category is still meeting_booked, reverts it to interested. The original booked time is lost. Idempotent: unmarking a lead with no meeting is a no-op.

NameTypeReqDescription
idintegeryesThe numeric lead ID (returned when the lead was created)

No output schema declared.

No examples provided.

update_blocklist_entry ~143

Changes one suppression entry's blocked value, its scope, or both; provide at least one. A value containing @ is stored as an email address, otherwise as a domain, so an entry can be converted between the two. Moving an entry to or from the account-wide list ("global") requires the main workspace's key and moves the entry onto the main workspace.

NameTypeReqDescription
idintegeryesThe numeric blocklist entry ID (from list_blocklist_entries)
scopestring–"workspace" blocks for this workspace only; "global" blocks for every workspace on the account
valuestring–The new domain or email address to block

No output schema declared.

No examples provided.

update_campaign ~596

Updates campaign properties such as name, emoji, timezone, sending limits, the minimum email account health score and deliverability settings. Only the provided fields are changed. A new minimum health score re-plans a running campaign at once.

NameTypeReqDescription
allowNonBusinessEmailsboolean–Allow sending to free mailbox providers (gmail.com, etc.)
dailyLimitinteger–Cap on the total emails (initial + follow-ups) the campaign may schedule per calendar day in its timezone. Omit for no campaign-level cap; per-mailbox limits still apply
emojistring–Campaign emoji
idintegeryesThe numeric campaign ID (from list_campaigns)
ignoreOutOfOfficeRepliesboolean–Do not stop follow-ups on out-of-office replies
isEnabledCatchallValidatedboolean–Send to catch-all validated addresses
isEnabledEmailVerifierboolean–Verify lead emails before sending
isEnabledIgnoreHardBouncedLeadsboolean–Skip leads that previously hard-bounced
isEnabledIgnoreLeadsWhoAlreadyRespondedboolean–Skip leads who already responded in another campaign
isEnabledLlmboolean–Enable AI (LLM) features for this campaign
isEnabledSkipLeadIfAlreadyExistsboolean–Skip leads that already exist in the workspace
isEnabledStopFollowUpsAcrossCampaignsboolean–Stop follow-ups to a lead in this campaign once they reply in any campaign
isEnabledStopFollowUpsForSameCompanyboolean–Company reply stop: once a lead replies (out-of-office and other automatic replies don't count), stop emailing the other leads at the same company in this campaign. Subdomains count as the same compa…
isEnabledStopFollowUpsOnReplyboolean–Stop follow-ups to a lead once they reply
maximumSendingLimitPerSenderEmailinteger–Daily sending limit per sender email account
maximumSendingLimitPerSenderEmailVariationinteger–Random daily variation applied to the sending limit
maximumTimeBetweenEmailsinteger–Maximum gap between two sends, in minutes
minimumHealthScoreinteger–Minimum email account health score for this campaign, 1-100 (see healthScore in list_sender_emails). An account below it, or with no score yet, sends nothing in this campaign, first emails and follow…
minimumTimeBetweenEmailsinteger–Minimum gap between two sends, in minutes
namestring–New campaign name
timezonestring–IANA timezone, e.g. America/New_York

No output schema declared.

No examples provided.

update_campaign_schedule ~205

Updates a campaign's sending schedule: timezone, sending days, daily time window and frequency.

NameTypeReqDescription
daysSchedulearray–Days of the week to send on, e.g. ["monday", "tuesday", "wednesday"]
endSchedulestring–Daily sending window end time, e.g. 17:00
everyScheduleinteger–Sending frequency interval
idintegeryesThe numeric campaign ID (from list_campaigns)
maximumTimeBetweenEmailsinteger–Maximum gap between two sends, in minutes
minimumTimeBetweenEmailsinteger–Minimum gap between two sends, in minutes
sendAtstring–Exact send time for single-lead scheduled campaigns (ISO 8601)
startSchedulestring–Daily sending window start time, e.g. 09:00
timezonestringyesIANA timezone the schedule runs in, e.g. Europe/London

No output schema declared.

No examples provided.

update_icp ~200

Applies a partial edit to an Ideal Customer Profile: omitted fields are left unchanged, and sending an empty list clears that list. Any edit marks the profile as human-authored.

NameTypeReqDescription
companySizesarray–Company headcount ranges, e.g. ["11-50", "51-200"]
idintegeryesThe numeric ICP ID (from list_icps)
industriesarray–Industries, e.g. ["Software"]
keywordsarray–Free-text keywords, e.g. ["b2b saas"]
locationsarray–Locations, e.g. ["United States"]
namestring–New profile name
senioritiesarray–Seniority levels, e.g. ["owner", "director"]
summarystring–New one-to-three-sentence summary
titlesarray–Job titles to target, e.g. ["CEO", "Head of Sales"]

No output schema declared.

No examples provided.

update_lead ~203

Updates a lead's contact details. Only the provided fields are changed.

NameTypeReqDescription
companystring–Company name
customVariablesobject–Any attribute the named fields do not cover, e.g. { pageVisited: '/pricing' }. Each key becomes a merge tag usable in email copy as {key}. Keys match case-insensitively with spaces treated as undersc…
emailstring–Lead email address
firstNamestring–Lead first name
idintegeryesThe numeric lead ID (returned when the lead was created)
lastNamestring–Lead last name
linkedinstring–LinkedIn profile URL
middleNamestring–Lead middle name
phonestring–Phone number
titlestring–Job title
websitestring–Company website URL

No output schema declared.

No examples provided.

update_lead_category ~123

Sets or corrects a lead's category (tag), typically to fix an AI misclassification of a reply. Setting meeting_booked behaves exactly like mark_lead_meeting. Changing the category away from meeting_booked does NOT clear the booked-meeting mark; use unmark_lead_meeting for that. A real change fires the LeadCategoryUpdate webhook; setting the value the lead already has is a no-op.

NameTypeReqDescription
categorystringyesThe category to set
idintegeryesThe numeric lead ID (returned when the lead was created)

No output schema declared.

No examples provided.

update_reply_draft ~131

Edits the subject and/or body of an AI reply draft before it goes out. Provide at least one field; provided fields must be non-empty. This never changes the draft's status or sends anything: the draft stays a draft until a human sends it from the app or send_reply_draft is called. Emails that are not AI reply drafts (sent or scheduled emails, inbound replies, sequence templates) are refused.

NameTypeReqDescription
bodystring–New body
idintegeryesThe numeric reply draft ID (from list_reply_drafts)
subjectstring–New subject line

No output schema declared.

No examples provided.

update_sender_email ~190

Updates a connected sending email account's display name, signature or daily sending limits. Only the provided fields are changed. Warm-up settings are separate: use update_sender_email_warmup. The returned account includes its healthScore (see get_sender_email).

NameTypeReqDescription
currentDailyLimitinteger–Today's effective daily limit
familyNamestring–Sender last name
givenNamestring–Sender first name
idintegeryesThe numeric sender email ID (from list_sender_emails)
maximumSendingsLimitPerDayinteger–Maximum emails this mailbox may send per day
minimumSendingsLimitPerDayinteger–Minimum emails per day during gradual build-up
signaturestring–Email signature appended to sends from this mailbox
toggleGradualBuildUpboolean–Ramp the daily limit up gradually (recommended for new mailboxes)

No output schema declared.

No examples provided.

update_sender_email_warmup ~340

Switches warm-up on or off and changes the warm-up ramp for up to 100 mailboxes in one call, applying the same settings to each. Only the settings provided change. Warm-up sends startLimit emails on the first day and adds increaseBy each sending day until it reaches capLimit a day; this is separate from campaign sending limits. A mailbox that has never warmed needs enabled: true to take any other setting, and is then enrolled with the defaults (2 a day, 2 more each day, up to 10 a day, weekdays only, UTC) plus the settings given. Raising capLimit on a mailbox that is already warming lifts today's target without restarting its ramp. Each mailbox succeeds or fails on its own: the result lists the updated mailboxes' settings, each with its healthScore (see get_sender_email_warmup), under updated, and any failures with the reason under failed.

NameTypeReqDescription
capLimitinteger–Most warm-up emails per day; the ramp stops here
enableRepliesboolean–Let warm-up recipients reply, adding reply signals
enabledboolean–true switches warm-up on, false switches it off
idsarrayyesSender email IDs to update (from list_sender_emails)
increaseByinteger–Warm-up emails added each sending day until the cap
startLimitinteger–Warm-up emails on the first day
timezonestring–IANA timezone for the warm-up send window, e.g. America/New_York
weekdaysOnlyboolean–Send warm-up emails Monday to Friday only

No output schema declared.

No examples provided.

Common questions

What is the Emailchaser MCP server?

Emailchaser is an MCP server listed in the public MCP registry as com.emailchaser/emailchaser. Run cold email outbound from an AI agent: campaigns, leads, replies, sender accounts, autopilot. This page covers its hosted endpoint (https://app.emailchaser.com/api/mcp).

Is the Emailchaser MCP server safe to use?

Emailchaser scores 85 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Emailchaser MCP server expose?

Emailchaser exposes 101 tools: confirm_connection, list_campaigns, create_campaign, get_campaign, update_campaign, and 96 more. Their descriptions and schemas cost roughly 15,569 tokens of context every time the server is loaded.

Does the Emailchaser MCP server require authentication?

Yes. Emailchaser asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Emailchaser MCP server still maintained?

Emailchaser is still listed as active in the MCP registry. We last reached this channel on 29 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.