Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "cancel_campaign", "create_campaign", "get_campaign" and 5 more; changed the definition of "change_template", "check_setup_link", "create_setup_link" and 11 more (85 tools before, 93 now)
⟨863 unchanged words⟩ },"language":{"description":"The template'slanguage.language,Itwhichstaysan edit keeps. Send thesame:template'saowndifferentlanguage,oneorisleaverefused.it out.","type":"string"},"name":{"description":"The template's systemname.name,Itwhichstaysan edit keeps. Send thesame:template'saowndifferentname,oneorisleaverefused.it out.","type":"string"},"parameter_format":{ ⟨42 unchanged words⟩
Reads a set-up link’s status. status open means the stephasis nothappened yet;done; completed means it has, and result says ⟨106 unchanged words⟩
⟨133 unchanged words⟩ Only for a workspace with no paid subscriptionyet, and onlyup.to a higher plan.","maxLength":100,"minLength":1,"type ⟨5 unchanged words⟩
Deletes one contact, named by id. Without purge the contactisandsoft-deleteditsandchatsdropsdrop out of lists, counts andchats.the Inbox, and Cosend keeps their messages until a purge; if the person writes again, they become a new contact with a new chat. With purge true the contact and what Cosend ⟨55 unchanged words⟩
⟨53 unchanged words⟩ contact for good, as a data-protection erasuredoes;does (owners only); omit todeletetake
⟨60 unchanged words⟩ plain words, its Test result, and whatstillneeds connecting, with an outcome of built, ⟨25 unchanged words⟩
⟨70 unchanged words⟩ made, its Test result and the integrationsstillto connect. Read-only.
⟨51 unchanged words⟩ take up to 24 hours, so onestillin review cannot besent yet.sent. Read-only.
⟨61 unchanged words⟩ the two calls invalidates the token. A chat nobody holds, or one this person holds, is sent to as usual, and sending does not lock it. A chat another person holds in the Cosend Inboxis not sentstaystotheirs: the preview and the sendarebothrefused withreturn conversation_locked, naming who holdsit, and the wayit.inToissendtothere, ask them forit, whichthehandschat; it passes over when they say yes or do not answer within 60 seconds.Nothing takes a chat from someone without asking.
⟨30 unchanged words⟩ the business was told, not a switch.SendingA send needs no recordedopt-in;opt-in.anAn opt-out recorded here stops that category on the number it is recorded for, andonthenobusiness’s othernumber.numbers keep sending.
⟨858 unchanged words⟩ , _3… added when a template on theWABAWhatsApp Business account already has that name.","maxLength":512, ⟨199 unchanged words⟩
⟨10 unchanged words⟩ its price. action list returns every such changenotnobodyyethas acknowledged; action acknowledge marks one as seen for ⟨8 unchanged words⟩
⟨74 unchanged words⟩ to continue the same chat. For an assistantnotthatswitchedisonswitchedyetoff, connection_id with holding_message (and escalate_keywords or closed ⟨10 unchanged words⟩
⟨310 unchanged words⟩ "connection_id":{"description":"For a receptionist that is not switched onyet: the number it is being set up ⟨165 unchanged words⟩
⟨229 unchanged words⟩ },"retention_months":{"description":"Retention isone account-widesetsettingonceandforisthenowholelongeraccount,configurednot per connection. Set it with PATCH /v1/account/data-policy.", ⟨46 unchanged words⟩
⟨36 unchanged words⟩ sends nothing and the contact is not notified.It does not change whoWho can be messaged:only anstaysopt-outthestopssame: a send,needs no opt-in,isonlyneededan opt-out stops one, and opt-outs are recorded on their own ledger.
Stop a campaign — Stops a campaign, named by id, that is scheduled, sending or paused, and returns it stopped: nothing more goes out, and sends still waiting are cancelled. Messages already sent stay sent. A stopped campaign does not start again; its results stay readable. Stopping a draft, or a campaign that has finished, is refused in words.
Start a campaign draft — Starts a campaign as a draft, with a name and the WhatsApp number it goes out on, and returns it with its id. It sends nothing and messages nobody: a draft waits until a person approves it. The draft is on the Campaigns page of the Cosend dashboard too. Campaigns are on the Starter plan and above, and for owners and admins.
Get a campaign and its results — Returns one campaign, named by id, and its results together. The campaign: its state, number, template and the value of each blank, saved audience, time, quiet hours, and why it paused, stopped or could not start. The results: how many it was for, sent, delivered, read, replied, failed, were left out and are still to go, failures by group, sends per 10 minutes and what is left by day. A reply counts for 72 hours after the campaign ends. Read-only.
List saved audiences for campaigns — Lists the saved audiences of this workspace, one page at a time: each one’s id, name, the WhatsApp number it was saved for, and who it names (contact tags and that number’s chat labels, any or all). A campaign’s audience is one of these. They are made and changed on the Campaigns page of the Cosend dashboard by an owner or an admin, who sees who is in each; this tool only reads them. Read-only.
List campaigns — Lists this workspace’s campaigns, newest first, one page at a time: each one’s id, state (draft, scheduled, sending, paused, sent or stopped), number, template, saved audience, time, quiet hours, and how many it was for, sent, delivered, read, got a reply from and failed for. These are the campaigns on the Campaigns page of the Cosend dashboard. Read-only.
Check a campaign before it sends — Checks a campaign draft, named by id, and returns what sending it would do, under two keys. audience: how many the saved audience matches, how many get it, how many are left out and why (no WhatsApp number, blocked, opted out on this number, a US number, WhatsApp held back a marketing message to them in the last day, a blank with no value, or a chat open with them now), the first 20 people, and Meta’s list price for one delivered marketing message to each person who gets it, by market, in the WhatsApp account’s currency. estimate: the estimate_id a send names, which lasts 15 minutes; the coun…
Send or schedule a campaign — Sends a campaign draft now, or schedules it for its time, named by id, with the estimate_id of a check made in the last 15 minutes; above 500 people, confirm_text is that count. It reaches every person the check counted, on their phones, and the messages 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. The preview shows the campaign (its number, template and the value of each blank, saved audience, time and quiet hours) and who gets it now, who is left out and Meta’s list price, all read…
Change a campaign draft — Saves one or more steps of a campaign draft, named by id, and returns it. A step is its name; its number; its template (template_id, a marketing template on that number’s WhatsApp account); the value of each blank (variable_map: a contact field’s key, first_name or name, with fallback text for people who have none, or one text for everyone); its audience, which is a saved audience by its id (audience.segment_id) and nothing else; a time to send it, in a time zone; and its quiet hours, when nothing is sent. Changing the number clears the template and the blanks. A scheduled campaign that is ch…
Added "ask_for_conversation"; changed the definition of "inbox_views" and "send_message" (84 tools before, 85 now)
⟨61 unchanged words⟩ ,"assignee_id":{"type":"string"},"campaign_id":{"type":"string"},"connection_id":{"anyOf":[{"type":"string ⟨101 unchanged words⟩
⟨59 unchanged words⟩ character between the two calls invalidates the token. A chat another person holds in the Cosend Inbox is not sent to: the preview and the send are both refused with conversation_locked, naming who holds it, and the way in is to ask them for it, which hands it over when they say yes or do not answer within 60 seconds. Nothing takes a chat from someone without asking. A chat nobody holds, or one this person holds, is sent to as before, and sending does not lock it. There is no bulk send: no recipient list
Unknown → Live
First tool surface recorded: 84 tools (server version 1.0.0)
https://mcp.cosend.app/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 5 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Ask a teammate for a chat — Asks the person who holds one conversation, named by id, in the Cosend Inbox to hand it over; reason is an optional note for them. They get a hand-over prompt: when they say yes, or do not answer within 60 seconds, the chat passes to the person this app acts for, and messages can be sent in it; when they say no, it stays theirs. This is the only way into a chat someone else holds: nothing takes one without asking. A chat nobody holds, or one the person this app acts for already holds, is refused, as there is nothing to ask for and a message can be sent there as it is. Asking again while a req…