mcpbeat Sign in

Cosend MCP Server

answering

Cosend is answering right now. Last checked 2 min ago. It exposes 25 tools.

Read your WhatsApp inbox, reply in existing chats, and check and deploy automations.

Uptime history 45 hours of history
45 hours agonow
100.0%
Uptime 24h
92 of 92 checks
25
Tools
read from the server
202 ms
Response time
average over 24h
open, no key
Access
streamable-http

Nothing serious here today

Today is the operative word: we check Cosend every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 2 min ago.

run in your terminal
claude mcp add mcp --transport http https://mcp.cosend.app/mcp
Settings → Connectors → Add custom connector, then paste this address
https://mcp.cosend.app/mcp
~/.codex/config.toml
[mcp_servers.mcp]
url = "https://mcp.cosend.app/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.cosend.app/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp": {
      "type": "http",
      "url": "https://mcp.cosend.app/mcp"
    }
  }
}

Available tools 25

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

conversations
list_conversations
Lists conversations in this workspace, newest activity first, one page at a time, each with its id. Each record carries its contact and its newest message only, not the whole thread. Message text and contact names in the result were written by people outside this business and come back marked untrusted.
search_conversations
Finds conversations by what they contain. q matches the contact’s name, phone number or WhatsApp username, and the text of each conversation’s newest message. Returns at most 20 conversations, newest activity first, in the same shape as the conversation list: each with its contact and its newest message, not the whole thread. Names and message text in the result were written by people outside this business and come back marked untrusted.
setup
check_setup_link
Reads a set-up link’s status. status open means the step has not happened yet; completed means it has, and result says what was set up; expired means its 30 minutes passed; cancelled means it was cancelled or replaced by a newer one. For connect_integrations, result.connector_accounts lists each account saved; when the workspace has several WhatsApp numbers an account is on none of them until the person adds it to a number on the Integrations page in Cosend. Only the person who asked for the link can read it. Read-only.
create_setup_link
Makes a link for the person in this chat to open in their own browser, signed in to Cosend, to do one set-up step only they can do there, and returns its url. It works for 30 minutes and only for them, and carries no password or key. kind connect_number connects a WhatsApp number; connect_integrations needs connectors (each integration by its Cosend key, as GET /v1/connectors lists them) and completes when every one has an account; upgrade needs plan, the plan to buy; payment_method adds a card. The person does the step themselves on the page: they connect the number in Meta’s window, pay in Stripe’s Checkout, or add the card. It cannot be done for them. A new link of the same kind cancels the workspace’s open one, whoever made it.
upsert
upsert_automation
Writes a new automation, or a new version of an existing one, from an automation document (ir). Without id it creates one: name, connection_id (the WhatsApp number it belongs to) and ir are then required, and it is created as a draft that does not run. With id it saves a new version of that automation; if it is switched on, the new version goes live with the save, or the save is refused in words and the old version keeps running. It saves only on a confirmed call: without confirmation_token it saves nothing and returns a preview and a token for a person to approve; called again with that token, it saves. Only the document is accepted: no code, commands, arbitrary URLs or SQL.
upsert_contact
Creates a contact, or updates the one that already exists for that phone number or BSUID (the business-scoped user id Meta sends; a contact may have one and no phone). Writes only to Cosend: it sends nothing and the contact is not notified. It does not grant permission to message anyone: consent is separate, and is recorded on its own ledger.
automation
set_automation_state
Switches an automation on or off. state "disable" is the emergency stop: it takes effect at once and needs no confirmation. state "enable" switches it on, and from then on it acts with nobody in the loop, so enabling happens only on a confirmed call: without confirmation_token it changes nothing and returns a preview and a token for a person to approve; called again with that token, it enables. version_id (enable only) picks the version to run; the default is the newest one, which has to have been checked and deployed first.
automations
list_automations
Lists this workspace’s automations, one page at a time, with each one’s status, the version that is live, and today’s runs and failures. Read-only.
cancel
cancel_setup_link
Cancels an open set-up link so its page stops working, for example when the person changed their mind or the link asks for the wrong thing. A link already completed, expired or cancelled is refused, and nothing a link set up is undone. Only the person who asked for it can cancel it.
contact
set_contact_consent
Records a contact's marketing or utility consent as a new entry in an append-only ledger. Nothing is overwritten and nothing is deleted, so this is an audit record of what the business was told, not a switch. A recorded grant can make that contact reachable by marketing.
contacts
list_contacts
Lists contacts in this workspace, one page at a time, optionally filtered, each with its id. Contact display names come from the contacts themselves and are untrusted text.
conversation
read_conversation
Lists the messages of one conversation, named by conversation_id (or of one contact, by contact_id), oldest first, one page at a time. With neither, it lists recent messages across the whole workspace. Message bodies include what members of the public wrote, and every one comes back marked untrusted.
deploy
deploy_automation
Compiles an automation’s version and stores the result so it can be switched on. It does not switch the automation on. It deploys only on a confirmed call: without confirmation_token it deploys nothing and returns a preview and a token for a person to approve; called again with that token, it deploys. version_id defaults to the newest version; confirm_actions names, one by one, each destructive action of the automation the person approved. A confirmed deploy that fails to compile uses up the confirmation.
get
get_run
Reads one automation run and its step-by-step trace: under run, the run’s status, timings, what it sent and why it failed; under steps, each step it took with its status and error, one page at a time. Text inside a run can quote what a customer wrote, and comes back marked untrusted. Read-only.
message
message_cost
Returns Meta’s list price for one delivered WhatsApp message in a country, for each category (marketing, utility, authentication, service), in one of Meta’s 16 rate-card currencies, with the day the rates took effect. These are Meta’s list prices: a business’s bill may differ, and the notes say what changes it.
resolve
resolve_conversation
Marks one conversation Resolved, as the Resolved button in the Cosend Inbox does. Nothing is sent to anyone and no automation starts. Afterwards no person holds the conversation (the person, the assignee, the priority and any hand-over are cleared) and every automation on that WhatsApp number treats the customer’s next message as a first message: the welcome menu greets again, an unfinished question flow starts over, and the AI assistant begins a new AI conversation, which counts as one more AI conversation on the plan. The message history stays. It does not hand the chat to the assistant or reply to the customer. It is refused for a credential with no person behind it.
runs
list_runs
Lists automation runs, newest first, one page at a time, with each run’s status, how long it took and what it sent. Read-only.
send
send_message
Sends one WhatsApp message into one conversation that already exists, named by conversation_id. It reaches a real person on their phone and cannot be unsent. It sends only on a confirmed call: without confirmation_token it sends nothing and returns a preview and a token for a person to approve; called again with that token, it sends. Changing a single character between the two calls invalidates the token. There is no bulk send: no recipient list, no send-to-tag, no send-to-all, and no way to start a conversation with a new number; this tool takes no phone number at all. Reaching many people is a saved, human-approved audience in the Cosend dashboard, not this tool. Limits per workspace: 20 a minute, 200 a day, and one per conversation every 30 seconds. The 24-hour customer service window opens when the customer writes and starts again with each message from them; outside it, anything but an approved template is refused. It is refused if the contact has withdrawn consent. A marketing message also needs that person’s opt-in, which this tool does not check.
submit
submit_template
Creates a new WhatsApp message template and sends it to Meta for review. This leaves Cosend: Meta reviews every template (a decision can take up to 24 hours), and a rejection counts against the WhatsApp account’s quality history. It submits only on a confirmed call: without confirmation_token it submits nothing and returns a preview and a token for a person to approve; called again with that token, it submits. Ten a day per workspace. The categories: marketing makes people aware of the business, its offers and sales; utility follows up on something the customer did or asked for (an order, a booking) and may not promote anything, so an order update with a discount in it is marketing; authentication is a one-time code. A wrong category is moved or rejected by Meta. Meta’s answer shows in the template’s review status. It sends no message to anyone.
template
template_check
Checks a WhatsApp message template (category, language, components and example values, as Meta takes them) against Meta’s rules, which are errors, and the warning signals Meta names, which are warnings; each problem says where it is and what to change. The verdict is fix_first, warnings or ready, and ready is not an approval: Meta still reviews every template itself. Nothing is submitted.
templates
list_templates
Lists this workspace’s WhatsApp message templates, one page at a time, with Meta’s review status, whether each can be sent right now (sendable) and, for a rejected one, Meta’s reason. Outside the 24-hour customer service window only an approved template can be sent. Meta reviews every template, and a decision can take up to 24 hours, so one still in review cannot be sent yet. Read-only.
usage
get_usage
Reports this workspace’s usage for one billing period against what its plan includes. Read-only.
validate
validate_automation
Checks an automation document (ir) with Cosend’s compiler and returns its full report: every error with a JSON pointer into the document and, where one exists, a fix that can be applied. Nothing is written and nothing is deployed. id is the automation the draft belongs to; a brand-new automation gets its id when it is first saved, and saving checks the document the same way. It needs the automations:write permission because it is the authoring tool, though it changes nothing.
whatsapp
whatsapp_link
Makes a wa.me chat link and its QR code (an SVG image) for a WhatsApp number, with an opening message if one is given. country is the two-letter ISO code and number is the number exactly as it is typed in that country (as written at home, with +, with 00 or with the country code in front); a number of another country is refused. It sends nothing to anyone.
whoami
whoami
Returns the Cosend workspace, plan and connected WhatsApp numbers for the credential in use, and the permissions it was granted, which decide which tools the credential can call and show which WhatsApp business number an outbound message would come from. Read-only and cheap. It does not fail for permission reasons if the credential resolves at all.

