---
title: brand_create
description: 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`](/mcp/tools/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."_

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

:::warning[Slugs must be unique]

If a brand with the derived slug already exists, the call fails rather than silently adding a suffix. Choose a different name, or pass an explicit `slug`.

:::

:::tip[There is no tool that reads the site for you]

The console reads a brand's website and proposes its four sections at creation, and that is deliberately **not exposed as a tool**. If you can fetch a page, read the site and write the sections yourself into `brand_create` or [`brand_update`](/mcp/tools/brand-update) — you can also ask the user a question about it first, which nothing on our side can.

:::

Requires the `brand:write` scope.
