Bulk Messaging Through an AI Assistant: WSENDER Connects Over MCP

WSENDER connects to Claude, ChatGPT, Gemini, n8n and other assistants over MCP, so a campaign is prepared right inside the chat you already work in.

Bulk messaging through an AI assistant: connecting WSENDER over MCP

WSENDER now has an MCP server. That means you can connect the service to the AI assistant you already use and work with your campaigns by talking to it: "show me who didn't reply to the last campaign", "build a segment from these clients and draft the message", "answer Priya's question about delivery time". The assistant doesn't advise you — it acts inside your project.

There is no separate interface to learn and nothing to install. Let's go through what the assistant can actually do, where its independence ends, and how to switch it on.

What MCP is and why campaigns need it

MCP (Model Context Protocol) is an open standard that AI assistants use to connect to external services. Put simply, it's a socket: the service declares the list of actions it can perform, and the assistant runs them when a person asks. The standard is supported by Claude, ChatGPT, Gemini, Copilot, editors like Cursor and automation platforms like n8n.

Until now, the only way to wire messaging into an external system was the API: a developer describes the scenario in code, and from then on it runs exactly as written. The difference is in the method. Code fixes a scenario once and for all, while an assistant is given the task in plain words and can be redirected at any moment. Underneath it's the same API and the same keys, so the automation in your CRM and the assistant's work live in one project and see the same accounts, segments, campaigns and client replies.

What the assistant can do with campaigns

The assistant's list of actions is roughly what you have in your dashboard, minus administration.

See what's going on. Connected WhatsApp and Telegram accounts, Telegram bots, and their state. The list of campaigns, sending progress, who received a message, who replied and what exactly they said.

Prepare a campaign. A draft is assembled in one step: texts, recipients, submission to moderation. After that you can refine it by talking: rewrite the message, swap the segment, run moderation again.

Check texts before sending. The assistant can run your texts through the same blocking check that stands in front of every launch and clean up the problem spots in advance. No draft is created in the process, so you're not left with a graveyard of cancelled campaigns.

Work with your client list. Segments and contact properties: view, create, add contacts, check how well a property is filled in before you start inserting it into the text.

Clean up after itself. A test campaign draft, a segment built just to look at something, a contact property that is no longer used — the assistant deletes all of it on request, so the conversation leaves no residue in the project. A segment can also simply be archived and brought back if it may still come in handy. On its own initiative the assistant deletes nothing: it names what it is about to remove and waits for your answer. A running campaign it won't delete at all — it has to be stopped first.

Run several projects. If you have more than one project — your own company and a client's, or one country and another — the assistant works with all of them through a single connection. You add a project to it on the same access confirmation page, and access to one project can be revoked without disconnecting the assistant entirely. Every answer names the project it worked in, and before anything irreversible — a launch, a send, a deletion — the project has to be named explicitly: the assistant cannot guess it, so a campaign won't go out to the wrong company just because nobody specified.

Reply inside a conversation. The assistant reads the dialog history and answers the person in that same dialog, quoting a specific message when that helps. Before sending, it shows you the text and the recipient.

Connect an account by link. The assistant creates an invitation and hands over a link, and the person connects their own account in the browser — by QR code or by phone number. They need neither an account in the service nor dashboard access for that. Handy when the messenger account is held by a staff member or a client rather than the project owner.

Work with project files. Listing, uploading by link, inserting an image or a document into a campaign message.

The assistant knows platform rules instead of guessing them

The main problem with AI in an unfamiliar domain is that it invents things confidently. So along with the actions, the server hands the assistant a reference that it reads before starting work: what each messenger can do, which attachment formats and text lengths go through, where buttons work, how limits and account warm-up are arranged, what moderation blocks and what it merely advises on.

The practical result is simple. The assistant won't promise you buttons under a WhatsApp message, where regular accounts don't have them, and won't suggest that a bot blast an uploaded list of numbers: a bot only writes to its own subscribers. It will tell you that before you spend time preparing.

