Communications MCP: search and summarise the whole audience, and make a list from a filter
comms_search_audiencesearches 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_summaryreturns counts only (by status, consent, engagement, domain and list, and how many people are on no list). API:POST /recipients/summary.comms_suppression_infosays whether one address is on the account-wide suppression list, why and since when. API:GET /suppressions/lookup?email=.comms_derive_listacceptsoperation: "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_contactnow also returns which lists the person is on.- Imports report more:
would_changecounts 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_countandsuppressed_countare no longer shown next tomember_countandsuppressed_active_count. - API:
GET /contacts/{id}/erase-impactshows what erasing one contact would remove before it is confirmed.
Documentation changed