brandkit brandkit

AI image models ignore your hex palette.

Ask Ideogram for #5B21B6 and you get something close. Ask Recraft to vectorize and you get 48 off-palette colors. brandkit fixes it downstream: vectorize, snap every color to your palette, drop anything that doesn't pass verify.

AGPL-3.0 Node ≥ 20 MCP-compatible

Vectorize alone fails the palette gate.
brandkit closes it.

Same source raster, same palette, fed through two different last-mile pipelines. The only difference is brandkit's snap-to-palette + verify-or-drop step.

Palette: #FAFAF9#5B21B6#10B981#F43F5E#1C1917

Vectorize only (Recraft → SVG)

vectorized SVG without recolor
48 off-palette colors · verify exit 1

48 unique colors. 0 of them are in the palette.

brandkit (vectorize + recolor + verify)

brandkit final palette-locked SVG
0 off-palette colors · verify exit 0 ✓

4 unique colors. Every one in the palette.

Numbers verified from brandkit verify on the checked-in fixtures. See the recolor logic.

One command. Every standard size. Zero off-palette colors.

The other tools all stop somewhere before "ship-ready." brandkit's pipeline closes the loop in one shot.

ToolSteps to ship-ready palette-locked SVG + asset bundleSteps
DALL-E 3 / Nano Banana 2 / Midjourney generate raster · vectorize · recolor to palette · verify · render every asset size 5
Recraft v3 (vector) generate vector (off-palette) · recolor · verify · render every asset size 4
Raw Ideogram v3 generate raster · vectorize · recolor · verify · render every asset size 5
brandkit brandkit gen  →  brandkit export  (or one MCP call for the gen part) 1

↓ Real output of brandkit export against the SVG in the “brandkit” cell above. 14 files, every color in palette, no manual rasterization step.

og-image.png · 1200×630 · for og:image / twitter:image
cws-marquee-920x680.png · Chrome Web Store store-page hero
cws-tile-440x280.png · CWS browse-page tile

Install

CLI

npm install -g brandkit
brandkit --help

MCP server (Claude Code, Claude Desktop, etc.)

git clone https://github.com/gent8/brandkit
cd brandkit
docker build -t brandkit-mcp:latest -f mcp/Dockerfile .

Then add to your MCP client config:

{
  "mcpServers": {
    "brandkit": {
      "command": "docker",
      "args": ["run", "-i", "--rm",
        "-e", "FAL_KEY",
        "-e", "RECRAFT_API_KEY",
        "brandkit-mcp:latest"]
    }
  }
}

Provider keys: fal.ai (Ideogram v3) · Recraft (vectorize). Bring your own.

Three MCP tools

brandkit_gen

Full pipeline. Prompt + palette → palette-locked survivor SVGs returned inline. No filesystem handoff.

brandkit_recolor

Pure SVG-in / SVG-out. Snaps every hex and rgb() to the nearest palette color.

brandkit_verify

SVG-in / JSON-out gate. Returns offenders with normalized hex + suggested palette match.

Solo-maintained, AGPL-3.0. Read the status doc before opening issues.