Skip to main content

Communications MCP: search and summarise the whole audience, and make a list from a filter

  • comms_search_audience searches every contact in the workspace, not one list: by domain, status, engagement, consent, suppression, campaign, import batch, dates, "on no list" or "not on these lists". Each person comes with the lists they are on. Addresses stay masked. API: POST /recipients/search.
  • comms_audience_summary returns counts only (by status, consent, engagement, domain and list, and how many people are on no list). API: POST /recipients/summary.
  • comms_suppression_info says whether one address is on the account-wide suppression list, why and since when. API: GET /suppressions/lookup?email=.
  • comms_derive_list accepts operation: "filter" with the same filter, for example "everyone at example.com who is not on the Newsletter list". It is a snapshot like every derived list, a dry run first, and suppressed people are copied but counted apart as not eligible.
  • comms_find_contact now also returns which lists the person is on.
  • Imports report more: would_change counts only rows that change something, a second row for the same address with a different name is reported as a name conflict (the first name is kept), a value that looks like a spreadsheet formula is dropped with a warning instead of rejecting the contact, and a suppressed row says why.
  • List cards carry each count once through the MCP: the legacy contact_count and suppressed_count are no longer shown next to member_count and suppressed_active_count.
  • API: GET /contacts/{id}/erase-impact shows what erasing one contact would remove before it is confirmed.

Documentation changed