Skip to content
AdCrunch
Esc
↑↓navigate↵open⌘Jpreview
On this page

brand_create

Create a brand in your organization. Every context section is optional — start with a name and fill it in over time.

Creates a Brand in your organization. Its slug — the stable handle agents use — is derived from the name unless you pass one explicitly.

Input

Field Type Required Description
name string yes Display name.
description string yes One-line summary, used when listing brands.
identity string no Positioning, mission, offering, category (markdown).
voice string no Tone of voice and personality (markdown).
guidelines string no Do’s and don’ts, claims to avoid (markdown).
messaging string no Key messages, value props, proof points (markdown).
website_url string no The brand’s public site. http/https, up to 2048 characters.
slug string no Explicit handle; normalized to kebab-case.

Every context section is optional. A brand with nothing but a name and description is a valid starting point — you’re expected to fill it in as you go, not to write the whole thing up front.

website_url is a locator, like the slug — where the brand lives on the web, not a fifth section. It is stored and handed back by brand_get; its contents are not. Setting it does nothing on its own.

Output

The created brand, including its slug and revision (which starts at 1).

Example

“Set up a brand for Acme Running — direct, unfussy tone, never hype it.”

brand_create({
  name: 'Acme Running',
  description: 'DTC running shoes.',
  voice: 'Direct, unfussy, never hype.',
});
// → { slug: 'acme-running', revision: 1, identity: null, … }

Requires the brand:write scope.

Reference

Create a brand in the active organization. Every context section is optional — a brand is authored incrementally, so name and description alone is a valid start. The slug (its stable handle) is derived from the name unless one is given. Fails if the slug already exists.

Input

Argument Type Required Description
description string yes One-line summary — what an agent reads to pick this brand from a list.
guidelines string no Do’s and don’ts, guardrails, claims to avoid, compliance notes (markdown).
identity string no Who the brand is: positioning, mission, what it offers, category (markdown).
messaging string no Key messages, value propositions, proof points (markdown).
name string yes Human-readable display name.
slug string no Optional explicit slug handle; normalized to kebab-case. Defaults to a slug derived from the name.
voice string no Tone of voice and personality (markdown).
website_url string, at most 2048 characters no The brand’s public site, http or https. A locator like the slug — where the brand lives on the web — not a context section, and setting it reads nothing.

Failure codes

A failed call has isError set, and structuredContent.error holds one of these codes. Errors describes the shape of a failed call.

  • invalid_slug
  • slug_conflict
  • forbidden
  • invalid_request
  • internal_error

Scope

The token must hold brand:write. Auth & scopes lists each scope.

Annotations

A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.

  • Writes. The tool can change data.
  • Destructive. The tool can make a change that you cannot undo. A client can ask you to confirm before it calls the tool.
  • Not idempotent. A second call with the same arguments can change more.
  • Closed world. The tool reads and writes the data of AdCrunch only.

Was this page helpful?