What the assistant doesn't do

The boundaries are deliberate, and they are part of the answer to "so will it send something out on its own?"

It doesn't launch a campaign in one move. Preparation and launch are separate. The assistant brings the draft to a finished state, you see it in your dashboard, and the launch is a separate confirmed action. A sent message can't be recalled, so the control point stays with a human.

It doesn't answer incoming messages by itself. The assistant learns about new messages only when you ask it to look. The "reply to every incoming message around the clock" scenario isn't MCP — that's an AI agent, a different story.

It doesn't touch project settings. Webhooks, plans, payments, project users — the server simply doesn't have any of that. The assistant can disconnect a channel, but only if you separately granted the channel permission: without it, neither a key nor a token will disconnect anything. And disconnecting is irreversible — the account has to be connected again, phone in hand — so the assistant names the channel and asks outright.

Security: who can launch what

A campaign assembled by the assistant takes the usual route: the same AI moderation before the start and the same auto-strategy that picks a safe sending pace. You can't bypass limits through the assistant — it works with the same hands as the dashboard.

There are two ways to connect, and both of them limit permissions; the difference is where you set them.

Sign-in through your account. The assistant sends you to a confirmation page, you grant access, and it receives a token with exactly the permissions you ticked: reading separately, draft preparation separately, launching separately, channel management separately. The first two are enough for everyday work, and you can withhold launching entirely. This is how assistants that can't send their own headers connect — the web versions of Claude and ChatGPT, for example.

API key. Simpler, and it works everywhere. A key's permissions are chosen when it's created: a new key can read and prepare by default, while launching campaigns is ticked separately. Give the assistant its own key rather than the one already sitting in another integration — that way its permissions can be narrowed or taken away without touching the rest.

The two ways also differ in how they handle projects. A key is issued inside a project and knows only that one: two projects mean two connections in the assistant's settings. Sign-in through your account covers as many projects as you allowed it, all in a single connection.

Which plans it works on

The MCP server isn't billed separately and is included in every plan, the free Basic one included: it's part of API access, with the same limits and request counter.

There are two constraints. The request rate is set by your plan, and the limit is counted per project as a whole. And reading channel data depends on the plan too: dialog and subscriber lists are opened up by channel sync, and conversations by that same sync together with reply analytics. Basic has neither, and that applies to bots as well: without reply analytics, incoming messages aren't received at all, so there is nothing to read in a conversation — the bot works for outgoing only. The upside is that such a request returns a clear error to the assistant rather than an empty list, so it won't pass off missing data as an answer.

How to connect

There is one server address: https://mcp.wsender.io/. Nothing to install — the server runs remotely.

  1. Create a key in your dashboard: the "API" section, the "Create key" button. The token is shown once, so save it right away.
  2. Add the address to your assistant's connection settings and pass the token in the Authorization header with the word key in front of it. This is how Claude Code, Cursor and n8n connect: they let you set the header name and value by hand.
  3. Assistants that can't pass their own headers need only the address: claude.ai, ChatGPT and Claude Desktop will send you to your dashboard to confirm access and get the permissions themselves.
  4. Connect your messenger accounts and bots if you haven't yet, and ask the assistant to show you what it sees.

In Claude Code, for instance, a key-based connection looks like this:

json
{
  "mcpServers": {
    "wsender": {
      "type": "http",
      "url": "https://mcp.wsender.io/",
      "headers": { "Authorization": "key YOUR_TOKEN" }
    }
  }
}

Everything after that happens in words. Start with reading: ask it to show the list of channels and the last campaign with its replies. That's safe, and it shows immediately where the assistant can be useful to you specifically.

In closing

The value here isn't that AI will write your campaign text — it could already do that. The value is that there is no longer a manual handover between "came up with it" and "it went out". The assistant sees your client list, your accounts and your clients' replies, works with them inside your project, and leaves the launch decision to you.

You can start on the free plan: connecting and reading are fully available there.