Unisender MCP server
19 operations0 webhooks
Email marketing and transactional email with Unisender - manage lists, contacts, custom fields and tags, subscribe and import contacts, send transactional email, and create and list campaigns.
Try Unisender with your agent
Connect Unisender, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Unisender on my account, then run one read-only example and show me the result.
Unisender tools and triggers
Tools are what your agent can do in Unisender through Corsair's MCP server. Triggers are the Unisender events a routine can start from.
Contacts
- CountRead-only
Count the contacts in a list by kind (type address for email contacts, phone for SMS) or by tag; Unisender needs at least one of the two
contacts.count
- ExcludeWrite
Remove a contact from lists without marking them unsubscribed, so they can be re-added later
contacts.exclude
- ExportWrite
Request an asynchronous export of the contact data, delivered to a notify URL
contacts.export
- GetRead-only
Read one contact's address status, lists and custom fields by email
contacts.get
- ImportDestructive
Import up to 500 contacts from columnar data, with list membership in an email_list_ids column; role addresses such as sales@ are skipped on purpose, and a `delete` column removes contacts
contacts.import
- SubscribeWrite
Add or update a contact in one or more lists. By default (double_optin 0) Unisender emails the contact a confirmation request; pass double_optin 3 to add them with no email. Returns only person_id; read the confirmation status with contacts.get
contacts.subscribe
- UnsubscribeWrite
Unsubscribe a contact from lists, which only the contact can reverse through an activation link
contacts.unsubscribe
Fields
- CreateWrite
Create a custom contact field
fields.create
- DeleteDestructive
Delete a custom contact field by id
fields.delete
- ListRead-only
List the custom contact fields with their types
fields.list
Lists
- CreateWrite
Create a contact list, which models a topic rather than a single send; the title must be unique
lists.create
- DeleteDestructive
Delete a contact list by id
lists.delete
- ListRead-only
List the contact lists in the account, with their ids and titles
lists.list
Messages
- Create EmailWrite
Create a campaign email without sending it, for campaigns.create to send
messages.createEmail
- Send EmailWrite
Send one transactional email to a single recipient, who is added to list_id if not already in it; capped at 60 calls a minute and with no field substitution beyond the unsubscribe URL
messages.sendEmail
- StatusRead-only
Read delivery status for up to 500 sent emails; err_ is a failure and ok_ a success or still in progress
messages.status
Campaigns
- CreateWrite
Start or schedule a campaign from a message; omitting start_time sends it immediately
campaigns.create
- ListRead-only
List campaigns whose start time falls in a window, up to 10,000 a page
campaigns.list
Tags
- ListRead-only
List the contact tags with their ids
tags.list
Connect Unisender to Claude, ChatGPT or Cursor
- 1
Connect Unisender in Corsair
Add your Unisender API key once in Corsair. Corsair stores the credential encrypted and makes the Unisender API calls for your agent, so it never goes into a prompt or a config file. Connect Unisender
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Unisender. On a ChatGPT personal plan, connect Unisender here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Unisender's read and write operations run right away and its 3 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/unisender, add the Unisender plugin, and connect with an API key. Then call methods like corsair.unisender.api.campaigns.create() from your app. Corsair keeps each tenant isolated.
Yes. Unisender requires an API key from your Unisender account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Unisender, GitHub, Notion, Stripe, and the rest. Trigger Unisender from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for email marketing and transactional email with Unisender - manage lists, contacts, custom fields and tags, subscribe and import contacts, send transactional email, and create and list campaigns. Common builds include sync jobs, admin tooling, and agents that call Unisender APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Unisender API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/unisender in the open repo. When Unisender ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Unisender data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Unisender data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Unisender on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 3 destructive Unisender operations. You can change a link's mode at hub.corsair.dev/me.