Add or Update Subscriber
create_or_update_subscriberUpsert: looks up data.EMAIL in the list; if found it updates that subscriber, otherwise it creates a new one. Use it to sync contacts when you do not know whether they already exist. Existing values are overwritten, so confirm with the user before updating real contacts.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"list_uid": "<list_uid>",
"data": "<data>"
},
"name": "create_or_update_subscriber"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Subscriber data keyed by field tag; EMAIL is required, e.g. {"EMAIL": "jane@example.org", "FNAME": "Jane", "LNAME": "Doe"}. Optional: status, source, ip_address. | |
| list_uid | Yes | Unique ID of the mailing list (list_uid), a 13-character code such as "ab123cd456ef7". Find it with list_lists. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | No | Whether the MailSenpai MCP operation succeeded. | |
| data | No | Main MailSenpai API response payload, when available. | |
| error | No | Machine-readable error name when the tool fails. | |
| result | No | Alternative result payload for tools that return a named result. | |
| status | No | Status returned by MailSenpai or by the MCP layer. | |
| details | No | Additional diagnostic details, validation errors, API response body or nested metadata. | |
| message | No | Human-readable message from MailSenpai or from the MCP layer. | |
| pagination | No | Pagination metadata for list/search tools when returned by the MailSenpai API. | |
| rate_limit | No | Rate-limit metadata when relevant. |