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

brand_update

Edit a brand's context, guarded by base_revision so a concurrent change can't be silently overwritten.

Updates a Brand. Only the fields you pass are changed, and the whole call is guarded by base_revision — the revision you last read via brand_get.

Input

Field Type Required Description
brand_name string yes The current slug identifying which brand to update.
base_revision number yes The revision you last read. Guards concurrent edits.
name string no New display name.
description string no New one-line summary.
identity string | null no New positioning; null clears the section.
voice string | null no New tone of voice; null clears the section.
guidelines string | null no New do’s and don’ts; null clears the section.
messaging string | null no New key messages; null clears the section.
website_url string | null no The brand’s public site. http/https, up to 2048 characters; null clears it.
logo_document_id string | null no Nominate a document as the logo; null clears it.
slug string no New handle — a deliberate rename.

Omitting a section is not the same as clearing it

This is the distinction worth internalising:

  • Omit a section and it is left exactly as it was.
  • Pass null and it is erased.

Without that split, editing only the voice would silently wipe the identity — so “I didn’t mention it” and “delete it” have to be different signals.

website_url follows the same rule, and correcting one is safe: changing a brand’s website triggers nothing. It is a locator, like the slug — the URL is stored, the site is not read.

Output

The updated brand, with revision incremented.

Example

“Acme’s guidelines should say we never make medical claims.”

brand_update({
  brand_name: 'acme-running',
  base_revision: 3,
  guidelines: 'Never make medical or performance-injury claims.',
});
// → { slug: 'acme-running', revision: 4, … }  — voice and identity untouched

Requires the brand:write scope.

Reference

Update a brand. Pass base_revision (from brand_get) — the update is rejected if the brand changed since you read it. Only the fields you pass are changed; pass null for a context section to clear it. Optionally rename the slug handle.

Input

Argument Type Required Description
base_revision integer yes The revision you last read via brand_get. Guards against overwriting a concurrent edit.
brand_name string yes The current brand slug identifying which brand to update.
description string no New one-line summary.
guidelines string or null no New do’s and don’ts. Pass null to clear the section.
identity string or null no New positioning and mission. Pass null to clear the section.
logo_document_id string or null no Nominate one of the brand’s documents as its logo, or null to clear the nomination. Upload the file first with document_create_upload.
messaging string or null no New key messages. Pass null to clear the section.
name string no New display name.
slug string no Optional new slug handle (a deliberate rename); normalized to kebab-case. Callers of the old handle must be updated.
voice string or null no New tone of voice. Pass null to clear the section.
website_url string, at most 2048 characters or null no The brand’s public site, http or https; null to clear it. Changing it reads nothing — it is a locator, like the slug.

Failure codes

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

  • not_found
  • invalid_slug
  • invalid_logo
  • revision_mismatch
  • 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?