Cold email infrastructure: domains, mailboxes, warm-up and campaigns. Never charges a card.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional Bearer API key from https://app.outreach2day.com/login?returnTo=%2Fapi-keys. Clients with MCP OAuth support sign in in the browser instead.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Attach mailboxes to a campaign for sending. Only mailboxes that are ready to send (warm-up started 14+ days ago) are accepted.
Campaign id from create_campaign.
Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Attach mailboxes to a campaign for sending. Only mailboxes that are ready to send (warm-up started 14+ days ago) are accepted.
| Argument | Type | Description |
|---|---|---|
| mailboxes* | array | |
| campaign_id* | string | Campaign id from create_campaign. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"required": [
"campaign_id",
"mailboxes"
],
"properties": {
"mailboxes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 320,
"minLength": 3
},
"maxItems": 500,
"minItems": 1
},
"campaign_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Campaign id from create_campaign."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}Check an email subject and body for spam trigger words before sending.
| Argument | Type | Description |
|---|---|---|
| body | string | |
| subject | string |
{
"type": "object",
"properties": {
"body": {
"type": "string",
"maxLength": 50000
},
"subject": {
"type": "string",
"maxLength": 1000
}
},
"additionalProperties": false
}Check whether domain names are available to register (up to 50 domains per call).
| Argument | Type | Description |
|---|---|---|
| domains* | array |
{
"type": "object",
"required": [
"domains"
],
"properties": {
"domains": {
"type": "array",
"items": {
"type": "string",
"maxLength": 253,
"minLength": 3
},
"maxItems": 50,
"minItems": 1
}
},
"additionalProperties": false
}Connect domains the user already owns (free): returns the nameservers the user must set at their registrar. Calling again with the same domains is safe.
| Argument | Type | Description |
|---|---|---|
| domains* | array | |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
| redirect_domain* | string | Where visitors of these domains are redirected, usually the user's main website. |
{
"type": "object",
"required": [
"domains",
"redirect_domain"
],
"properties": {
"domains": {
"type": "array",
"items": {
"type": "string",
"maxLength": 253,
"minLength": 3
},
"maxItems": 50,
"minItems": 1
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
},
"redirect_domain": {
"type": "string",
"maxLength": 253,
"minLength": 3,
"description": "Where visitors of these domains are redirected, usually the user's main website."
}
},
"additionalProperties": false
}Create a campaign as a draft. Nothing is sent until launch_campaign.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
| idempotency_key | string | Optional. Reuse the same value when retrying; one is generated when omitted. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "Optional. Reuse the same value when retrying; one is generated when omitted."
}
},
"additionalProperties": false
}Turn a quote the user explicitly confirmed into a Stripe payment page. Charges nothing: the user pays on the page. Requires confirm=true and the quote's due_now_cents.
| Argument | Type | Description |
|---|---|---|
| confirm* | boolean | Must be true, after the user said yes to the quote's human_summary in this chat. |
| quote_id* | string | quote_id from quote_order. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
| idempotency_key | string | Optional. Reuse the same value when retrying; one is generated when omitted. |
| expected_due_now_cents* | integer | due_now_cents of the quote the user confirmed. |
{
"type": "object",
"required": [
"quote_id",
"expected_due_now_cents",
"confirm"
],
"properties": {
"confirm": {
"type": "boolean",
"description": "Must be true, after the user said yes to the quote's human_summary in this chat."
},
"quote_id": {
"type": "string",
"pattern": "^ord_[a-z0-9]{8,40}$",
"description": "quote_id from quote_order."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "Optional. Reuse the same value when retrying; one is generated when omitted."
},
"expected_due_now_cents": {
"type": "integer",
"minimum": 0,
"description": "due_now_cents of the quote the user confirmed."
}
},
"additionalProperties": false
}Send mailboxes' login credentials (SMTP/IMAP) to the user's third-party sequencer account (Instantly or Smartlead, from list_sequencers) so it can send from them. Omit mailboxes to export all eligible ones. Requires confirm=true after the user explicitly agrees. Large exports answer status pending and finish on the server; list_sequencers shows the counts.
| Argument | Type | Description |
|---|---|---|
| confirm* | boolean | Must be true, after the user agreed to share the credentials with this sequencer. |
| mailboxes | array | |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
| connection_id* | integer | connection_id from list_sequencers. |
{
"type": "object",
"required": [
"connection_id",
"confirm"
],
"properties": {
"confirm": {
"type": "boolean",
"description": "Must be true, after the user agreed to share the credentials with this sequencer."
},
"mailboxes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 320,
"minLength": 3
},
"maxItems": 500,
"minItems": 1
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
},
"connection_id": {
"type": "integer",
"minimum": 1,
"description": "connection_id from list_sequencers."
}
},
"additionalProperties": false
}What the workspace has (subscription, domains and mailboxes by state, warm-up, open orders, campaigns) and next_action: the one thing to do next. Start here.
| Argument | Type | Description |
|---|---|---|
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"properties": {
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}Sending and engagement stats for one campaign (sent, replies, bounces).
| Argument | Type | Description |
|---|---|---|
| timeframe | string | |
| campaign_id* | string | Campaign id from create_campaign. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"required": [
"campaign_id"
],
"properties": {
"timeframe": {
"enum": [
"today",
"yesterday",
"last_7_days",
"last_4_weeks",
"all"
],
"type": "string"
},
"campaign_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Campaign id from create_campaign."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}Status of an order (payment, per-domain and per-mailbox setup, warm-up estimate) by order_id; without order_id, lists the workspace's recent orders.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| order_id | string | |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"order_id": {
"type": "string",
"pattern": "^ord_[a-z0-9]{8,40}$"
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}Current prices: mailbox monthly price and minimum, domain prices by TLD, card processing fee rule, worked examples.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Warm-up progress per mailbox (state, days warming, ready flag, ready date, inbox rate) and a workspace summary. Mailboxes can send campaigns once ready.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| offset | integer | |
| mailboxes | array | Only these mailboxes. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 500,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
},
"mailboxes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 320,
"minLength": 3
},
"maxItems": 500,
"minItems": 1,
"description": "Only these mailboxes."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}Import contacts into a campaign from CSV text (header row with an email column; other columns become variables; up to 10000 rows). Pass import_id alone to check a previous import.
| Argument | Type | Description |
|---|---|---|
| import_id | string | |
| campaign_id* | string | Campaign id from create_campaign. |
| csv_content | string | |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
| idempotency_key | string | Optional. Reuse the same value when retrying; one is generated when omitted. |
{
"type": "object",
"required": [
"campaign_id"
],
"properties": {
"import_id": {
"type": "string",
"maxLength": 128
},
"campaign_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Campaign id from create_campaign."
},
"csv_content": {
"type": "string",
"maxLength": 1000000
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "Optional. Reuse the same value when retrying; one is generated when omitted."
}
},
"additionalProperties": false
}Start sending a campaign to its contacts. Refused unless preflight is green and every attached mailbox is ready to send. Requires confirm=true after the user explicitly agrees.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Optional cap on contacts enrolled by this launch. |
| confirm* | boolean | Must be true, after the user explicitly agreed to start sending. |
| campaign_id* | string | Campaign id from create_campaign. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
| idempotency_key | string | Optional. Reuse the same value when retrying; one is generated when omitted. |
{
"type": "object",
"required": [
"campaign_id",
"confirm"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 1000000,
"minimum": 1,
"description": "Optional cap on contacts enrolled by this launch."
},
"confirm": {
"type": "boolean",
"description": "Must be true, after the user explicitly agreed to start sending."
},
"campaign_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Campaign id from create_campaign."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "Optional. Reuse the same value when retrying; one is generated when omitted."
}
},
"additionalProperties": false
}List the workspace's sending domains with status, mailbox count and, for connected domains, DNS status and nameservers.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| offset | integer | |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}List the workspace's mailboxes (address, sender name, status). Never returns credentials.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| domain | string | Only mailboxes on this domain. |
| offset | integer | |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 500,
"minimum": 1
},
"domain": {
"type": "string",
"maxLength": 253,
"description": "Only mailboxes on this domain."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}List recent threads where a contact replied (subject, sender, short snippet, reply intent). Paginate with cursor.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| cursor | string | |
| campaign_id | string | Only replies to this campaign. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
},
"cursor": {
"type": "string",
"maxLength": 512
},
"campaign_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Only replies to this campaign."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}List the workspace's connected sequencer accounts (Instantly, Smartlead) that mailboxes can be exported to.
| Argument | Type | Description |
|---|---|---|
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"properties": {
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}Stop a campaign from sending. Safe to call again.
| Argument | Type | Description |
|---|---|---|
| campaign_id* | string | Campaign id from create_campaign. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"required": [
"campaign_id"
],
"properties": {
"campaign_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Campaign id from create_campaign."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}Check whether a campaign can launch: sequence, contacts, attached mailboxes and their warm-up. Returns blocking checks with hints.
| Argument | Type | Description |
|---|---|---|
| campaign_id* | string | Campaign id from create_campaign. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"required": [
"campaign_id"
],
"properties": {
"campaign_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Campaign id from create_campaign."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}Price new domains and mailboxes server-side. Creates a 15-minute quote; registers and charges nothing. Show human_summary to the user exactly before create_checkout. Ordering domains needs registrant with every one of: first_name, last_name, real_address, city, state_province, postal_code, country, phone, organization_name, job_title (email_address optional); collect them from the user upfront.
| Argument | Type | Description |
|---|---|---|
| domains | array | New root domains to register (check them with check_domains first). |
| persona | object | |
| mailboxes | integer | Total mailbox slots to add (a new subscription starts at 12). With new domains, mailboxes are created and spread over them, at most 10 per domain; slots beyond that stay paid and are filled when a domain is added (the quote's human_summary says so). |
| test_mode | boolean | Stripe test mode, nothing registered or charged. Not available in production. |
| registrant | object | Domain registrant contact, required when domains are ordered. Ask the user for ALL of these before calling quote_order, in one question; never invent them: first_name, last_name, real_address (street), city, state_province, postal_code, country, phone (international format, e.g. +15125550100), organization_name, job_title. email_address is optional (defaults to the account email). |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
Start warm-up for mailboxes. Retrying with the same mailboxes the same day does not start a second operation.
| Argument | Type | Description |
|---|---|---|
| mailboxes* | array | |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
| idempotency_key | string | Optional. Reuse the same value when retrying; one is generated when omitted. |
{
"type": "object",
"required": [
"mailboxes"
],
"properties": {
"mailboxes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 320,
"minLength": 3
},
"maxItems": 500,
"minItems": 1
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "Optional. Reuse the same value when retrying; one is generated when omitted."
}
},
"additionalProperties": false
}Suggest available sending domains that look like the company's website (brand + one fitting word, e.g. acmehq.com, acme-partners.com), already checked for availability. Use this instead of inventing names.
| Argument | Type | Description |
|---|---|---|
| site* | string | The company's website, like acme.com |
| count | integer | How many available names to return (5 mailboxes per domain) |
| segment | string | What the company does, for fitting words |
{
"type": "object",
"required": [
"site"
],
"properties": {
"site": {
"type": "string",
"maxLength": 253,
"minLength": 3,
"description": "The company's website, like acme.com"
},
"count": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many available names to return (5 mailboxes per domain)"
},
"segment": {
"enum": [
"agency",
"funding",
"advisory",
"saas",
"recruiting",
"other"
],
"type": "string",
"description": "What the company does, for fitting words"
}
},
"additionalProperties": false
}Add an email step to a campaign sequence, or update one (by step_id, or by order when a step with that order exists). delay_days is the wait after this step before the next one.
| Argument | Type | Description |
|---|---|---|
| order | integer | |
| step_id | string | |
| subject | string | |
| body_html | string | |
| body_text | string | |
| delay_days | integer | |
| campaign_id* | string | Campaign id from create_campaign. |
| workspace_id | integer | Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key. |
{
"type": "object",
"required": [
"campaign_id"
],
"properties": {
"order": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"step_id": {
"type": "string",
"maxLength": 128
},
"subject": {
"type": "string",
"maxLength": 1000
},
"body_html": {
"type": "string",
"maxLength": 50000
},
"body_text": {
"type": "string",
"maxLength": 50000
},
"delay_days": {
"type": "integer",
"maximum": 365,
"minimum": 0
},
"campaign_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Campaign id from create_campaign."
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
}
},
"additionalProperties": false
}| mailbox_domains | array | Instead of new domains: active domains the workspace already has (bought, or connected with connect_own_domains once list_domains shows dns_status active) to create the mailboxes on. Needs persona; no registrant. |
| redirect_domain | string | Where visitors of the new domains are redirected (usually the user's website). |
| mailboxes_per_domain | integer | Alternative to mailboxes: this many on each new domain (or on each mailbox_domains entry). |
{
"type": "object",
"properties": {
"domains": {
"type": "array",
"items": {
"type": "string",
"maxLength": 253,
"minLength": 3
},
"maxItems": 50,
"description": "New root domains to register (check them with check_domains first)."
},
"persona": {
"type": "object",
"required": [
"first_name",
"last_name"
],
"properties": {
"last_name": {
"type": "string",
"maxLength": 50
},
"first_name": {
"type": "string",
"maxLength": 50
}
},
"additionalProperties": false
},
"mailboxes": {
"type": "integer",
"maximum": 5000,
"minimum": 0,
"description": "Total mailbox slots to add (a new subscription starts at 12). With new domains, mailboxes are created and spread over them, at most 10 per domain; slots beyond that stay paid and are filled when a domain is added (the quote's human_summary says so)."
},
"test_mode": {
"type": "boolean",
"description": "Stripe test mode, nothing registered or charged. Not available in production."
},
"registrant": {
"type": "object",
"required": [
"first_name",
"last_name",
"real_address",
"city",
"state_province",
"postal_code",
"country",
"phone",
"organization_name",
"job_title"
],
"properties": {
"city": {
"type": "string",
"maxLength": 100
},
"phone": {
"type": "string",
"maxLength": 30,
"description": "International format, e.g. +15125550100."
},
"country": {
"type": "string",
"maxLength": 100
},
"job_title": {
"type": "string",
"maxLength": 100
},
"last_name": {
"type": "string",
"maxLength": 100
},
"first_name": {
"type": "string",
"maxLength": 100
},
"postal_code": {
"type": "string",
"maxLength": 20
},
"real_address": {
"type": "string",
"maxLength": 200,
"description": "Street address."
},
"email_address": {
"type": "string",
"maxLength": 320
},
"state_province": {
"type": "string",
"maxLength": 100
},
"organization_name": {
"type": "string",
"maxLength": 200
}
},
"description": "Domain registrant contact, required when domains are ordered. Ask the user for ALL of these before calling quote_order, in one question; never invent them: first_name, last_name, real_address (street), city, state_province, postal_code, country, phone (international format, e.g. +15125550100), organization_name, job_title. email_address is optional (defaults to the account email).",
"additionalProperties": false
},
"workspace_id": {
"type": "integer",
"minimum": 1,
"description": "Workspace id. Optional: defaults to the workspace picked at sign-in or bound to the API key."
},
"mailbox_domains": {
"type": "array",
"items": {
"type": "string",
"maxLength": 253,
"minLength": 3
},
"maxItems": 50,
"description": "Instead of new domains: active domains the workspace already has (bought, or connected with connect_own_domains once list_domains shows dns_status active) to create the mailboxes on. Needs persona; no registrant."
},
"redirect_domain": {
"type": "string",
"maxLength": 253,
"description": "Where visitors of the new domains are redirected (usually the user's website)."
},
"mailboxes_per_domain": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Alternative to mailboxes: this many on each new domain (or on each mailbox_domains entry)."
}
},
"additionalProperties": false
}