Skip to main content

Brands

Brand profiles store a company's visual identity (colors, typography, logo) and copy context (industry, target audience, tone of voice). The create_funnel tool reads a brand profile at generation time and weaves its identity into the AI brief automatically — giving generated funnels on-brand copy and styles without manual re-specification.

A typical funnel-build session starts with list_brands → user picks a brand → get_brand loads the full identity. If no brands exist yet, or the user wants a new one, create_brand generates and persists a brand profile from a website domain (preferred) or a free-text description.

Tools

ToolPurposeKey inputsReturns
list_brandsList all configured brand profiles(none)Array of brand summaries
get_brandFetch a single brand by IDbrandIdFull brand object
create_brandGenerate and persist a new brand profiledata (source + domain or description fields)Created brand object

create_brand

Generates a brand profile using either Brandfetch (when a domain is available) or an AI description path. The call is slow — it can take 30 s to 2 min — and the MCP server emits progress notifications during the wait. Do not abort early.

After create_brand completes, you can skip the subsequent get_brand call: read context.targetAudience and context.content directly off the returned object to build brand-aware clarification questions, then call create_funnel with the returned id.

Inputs

The input is a discriminated union on data.source:

When source: "domain" (preferred when the user has a website):

NameTypeRequiredDescription
data.source"domain"YesSelects the Brandfetch path
data.domainstringYesPublic website domain — bare host, no scheme or path (e.g. "acme.com"). Brandfetch is queried for logo, colors, and typography

When source: "description" (fallback when no website exists):

NameTypeRequiredDescription
data.source"description"YesSelects the AI description path
data.brandNamestringYesThe brand's name as shown to the user (e.g. "Acme Inc")
data.industrystringYesFree-text industry/category descriptor (e.g. "B2B SaaS marketing tools")
data.targetAudiencestringYesFree-text target-audience descriptor (e.g. "indie founders evaluating outreach tools")

Returns { data: <brand object> } with the same shape as get_brand.