agent-cold-email
Server Details
Coldrig — cold-email infra run by your agent: 28 MCP tools, live sending, free sandbox, from $99/mo.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 81.1% over 75 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
- Server Listing
- agent-cold-email
TDQS
Scored across 34 tools
Most tools target a clearly distinct resource or action, and the descriptions explicitly disambiguate near-neighbors such as mark vs label_thread vs ack_message, campaign_results vs metrics vs list_campaigns, and reply vs add_leads. Some pairs like pause vs suppress_lead and configure_byo_domain vs setup_infrastructure require careful reading, but are still separable.
Many names follow a verb_noun pattern (list_campaigns, add_leads, launch_campaign, update_lead), but the set also includes bare nouns (account, inbox, metrics, thread) and bare verbs (pause, resume, reply, mark). Everything is snake_case and readable, but there is no single predictable convention.
With 34 tools, the surface is heavy for the rubric's 25+ threshold, even though the domain is complex. Several capabilities are already packed into multi-action tools, and further consolidation or grouping could reduce sprawl without losing core coverage.
The surface covers campaign creation/lifecycle, lead disposition and suppression, infrastructure and BYO domain setup, inbox triage, webhooks, dashboards, operator contact, and account metrics. Notable gaps are campaign update/delete and domain deletion, but the core cold-email workflows are well represented.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Added
disconnect_app - Added
get_connected_apps
3 tool updates
- Added
add_leads - Changed
launch_campaign7 fields changed- added
Input schema / properties / includeAlreadyEmailedAdded value: +{ + "description": "Optional. true also stores and emails the contacts who already got this campaign's first email from another campaign of this account; without it they are skipped and counted in alreadyEmailed.", + "type": "boolean" +} - added
Input schema / properties / leads / items / properties / firstName / defaultAdded value: +"" - removed
Input schema / properties / leads / items / properties / firstName / minLengthRemoved value: -1 - added
Input schema / properties / leads / items / properties / varsAdded value: +{ + "additionalProperties": { + "maxLength": 2000, + "type": "string" + }, + "description": "Optional per-lead values for your own {{tokens}}: a flat map of word-keys (letters, digits, underscore; up to 64 chars) to one-line strings (up to 2000 chars), at most 50 keys. A {{key}} used in any subject or body must be present, non-empty, on EVERY lead or the launch is refused (400) naming it. A key may not be firstName or company.", + "propertyNames": { + "maxLength": 64, + "pattern": "^\\w+$", + "type": "string" + }, + "type": "object" +} - changed
Input schema / properties / leads / items / requiredPrevious value: -[ - "email", - "firstName" -]New value: +[ + "email" +] - added
Input schema / properties / previewOnlyAdded value: +{ + "description": "Optional. true = a dry run: every launch check runs and you get back the rendered subject and body of every step for the first three leads plus the counts a launch would report, and NOTHING is created or sent. Send the same request without it to launch.", + "type": "boolean" +} - added
Input schema / properties / repeatOfAdded value: +{ + "description": "Optional. Send it only to repeat a campaign on purpose: the existingCampaignId that a 409 duplicate_campaign refusal of this launch named. Accepted once, and only while it names the most recent campaign of this account with the same contacts and the same subjects and bodies as written; any other value is refused and nothing is created.", + "maxLength": 200, + "minLength": 1, + "type": "string" +}
- Added
resume
4 tool updates
- Changed
launch_campaign3 fields changed- added
Input schema / properties / endByAdded value: +{ + "description": "Optional fixed end date, as an ISO 8601 instant with a zone. From then on nothing more in this campaign sends: every step still waiting is skipped and recorded as a 'failed' event with reason campaign_ended. Paid accounts only: a trial account that sends one is refused 400. Must be later than now and later than every step's notBefore. Omit to let the sequence run to its end.", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" +} - added
Input schema / properties / listSourceAdded value: +{ + "description": "Where this lead list came from, in a sentence (e.g. \"our own past-donor CRM export\"). REQUIRED on a crowdfunding account: a launch with no source, or \"unknown\", is refused (400) — cold lists are allowed only with a stated source. Optional elsewhere. Max 500 characters.", + "maxLength": 500, + "type": "string" +} - added
Input schema / properties / sequence / items / properties / notBeforeAdded value: +{ + "description": "Optional fixed date this step is held until, as an ISO 8601 instant with a zone (e.g. \"2026-11-03T09:00:00-05:00\" or \"...Z\"). The step goes out at the later of notBefore and delayDays after the previous step actually sent, still inside sendWindow. Paid accounts only: a trial account that sends one is refused 400, so use delayDays while on trial. Omit to send on delayDays alone.", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" +}
- Changed
pause1 field changed- added
Input schema / properties / leadEmailsAdded value: +{ + "description": "Optional. Stop ONLY these leads in this campaign (any capitalisation): their remaining steps are cancelled, the campaign keeps running for everyone else, and nobody is added to the suppression list. Every address must be a lead of this campaign, or nothing is stopped and the call is refused naming the ones that are not. Omit to pause the whole campaign.", + "items": { + "format": "email", + "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", + "type": "string" + }, + "maxItems": 5000, + "minItems": 1, + "type": "array" +}
- Added
plan_campaign - Added
submit_feedback
1 tool update
- Changed
launch_campaign7 fields changed- removed
Input schema / properties / sendWindow / defaultRemoved value: -{ - "endHour": 23, - "startHour": 0 -} - added
Input schema / properties / sendWindow / descriptionAdded value: +"Integer hours 0-23 (endHour inclusive: the last hour a send may start in) and weekdays, evaluated in `timezone`. Each field you omit (or all of them, by omitting sendWindow) gets the recommended {\"startHour\":8,\"endHour\":16,\"days\":[1,2,3,4,5]} — except on a sandbox account, where omitted fields are open every hour of every day until it upgrades and they take the recommended default. If you set exactly ONE of startHour/endHour, the other still defaults to the recommended value (08/16) — if that combination would wrap past midnight (start > end), the launch is refused; set both explicitly, including for a deliberate overnight window." - added
Input schema / properties / sendWindow / properties / daysAdded value: +{ + "description": "Weekdays sends may go out on, in `timezone`: 0 = Sunday … 6 = Saturday. Omit for [1,2,3,4,5] (every day while the account is a sandbox); include 0 and 6 to send on weekends.", + "items": { + "maximum": 6, + "minimum": 0, + "type": "integer" + }, + "maxItems": 7, + "minItems": 1, + "type": "array" +} - removed
Input schema / properties / sendWindow / requiredRemoved value: -[ - "startHour", - "endHour" -] - added
Input schema / properties / sequence / items / properties / subject / descriptionAdded value: +"Required on step 1. A LATER step (step > 1) may omit it to keep step 1's subject line (recommended) — it resolves at launch to \"Re: \" + step 1's subject (unchanged if that already starts with \"Re: \"). Set one explicitly on a later step to change only its subject line: every later step is still sent In-Reply-To step 1, though some mail clients display a changed subject as a separate conversation." - changed
Input schema / properties / sequence / items / requiredPrevious value: -[ - "step", - "subject", - "body", - "delayDays" -]New value: +[ + "step", + "body", + "delayDays" +] - added
Input schema / properties / timezone / descriptionAdded value: +"IANA time zone the send window is evaluated in — set it to your recipients' zone. Default UTC."
1 tool update
- Changed
configure_webhook1 field changed- changed
Input schema / properties / eventTypes / descriptionPrevious value: -"Required for create: which events to push (reply | bounce | soft_bounce | complaint)."New value: +"Required for create: which events to push (reply | bounce | soft_bounce | complaint | unsubscribe)."
1 tool update
- Changed
setup_infrastructure2 fields changed- added
Input schema / properties / distributionAdded value: +{ + "items": { + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" +} - changed
Input schema / requiredPrevious value: -[ - "brand", - "primaryDomain", - "domains", - "inboxesEach", - "persona", - "physicalAddress", - "senderIdentity" -]New value: +[ + "brand", + "primaryDomain", + "domains", + "persona", + "physicalAddress", + "senderIdentity" +]
1 tool update
- Added
contact_operator
3 tool updates
- Added
ack_message - Added
list_messages - Changed
remove_mailboxes1 field changed- added
Input schema / properties / idempotencyKeyAdded value: +{ + "description": "Optional idempotency key: resend the SAME key when retrying this call so a dropped-response retry is not applied twice (no duplicate campaign/provision/send).", + "maxLength": 200, + "minLength": 1, + "type": "string" +}
1 tool update
- Changed
setup_infrastructure1 field changed- removed
Input schema / properties / registerDomains / defaultRemoved value: -false
1 tool update
- Changed
setup_infrastructure2 fields changed- added
Input schema / properties / registerDomainsAdded value: +{ + "default": false, + "type": "boolean" +} - added
Input schema / properties / registrantAdded value: +{ + "properties": { + "addressLine1": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "city": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "country": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "email": { + "format": "email", + "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", + "type": "string" + }, + "firstName": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "lastName": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "organization": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "phone": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "postalCode": { + "maxLength": 20, + "minLength": 1, + "type": "string" + }, + "state": { + "maxLength": 200, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "firstName", + "lastName", + "email", + "phone", + "addressLine1", + "city", + "state", + "country", + "postalCode" + ], + "type": "object" +}
3 tool updates
- Changed
configure_byo_domain1 field changed- added
Input schema / properties / quoteOnlyAdded value: +{ + "description": "Optional for request_managed_mailboxes — true previews the new mailbox count + projected monthly price WITHOUT provisioning (SPEC §18 quote-before-add).", + "type": "boolean" +}
- Added
remove_mailboxes - Changed
setup_infrastructure1 field changed- added
Input schema / properties / quoteOnlyAdded value: +{ + "default": false, + "type": "boolean" +}
Related MCP Connectors
AI-agent outreach: cold email, warmup, LinkedIn, Instagram, WhatsApp, verification, 200M leads
Cold email infrastructure — campaigns, prospects, mailbox health and replies via Claude.
Cold email API for AI agents: connect mailboxes, warm up, run campaigns and handle replies.
Run cold email outbound from an AI agent: campaigns, leads, replies, sender accounts, autopilot.
Related MCP Servers
- AlicenseAqualityCmaintenanceEmail-deliverability tools for AI agents — 12 MCP tools across email verification, DNSBL across 50 zones, SPF/DKIM/DMARC analysis, spam-trap scoring, domain intelligence, and email finder. Free tier with no credit card.12114 npm1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for managing cold-email infrastructure: buy domains via Porkbun, import them into CheapInboxes, provision Google/Microsoft mailboxes, and sync credentials to platforms like Instantly and Smartlead.MIT
- AlicenseNot gradedqualityCmaintenanceArgorant MCP Server — give your AI agent direct access to 614M verified B2B contacts. Query by industry, role, geography, and 100+ filters, then export emails verified by a live SMTP probe at request time (catch-alls flagged, invalids free). OAuth-secured. Works with Claude, ChatGPT, Cursor, and any MCP client. Endpoint: https://mcp.argorant.com/mcp1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to connect and warm up sending mailboxes, build and launch outbound campaigns, manage leads and replies, and handle suppressions, analytics, and webhooks through policy-gated MCP tools.3Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.