Connect your SetSmart account to Claude, Cursor, or ChatGPT via the Model Context Protocol. Manage triggers, templates, conversations, campaigns, assistants, and settings — all from chat.
192 tools across 192 categories, scoped to your account.
conversation_list — List conversations with rich filters. Returns paginated list sorted by last mess…conversation_search — Free-text search across name, email, phone, instagram_username, AND message bodi…conversation_get — Get a single conversation with full detail: contact info, tags, notes, custom_fi…conversation_get_messages — Return the full message list for a conversation (paginated).conversation_add_tag — Add one or more tags to a conversation (deduped).conversation_remove_tag — Remove one or more tags from a conversation.conversation_set_notes — Replace the notes for a conversation (freeform text).conversation_set_custom_fields — Merge key/value pairs into a conversation's custom_fields JSON. Values are store…conversation_remove_custom_fields — Remove specific keys from a conversation's custom_fields.conversation_set_assistant — Override which AI assistant handles this conversation (sets conversations.assist…conversation_set_qualification — Set qualification status: true (qualified), false (unqualified), or null (clear)…conversation_set_booked — Mark conversation booked (true/false). When true, sets booked_at to now.conversation_set_ok_call — Mark conversation as "ok for call" (true/false).conversation_set_answered — Mark conversation answered (true/false).conversation_set_contacted — Mark conversation as contacted (true/false).conversation_set_read — Mark conversation as read/unread (is_read flag).conversation_set_pinned — Pin or unpin a conversation.conversation_rename — Change the display name for the contact.conversation_delete — Delete a single conversation. Pass confirm=true to proceed.conversation_bulk_tag — Add tags to many conversations at once. Provide either explicit conversation_ids…conversation_bulk_set_assistant — Change assistant_id for many conversations.conversation_bulk_delete — Delete many conversations at once. Pass confirm=true.conversation_delete_tag_globally — Remove a tag string from EVERY conversation on the account.conversation_list_all_tags — Return the list of distinct tags used across all conversations on this account, …assistant_list — List all AI assistants for the user, with defaults per channel highlighted.assistant_get — Get an assistant by id with full instructions, model, and integration flags.assistant_create — Create a new AI assistant with a name, system prompt, and model.assistant_update — Update assistant fields (name, instructions, model, integration flags).assistant_delete — Delete an assistant. Pass confirm=true.assistant_duplicate — Duplicate an assistant (copies name + instructions + integration flags; new uniq…assistant_set_default — Set an assistant as the default for a channel (whatsapp, instagram, messenger).assistant_get_defaults — Return which assistant is default for each channel.assistant_edit_prompt — Directly replace the instructions (system prompt) of an assistant with exact tex…assistant_ai_edit_prompt — Edit an assistant's system prompt using the SetSmart AI prompt editor. Takes a n…assistant_configure_calendly — Configure Calendly booking on an assistant.assistant_configure_ghl — Configure GoHighLevel calendar booking on an assistant.assistant_configure_iclosed — Configure iClosed booking on an assistant.assistant_analyze_persona — Trigger persona analysis using the last 150 answered conversations (uses OpenAI)…assistant_scrape_sources — Step 2 of the assistant wizard: scrape websites (and optionally an Instagram han…assistant_transcribe_youtube — Transcribe a YouTube video (via Apify) to use as assistant knowledge context. Re…assistant_fetch_instagram_profile — Fetch the connected user's Instagram profile (bio, website, followers) via Meta …assistant_generate_business_details — Step 3 of the wizard: from scraped_data + niche, generate a structured business …assistant_generate_script — Step 5 of the wizard: generate a complete conversation script (array of steps wi…assistant_edit_script_ai — Refine a script generated by assistant_generate_script using natural-language in…assistant_create_from_form — Step 7 (final) of the wizard: create a new AI assistant from the full form data.…assistant_list_files — List files attached to an assistant's vector store (knowledge base).assistant_remove_file — Remove a file from an assistant's vector store. Requires an OpenAI API key on th…ai_get_all_status — Return the global AI automation status for every channel (Instagram, WhatsApp, M…ai_set_channel — Enable or disable AI automation on a whole channel. E.g. "pause my WhatsApp AI f…ai_pause_channel — Convenience: turn OFF AI automation for a channel.ai_resume_channel — Convenience: turn ON AI automation for a channel.ai_pause_conversation — Turn AI OFF for a single conversation. Messages keep arriving, but the AI will n…ai_resume_conversation — Turn AI back ON for a single conversation (clears the "off" step).ai_list_paused_conversations — List conversations where AI is currently off (step = "off"). Optionally filter b…ai_end_conversation_followups — Set a conversation to the "end" follow-up step, stopping follow-up messages but …ai_relaunch_conversation_followups — Set a conversation back to the "launch" step to re-enable follow-ups.ai_get_blacklist — Get the list of blacklisted Instagram usernames (AI will ignore messages/comment…ai_update_blacklist — Replace the entire Instagram blacklist with the given array of usernames.ai_add_to_blacklist — Append one or more Instagram usernames to the blacklist (idempotent, deduped). T…ai_remove_from_blacklist — Remove one or more Instagram usernames from the blacklist.ai_get_blocked_countries — Get the list of blocked phone country dial codes (numbers in those countries won…ai_update_blocked_countries — Replace the list of blocked phone dial codes (e.g. ["1", "44"] for US and UK).contact_find — Find contacts by any combination of identifiers. Always returns an array of matc…contact_get — Get a single contact by id with all fields.contact_create — Create a new contact/conversation. Channel and phone (or instagram_id) required.…contact_update_custom_fields — Merge key/value pairs into a contact's custom_fields (values stored as strings).…contact_update_phone — Fix or change a contact's phone number (updates recipient_number).contact_update_name — Update a contact's display name.contact_add_tags — Add tags to a contact (by contact_id).contact_remove_tags — Remove tags from a contact.contact_mark_purchased — Mark the associated lead as purchased (writes leads.purchased=true when a lead e…contact_delete — Delete a contact and its conversation. Pass confirm=true.contact_import — Import a single contact (alias of contact.create). Useful for opt-in flows.contact_import_from_attachment — Import contacts from a CSV/XLSX file the user uploaded in this chat (attachment_…contact_import_bulk — Import many contacts at once (for small lists pasted as text). Dedupes by existi…whatsapp_get_status — Return WhatsApp connection status: provider (Cloud API or 360dialog), phone, WAB…whatsapp_get_connect_instructions — Return the in-app URL to connect a WhatsApp Business account (Meta Cloud API or …whatsapp_get_profile — Fetch the current WhatsApp Business profile (about, description, address, email,…whatsapp_update_profile — Update WhatsApp Business profile fields: about, description, address, email, web…whatsapp_get_phone_info — Fetch phone number info (display number, verified name, quality rating) from Met…whatsapp_disconnect — Disconnect the WhatsApp account (Cloud or 360dialog). Irreversible; pass confirm…whatsapp_set_coexistence_auto_disable_ai — When coexistence mode is on, this controls whether AI auto-pauses when you reply…whatsapp_set_history_import_ai — Control whether the AI should respond to historical imported conversations ("on"…instagram_get_status — Get Instagram connection status: connected, username, followers (if cached), and…instagram_get_connect_url — Return the URL the user should open in a browser to connect their Instagram acco…instagram_disconnect — Disconnect the Instagram account (clears instagram_id and removes the user_insta…instagram_set_story_replies — Enable or disable Instagram story reply handling.instagram_set_auto_disable_on_human — When ON, AI pauses automatically for a conversation the moment a human (you) sen…instagram_set_follow_up_unanswered — Enable or disable follow-ups for Instagram conversations the lead hasn't answere…instagram_check_webhook_status — Check whether the Instagram webhook subscription is active for this account.account_get — Get the authenticated user's SetSmart account info: email, client name, language…account_update_language — Change the preferred language for emails and UI: en, fr, or es.account_regenerate_api_key — Regenerate the SetSmart public API key (used for Zapier/Make/external REST). Thi…account_get_webhook_url — Get the current outgoing webhook URL (SetSmart will POST events like booked/qual…account_set_webhook_url — Set (or clear) the outgoing webhook URL for receiving SetSmart events. Pass an e…account_get_full_config — Return the full client_config for the user (sensitive keys redacted). Useful whe…dm_trigger_list — List all DM triggers grouped by channel (Instagram + Messenger). Each channel ha…dm_trigger_set_keywords — Replace the full keyword list for a channel (instagram or messenger). Pass an em…dm_trigger_add_keywords — Append keywords to a channel's DM trigger list (deduped).dm_trigger_remove_keywords — Remove keywords from a channel's DM trigger list.dm_trigger_set_strict_mode — Enable or disable strict mode for DM triggers on a channel. Strict mode only rep…dm_trigger_test — Simulate a DM against the current trigger list. Returns whether it would match (…template_list — List all WhatsApp message templates for the connected WABA. Returns name, langua…template_get — Get a single template by name (across all languages). Returns each language vers…template_create — Create a WhatsApp template (submitted for Meta review). Provide name, language, …template_delete — Delete a WhatsApp template by name.template_generate_with_ai — Generate WhatsApp template copy with AI using the user's recent assistants as co…template_top — Return the top-used templates with usage counts from recent history.message_send_text — Send a plain text message. Channel can be whatsapp / instagram / messenger. Reci…message_send_image — Send an image. For WhatsApp, pass a public URL (or uploaded media_id). For IG/Me…message_send_audio — Send an audio message (WhatsApp). Pass audio_url (public) or media_id (already u…message_send_video — Send a video message via WhatsApp Cloud API. Provide video_url (public) or media…message_send_template — Send a WhatsApp template message with variables. Template must be approved.message_send_reaction — React to a WhatsApp message with an emoji (only supports WhatsApp).voice_get_settings — Return ElevenLabs settings: whether an API key is set and the stored voice_id.voice_set_elevenlabs_key — Save the ElevenLabs API key on the account.voice_delete_elevenlabs_key — Remove the ElevenLabs API key and clear the stored voice_id.voice_set_voice_id — Set the ElevenLabs voice ID that will be used for TTS and follow-up audio.voice_list_audio_library — List saved follow-up audios (slugs + names) available for assistants and follow-…voice_toggle_assistant_audio — Link or unlink an audio slug to an assistant (assistant_audios join).calendly_get_status — Return Calendly connection status and any stored account info.calendly_get_connect_url — Return the URL the user should open to connect Calendly (OAuth).calendly_list_event_types — List Calendly event types for the connected user.calendly_set_preferred_event — Set which Calendly event type the AI should book by default.calendly_check_plan — Check whether the Calendly account supports webhooks (Pro plan).calendly_disconnect — Disconnect Calendly. Pass confirm=true.analytics_dashboard — Return high-level dashboard stats: messages today, conversations this week, mont…analytics_stats — Return aggregate conversation/message stats over a date range with optional tag …analytics_channel_breakdown — Per-channel breakdown of conversations + messages for the last N days.analytics_daily_stats — Return the latest daily-stats snapshot (from global_data).analytics_get_persona — Return the latest persona analysis for the user.analytics_message_costs — Return token + cost totals for the last 30 days (from message_ids).billing_get_subscription — Return the current subscription state across providers (Stripe, Mamo, Lemon Sque…billing_get_latest_invoice — Return the most recent invoice details.billing_list_cards — List saved payment cards across Stripe and Mamo Pay.billing_get_invoices — Return recent invoices across providers (last N).billing_validate_discount_code — Check whether a discount code is valid for the current user.billing_cancel_subscription — Cancel the active subscription (routes through Stripe/Mamo/LemonSqueezy). Pass c…comment_reply_get_auto_reply — Return the Instagram comment auto-reply config (replies to ALL comments on ALL p…comment_reply_set_auto_reply — Set the Instagram comment auto-reply: a list of public comment variants and/or a…comment_reply_list_global_triggers — List Instagram global keyword triggers (apply across ALL posts when a keyword is…comment_reply_set_global_triggers — Replace the full list of Instagram global comment triggers. Each trigger has key…comment_reply_add_global_trigger — Append a single global comment trigger to the list.followup_get_config — Return the current follow-up configuration (short/long toggles, custom messages,…followup_set_short — Configure the short follow-up (~4h): enable/disable, type (ai / fixed / audio), …followup_set_long — Configure the long follow-up (~22h).followup_set_optin_delays — Configure opt-in delays (seconds, converted to ms) and the daily opt-in limit.followup_set_split_multi_part — Toggle whether AI replies are split into multiple WhatsApp messages when long.schedule_get_night_hours — Get night-hours config: whether AI is restricted during certain hours, timezone,…schedule_set_night_hours — Configure night hours. Pass restrict_night_hours=true to restrict AI during the …schedule_get_off_days — Get scheduled off-days config (enabled flag, days array 0=Sun..6=Sat, timezone).schedule_set_off_days — Set scheduled off-days. Constraint from the app: no two consecutive days may be …schedule_get_current_status — Return whether the account is currently inside a night-hours window or a schedul…ghl_get_status — Return GoHighLevel (Lead Connector) connection status.ghl_get_connect_url — Return the URL to start the GHL OAuth flow.ghl_list_calendars — List available calendars on the connected GHL location.ghl_set_preferred_calendar — Set which GHL calendar the AI should use for bookings.ghl_disconnect — Disconnect GoHighLevel. Pass confirm=true.iclosed_get_status — Return iClosed connection status.iclosed_validate_key — Validate an iClosed API key and store it on the user account.iclosed_list_events — List iClosed events available for the connected account.iclosed_set_preferred_event — Set which iClosed event should be used for bookings.iclosed_disconnect — Disconnect iClosed. Pass confirm=true.shopify_get_status — Return Shopify connection status and store info.shopify_get_install_url — Return the Shopify install URL for a given shop domain.shopify_update_store — Update store settings (abandoned cart enable/disable, templates, etc).shopify_get_stats — Return Shopify order and abandoned-cart recovery stats for the connected store.shopify_disconnect — Disconnect Shopify. Pass confirm=true.instagram_post_list — List recent Instagram posts (media) for the connected account. Requires instagra…instagram_post_get_triggers — Get all per-post comment triggers for a specific Instagram post (or all posts wh…instagram_post_set_triggers — Replace the trigger for a specific post. Trigger shape: { keywords:[...], commen…instagram_post_delete_triggers — Remove all triggers attached to a specific post.campaign_preview_audience — Preview the audience size for a set of filters (tags include/exclude, status, ch…campaign_create — Create a WhatsApp template broadcast. Inserts rows into message_queue for each m…campaign_cancel — Cancel all pending sends in a campaign batch.campaign_get_stats — Get send/delivered/failed stats for a campaign batch.settings_get — Return the current client_config settings (sensitive keys redacted).settings_update — Update one or more client_config fields. Accepts any subset of allowed fields. U…settings_list_allowed_fields — List the settings fields that can be updated via settings.update.messenger_get_status — Return Facebook Messenger connection status.messenger_get_connect_url — Return the URL the user should open to connect their Facebook Page to Messenger.messenger_disconnect — Disconnect Facebook Messenger (clears facebook_page_id and the user_messenger_ac…scheduled_list — List scheduled WhatsApp messages queued in message_queue, filtered by status.scheduled_cancel — Cancel (delete) a single scheduled message by ID.scheduled_delete_all_pending — Delete ALL pending scheduled messages. Pass confirm=true.onboarding_scrape_website — Scrape a URL (Firecrawl) and extract structured business details. Returns URL + …onboarding_generate_business_details — Ask AI to infer business details (name, description, offers, audience) from prev…onboarding_generate_instagram_bios — Generate 5 Instagram bio suggestions from a business description.knowledge_scrape_website — Scrape a URL with Firecrawl and return extracted business fields + raw markdown.…knowledge_transcribe_youtube — Transcribe a YouTube video URL for use as assistant knowledge.private_reply_preview — Simulate: given a comment text on a specific post, return what private DM (and p…feedback_submit — Submit feedback to the SetSmart team with an optional rating (1-5).