Marketing Platform tools
20 MCP tools backed by the Marketing Platform endpoints.
These 20 tools call the same endpoints as the Marketing Platform section of the API Reference. Each tool runs with the permissions of the Whippy user who authorized the connection and the OAuth scopes they granted.
The Behavior column comes from the MCP tool annotations Whippy publishes. Treat these labels as hints, not guarantees: they may omit external effects (for example, a Write tool can send a message to a recipient), and clients are not required to ask for confirmation before running a tool.
Campaign Automations
| Tool | Behavior | Endpoint | What it does |
|---|---|---|---|
list_automation_templates | Read-only | GET /v1/automations/templates | Lists reply-automation templates that can be attached to campaigns (keywords, triggers, actions). Resolve IDs here before create_draft_campaign or attach_campaign_automation_templates. |
Campaigns
| Tool | Behavior | Endpoint | What it does |
|---|---|---|---|
attach_campaign_automation_templates | Write | POST /v1/campaigns/sms/{id}/automation_templates | Attaches automation templates to a campaign (including one already sent). Templates are additive and idempotent. |
create_draft_campaign | Write | POST /v1/campaigns/sms | Creates a draft SMS campaign. It does not send. |
list_campaign_contacts | Read-only | GET /v1/campaigns/{id}/contacts | Lists contacts targeted by a specific campaign and their delivery state. Requires a campaign ID from list_campaigns / show_campaign. |
list_campaigns | Read-only | GET /v1/campaigns | Lists SMS/MMS broadcast campaigns (one-shot sends), with status and pagination. |
show_campaign | Read-only | GET /v1/campaigns/{id} | Returns one campaign by ID (status, body, channel, schedule). Resolve the ID with list_campaigns first. |
update_campaign | Destructive | PUT /v1/campaigns/sms/{id} | Updates a campaign that is still in draft or scheduled (after preprocessing finished). |
Forms
| Tool | Behavior | Endpoint | What it does |
|---|---|---|---|
create_form | Write | POST /v1/forms | Creates a form. Version 1 is published immediately. Prefer a minimal shell, then update_form_draft and publish_form. Every element needs properties as a map ({} ok). |
delete_form | Destructive (idempotent) | DELETE /v1/forms/{id} | Deletes a form. Confirm with show_form first. |
discard_form_draft | Destructive | DELETE /v1/forms/{id}/draft | Discards the form draft and keeps the live published version. |
duplicate_form | Write | POST /v1/forms/{id}/duplicate | Duplicates a form into a new copy you can edit independently. |
ensure_form_draft | Destructive (idempotent) | POST /v1/forms/{id}/draft/ensure | Ensures a draft version exists for a form (creates one from active if needed) before update_form_draft. |
list_form_field_types | Read-only | GET /v1/forms/field-types | Lists the authoritative form authoring catalog: element types, required properties, option_shape, grading_shape (quiz correct answers on radio-buttons/select/multi-select), quiz_settings, address_fields_shape, availability_shape, and per-type property_shape (http-request mirrors the builder API Request panel: method/url/query/headers/body_template/connection_id/timeout_ms/response_format/items_path/max_items/response_mapping/display{mode,item_template,value_fields}/on_error/ending_id/empty_state_text; also linear-scale, file-upload, address, date/time, image/video, terms, number/slider/phone/url, star-rating). Also form styles, logic combinators/actions, element_shape (properties must be a map), chat_settings allowed keys, and logic_rule_shape example. |
list_forms | Read-only | GET /v1/forms | Lists Whippy forms (questionnaires) with filtering and pagination. Use show_form for the full authoring payload. |
publish_form | Destructive (idempotent) | POST /v1/forms/{id}/publish | Publishes the form draft so it becomes the live active version. |
rollback_form | Destructive | POST /v1/forms/{id}/versions/{version_id}/rollback | Stages a previous form version into the draft. The live form is unchanged until publish_form. |
show_form | Read-only | GET /v1/forms/{id} | Returns a form plus a version's authoring payload (elements, settings, logic, endings, variables). |
update_form | Destructive | PUT /v1/forms/{id} | Updates live form metadata. For questionnaire/logic edits prefer update_form_draft then publish_form. |
update_form_draft | Destructive | PUT /v1/forms/{id}/draft | Edits form_elements, settings, logic, endings, and variables on the draft (live unchanged until publish_form). |
Responses
| Tool | Behavior | Endpoint | What it does |
|---|---|---|---|
list_form_responses | Read-only | GET /v1/forms/responses | Lists submitted responses for a form. Requires a form ID from list_forms / show_form. |
Updated about 3 hours ago
Did this page help you?
