brand_get
Read one of the caller's saved brand kits by id: name, tagline, voice, palette, font pairing, and logo asset ids. Use it to load a kit before editing it with `brand_save` or before applying it to a project with `brand_apply`. A kit owned by another user is reported as not found, so this tool never reads across users.
Read one of the caller's saved brand kits by id: name, tagline, voice, palette, font pairing, and logo asset ids. Use it to load a kit before editing it with brand_save or before applying it to a project with brand_apply.
Input
The tool takes a single JSON object. Every field, its type, and an example are on the generated reference at GET /mcp/tools, under this tool's name.
Calling it
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "brand_get", "arguments": {} }
}Put your arguments in place of the empty object. A call that fails comes back as a normal result carrying isError: true and a message naming what went wrong, not as a JSON-RPC protocol error.
Notes
A kit owned by another user is reported as not found, so this tool never reads across users.
The full request and response shape, and a live playground, live on the generated reference at GET /mcp/tools.
brand_save
Save a brand kit for the authenticated caller, or update one they already have. Omit `id` to create; pass `id` to patch. The palette is contrast-checked against WCAG AA for its text pairs and a failing palette is refused with the offending pair named, so a call that goes through has passed the check. Font families must come from putty's committed allowlist. After saving, apply the kit to a project with `brand_apply` to restyle it.
brand_apply
Apply a saved brand kit to one of the caller's projects. Writes the brand seam — `src/brand/tokens.css` (the --brand-* CSS variables), `src/brand/brand.json` (name, tagline, voice, logo paths), `src/brand/fonts.css` (the allowlisted Google Fonts import), and the logo files under `public/brand/` — and nothing else. This is the only tool that may write those paths, and the project's component files are never touched, so applying a different kit restyles the project with zero diff outside the brand seam. Requires a project with a running sandbox; a project that has never run has no workspace to write into.