Ready to send better email?
Brew is the AI-native ESP. Define your brand once, ship on-brand email in minutes.
Brew is the AI-native ESP. Define your brand once, ship on-brand email in minutes.
Connect Brew to Claude over MCP, then brief, design, test and schedule a campaign in chat. Every step, the tools Claude calls, and where you approve.

You already use Claude to draft the campaign plan and the copy for the monthly update. Then you paste it into the email editor and rebuild the layout around it. Every time a line needs rewriting, you switch back to the chat.
With Brew connected over MCP, you can plan and schedule the campaign in the same Claude chat without opening an email editor. Claude has Brew design the email from your brand, sends you a test, picks the audience and schedules the send. On an OAuth connection, Brew requires confirmation before a live send. Review the final audience, content, and schedule before approving.
This walkthrough uses Claude Desktop or claude.ai. Claude Code works the same way after a one-line setup, shown in step 1.
https://brew.new/api/mcp as a custom connector in Claude, sign in, and choose a brand.create_email, edit_email, send_email with test: true, then send_email with scheduledAt.You need a Brew account with your brand set up, a verified sending domain for the live send, and an audience of contacts who opted in. If you do not have an audience yet, Claude can build one from filters in step 6.
In Claude Desktop or claude.ai, open Settings, then Connectors, and choose Add custom connector. Enter:
https://brew.new/api/mcp
Select Connect, sign in to Brew, and choose the brand Claude should work in. The connection is scoped to that brand, so Claude cannot see other brands' data unless you connect at the organization level. Steps for other clients are in Connect your client.
In Claude Code, the same connection is one command:
claude mcp add --transport http brew "https://brew.new/api/mcp"Start a new chat and ask "What can you do with Brew?" Claude calls get_brew_capabilities and lists the tools available on your connection. If you see the email, audience and send tools, you are ready.
Give Claude a specific brief. For example:
Create this month's product update for our customers.
Three sections: the new CSV import, faster search, and the pricing page redesign.
Use only the details in the changelog I'm pasting below. No statistics or quotes.
One CTA to example.com/changelog. Keep it under 200 words.
[paste changelog]Claude calls create_email. Brew generates the design from your brand's email-design.md, and Claude shows a preview image with an Open in Brew link. Generation takes a moment, and Claude checks progress with get_email.
Ask for changes as you would with a designer:
Each change is an edit_email call, which creates a new version you can go back to. To change only the subject line or the email's name, Claude uses update_email_metadata, which is free and does not create a version.
Ask Claude to run the checks:
send_email with test: true to your address.test_email_rendering. Review the current credit costs before running paid checks.audit_email and summarizes the findings. Resolve actionable findings before scheduling.Open the test in your own inbox. Click every link and read the footer.
Ask "Which audiences do I have?" and Claude calls list_audiences. To build a new one, describe it:
"Create an audience of contacts on the Pro plan who signed up before July 1."
Claude checks your contact fields with list_contact_fields, then calls create_audience with filters and reports how many people match. If the count looks wrong, fix the filter before going further.
Now ask for the schedule:
"Schedule it to the Pro customers audience for Tuesday at 9:00 America/New_York, from our marketing domain."
Claude calls list_domains to find a verified domain with a marketing sending purpose. It then prepares send_email with the email, subject, audience, domain, an idempotency key and scheduledAt. Always state the time zone in your request.
Brew treats a send as irreversible, so on OAuth and organization connections the call stops for your confirmation. Claude shows what will be sent, to whom and when. Approve only after checking all three.
After scheduling:
control_email_send.get_email_analytics with a sends report, which covers delivered, opens, clicks and bounces.| Problem | Likely cause | Fix |
|---|---|---|
| Claude cannot find a sendable domain | The domain is not verified, or its purpose is transactional | Verify the domain, or add a marketing-purpose domain |
| The audience count is zero | The filter does not match your field values | Ask Claude to list the field's values, then rebuild the filter |
| The send reports no eligible recipients | Everyone in the audience is unsubscribed, suppressed or undeliverable | Check the audience's eligible count, and import subscription status with your contacts |
| The brand looks wrong | The brand document is thin | Upload your brand guide and regenerate |
On OAuth and organization connections, send_email returns a confirmation step before a live send. Your Claude client may also ask before each tool call. Brand API-key connections need their own client approval policy. Keep review enabled for live sends.
Yes. The same server URL works in ChatGPT through Developer mode, and in Cursor, VS Code, Codex and other MCP clients. The Brew MCP post explains the connection and links to current setup instructions.
Yes. It goes out from your domain under your sender reputation, and CAN-SPAM and Gmail's sender requirements apply. What still applies when an agent sends covers the details.
Yes. save_trigger, save_automation and test_automation create and test event-triggered flows, and publishing is a separate, explicit step.
To try it, add the connector, then ask Claude to send you a test of your next campaign before you schedule anything.
