Skip to content

Tool catalog

19 tools across 7 categories. Every tool is callable over the MCP protocol today. The REST gateway is not yet deployed — see the note on each tool.

Call caramel.v1.meta.capabilities at startup to get the live catalog with per-tool tier_required values. Cache the result for the session.

Note Legacy tool names (e.g. list_businesses, generate_campaign) continue to work and are aliased to their caramel.v1.* equivalents. Both names dispatch to the same handler.

Tools for reading the businesses the authenticated user belongs to.

Toolv1 aliasDescriptionTierScope
list_businessescaramel.v1.business.listList all businesses you have access to. Always call this first — most other tools require a business_id. Takes no parameters.Starter(any)
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "list_businesses",
"arguments": {}
}
}

Tools for managing the contacts in a business audience.

Toolv1 aliasDescriptionTierScope
caramel.v1.contact.upsertAdd or update a contact. The email is the unique key — repeated calls with the same email update the record. Writes an audit log entry.Businessaudience:write

Plan caramel.v1.contact.upsert requires Business tier.

Coming soon audience:read scope and a caramel.v1.contact.list tool are planned.

ParameterTypeRequiredDescription
business_idstringYesBusiness ID from list_businesses
emailstringYesContact email (lowercased; unique per business)
first_namestringNoContact first name
last_namestringNoContact last name

Tools for listing and submitting forms.

Toolv1 aliasDescriptionTierScope
caramel.v1.form.listList all forms for a business. Returns each form’s ID, name, status, and submission count. Use the ID with form.submit or to embed the form.Starterforms:read
caramel.v1.form.submitSubmit data to an active form. Triggers all configured handlers: customer creation, campaign enrollment, and notifications.Starterforms:write
ParameterTypeRequiredDescription
business_idstringYesBusiness ID from list_businesses
ParameterTypeRequiredDescription
form_idstringYesForm ID from caramel.v1.form.list
dataobjectYesForm field values keyed by field name
source_urlstringNoURL where the submission originated
utmobjectNoUTM tracking parameters

Important caramel.v1.form.submit has a per-form rate limit of 10 submissions per 60 seconds per IP in addition to the gateway limits. Every call creates a new submission row — it is not safe to retry blindly. See Errors.

Tools for generating, refining, deploying, and managing marketing campaigns. All 9 tools back the same Edge Function.

Toolv1 aliasDescriptionTierCredits
get_campaign_suggestionscaramel.v1.campaign.suggestGet AI-powered suggestions for campaign type, timing, and audience. No credits used.StarterNone
list_campaignscaramel.v1.campaign.listList campaigns with optional status filter. Returns summaries, statuses, and IDs.StarterNone
get_campaigncaramel.v1.campaign.getGet full details of a campaign: quality score, validation state, content summary.StarterNone
delete_campaigncaramel.v1.campaign.deletePermanently delete a draft. Cannot delete deployed campaigns — pause first.StarterNone
generate_campaigncaramel.v1.campaign.generateGenerate a campaign using AI from a natural-language prompt.GrowthYes
refine_campaigncaramel.v1.campaign.refineRefine a draft with natural-language feedback. Conversation history is preserved across iterations.GrowthYes
deploy_campaigncaramel.v1.campaign.deployDeploy an approved campaign. It starts running automatically when triggered by customer activity.GrowthNone
pause_campaigncaramel.v1.campaign.pausePause a running campaign. Customers mid-campaign receive no further messages until resumed.GrowthNone
resume_campaigncaramel.v1.campaign.resumeResume a paused campaign. Customers continue from where they left off.GrowthNone

Plan Generation, refinement, deployment, and lifecycle operations (generate_campaign, refine_campaign, deploy_campaign, pause_campaign, resume_campaign) require Growth tier or higher.

Campaigns move through a fixed set of states:

draft → pending_review → approved → deployed ⇄ paused
FromToVia
(new)draftgenerate_campaign
draftdraft (refined)refine_campaign
draftpending_reviewAutomatic when quality score clears
pending_reviewapprovedPlatform review
approveddeployeddeploy_campaign
deployedpausedpause_campaign
pauseddeployedresume_campaign
any non-deployeddeleteddelete_campaign
ParameterTypeRequiredDescription
business_idstringYesBusiness ID from list_businesses
promptstringYesNatural-language description: goal, audience, tone, timing. Example: “Re-engage customers who haven’t visited in 3 months. Warm tone. 20% discount.”
campaign_typestringNojourney (automated sequence) or broadcast (one-time send). Default: journey.
ParameterTypeRequiredDescription
campaign_idstringYesDraft campaign ID from generate_campaign
feedbackstringYesNatural-language instruction. Example: “Shorten all subject lines to under 8 words.”

Tools for browsing and deploying pre-built campaign templates.

Toolv1 aliasDescriptionTierScope
list_template_librarycaramel.v1.template.library.listBrowse pre-built templates filtered by tier and industry. Returns journeys, message templates, and segment definitions.Starter(any)
deploy_templatecaramel.v1.template.library.deployActivate a library template into the business’s campaign automation. Provisions segments, message templates, and journeys in dependency order.Growthprovisioning:write
caramel.v1.template.listList message templates already deployed in the business. Distinct from the pre-built library.Starter(any)

Important deploy_template is not idempotent — repeated calls create duplicate workspace entities. Track on your side whether a template has been deployed.

ParameterTypeRequiredDescription
business_idstringYesBusiness ID from list_businesses
limitintegerNoMaximum results. Default: 20.
typestringNojourney, template, or segment. Omit for all types.

Tools for API discovery and usage inspection. No business ID required for capabilities.

Toolv1 aliasDescriptionTierRate limited?
caramel.v1.meta.capabilitiesList all available tools, categories, and version. Free — no credits, no business ID, not rate-limited. Cache for the session.StarterNo
caramel.v1.meta.usageGet this month’s usage for a business: messages sent, forms submitted, AI credits remaining, tier limits.StarterYes
ParameterTypeRequiredDescription
business_idstringYesBusiness ID from list_businesses

Tip Poll caramel.v1.meta.usage once per day for dashboard widgets — not once per minute. The result includes tier, limits, and remaining quota across all dimensions.

Tools for checking and managing sender domains.

Toolv1 aliasDescriptionTierScope
caramel.v1.domain.statusCheck the verification status of sender domains. Returns DNS records, DKIM keys, and approval state per domain.Starterprovisioning:write
ParameterTypeRequiredDescription
business_idstringYesBusiness ID from list_businesses
domainstringNoSpecific domain to check. Omit to return all sender domains for the business.

These tool names appear in the catalog but are not callable today.

ToolStatusBlocker
caramel.v1.email.sendNot yet livePer-tenant sender credential infrastructure
caramel.v1.sms.sendNot yet livePer-tenant sender credential infrastructure
caramel.v1.whatsapp.sendNot yet liveMeta Tech Provider approval
caramel.v1.push.sendNot yet livePer-tenant sender credential infrastructure

When these ship they will require Growth tier minimum and messaging:send scope.

  • Rate limits — understand the per-token and per-IP caps before you build.
  • Errors — the full error catalog and retry strategy.
  • Tiers and scopes — exact tier and scope requirements per tool.
  • Authentication — how to get an OAuth token.