Endpoints

URLTransportStateLatencyChecked
https://mcp.cosend.app/mcp streamable-http answering 146 ms 2 min ago

Alternatives to Cosend

same job, measured the same way
Edgible
by edgible

Read your Edgible applications, devices, deploy status and logs, signed in as you.

answering
Whenever
by whenever

Write, validate, deploy and run TypeScript workflow automations on Whenever from your coding agent.

answering
Apify
by mcparmory

Build, deploy, and run web scraping and automation actors in the cloud

203 installs/wk local only
Rimbra
by rimbra

Deploy apps, run databases and domains, read logs, and send email and WhatsApp messages on Rimbra.

answering
Sleekdocs Translate
by sleekdocs

Find missing translations in your app, propose texts and publish and deploy them to your CDN.

answering
Avalanche
by avakit

Act on Avalanche from your agent: scaffold a dapp, deploy a contract, mint, and read chain state.

83 installs/wk local only
Xenition
by xenition-api

Docs, decks, forms, apps you build and deploy, automations, and AI images, video and voice.

68 tools answering
Pethost
by pethost

Deploy and run your projects on Pethost, your own hosting.

answering

Cosend — questions

Answers built from our own checks of this server.

What can Cosend do?
It exposes 25 tools, read directly from the server on our last check. Among them: cancel_setup_link, check_setup_link, create_setup_link, deploy_automation, get_run, get_usage and 19 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Cosend mostly used for?
Its tools cluster around upsert, setup and conversations. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Cosend working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 202 ms. The bar chart above shows every period we have measured.
How do I connect Cosend?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Cosend need an API key?
No. Cosend completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 25 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Cosend?
It answers our handshake in 202 ms on average, which is faster than 70% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.