Retainful MCP by usefulapi

io.usefulapi/retainful · v1.0.0 · sales-and-crm

Retainful MCP by usefulapi is healthy: it completed an MCP handshake in 795 ms and exposes 7 tools.

List contacts and lists; create contacts, add them to lists and record events in Retainful.

Endpoint: https://retainful.usefulapi.io/mcp (streamable-http)

Repository · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count7
Latency795 ms
Last checked (UTC)2026-11-02T20:10:28.578Z

Health history

Checked (UTC)StatusLatencyError
2026-11-02T20:10:28.578ZHealthy795

Tools (7)

retainful_list_contactsList contacts (profiles) in the Retainful organization, one page at a time, with consent status and source. Retainful API: GET /customer.
retainful_get_contactGet one contact (profile) by its Retainful id (contactUUID), with its attributes. Retainful API: GET /customer/{id}.
retainful_list_listsList the lists and segments in the organization with their ids. Use the id as list_id in retainful_add_contact_to_list. Retainful API: GET /contact-groups.
retainful_get_listGet one list or segment by its id. Retainful API: GET /contact-groups/{id}.
retainful_upsert_contactWRITE: create a contact, or update it when the email or phone already exists. Does not add anyone to a list. email_opt_in is required: it sets marketing consent, so send SUBSCRIBED only with real consent. Needs email or phone. Retainful API: POST /customer/create.
retainful_add_contact_to_listWRITE: create or update a contact by email and add them to a list in one call. A list can start an automation. email_opt_in is required: an existing contact is set to SUBSCRIBED when it is omitted here. Retainful API: POST /contact-groups/{listId}/contacts.
retainful_track_eventWRITE: record one event on a contact's timeline. Automations triggered by the event can email the contact. Reuse the same unique_identifier only for a retry of the same real occurrence (a repeat does not trigger automations again); use a new one for each new occurrence. Event data must be flat: stri