Skip to content

Use Mail Merge with AI agents (MCP)

Mail Merge has a public MCP server, so an AI agent you already use can read your Google Sheets, write templates, manage contacts and send campaigns through your Mail Merge account. You talk to the agent in plain language, the agent calls Mail Merge, and every email still goes out from your own Gmail account with the same quotas, tracking and status column as a campaign started by hand.

The server exposes the same features as the web app, grouped as tools an agent can call: account and plan, Google Sheets, templates, contacts, campaigns, analytics, warm-up and settings. The agent only sees the account you sign in with, and only until you revoke it. Each connected agent gets its own access token, listed under Settings → AI agents in the web app.

https://merge.email/mcp

The server uses the Streamable HTTP transport and OAuth 2.1. When your assistant connects for the first time, a browser window opens: sign in with the Google account you use with Mail Merge, read the consent page naming the agent, and approve.

Claude (claude.ai)

  1. Open Settings → Connectors.
  2. Click Add custom connector.
  3. Paste https://merge.email/mcp as the URL and click Connect.
  4. Sign in with Google in the window that opens and approve the agent.

Claude Desktop uses the same path: Settings → Connectors → Add custom connector.

Claude Code

claude mcp add --transport http mailmerge https://merge.email/mcp

Then type /mcp in a session, pick mailmerge and follow the sign-in link.

  1. Open Settings → Connectors.
  2. Choose Create (in some versions it sits under Advanced → Developer mode).
  3. Enter a name, paste https://merge.email/mcp as the server URL, pick OAuth and save.
  4. Sign in with Google when prompted and approve the agent.

Add the server to .cursor/mcp.json in your project (or to the global file from Cursor Settings → MCP):

{
"mcpServers": {
"mailmerge": {
"url": "https://merge.email/mcp"
}
}
}

The MCP list then shows mailmerge with a Needs login link. Click it, sign in with Google and approve the agent.

Any MCP client that supports remote servers over Streamable HTTP with OAuth works the same way: point it at https://merge.email/mcp. Clients that look up the server’s metadata find it at:

https://merge.email/.well-known/oauth-protected-resource/mcp

Dynamic client registration and PKCE are supported, so no client ID or secret has to be configured in advance.

Account

ToolWhat it does
get_accountYour plan, today’s quota and the features your plan includes.
get_pricingThe current plans and prices.
get_subscriptionYour subscription status, billing period and renewal date.
get_billing_portal_linkA link to the billing portal (invoices, payment method, plan changes).
get_team_seatsThe seats of your team subscription and who holds them.
assign_team_seatGives a seat to a colleague.
unassign_team_seatTakes a seat back.

Google Sheets

ToolWhat it does
list_spreadsheetsThe spreadsheets in your Google Drive.
list_sheetsThe tabs of a spreadsheet.
read_sheetThe headers and rows of a sheet, the data a campaign merges.

Templates

ToolWhat it does
list_templatesYour saved templates.
get_templateA template’s subject and body.
create_templateSaves a new template.
update_templateChanges a template’s name, subject or body.
delete_templateDeletes a template.
duplicate_templateCopies a template.
generate_templateWrites a template with AI from a brief, optionally matching the columns of a sample sheet.
import_google_docTurns a Google Doc into a template.

Contacts

ToolWhat it does
list_contactsYour contacts, with filters for unsubscribers and the blocklist.
add_contactAdds one contact.
import_contactsAdds many contacts at once.
delete_contactsRemoves contacts.
block_contactsPuts addresses on the blocklist so no campaign emails them.
unblock_contactsRemoves addresses from the blocklist.
list_contact_listsYour contact lists.
create_contact_listCreates a list.
rename_contact_listRenames a list.
delete_contact_listDeletes a list (the contacts stay).
add_contacts_to_listAdds contacts to a list.
remove_contacts_from_listRemoves contacts from a list.

Campaigns

