NestDaddy

Cosend

app.cosend/mcp · v2026.11.10

WhatsApp Business inbox for AI apps: read and answer chats, run campaigns, deploy automations.

Connect Remote server

Terminal
claude mcp add --transport http mcp 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"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://mcp.cosend.app/mcp

Tools 80 found in our last check

  • 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…

  • 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 co…

  • 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 conta…

  • 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…

  • 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 a sent message is final. Each send needs a confirmed call: without confirmation_token the call is a preview that returns what would happen…

  • 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.

  • 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). On a contact that exists only the fields you send change, and nothing is removed: tags are added to its tags, a…

  • set_contact_consent

    Records a contact's marketing or utility consent as a new entry in an append-only ledger. Every entry is kept as written, so this is an audit record of what the business was told. A send needs no recorded opt-in. An opt-out recorded here stops that category on the number it is r…

  • 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…

  • 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. Each submission needs a confirmed call: without c…

  • 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.

  • 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 bra…

  • 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, switched off. With id it saves a new version…

  • deploy_automation

    Compiles an automation’s version and stores the result so it can be switched on. It does not switch the automation on. Each deploy needs a confirmed call: without confirmation_token the call is a preview that returns what would happen and a token for a person to approve; called…

  • 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 on its own, so enabling needs a confirmed call: without confirmation_token the call is a preview th…

  • 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.

  • 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 untru…

  • get_usage

    Reports this workspace’s usage for one billing period against what its plan includes. Read-only.

  • resolve_conversation

    Marks one conversation Done, as the Done 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…

  • 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 numbe…

  • check_setup_link

    Reads a set-up link’s status. status open means the step is not done; 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 li…

  • 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…

  • 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…

  • 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,…

  • 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, a…

  • get_conversation

    Reads one conversation, named by id. view conversation returns the chat itself: its contact and newest message, its state, who it is assigned to, its labels, priority and snooze, the hand-over summary when a person is needed, who holds the reply lock, and the 24-hour customer se…

  • search_messages

    Searches the text of every message in the workspace, newest first, 20 hits to a page. Each hit has the message id, the conversation id and number it belongs to, when it was sent and a snippet of the matching text. A number whose messages go straight to the business’s own system,…

  • get_message

    Reads one message, named by its msg_ id or by the WhatsApp message id (wamid): its type and content, direction, delivery status with the time of each step, who sent it, and any file, location, buttons or reactions it carries. Message text comes from people outside this business…

  • get_media

    Reads one media file, named by its med_ id (a message’s media block carries it): its type, file name, size and state, and a signed link to download it that works for 15 minutes. File names come from people outside this business and come back marked untrusted. Read-only.

  • get_inbox_overview

    Reads the figures the Inbox and Home show, one part at a time. part counts returns how many chats are waiting for a person, assigned to the caller, unread, in all (Done and snoozed ones included), and have a 24-hour window closing within four hours, per number and in total, with…

  • mark_read

    Marks read, in one of three ways, with id naming a conversation (cosend, phone_thread) or a message (phone_message). where cosend clears the chat’s unread state for the whole workspace in Cosend; the customer’s phone stays as it was. where phone_thread tells WhatsApp the newest…

  • translate_message

    Translates one message, named by id, into target_language (a language tag such as es or pt-BR) and returns the text with the language it was written in. The first translation into a language is made by an AI model and stored; asking again for the same language reads it back. The…

  • draft_reply

    Writes a reply the person could send in one conversation, named by id, from the WhatsApp number’s AI assistant (its persona and knowledge) and that chat only, optionally steered by instruction. It reserves no AI conversation: it counts as one AI use in the workspace’s usage. On…

  • update_conversation

    Changes one conversation, named by id, by whichever of these are given: assignee_id (a member’s usr_ id; null takes the assignee off), snoozed_until (a time; null ends the snooze), labels (the whole list of labels, replacing the old one), priority, and state. state resolved mark…

  • bulk_update_conversations

    Applies one action to up to 100 conversations named in ids: resolve marks each Done, assign sets assignee_id (null takes it off), label adds labels_add and takes off labels_remove, priority sets priority, and read marks each read in Cosend. Each chat gets its own result, so one…

  • take_over_conversation

    Puts one conversation, named by id, in a person’s hands: control human means a person holds it and the AI assistant and automations stop answering in it; control pending_human marks it as waiting for a person to pick up. reason says why, and pause_bot_until holds the assistant b…

  • ask_for_conversation

    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 ca…

  • list_chat_notes

    Lists the internal notes on one conversation, named by id, one page at a time, oldest first: each note’s body, its author, the members it mentions and when it was written or edited. The customer does not see notes. Notes can quote customers and come back marked untrusted. Read-o…

  • chat_notes

    Writes the internal notes on one conversation, named by id, visible to the business’s team. action add writes a note (body, with mentions as a list of usr_ ids of members to notify). action edit changes a note’s body (noteId and body; only its author can). action delete removes…

  • list_inbox_views

    Lists the saved views in the Inbox’s Views menu: the caller’s own views and every one shared with the workspace, each with its name, the conversation filters it applies and who sees it. Read-only.

  • inbox_views

    Writes the saved views in the Inbox’s Views menu: a name and the conversation filters it applies. action save makes a view (name, filters, and shared: private or workspace). action update (id) renames a view or changes its filters or who sees it; a shared view can be changed by…

  • get_contact

    Reads one contact, named by id (a ct_ id, an E.164 phone number or a BSUID), in one of four views. view contact returns the contact: names, phone number or BSUID, tags, attributes, time zone and whether it is blocked. view consent returns the consent state for marketing, utility…

  • update_contact

    Changes one contact, named by id, by whichever of these are given: name (the name the business sets, which shows first; null goes back to the WhatsApp names; owners and admins only), attributes (field values by key), tags (the whole list, replacing the old one), locale, timezone…

  • tag_contact

    Adds tags to, or removes tags from, one contact, named by id, without touching the rest of its tags. action add leaves a tag the contact already has as it is; action remove skips a tag it does not have. tags is the list of tag names. The change stays inside Cosend. Returns the c…

  • delete_contact

    Deletes one contact, named by id. Without purge the contact and its chats drop out of lists, counts and 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 ho…

  • merge_contacts

    Merges two identities of one person (a phone number and a BSUID): the contact named by id keeps going, and the one named by from is folded into it and removed. It cannot be undone. Each merge needs a confirmed call: without confirmation_token the call is a preview that names bot…

  • list_contact_fields

    Lists the workspace’s contact fields, the keys a contact’s attributes can hold, one page at a time: each field’s key, label, type (text, number, date, boolean or choice), its choices, whether it is required, and how many contacts hold a value for it. Read-only.

  • contact_fields

    Writes the workspace’s contact fields: the keys a contact’s attributes can hold. action create adds one (key, label, type text, number, date, boolean or choice, choices for a choice field, required). action update (id) changes a field’s label, type, choices or required; its key…

  • import_contacts

    Imports contacts from a CSV file for one WhatsApp number, in four steps. step start uploads the file (connection_id; data_base64, or media_id of a text or CSV file already uploaded; file_name) and returns its id, columns, first rows and row count. step map (id) sets mapping (eac…

  • list_contact_imports

    Reads contact imports. Without id it lists the workspace’s imports, newest first, one page at a time (a member sees those for their own numbers). With id it returns that import: its state (draft, queued, running, completed or failed), the file, columns, mapping and consent, prog…

  • list_numbers

    Lists the WhatsApp numbers connected to this workspace, one page at a time, each with its id, status and health at a glance. The number ids it returns are what other tools take as connection_id. Read-only.

  • get_number

    Reads one WhatsApp number in one of four views. summary: its status, quality, limits and onboarding summary. import_progress: the progress of importing the number’s chat history. connect_steps and attempt_steps: an ordered list of the steps of connecting it, each with its state,…

  • list_connectors

    Lists the integrations Cosend can connect, each by its Cosend key, with how it signs in and which of its accounts this workspace already has. The key is what a set-up link for integrations takes. Read-only.

  • get_integration_accounts

    Lists the workspace’s connected integration accounts, one page at a time, or reads one when id is given. Each has its integration, name, status, the WhatsApp numbers it is used on and the reason it last failed, if it did. Credentials stay sealed in Cosend. Labels and error text…

  • list_google_logins

    Lists the Google logins connected to this workspace, each with its status and the integrations (Sheets, Calendar, Gmail) it serves. Credentials stay sealed in Cosend. Each login’s label is the address Google shows and comes back marked untrusted. Read-only.

  • get_setup_guide

    Returns the workspace’s set-up guide: each step with its state, done, to do or skipped, worked out from what the workspace already has. It shows what is left to set up. Read-only.

  • get_template

    Reads one message template: its components, category, language, Meta’s review status, whether it can be sent right now and, for a rejected one, Meta’s reason in Meta’s own words (marked untrusted). Read-only.

  • change_template

    Changes an existing message template at Meta. action edit replaces all of its components and returns it to review (an approved template can be edited once in 24 hours); copy creates it on another WhatsApp account of the same business, where Meta reviews it again; delete removes…

  • sync_templates

    Reads the templates of one WhatsApp number from Meta now, updates what Cosend holds to match, and returns the synced list. connection_id is the number. Templates Meta changed since the last sync, such as a decision or a new category, show up here.

  • list_template_category_changes

    Meta sometimes moves a template to another category, which changes its price. Lists every such change Meta made or announced that nobody in the workspace has acknowledged, on the numbers the caller can see. Read-only.

  • acknowledge_category_change

    Marks one template category change, named by id, as seen for the whole workspace, so it leaves the list of open changes. It changes nothing about the template, and nothing is sent to Meta.

  • get_automation

    Reads one automation in one of three views. details: its name, status, number, the live version, what it clashes with while it is on and, on request, its versions and recipe settings. versions: every version, newest first, one page at a time. stats: the chats it answered alone a…

  • manage_automation

    Renames, copies, rolls back or deletes an existing automation, keeping its logic as it is. update sets the name or description; copy makes a custom copy on the same number, switched off, with its own persona, knowledge and remembered values (name defaults to the original’s follo…

  • test_automation

    Runs the newest version of an automation once on a sample customer as a dry run: each step is recorded as what it would have done, and every message stays inside the test. payload lays trigger fields over the sample; fail_step runs the error branch as if that step had failed. Re…

  • run_automation

    Starts one run of an automation now, as its manual trigger does, with payload as the trigger’s data. The automation then acts as it was built to, which can include sending WhatsApp messages to customers; those messages are final once sent. Each start needs a confirmed call: with…

  • cancel_run

    Cancels a run that has not finished, as a stop: it needs no confirmation. Messages the run already sent stay sent. Returns the run as it is after the cancel.

  • get_automation_catalogue

    Returns every block and trigger an automation document can use, with each one’s inputs and outputs: what is needed to write the ir of an automation. Read-only.

  • automation_recipes

    Works with the recipe library. action list returns the published recipes as cards, one page at a time. action instantiate fills one recipe in with params and returns the automation document (ir) with its validation report; it writes nothing, so saving the document is a separate…

  • get_reply_order

    Returns the order in which one WhatsApp number’s automations answer a customer’s message. The order follows from the automations themselves. Read-only.

  • list_members

    Lists the people in this workspace and its pending invitations, each with role, status and email, and what the next seat costs. Names are typed by the people themselves and come back marked untrusted. Read-only.

  • get_billing

    Reads the workspace’s billing in one of four views. subscription: plan, status, billing period and whether payment is overdue. plans: the plans it may move to, in order, with prices, allowances, seats and features. invoices: when, how much and whether paid, with Stripe’s own doc…

  • get_report

    Reads one card of Reports for a period: how fast chats were answered by the AI receptionist and by people (response), what the receptionist answered alone and handed over with the top reasons (receptionist), each number’s chats (numbers), each member’s chats, response times and…

  • get_data_policy

    Returns what the workspace keeps, in which group and for how long, and any queued erasure of the whole workspace. Read-only.

  • upload_media

    Uploads one file to a WhatsApp number’s media library and returns its media id (med_…), which a message, the number’s profile picture or the AI assistant’s knowledge then takes. The file travels inline as data_base64 with its mime_type, and goes to Meta and to Cosend’s storage i…

  • get_assistant_persona

    Reads the persona of one AI assistant, named by id (an automation of this workspace that has an AI step): business name, what the business does, tone, whether it may quote prices, the links it may send and when, the words it avoids, and the confidence threshold below which it ha…

  • update_assistant_persona

    Changes the persona of one AI assistant, named by id. Only the fields sent change; a list (links, never_say) is the whole new list. The persona is set through typed fields: business_name, what_you_do, tone, may_quote_prices, links, never_say and confidence_threshold. Each change…

  • get_knowledge

    Reads one AI assistant’s knowledge, named by id. view sources lists every source with its kind (file, text, website, Google place), status (queued, ready, failed), the reason a read failed, the website pages it could not load, and when it was last read; it pages with after and l…

  • change_knowledge

    Changes one AI assistant’s knowledge, named by id. action add takes a kind: file (media_id of a file uploaded on the assistant’s number), text (text, with an optional title), url (a website) or place (a Google Maps link); it answers at once with the source, and the assistant rea…

  • try_assistant

    Asks one AI assistant (automation_id) a customer’s question and returns what it would do: its reply, the intent and confidence it read, the knowledge sources it used, whether it would hand the chat to a person, and the message a customer would receive. The trial stays inside Cos…

  • get_business_profile

    Reads the WhatsApp business profile customers see for one number, named by id, from Meta: about, description, address, email, websites, industry and the picture’s address. read_only_reason says when the profile is edited elsewhere (a coexistence number’s is edited in the WhatsAp…

Details

Endpointhttps://mcp.cosend.app/mcp (Streamable HTTP)
First published12 Nov 2026
Last updated12 Nov 2026
Registry nameapp.cosend/mcp

More communication servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.