# brand_pack_write

Canonical HTML page: https://bitterclip.com/docs/assistants/tools/brand_pack_write

Surface: default model and app

Product release: 1dce717408a55fac1047e7d779177fa3ef8ede51
Public contract commit: 1ce47f7857ae3d9b6933fe83d5c33de3ae5efc64
Public contract SHA-256: 241d47d25e4b4c1dae9d2263793874d06fc4ba7bc3c78d4cf2bc63fbb32ed7dc
Descriptor SHA-256: 885d46f3ca3939dec2ace0cd6e93611c8b3f741f2d8f7a82e0adfe1452cc9a9e
Captured: 2026-09-24T16:39:30.100Z
Source: https://app.bitterclip.com/api/v1/mcp_descriptors.json

Create or update an account-scoped brand pack for an accessible Project: wordmark, organization, palette, fonts, tagline and optional ingested logo. Account IDs are namespaced to avoid collisions with curated packs. Brand is reusable context for programmable scenes, not a fixed visual template. Author a source scene, inspect rendered frames, and iterate before explicitly applying it to a production.

The JSON blocks below are the exact MCP descriptor projections served by Rails for the named profiles at capture time. Security schemes and resource URIs may vary by connected host.

## Default model descriptor

```json
{
  "name": "brand_pack_write",
  "title": "Write account Brand Studio pack",
  "description": "Create or update an account-scoped brand pack for an accessible Project: wordmark, organization, palette, fonts, tagline and optional ingested logo. Account IDs are namespaced to avoid collisions with curated packs. Brand is reusable context for programmable scenes, not a fixed visual template. Author a source scene, inspect rendered frames, and iterate before explicitly applying it to a production.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string",
        "description": "Project public ID; this is the account boundary for the brand pack."
      },
      "brand_id": {
        "type": "string",
        "description": "Requested brand id. It will be normalized/prefixed to acct-... unless already prefixed."
      },
      "pack_id": {
        "type": "string",
        "description": "Alias for brand_id."
      },
      "name": {
        "type": "string"
      },
      "wordmark": {
        "type": "string"
      },
      "organization": {
        "type": "string"
      },
      "tagline": {
        "type": "string"
      },
      "palette": {
        "type": "object",
        "description": "Partial palette override, e.g. {background, text, accent, accent2, line}."
      },
      "fonts": {
        "type": "object",
        "description": "Partial typography override, e.g. {family, cssFamily, weight, letterSpacing}."
      },
      "logo_asset_id": {
        "type": "string",
        "description": "Asset id returned by identity_asset_ingest."
      },
      "document": {
        "type": "object",
        "description": "Optional full or partial identity-studio.brand.v0 document. Explicit scalar args win where supplied."
      }
    },
    "required": [
      "project_id"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ],
    "ui": {
      "visibility": [
        "model",
        "app"
      ]
    },
    "openai/widgetAccessible": true
  }
}
```

## App descriptor

```json
{
  "name": "brand_pack_write",
  "title": "Write account Brand Studio pack",
  "description": "Create or update an account-scoped brand pack for an accessible Project: wordmark, organization, palette, fonts, tagline and optional ingested logo. Account IDs are namespaced to avoid collisions with curated packs. Brand is reusable context for programmable scenes, not a fixed visual template. Author a source scene, inspect rendered frames, and iterate before explicitly applying it to a production.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string",
        "description": "Project public ID; this is the account boundary for the brand pack."
      },
      "brand_id": {
        "type": "string",
        "description": "Requested brand id. It will be normalized/prefixed to acct-... unless already prefixed."
      },
      "pack_id": {
        "type": "string",
        "description": "Alias for brand_id."
      },
      "name": {
        "type": "string"
      },
      "wordmark": {
        "type": "string"
      },
      "organization": {
        "type": "string"
      },
      "tagline": {
        "type": "string"
      },
      "palette": {
        "type": "object",
        "description": "Partial palette override, e.g. {background, text, accent, accent2, line}."
      },
      "fonts": {
        "type": "object",
        "description": "Partial typography override, e.g. {family, cssFamily, weight, letterSpacing}."
      },
      "logo_asset_id": {
        "type": "string",
        "description": "Asset id returned by identity_asset_ingest."
      },
      "document": {
        "type": "object",
        "description": "Optional full or partial identity-studio.brand.v0 document. Explicit scalar args win where supplied."
      }
    },
    "required": [
      "project_id"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ],
    "ui": {
      "visibility": [
        "model",
        "app"
      ]
    },
    "openai/widgetAccessible": true
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "brand_pack": {
        "type": "object",
        "description": "Account-scoped brand pack row with brand_id/pack_id and brand_url."
      },
      "warnings": {
        "type": "array",
        "items": {
          "type": "object"
        }
      }
    },
    "required": [],
    "additionalProperties": false
  }
}
```

## Live Workspace descriptor

```json
{
  "name": "brand_pack_write",
  "title": "Write account Brand Studio pack",
  "description": "Create or update an account-scoped brand pack for an accessible Project: wordmark, organization, palette, fonts, tagline and optional ingested logo. Account IDs are namespaced to avoid collisions with curated packs. Brand is reusable context for programmable scenes, not a fixed visual template. Author a source scene, inspect rendered frames, and iterate before explicitly applying it to a production.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string",
        "description": "Project public ID; this is the account boundary for the brand pack."
      },
      "brand_id": {
        "type": "string",
        "description": "Requested brand id. It will be normalized/prefixed to acct-... unless already prefixed."
      },
      "pack_id": {
        "type": "string",
        "description": "Alias for brand_id."
      },
      "name": {
        "type": "string"
      },
      "wordmark": {
        "type": "string"
      },
      "organization": {
        "type": "string"
      },
      "tagline": {
        "type": "string"
      },
      "palette": {
        "type": "object",
        "description": "Partial palette override, e.g. {background, text, accent, accent2, line}."
      },
      "fonts": {
        "type": "object",
        "description": "Partial typography override, e.g. {family, cssFamily, weight, letterSpacing}."
      },
      "logo_asset_id": {
        "type": "string",
        "description": "Asset id returned by identity_asset_ingest."
      },
      "document": {
        "type": "object",
        "description": "Optional full or partial identity-studio.brand.v0 document. Explicit scalar args win where supplied."
      }
    },
    "required": [
      "project_id"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "brand_pack": {
        "type": "object",
        "description": "Account-scoped brand pack row with brand_id/pack_id and brand_url."
      },
      "warnings": {
        "type": "array",
        "items": {
          "type": "object"
        }
      }
    },
    "required": [],
    "additionalProperties": false
  }
}
```

## Errors

```json
[
  "project_not_found",
  "invalid_input"
]
```

## Examples

```json
[
  {
    "label": "Build a two-tone reveal brand",
    "input": {
      "project_id": "show_...",
      "brand_id": "acme-two-tone",
      "wordmark": "Acme",
      "organization": "Acme Labs",
      "tagline": "proof in motion",
      "palette": {
        "background": "#101820",
        "text": "#f7f2e8",
        "accent": "#ff6b4a",
        "accent2": "#4fc3f7"
      },
      "logo_asset_id": "ibrandasset_..."
    }
  }
]
```
