Reteno MCP Server

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.

❗️

Connect through the Reteno plugin

Set up the agent with the Reteno plugin for Claude Code, Claude Cowork, or OpenAI Codex, version 0.4.0 or later — not with a bare MCP connection. The plugin carries the skills that guide the agent through creating segments, emails, and workflows; a connection without them gives the tools only.

The server endpoint is:

https://mcp.reteno.com
🚧

Research Preview

The Reteno MCP server is available as a research preview. 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 and the Reteno plugin for OpenAI Codex. The plugins carry the skills that guide the agent through creating segments, emails, and workflows; a bare connection to the server provides the tools without those skills.

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.

Even when the user has access to several accounts, one connection works with only one of them. To have the agent work in another account, sign in with a user of that account and set up the connection again — you can't switch accounts inside an existing connection.

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, version 0.4.0 or later. Set up your client using the matching guide:

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_contact_devices — List the devices registered for a contact.
  • get_contact_in_app_message_statuses — Get the In-App message statuses for a contact.
  • 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_segment — Read segment metadata by ID and, optionally, its dynamic rule schema.
  • get_segment_definition — Get the definition of a dynamic segment.
  • get_segment_schema — Read the rule schema of a dynamic segment.
  • get_segment_contacts — Get the active-contact count and, optionally, one page of contacts in a saved segment.
  • 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.
  • list_segment_definitions — List the condition definitions available for building dynamic segments.
  • list_segment_definition_facets — List the category values used to filter those definitions.
  • create_dynamic_segment — Create a dynamic segment from a rule schema.
  • update_dynamic_segment — Save a new rule schema to an existing dynamic segment.
  • count_segment_contacts — Count the contacts matching a rule schema without saving a segment.

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.
  • create_email_shell — Create an empty email as the starting point for a structured compose.
  • update_email_metadata — Update an email's subject, sender, and reply-to address.
  • place_email_module — Place a saved library module into an email's HTML and CSS.
  • list_custom_blocks — List the custom-block library modules created for the organization.
  • 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.
  • get_email_model_schema — Get the schema of the structured (editor) model.
  • get_email_message_preview_png — Get a PNG preview of an email message.
  • resume_email_sender_update — Resume an interrupted update of the email sender.
  • 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.
📘

Note

Analytics is read from live API endpoints, so data for the current day is available. Same-day values can change as new events arrive.

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.
  • generate_image — Start a job that creates an image, optionally guided by reference images.
  • edit_image — Start a job that edits an image, including replacing the text on it.
  • get_image_job — Get the status and the result of an image job.

Brand Kit (AI)

  • get_brandkit — Get the account's saved brand kit.
  • update_brandkit — Replace the account's saved brand kit.
  • get_business_profile — Get the account's business profile.
  • update_business_profile — Replace the business profile.
  • patch_business_profile — Update selected fields of the business profile.
  • prepare_business_profile_upload — Get an upload link for business profile files.
  • save_business_profile — Save the prepared business profile.
  • update_brandkit_patch — Update specific sections of the saved brand kit.

Capabilities and Limitations

The agent works through the tools listed above. A few hard limits apply during the research preview:

  • Through these tools the agent fills a static segment that already exists; creating a static segment is available in Slack.
  • Creating content never sends anything: a new workflow is created inactive for your review, and the agent does not send, schedule, or activate a campaign as part of it.

For the full, canonical list of capabilities and limitations, see Integrating Reteno with AI Agents.

Related Articles