ToolWhat it does
list_campaignsYour active, scheduled and completed campaigns.
get_campaignOne campaign with its progress and settings.
get_campaign_recipientsThe per-recipient statuses of a campaign.
get_sequence_statsHow a follow-up sequence is performing.
check_quotaHow many emails you can still send today and whether a campaign fits.
send_test_emailSends a rendered test to your own address.
send_campaignStarts a campaign from a sheet, a contact list or a typed list of recipients: now, scheduled, or as Autopilot, with an optional follow-up. Supports a dry run that reports what would be sent without sending.
pause_campaignPauses a running campaign.
resume_campaignResumes a paused one.
stop_campaignStops a campaign for good.
reschedule_campaignChanges the send date of a scheduled campaign.
update_autopilotChanges the daily volume and window of an Autopilot campaign.
delete_scheduled_campaignDeletes a scheduled campaign before it starts.

Analytics

ToolWhat it does
get_analyticsSends, opens and clicks over time, with rates and top links.
get_activityWho opened, clicked and unsubscribed, recipient by recipient.
get_account_eventsThe history of everything that happened on your account.

Warm-up

ToolWhat it does
get_warmupThe status and reputation trend of your warm-up.
enable_warmupStarts warming up your mailbox.
pause_warmupPauses warm-up.
resume_warmupResumes it.
stop_warmupStops it.
update_warmup_settingsChanges the daily volume and ramp-up.
check_email_reputationRuns the free reputation check on an address or domain.

Settings

ToolWhat it does
set_throttleSets the sending speed: as fast as possible, a fixed delay, or a random delay between emails.

Once connected, ask the agent the way you would ask a colleague:

  • “Read the Leads tab of my Q4 outreach spreadsheet, write a short follow-up email that uses the first name and company columns, and send me a test.”
  • “How many emails can I still send today? If the Webinar invite template fits, schedule it to the Webinar contact list for tomorrow at 9am.”
  • “Which campaign from last month had the best open rate, and who clicked the pricing link?”
  • “Pause the Partners campaign and block everyone who replied asking to be removed.”

An agent has exactly the permissions of your plan. Nothing is unlocked by connecting one.

FreePersonalProfessional
Emails per day50250500 with a Gmail address, 1,500 with Google Workspace
Scheduling, delays, campaign historyYesYes
Analytics and activityYesYes
Autopilot and follow-up sequencesYes
Email warm-upYes

When an agent calls a tool your plan does not include, the call does not fail silently: the tool answers with a message explaining which plan is needed and a link to upgrade, which the agent shows you. Daily quota works the same way: check_quota tells the agent what fits today, and a campaign that does not fit is postponed or refused exactly as it would be in the web app. See Pricing & subscription and Daily sending limits.

  • The agent confirms before sending. Before send_campaign the agent is instructed to show you the recipient count, the template and the send time, and to wait for your go-ahead. Read that summary as carefully as you would the send button.
  • Dry run first. Ask for a dry run and the agent reports what would be sent (recipients, subject, merge fields) without sending anything.
  • Quota check. check_quota tells you how much of today’s quota a campaign would use, so a large list does not surprise you.
  • The status column is still there. A campaign started from a Google Sheet by an agent fills the same 📮 status column as one started from the add-on, so you can follow it row by row in the spreadsheet and in Campaigns.
  • Pause or stop at any time, from the agent, from the web app or from the add-on.

Open merge.email/app → Settings → AI agents. The card lists every connected agent with the date it connected and when it was last used. Click Revoke next to an agent to cut its access immediately; the next call it makes is refused and it has to go through the sign-in again.

AI agents settings

Revoking an agent does not touch your Google connection or your other agents. To remove Mail Merge’s own access to your Google account as well, go to myaccount.google.com/connections, which signs every agent out at once and also stops any running campaign (see Reconnecting your Google account).

  • OAuth 2.1 with PKCE. The agent never sees your Google password, and you never type a password into the agent. You sign in on Google’s own page and approve on a Mail Merge consent page that names the agent.
  • A token per agent. Each connection gets its own token with its own expiry and refresh, so revoking one agent leaves the others working.
  • Revocation is immediate, from Settings → AI agents or from your Google account.
  • The same data rules as the app. An agent reads and writes exactly what the web app can, nothing more, and Mail Merge stores nothing new on its behalf. See Permissions and data.