The Attentive MCP exposes a maximum of 74 tools. Thirty-four are available in read-only mode, while 40 require a write-enabled connection.
Of the 40 write-enabled tools, 39 can create, update, delete, schedule, or otherwise change Attentive data. list_segment_subscribers is the exception: it only retrieves data, but it requires a write-enabled connection because it returns subscriber contact information.
The exact tools visible in a session may be fewer than 74 because availability also depends on the selected company, user permissions, and enabled Attentive products.
| Capability | What it covers |
| Account and User | Retrieve user and company information; switch between companies. |
| Reporting and metrics | Pull campaign, journey, and segment performance data; retrieve account metrics for analysis alongside other data sources. |
| Campaigns and messages | Read, create, and edit campaign drafts, message groups, and messages across SMS, RCS, email, and push; schedule, pause, and resume sends. |
| Journeys | Read journey structure and configuration; create journeys and edit nodes and branches. |
| Segments | List, create, update, and delete segments; retrieve audience counts; and retrieve limited subscriber details through a write-enabled connection. |
| Templates and creative | Read and create email templates; read creatives, brand kit, and brand voice settings. |
| Tool | Access | Description |
get_user | Read | Get the Attentive user and company associated with the current session. |
greet | Read | Return a personalized greeting and confirm which Attentive account is authenticated. |
list_user_companies | Read | List the companies the current user can access, with optional search. |
switch_company | Read | Set the active company for the current session. |
| Tool | Access | Description |
list_metrics | Read | List the analytics metrics available for the company from the metrics catalog. Call before query_metrics. |
query_metrics | Read | Query analytics metrics over a date range. Returns aggregate totals and optional time or dimension breakdowns. |
Campaign-level performance is also available through get_campaign_metrics (see Campaigns).
| Tool | Access | Description |
list_campaigns | Read | List campaigns with optional name filter, status filter, and pagination. |
get_campaign | Read | Get detailed campaign info by ID, including message groups and messages. |
get_campaign_metrics | Read | Get campaign performance metrics over a date range (defaults to last 30 days). |
get_campaign_message_group | Read | Get a message group by ID, including status, schedule, and A/B test variants. |
create_campaign | Write | Create a campaign shell (SMS, email, or push). Optionally pre-populate an email campaign from a template. |
update_campaign | Write | Update a campaign's name or reorder its message groups. |
delete_campaign | Write | Delete a campaign by ID. |
create_campaign_message_group | Write | Add a new message group to an existing campaign. |
create_campaign_message | Write | Add an SMS, RCS, or push message to an existing message group. When a message group contains multiple messages, they act as A/B test variants. |
delete_campaign_message | Write | Remove a message or A/B test variant from a campaign message group. |
update_campaign_message_group | Write | Update a message group's name, scheduling, smart sending, audience segments, or experiment settings. |
delete_campaign_message_group | Write | Delete a message group from a campaign. |
schedule_campaign_send | Write | Schedule a fully configured campaign to send. |
pause_campaign_send | Write | Pause a campaign send. |
resume_campaign_send | Write | Resume a paused campaign send. |
Message-level tools work across both campaigns and journeys — the same tool reads or edits a message regardless of which one it belongs to.
| Tool | Access | Description |
get_message | Read | Get a message by ID, including its content. Works for campaign and journey messages alike. |
create_short_link | Write | Create a short link to use in a message body. |
update_sms_message | Write | Update an SMS/MMS message's name, body, media, and short links, including A/B test variants. |
update_push_message | Write | Update a push message's name, title, description, and open action, including A/B test variants. |
update_rcs_message | Write | Update an RCS message's name, content, suggestion chips, and SMS/MMS fallback, including A/B test variants. |
update_email_message | Write | Update an email message's subject, preheader, sender info, and body content. |
| Tool | Access | Description |
list_journeys | Read | List journeys for the company (paginated, summarized). |
get_journey | Read | Get detailed information for a single journey, including trigger, tags, and schedules. |
get_journey_branch | Read | Read a branching node's current dimension, conditions, labels, node IDs, child steps, and selection schemas. Call this before update_journey_branch to avoid dropping existing branches or steps. |
get_journey_graph | Read | Get a readable view of a journey's graph structure, including steps and message content. |
get_journey_configuration | Read | Read which node types can be added, copied, or moved within a journey. |
get_journey_message | Read | Get the content of a journey message by ID. |
get_revision_settings | Read | Read a journey revision's settings, including entry frequency. |
list_journey_templates | Read | List journey templates available when creating a new journey. |
list_journey_triggers | Read | List available journey triggers for creating a new journey. |
list_user_attributes | Read | List the company's custom user attributes and allowed values (used to configure nodes and branches). |
list_product_attribute_values | Read | List the available values for a product attribute, such as names, categories, tags, colors, brands, sizes, collections, options, and sales channels. Use this before configuring product-based journey branches. |
create_journey | Write | Create a new journey from a template, a trigger, or another source. |
create_journey_draft | Write | Create a new draft revision for a published journey by cloning the current revision. |
add_journey_node | Write | Add a node to the journey graph (delay, send message, send email, branch, experiment, and more). |
update_journey_node | Write | Update a node's parameters (delay durations, message content, branch conditions, experiment settings). |
move_journey_node | Write | Move a node to a new position in the journey graph. |
delete_journey_node | Write | Remove a node from the journey graph. |
update_journey_branch | Write | Configure a branching node's conditions and branch expressions. |
update_journey_message | Write | Update the content of a message on a journey. |
update_journey_metadata | Write | Update a journey's name, description, and category. |
update_revision_settings | Write | Configure a journey revision's entry frequency. |
publish_journey | Write | Publish a journey to make it live and start enrolling subscribers. |
pause_journey | Write | Pause a live journey so it stops enrolling and sending. |
resume_journey | Write | Resume a previously paused journey. |
archive_journey | Write | Archive an inactive (draft or paused) journey. |
unarchive_journey | Write | Restore a previously archived journey. |
delete_journey | Write | Permanently delete an unpublished (draft) journey. This cannot be undone. |
| Tool | Access | Description |
list_segments | Read | List segments with optional filtering, search, sorting, and cursor pagination. Returns both a GraphQL node ID and an internal segment ID. |
get_segment | Read | Get detailed segment information using the GraphQL node ID returned as id by list_segments. |
get_segment_counts | Read | Get SMS and email subscriber counts for one segment using its GraphQL node ID. Results include active subscriber counts and counts excluding fatigued subscribers. |
list_segment_subscribers | Write-enabled sensitive read | Return up to 20 subscribers from a segment. Use the internalId returned by list_segments. This tool requires ?readOnly=false and confirmation because it returns subscriber contact information, but it does not modify data. |
create_segment | Write | Create a dynamic segment from a required searchDefinition. |
update_segment | Write | Update a dynamic segment using its GraphQL node ID. Name, description, metadata, and searchDefinition are optional. Omitting searchDefinition preserves the existing conditions. |
delete_segment | Write | Delete a segment using its GraphQL node ID. A segment cannot be deleted while it is used by a campaign, journey, or integration. |
| Tool | Access | Description |
list_email_templates | Read | List email templates for the current company, with filtering and pagination. |
get_email_template | Read | Get details of an email template, including name, subject, and content. |
create_email_template | Write | Create a new email template from raw HTML or editor JSON. |
update_email_template | Write | Update an existing email template's name and/or content. |
| Tool | Access | Description |
list_creatives | Read | List creatives with optional search, status, and type filters. |
get_creative | Read | Get detailed creative info by ID, including status, type, and display rules. |
| Tool | Access | Description |
list_brand_assets | Read | List brand assets (images, folders) for a company. |
add_brand_asset | Read | Return a link to the Attentive UI where you can upload and manage brand assets. |
get_brand_voice_settings | Read | Get the company's AI brand voice settings (tone, excluded words, emoji usage, and more). |
get_email_branding_styles | Read | Get the company's email brand kit styles (buttons, headings, paragraphs, and more). |
list_email_brand_kit_compatible_fonts | Read | List the company's selected brand fonts for use in email brand styles. |
update_email_branding_styles | Write | Update the company's email brand kit styles. |
| Tool | Access | Description |
generate_copy | Write | Generate AI-powered text suggestions for marketing messages from a prompt. |