The Reteno MCP server exposes the Reteno API as Model Context Protocol (MCP) tools, so AI agents can read and act on your account data β contacts, segments, events, message templates, sending, and analytics β without you opening the platform.
The server endpoint is:
https://mcp.reteno.com
Research Preview
The Reteno MCP server is available as a research preview and is currently offered for Reteno only. Expect iteration and evolving capabilities.
What MCP Is
Model Context Protocol (MCP) is an open standard that lets AI agents communicate with external services and take actions on your behalf. The Reteno MCP server is the connection layer behind the Reteno plugin for Claude Code and Claude Cowork and the Reteno plugin for OpenAI Codex.
Authentication
Authorization happens at two separate levels.
The MCP connection uses OAuth 2.0. When you set up the plugin, you sign in to Reteno and grant access, and the plugin connects to the server with the issued access token. You don't put an API key in the plugin configuration. Your Reteno account's access rights determine what the agent can do, and the agent can read contact data, including personal data.
The Reteno REST API β for calling the API directly, outside MCP β is separate and uses HTTP Basic authentication with a Reteno API key (see API Keys). You don't need an API key for the MCP connection.
Connecting to the MCP Server
The Reteno MCP server is hosted by Reteno. You connect to it through the official Reteno plugin for Claude Code, Claude Cowork, and OpenAI Codex β the plugin registers the hosted server and sets up the connection for you. Connecting directly from other MCP clients is not supported during the research preview.
- Setting Up the Reteno Plugin for Claude Code and Claude Cowork
- Setting Up the Reteno Plugin for OpenAI Codex
To verify the connection after setup, follow the verification steps in your client's setup guide.
Available Tools
The server groups its tools by area. Each tool corresponds to a Reteno API method, and the tool name is the exact identifier an agent uses to call it.
Account, Organization and Directories
get_account_infoβ Get Reteno account information.get_organisation_infoβ Get organization-level configuration data.get_addressbooksβ Get account address books.list_email_interfacesβ Get email interfaces (senders).list_sms_interfacesβ Get SMS interfaces (senders).get_event_typesβ List event types for the authenticated organization.
Contacts
upsert_contactβ Create or update one contact synchronously by its identifiers.bulk_upsert_contactsβ Create or update many contacts in one request.upload_contactsβ Start an asynchronous contact import from a file or batch payload.get_import_statusβ Check the status of an asynchronous contact import by session ID.update_contactβ Update a contact by ID.delete_contactβ Delete a contact by ID.delete_contact_by_external_customer_idβ Delete a contact by external customer ID.subscribe_contactβ Create or update a contact from a subscription form; new contacts are created as unconfirmed.list_contactsβ Search contacts using the supplied query filters.get_contactβ Get a contact by ID.get_contacts_by_emailβ Get a contact by email address.get_contact_id_by_tokenβ Get a contact ID by mobile push token.update_interaction_statusβ Update interaction status.
Segments
list_groupsβ List segments available in the account.get_group_contactsβ Search contacts in a segment by segment ID.attach_group_contactsβ Attach contacts to a static segment by segment ID.detach_group_contactsβ Remove contacts from a segment by segment ID.
Events and Behavior Tracking
create_eventβ Create a current event.create_past_eventsβ Upload historical events.get_contacts_activity_v2β Get contacts activity from the v2 behavior tracking API.get_contact_message_historyβ Get a contact's message history from the v2 behavior tracking API.
Email Messages (Templates)
create_email_messageβ Create a reusable email message template.list_email_messagesβ Search email messages by partial name or tag (up to 500 results per request).update_email_messageβ Update an existing email message template by internal message ID.delete_email_messageβ Delete an email message by ID.update_email_message_translationβ Update a translated email message variant.delete_email_message_translationβ Delete a translated email message variant.get_email_message_view_linkβ Get the hosted preview link for an email message template.get_email_message_exportβ Get downloadable export links (HTML/CSS/JSON) for an email message and its translations.get_email_modelβ Get a download link for the structured (editor) model of an email.prepare_email_model_uploadβ Prepare a short-lived upload session for one structured model file.update_email_modelβ Finalize a structured-model edit from a completed upload session.prepare_email_message_uploadβ Prepare a short-lived upload session for email HTML and CSS.
Mobile Push
list_mobile_push_messagesβ Search mobile push messages by partial name.create_mobile_push_messageβ Create a base mobile push message.get_mobile_push_messageβ Get a mobile push message by ID.update_mobile_push_messageβ Update a base mobile push message.delete_mobile_push_messageβ Delete a base mobile push message.update_mobile_push_message_translationβ Update a translated mobile push message variant.delete_mobile_push_message_translationβ Delete a translated mobile push message variant.get_mobile_push_token_activationβ Get mobile push token activation state.update_mobile_push_token_activationβ Update mobile push token activation state.
App Inbox
list_app_inbox_messagesβ Search app inbox messages by partial name.create_app_inbox_messageβ Create a base app inbox message.get_app_inbox_messageβ Get an app inbox message by ID.update_app_inbox_messageβ Update a base app inbox message.delete_app_inbox_messageβ Delete a base app inbox message.update_app_inbox_message_translationβ Update a translated app inbox message variant.delete_app_inbox_message_translationβ Delete a translated app inbox message variant.
SMS
list_sms_messagesβ Search SMS messages by partial name or tag (up to 500 results per request).create_sms_messageβ Create a base SMS message.get_sms_messageβ Get SMS message content, title, sender, and text by internal SMS message ID.update_sms_messageβ Update a base SMS message.delete_sms_messageβ Delete a base SMS message.update_sms_message_translationβ Update a translated SMS message variant.delete_sms_message_translationβ Delete a translated SMS message variant.get_sms_calloutsβ Get SMS callout statistics for the requested filters or period.
Workflows
list_workflowsβ List workflows available in the account.create_workflowβ Create a new inactive workflow shell for the organization.update_workflowβ Save an edited workflow graph file from a completed upload session.get_workflow_exportβ Export a workflow's structure (graph and start/stop configuration) as JSON.prepare_workflow_uploadβ Prepare a short-lived upload session for workflow graph JSON and optional configs JSON.
Sending and Broadcasts
send_email_messageβ Send an email to a contact; if the address doesn't exist, Reteno creates a new contact.send_sms_messageβ Send an SMS to a contact; if the phone number doesn't exist, Reteno creates a new contact.smart_send_messageβ Send a prepared message to one or many contacts, with optional per-contact personalization.get_message_statusβ Get delivery status for a single sent message.send_broadcastβ Start a broadcast for email, SMS, mobile push, or web push.list_broadcastsβ List or filter broadcast campaigns.get_broadcastβ Get a broadcast by ID.delete_broadcastβ Delete a broadcast by ID.
Analytics and Deliverability
get_messaging_analyticsβ Export aggregated messaging performance, grouped by organization, workflow, or message (up to 185 days).get_events_analyticsβ Export aggregated event counts for the organization.get_email_deliverability_setupβ Get a read-only snapshot of email domain, sender, short-link, and unsubscribe setup.
NoteAnalytics data is sourced from BigQuery reports and updated once per day. Data for the current day is not yet available β an agent can only access data through yesterday.
Media
prepare_image_uploadβ Prepare a short-lived upload session for one image file.upload_imageβ Upload a previously staged image file to Reteno file storage.
Brand Kit (AI)
extract_brandkitβ Extract a brand kit (visual identity, palette, typography, voice) from a public storefront URL (long-running, ~8β10 minutes).
Capabilities and Limitations
The agent works through the tools listed above. A few hard limits apply during the research preview:
- Only static segments are supported β dynamic segments are not.
- The agent does not trigger bulk campaigns or scheduled sends on your behalf.
- In email templates, layout and block structure cannot be changed.
For the full, canonical list of capabilities and limitations, see Integrating Reteno with AI Agents.
Related Articles
- Integrating Reteno with AI Agents
- Setting Up the Reteno Plugin for Claude Code and Claude Cowork
- Setting Up the Reteno Plugin for OpenAI Codex
- Reteno Agent in Slack: Use Cases
- API Keys
