Skip to main content
The Brew MCP ships guided prompts so agents chain the right tools in the right order. On clients that surface prompts, your agent can invoke them directly; the same recipes are also returned by get_brew_capabilities under workflows (name and goal by default; pass a topic such as email for the steps).

Launch a Campaign

launch_email_campaign is the full create → send → analyze loop:
  1. create_email from a prompt (while it is generating, poll get_email with the emailId and runId) → iterate with edit_email.
  2. send_email with test: true to QA.
  3. list_domains with sendableOnly: true and sendingPurpose: "marketing" for a verified sender, then list_audiences (or build one).
  4. send_email with emailId, subject, audienceId, domainId, and an idempotency_key. Add scheduledAt to schedule.
  5. get_email_analytics with report: { kind: "sends", sendId } for the send you launched; omit sendId for the campaign picture.

Build a Segment and Send

build_segment_and_send. A segment is a saved Audience with filters:
  1. search_contacts and list_contact_fields to see what you can filter on.
  2. create_audience with a name and filters: { filters: [...], logicalOperator } (and / or). The response carries the member count; to size it again later, call list_audiences with the audienceId and include: ["count"].
  3. create_email → send_email to the audienceId.
For saved audiences, omitted filter types use the brand’s field registry. A registered numeric tier compares numerically, so not_equals with value: 10 excludes tier 10. You can also pass type: "number" explicitly. Unknown fields retain string comparisons. Date ranges need type: "date" for request validation. See Create Audiences.

Set Up an Automation

set_up_automation:
  1. save_trigger (note the triggerEventId).
  2. create_email.
  3. save_automation (a graph of sendEmail / wait / filter / split nodes).
  4. test_automation → save_automation { automationId, published: true }.
  5. fire_trigger_event from your app + monitor with list_automation_runs and run: { kind: "execution", automationId }.

Analyze Performance

analyze_campaign_performance: get_email_analytics with report.kind set to overview → sends (add a sendId for one send) → events (and list_automations with analytics: {} + list_trigger_events), then summarize wins, deliverability issues, and next experiments.

Personalize with a CRM MCP

personalize_with_crm. This is where Brew shines next to other MCPs. Brew is the durable email marketing memory and infrastructure; a CRM / enrichment MCP (Clay, Attio, …) is the contact intelligence: This enriches contacts who already opted in to hear from you. It is not a way to source recipients from a CRM. See What You Can Send.
  1. Enrich: pull contact context (lifecycle, intent, firmographics) from your CRM MCP.
  2. Write it to Brew: create_contact_field for each attribute, then save_contact with the email and a fields map (or import_contacts_csv).
  3. Segment: create_audience filtering on the enriched fields (e.g. lifecycle = "trial" AND intent = "high").
  4. Personalize: create_email that speaks to the segment, then send_email.
  5. Measure & re-segment: read analytics and refine.
This loop (enrich → segment → design → send → measure → re-segment) is the complete personalized email-marketing cycle, with Brew as the memory across runs. For the full walkthrough, field mapping, and troubleshooting, see Sync a CRM Into Brew Over MCP.

Need Help?

Our team is ready to support you at every step of your journey with Brew. Choose the option that works best for you:

Search Documentation

Type in the “Ask any question” search bar at the top left to instantly find relevant documentation pages.

ChatGPT/Claude Integration

Click “Open in ChatGPT” at the top right of any page to explore it further with ChatGPT or Claude.