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 PreviewThe 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 Reteno's AI agents — the Reteno plugin for Claude Code and Claude Cowork, the Reteno plugin for OpenAI Codex, and the direct connection used by Cursor.
Authentication
Authorization happens at two separate levels.
The MCP connection uses OAuth 2.0. When you connect a client, you sign in to Reteno and grant access, and the client connects to the server with the issued access token. You don't put an API key in the client 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. Claude Code, Claude Cowork, and OpenAI Codex connect through the official Reteno plugin; Cursor connects directly through its own MCP configuration. Set up your client using the matching guide:
- Setting Up the Reteno Plugin for Claude Code and Claude Cowork
- Setting Up the Reteno Plugin for OpenAI Codex
- Setting Up the Reteno MCP Server in Cursor
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)
get_brandkit— Get the account's saved brand kit.update_brandkit— Replace the account's saved brand kit.update_brandkit_patch— Update specific sections of the saved brand kit.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
- Setting Up the Reteno MCP Server in Cursor
- Reteno Agent in Slack: Use Cases
- API Keys
