brandsystem-mcp
The brandsystem-mcp server extracts, compiles, and governs a portable brand identity (.brand/ directory) from websites, Figma files, and PDFs — then uses it to generate and validate on-brand content across any AI tool.
Brand Extraction
Extract colors, fonts, and logos from websites via static CSS parsing (
brand_extract_web), headless Chrome rendering (brand_extract_visual), or deep multi-page analysis (brand_extract_site)Extract from Figma design files (
brand_extract_figma) and PDF brand guidelines (brand_extract_pdf)Manually set logos (
brand_set_logo) and resolve conflicts between sources (brand_resolve_conflicts)Kick off a full pipeline from a URL in under 60 seconds (
brand_start)
Brand Compilation
Compile extracted data into DTCG design tokens,
brand-runtime.json,interaction-policy.json, anddesign-synthesis.json(brand_compile)Generate a structured
DESIGN.mdand portable HTML brand report (brand_report)Interactively resolve ambiguous brand values (
brand_clarify)
Progressive Brand Development (4 sessions)
Core Identity — colors, fonts, logo
Visual Identity — composition rules, patterns, illustration style, anti-patterns (
brand_deepen_identity,brand_ingest_assets)Messaging & Voice — brand perspective, voice codex, story (
brand_extract_messaging,brand_compile_messaging)Content Strategy — buyer personas, journey stages, editorial themes, messaging matrix (
brand_build_personas,brand_build_journey,brand_build_themes,brand_build_matrix)
Compliance & Validation
Score content 0–100 for brand alignment (
brand_audit_content)Fast pass/fail compliance gate before publishing (
brand_check_compliance)HTML/CSS preflight checks for off-brand colors, fonts, and anti-patterns (
brand_preflight)Batch drift detection across multiple content pieces (
brand_audit_drift)
Runtime, Export & Sharing
Load full brand context to guide AI content generation (
brand_write)Export portable brand files for chat tools, code editors, team sharing, or email (
brand_export)Connect and sync with hosted Brandcode Studio brands (
brand_brandcode_connect,brand_brandcode_sync)Check project status and audit
.brand/directory completeness (brand_status,brand_audit)
Works with Claude Code, Cursor, Windsurf, Claude Desktop, and other MCP clients.
Extracts brand identity from Figma design files with higher accuracy through a two-phase process (plan then ingest) to compile structured design tokens and policies.
Use your brand guidelines with AI
@brandsystem/mcp turns the brand material you already have into context AI agents can use. Give it a website, PDF guide, Figma library, local files, or a Brandcode Studio brand. It produces a portable .brand/ runtime with design tokens, voice rules, provenance, and compliance checks.
Local-first. No account required. The default Core profile exposes 12 tools covering the complete adopt → use → check loop.
Start here
Install it for your agent, then ask: “How do I use my brand guidelines with AI?”
# Codex
npx @brandsystem/mcp install --client codex --write
# Claude Code, Cursor, Windsurf, or Claude Desktop
npx @brandsystem/mcp install --client claude-code --write
# Cline
npx @brandsystem/mcp install --client cline --writeinstall is a dry run unless you pass --write. Replace claude-code with cline, cursor, windsurf, or claude-desktop as needed. JSON-file targets preserve existing settings; Cline and Codex setup delegate to their official MCP commands so their current schemas remain authoritative. Agents can follow the compact installation guide without reading this entire README.
Already configured? Tell your agent:
Use my existing brand guidelines with AI. Start from this website/PDF/Figma library and show me what needs human confirmation.
Related MCP server: AI-Canvas MCP Server
What It Solves
AI tools default to category-average output because they have no brand context. Brand guidelines live in PDFs, Figma files, and people's heads — none of which AI tools can read at the moment of creation. The dominant failure mode isn't "broken output"; it's "correct but generic" — output that passes mechanical checks but reads like a competent generalist could have made it.
This MCP server is the authoring half of the "Two MCPs, One Brand" model. It extracts brand identity from live sources, compiles it into a .brand/ directory with structured governance (anti-patterns, proof-point status, voice rules, application rules) plus DTCG tokens, brand-runtime.json, and interaction-policy.json. That directory is the portable brand runtime — the artifact that travels with your brand from surface to surface.
Claude Design reads the
.brand/directory natively when pointed at a governed repoClaude Code, Claude Desktop, Cursor, and Windsurf connect to this server directly over stdio and load
brand-runtime.jsonat generation timeChatGPT and other remote-first clients consume the same runtime as an uploaded artifact (
brand-report.html/brand-runtime.json) or via a remote MCP connection — see Compatibility@brandcode/mcp (the hosted Use MCP) serves the same runtime over HTTP for teams that want authenticated live reads at
mcp.brandcode.studio/{slug}
With brand-runtime.json loaded, agent prompts collapse from 200-400 tokens of inline brand context to just the delta. First output is on-brand. No review bottleneck.
Quick Start
1. Add to your MCP config
Copy this into .mcp.json (Claude Code), .cursor/mcp.json (Cursor), or Windsurf MCP settings. Codex users can run npx @brandsystem/mcp install --client codex --write instead:
{
"mcpServers": {
"brandsystem": {
"command": "npx",
"args": ["-y", "@brandsystem/mcp"]
}
}
}2. Create your brand system
Tell your AI tool:
Run brand_start with client_name="Acme Corp", website_url="https://acme.com", and mode="auto"
That single command extracts colors, fonts, and logo from the website, escalates to rendered or deeper multi-page extraction when the cheap pass is weak, compiles DTCG tokens, generates design-synthesis.json + DESIGN.md, and generates a portable HTML brand report -- all in under 60 seconds.
3. What you get
.brand/
brand.config.yaml ← brand name, source URLs, session state
core-identity.yaml ← colors (with roles), fonts, logo specs
tokens.json ← DTCG design tokens
brand-runtime.json ← single-file brand context for any AI agent
interaction-policy.json ← anti-patterns, voice constraints, never-say words
design-synthesis.json ← spacing, radius, shadows, component signals
DESIGN.md ← portable design brief (agent-readable)
brand-report.html ← visual report (paste into any AI chat)
assets/logo/ ← extracted logo files (SVG/PNG)Load brand-runtime.json into any sub-agent's context. First output is on-brand. No per-prompt boilerplate.
4. Use it
Run brand_write for a social-graphic about "Q3 product launch"
The AI now has your full brand context — colors, typography, logo, anti-patterns, voice rules — and generates on-brand content.
5. Go deeper (optional)
Session | What it adds | Command |
1. Core Identity | Colors, fonts, logo, tokens |
|
2. Visual Identity | Composition, anti-patterns, illustration style |
|
3. Messaging | Voice, tone, never-say words, brand story |
|
4. Content Strategy | Personas, journey stages, themes |
|
Each session enriches brand-runtime.json. Stop at any point — Session 1 alone is valuable.
6. Share with your team
Run brand_brandcode_connect to save on Brandcode Studio
Your brand persists on brandcode.studio. Teammates pull the same brand into their tools. One source of truth.
What It Does
Session 1: Core Identity -- Extract colors, fonts, and logo from a website or Figma file. Compile into DTCG tokens, a structured design synthesis layer, a portable DESIGN.md, and an HTML report.
Session 2: Visual Identity -- Define composition rules, pattern language, illustration style, and anti-patterns through a guided interview. Anti-patterns become enforceable compliance rules.
Session 3: Messaging -- Audit existing website voice, then define perspective, voice codex (tone, vocabulary, AI-ism detection), and brand story through a guided interview.
Session 4: Content Strategy -- Build buyer personas, journey stages, editorial themes, and a persona x stage messaging matrix.
Each session builds on the previous. Stop anywhere -- you get value immediately.
Two Ways To Use It
Local-first MCP flow -- Start from a website or Figma file, build a .brand/ directory locally, and use it immediately in chat or code tools with no account required.
Brandcode Studio-connected flow -- Connect an existing hosted brand from Brandcode Studio, pull the packaged brand into .brand/, and keep it synced over time.
Two MCPs, One Brand
The .brand runtime is the product. Two MCPs serve it:
@brandsystem/mcp — Build (this package). Author and compile the .brand runtime locally. Extract from websites, Figma, and PDFs. Compile governance (anti-patterns, proof-point status, voice rules, application rules) plus DTCG tokens, brand-runtime.json, and interaction-policy.json into a single .brand/ directory. Portable, versionable, ready to commit to any repo.
@brandcode/mcp — Use (hosted). Connect authorized MCP clients to the live Full Brand Runtime at https://mcp.brandcode.studio/{slug} with Brandcode bearer-key auth. Agents fetch the current runtime, search approved knowledge, check drafts, retrieve package-safe assets, leave append-only review feedback, and, with explicit capture scope, queue taste captures for human review — no per-tool guideline copy, no stale snapshots, no canonical mutation from the MCP. Tagline: "Your brand, live in every AI tool."
Same .brand runtime artifact. Two consumption paths. Build authors it; Use serves it.
Phase 0 for Brandcode MCP is locked in specs/brandcode-mcp-phase-0-lock.md as the original 8-tool read/append-only surface. The current hosted implementation adds capture_taste as a scoped contribute-tier tool: it requires explicit capture scope, queues a review candidate for human review, and never promotes canon.
Hosted availability: Brandcode MCP is pre-release and available to approved clients only — it is not yet publicly launched or registry-listed. Brand data on the hosted service is client-owned; feedback is append-only; agent history is scoped and redacted. Deletion and export requests are handled through your Brandcode Studio contact. Until public launch, use @brandsystem/mcp for local build/sync, and Live Mode (brand_brandcode_live) for connected reads that refresh from the hosted runtime within a short cache TTL.
Maintainers can verify a hosted deployment end-to-end with the smoke harness (npm run smoke:hosted-mcp with BRANDCODE_MCP_SMOKE_URL and scoped test keys). It verifies MCP initialize, tools/list, the locked hosted tool order, core hosted tool calls, and read-only insufficient-scope behavior. It never hardcodes keys; missing proof inputs are reported as blocked or skipped.
Claude Design integration
The .brand/ directory is engineered as a first-class input for Claude Design. Point Claude Design at a repo that contains .brand/ — governance YAML, narrative library, proof-point files, taste notes, DTCG tokens — and it grounds on the governed brand instead of improvising from uploaded assets. This is the Deploy path: author once with @brandsystem/mcp, then every Anthropic surface (Claude Design, Claude Code, Chat via compile packs) consumes the same runtime.
Tools Reference
Tool Profiles (0.10+)
By default the server registers the Core profile — 12 tools covering the complete loop: adopt → runtime/context → create → check → export, plus the Studio connector entry points and the clarify/promote path. This keeps first-tool selection sharp for agents.
The full profile registers the entire authoring system (all tools below). Opt in via env or args:
{
"mcpServers": {
"brandsystem": {
"command": "npx",
"args": ["-y", "@brandsystem/mcp", "--profile=full"]
}
}
}Or set BRANDSYSTEM_PROFILE=full. Core tools: brand_start, brand_status, brand_runtime, brand_context, brand_check, brand_preflight, brand_report, brand_export, brand_clarify, brand_compile, brand_brandcode_auth, brand_brandcode_connect.
Entry Points
Tool | What it does |
| Begin here. Creates a brand system from a website URL in under 60 seconds. Use |
| Check progress, get next steps, or see a getting-started guide if no brand exists yet. |
Session 1: Core Identity
Tool | What it does |
| Extract logo (SVG/PNG), colors, and fonts from any website URL. |
| Screenshot the rendered page in headless Chrome and extract computed colors, fonts, and visual context from JS-heavy sites. |
| Discover representative pages, render them across desktop and mobile, capture screenshots, sample multiple components, and persist |
| Generate |
| Extract from Figma design files (higher accuracy). Two-phase: plan then ingest. |
| Add/replace logo via SVG markup, URL, or data URI. |
| Generate DTCG design tokens, brand runtime contract, and interaction policy from extracted data. |
| Resolve ambiguous brand values interactively (color roles, font confirmations). |
| Validate .brand/ directory for completeness and correctness. |
| Generate portable HTML brand report. Upload to any AI chat as instant guidelines. |
| Low-level directory scaffolding. Prefer |
Session 2: Visual Identity
Tool | What it does |
| Define composition rules, patterns, illustration style, and anti-patterns (6 interview sections). |
| Scan and catalog brand assets with MANIFEST.yaml metadata. |
| Check HTML/CSS against brand rules -- catches off-brand colors, wrong fonts, anti-pattern violations. |
Session 3: Messaging
Tool | What it does |
| Audit existing website voice -- fingerprint, vocabulary, claims, AI-isms, gaps. |
| Define perspective, voice codex (tone, vocabulary, AI-ism detection), and brand story. |
Session 4: Content Strategy
Tool | What it does |
| Build buyer personas through a 7-question guided interview. |
| Define buyer journey stages (ships with 4 proven defaults). |
| Define editorial content themes balanced across awareness, engagement, and conversion. |
| Generate messaging variants for every persona x journey stage combination. |
Content Scoring
Tool | What it does |
| Score content against brand rules (0-100) across multiple dimensions. |
| Quick pass/fail compliance gate before publishing. |
| Detect systematic brand drift across multiple pieces of content. |
Runtime + Utilities
Tool | What it does |
| Read the compiled brand runtime contract (single-document brand context for AI agents). |
| Select a task-scoped slice of the runtime deterministically (task_type → sections, audience → persona match, compact budget). Returns matched selectors and explicit no-match — never silent fallback. |
| Load full brand context (visual + voice + strategy) for content generation. |
| Generate portable brand files for Chat, Code, team sharing, or email. |
| Report bugs, friction, or feature ideas to the brandsystem team. |
Brandcode Studio Connector
Tool | What it does |
| Connect a local |
| Pull updates from a previously connected hosted brand using sync-token-aware delta behavior. |
| Inspect the current Brandcode Studio connection, sync history, and local package summary. |
| Toggle connected read tools to refresh from the hosted runtime within a short cache TTL. |
Tool Flow
Tools auto-chain -- each tool's response tells the LLM what to run next:
Session 1: brand_start → brand_extract_web or brand_extract_visual or brand_extract_site → brand_generate_designmd → brand_compile → brand_clarify → brand_report
Session 2: brand_deepen_identity (interview x 6) → brand_compile (generates VIM)
Session 3: brand_extract_messaging → brand_compile_messaging (interview x 3) → brand_write
Session 4: brand_build_personas → brand_build_journey → brand_build_themes → brand_build_matrixbrand_status can be called at any point. brand_preflight runs after any content generation.
CLI Commands
The npm package ships a CLI entrypoint for setup, diagnostics, and the hosted-brand connector:
npx @brandsystem/mcp doctor # local checkup: Node, profile, .brand/ state, credential permissions, client configs
npx @brandsystem/mcp install --client claude-code # write MCP config (dry-run by default; add --write to apply, existing config backed up)
npx @brandsystem/mcp install --client cline --write
npx @brandsystem/mcp install --client cursor --profile full
npx @brandsystem/mcp inspect # version, profile, tool list, .brand/ artifact inventory
npx @brandsystem/mcp brandcode connect https://brandcode.studio/start/brands/pendium
npx @brandsystem/mcp brandcode sync
npx @brandsystem/mcp brandcode statusinstall never overwrites other servers' entries: it deep-merges, backs up the existing file first, and refuses invalid JSON. For protected hosted brands, add --share-token=TOKEN.
The .brand/ Directory
After running the full pipeline, your .brand/ directory looks like this:
.brand/
brand.config.yaml # Client name, industry, source URLs, session state
core-identity.yaml # Colors, typography, logos with confidence scores
extraction-evidence.json # Multi-page rendered evidence bundle (optional)
design-synthesis.json # Structured design synthesis (radius, shadow, layout, personality)
DESIGN.md # Portable agent-facing design brief
tokens.json # DTCG design tokens (compiled output)
brand-runtime.json # Compiled runtime contract (single-doc brand context)
interaction-policy.json # Enforceable rules (anti-patterns, voice, claims)
needs-clarification.yaml # Items requiring human review
brand-report.html # Portable HTML brand report
visual-identity.yaml # Session 2: composition, patterns, anti-patterns
visual-identity-manifest.md # Session 2: compiled VIM document
system-integration.md # Session 2: CLAUDE.md / .cursorrules setup guide
messaging.yaml # Session 3: perspective, voice, brand story
messaging-audit.md # Session 3: voice fingerprint analysis
brand-story.md # Session 3: compiled brand narrative
assets/
logo/
logo-wordmark.svg # Extracted logo files
illustrations/ # Brand illustrations with MANIFEST.yaml
stickers/ # Brand stickers with MANIFEST.yaml
patterns/ # Brand patterns with MANIFEST.yamlFile Details
File | Format | Purpose |
| YAML | Project metadata: client name, industry, website URL, Figma file key, session number, schema version |
| YAML | All extracted brand data: colors (with roles and confidence), typography (with families and weights), logo specs (with inline SVG and data URIs), spacing |
| JSON | Multi-page rendered evidence captured from representative pages and viewports. Contains screenshots, computed elements, and CSS custom properties used to ground synthesis |
| JSON | Structured design interpretation of the brand. Includes radius, shadow, spacing, layout, component, motion, and personality signals derived from evidence and current identity |
| Markdown | Portable agent-facing design brief synthesized from the evidence bundle and current brand state |
| JSON | DTCG design tokens. Includes colors and typography plus synthesis-driven radius, shadow, layout, spacing, and motion groups when available |
| JSON | Single-document brand contract for AI agents. Merges all 4 session YAMLs into flat, fast-access format. Only medium+ confidence values. Compiled by |
| JSON | Enforceable rules engine. Visual anti-patterns, voice constraints (never-say, AI-ism patterns), and content claims policies. Used by preflight and scoring tools |
| YAML | Prioritized list of items the system could not resolve confidently: missing primary color, low-confidence values, unassigned roles |
| HTML | Self-contained brand report. Works offline, embeds all assets inline. Paste into any AI tool as brand guidelines |
| SVG/PNG | Extracted logo files. SVGs include inline path data in |
Platform Setup
Codex
Use the package installer, which delegates to Codex's official MCP configuration command:
npx @brandsystem/mcp install --client codex --writeStart a new Codex task after installation. Codex CLI, the Codex app, and the IDE extension share the same MCP configuration.
Cline
Use the package installer, which delegates to Cline's official non-interactive MCP command:
npx @brandsystem/mcp install --client cline --writeStart a new Cline task, then ask: “How do I use my brand guidelines with AI?” Cline CLI and the IDE extension share the same global configuration at ~/.cline/data/settings/cline_mcp_settings.json.
Claude Code
Create .mcp.json in your project root:
{
"mcpServers": {
"brandsystem": {
"command": "npx",
"args": ["-y", "@brandsystem/mcp"]
}
}
}Cursor
Create .cursor/mcp.json in your project root:
{
"mcpServers": {
"brandsystem": {
"command": "npx",
"args": ["-y", "@brandsystem/mcp"]
}
}
}Windsurf
Create ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"brandsystem": {
"command": "npx",
"args": ["-y", "@brandsystem/mcp"]
}
}
}Claude Desktop
Open Settings > Developer > Edit Config (claude_desktop_config.json):
{
"mcpServers": {
"brandsystem": {
"command": "npx",
"args": ["-y", "@brandsystem/mcp"]
}
}
}Compatibility at a glance
Three distinct ways to get your brand into an AI tool — don't conflate them:
Path | Clients | What it takes |
Direct local MCP (stdio) | Claude Code, Claude Desktop, Cursor, Windsurf | The |
Remote hosted MCP | ChatGPT (developer mode) and other remote-MCP clients | An approved Brandcode Studio brand + bearer key (pre-release, approved clients only). ChatGPT connects to remote MCP servers, not local stdio processes; OpenAI documents a secure-tunnel option for private servers |
Runtime artifact copy | Any AI tool | Upload |
Claude Chat (no MCP)
If you are using Claude Chat without MCP support:
Run the pipeline in a code environment first to generate
brand-report.htmlUpload the HTML file to your Claude Chat conversation
Say: "Use this as my brand guidelines for everything we create"
The report HTML is self-contained and works as a standalone brand reference in any AI tool.
Troubleshooting
"No .brand/ directory found"
Every tool except brand_start, brand_init, and brand_feedback requires a .brand/ directory. Run brand_start first.
If you are using the hosted-brand flow instead of local extraction, brand_brandcode_connect also scaffolds .brand/ automatically on first connect.
Empty extraction (no colors or fonts found)
This usually means the website loads CSS dynamically via JavaScript. brand_extract_web only parses static CSS from <style> blocks and linked stylesheets. Solutions:
Run
brand_extract_visualto analyze a single rendered page with headless Chrome and computed stylesRun
brand_extract_siteto sample representative pages across desktop and mobile and saveextraction-evidence.jsonRun
brand_generate_designmdafter extraction or manual edits to regeneratedesign-synthesis.jsonandDESIGN.mdTry a different page that uses more inline/linked CSS (e.g., the homepage, a blog post)
Use Figma extraction (
brand_extract_figma) for higher accuracySet values manually using
brand_clarifyafter extraction
brand_start in mode='auto' already tries this visual fallback when extraction quality is low and Chrome/Chromium is available, then generates design-synthesis.json and DESIGN.md from the best available evidence.
Figma extraction fails
brand_extract_figma doesn't connect to Figma directly. It works in two phases:
Plan returns instructions for what data to fetch (variables, styles, logo)
Ingest processes data you pass back from the Figma MCP tools
Make sure you have a separate Figma MCP server connected (e.g., @anthropics/figma-mcp) and pass the fetched data to brand_extract_figma in ingest mode.
Logo not detected
Web extraction looks for <img>, <svg>, and <link rel="icon"> elements. If your logo is rendered via JavaScript or embedded as a CSS background, use brand_set_logo to add it manually with SVG markup, a URL, or a data URI.
"Response size exceeds 5K target" (console warning)
This is a soft warning, not an error. Some tools (brand_write, brand_deepen_identity) return rich conversation guides that exceed 5K characters. The hard limit is 50K, which triggers truncation.
Server won't start
# Verify Node.js >= 20.18.1
node --version
# Test the server manually
npx @brandsystem/mcp
# Check for port conflicts (stdio transport shouldn't have any)
# The server uses stdio, not HTTP -- it reads from stdin and writes to stdoutReporting feedback
Use brand_feedback to report bugs, friction, or ideas:
brand_feedback with category="bug", summary="Logo SVG has empty gradient stops",
detail="The extractor found the SVG structure but <linearGradient> stops have no
stop-color attributes. Logo renders as a black rectangle.",
tool_name="brand_extract_web", severity="degrades_experience"For agent telemetry, use category="agent_signal" with signal, tool_used, and signal_context. Brand context is auto-populated from .brand/config.
How It Works
Confidence Scoring
Every extracted value carries a confidence level:
Level | Meaning | Token Behavior |
| Human-verified | Included in tokens |
| Strong signal (e.g., Figma variable, CSS custom property named | Included in tokens |
| Reasonable inference (e.g., most-frequent chromatic color in CSS) | Included in tokens |
| Weak signal (e.g., color appears once in a generic property) | Excluded from tokens, added to |
Source Precedence
When the same brand element is found in multiple sources, the higher-precedence source wins:
figma > manual > webA Figma-sourced primary color will replace a web-extracted one. A manually confirmed value overrides both automated sources. Within the same source, higher confidence wins.
Web Extraction
brand_extract_web fetches the target URL and:
Parses all
<style>blocks and up to 5 linked stylesheetsExtracts color values from CSS properties and custom properties
Infers color roles from property names (e.g.,
--primary,--brand-accent)Promotes the most-frequent chromatic color to "primary" if no explicit primary is found
Extracts font families and ranks by frequency
Finds logo candidates from
<img>,<svg>, and<link rel="icon">elementsDownloads and embeds logos as inline SVG or base64 data URIs
Visual Extraction
brand_extract_visual launches headless Chrome against the target URL and:
Captures a 2x DPR screenshot of the rendered page
Extracts computed styles from semantic elements such as body, header, hero, links, cards, and buttons
Reads CSS custom properties from
:rootInfers likely color roles from visual context (for example, button background → primary)
Returns the screenshot as an MCP image block so the calling agent can do qualitative visual analysis
This is the fallback path for JS-rendered apps and page builders where static CSS parsing misses key brand signals.
Deep Site Extraction
brand_extract_site extends the rendered-path beyond the homepage:
Discovers representative pages on the same domain
Captures desktop and mobile screenshots for each selected page
Samples multiple instances of buttons, cards, links, inputs, sections, and other components
Persists the results to
.brand/extraction-evidence.jsonFeeds that evidence into
brand_generate_designmd/brand_compileto produce.brand/design-synthesis.jsonand.brand/DESIGN.mdMerges additional colors and fonts back into
core-identity.yamlwhenmerge=true
Use this when the homepage is not enough to understand the brand system, or when you want richer evidence before token compilation.
Figma Extraction
brand_extract_figma works in two steps to bridge between the Figma MCP and brandsystem:
Plan mode -- Returns specific instructions for what data to fetch from Figma (variables, text styles, logo components)
Ingest mode -- Processes the collected Figma data, maps variable names to roles, and merges into
core-identity.yamlathighconfidence
DTCG Token Compilation
brand_compile transforms core-identity.yaml into Design Tokens Community Group format:
Colors become
$type: "color"tokens keyed by roleTypography becomes grouped tokens with
fontFamily,dimension(size), andfontWeightentriesSpacing becomes
dimensiontokens with scale valuesEach token includes
$extensions["com.brandsystem"]with source and confidence metadataOnly values with
mediumor higher confidence are included
The Bigger Picture
Four verbs stack — Build, Use, Evolve, Deploy. @brandsystem/mcp owns Build. The .brand runtime is what moves between them.
Build Use Deploy
───── ─── ──────
@brandsystem/mcp ────► @brandcode/mcp ────► Every surface
(this package) (mcp.brandcode.studio) Claude Design
Claude Code
authors the ─────────► .brand/ runtime ─────────► Cursor
portable runtime (portable artifact) ChatGPT
NotebookLM
▲ Gemini
│ ...any MCP client
│
Evolve ─── Brandcode Studio
(governance promotion,
taste compilation,
memory wall)Build — this package. Extract identity. Compile governance. Produce a .brand/ directory.
Use — @brandcode/mcp hosted at mcp.brandcode.studio/{slug}. Authorized MCP clients fetch the live Full Brand Runtime by default.
Evolve — Brandcode Studio. Taste notes graduate from memory to formal governance. Anti-patterns accumulate. The runtime sharpens with every production cycle.
Deploy — the governed .brand repo travels with you. Point Claude Design at it. Compile packs for Claude Code, Chat, Gemini, NotebookLM. Every surface consumes the same runtime.
Progressive Depth
Each stage builds on the previous. Stop anywhere — you get value immediately.
Stage | What You Get | How |
1. Free scan | Brand tokens + DESIGN.md + HTML report with platform setup guides |
|
2. MCP depth | Figma extraction, clarification, full audit | Session 1 with |
3. Visual identity | Composition rules, patterns, anti-patterns, VIM | Session 2: |
4. Core messaging | Voice profile, perspective, brand story | Session 3: |
5. Studio sync | Hosted package pull, sync history, shared distribution |
|
6. Live Use MCP | Authorized agents hit |
|
7. Deploy to Claude Design | Claude Design grounds on the | Point Claude Design at a repo containing |
Stages 1–4 are the standalone local MCP flow. Open source, fully portable, no account required.
Stages 5–7 are the Deploy path — where the .brand runtime becomes shared, served live, and consumed by every generation surface. Available through Brandcode Studio and Column Five Media.
What's Portable
Artifact | Portable? | Owned By |
| Fully — open source, any brand | MIT license |
| Fully — the portable artifact that travels with your brand | Client |
Brandcode framework (schema + stances + U-mech) | Fully — universal layer imported by every brand instance | Open |
Client claims, narratives, rules (I-content) | Per-instance — unique to each brand | Client |
| Serves the runtime — authorized MCP clients connect | Brandcode |
Development
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run dev
# Run tests
npm test
# Watch mode for tests
npm run test:watch
# Type check without emitting
npm run lint
# Start the server (stdio transport)
npm startProject Structure
src/
index.ts # Entry point -- stdio transport
cli.ts # CLI entry point for brandcode connect/sync/status
server.ts # MCP server creation and tool registration (all tools, priority order)
tools/ # One file per tool
brand-start.ts # Entry point (Session 1)
brand-status.ts # Progress dashboard
brand-extract-web.ts # Website extraction
brand-extract-figma.ts # Figma extraction (plan/ingest)
brand-set-logo.ts # Manual logo add/replace
brand-compile.ts # Token + VIM + runtime compilation
brand-clarify.ts # Interactive clarification
brand-audit.ts # Schema validation
brand-report.ts # HTML report generation
brand-init.ts # Low-level directory scaffolding
brand-deepen-identity.ts # Session 2: visual identity interview
brand-ingest-assets.ts # Session 2: asset cataloging
brand-preflight.ts # Session 2: HTML compliance checking
brand-extract-messaging.ts # Session 3: voice/messaging audit
brand-compile-messaging.ts # Session 3: perspective + voice interview
brand-build-personas.ts # Session 4: buyer personas
brand-build-journey.ts # Session 4: buyer journey stages
brand-build-themes.ts # Session 4: editorial themes
brand-build-matrix.ts # Session 4: messaging matrix
brand-audit-content.ts # Content scoring (0-100)
brand-check-compliance.ts # Binary pass/fail compliance gate
brand-audit-drift.ts # Batch drift detection
brand-runtime.ts # Read compiled brand runtime contract
brand-brandcode-connect.ts # Hosted brand connect
brand-brandcode-sync.ts # Hosted brand sync
brand-brandcode-status.ts # Hosted brand status
brand-write.ts # Content generation context loader
brand-export.ts # Portable brand file export
brand-feedback.ts # Bug reports + feedback
connectors/
brandcode/ # Hosted brand client, persistence, and URL resolution
lib/ # Shared utilities
brand-dir.ts # .brand/ directory I/O (YAML, JSON, markdown, assets)
confidence.ts # Confidence scoring and source precedence
css-parser.ts # CSS color and font extraction
dtcg-compiler.ts # DTCG token compilation
color-namer.ts # Human-readable color name generation
content-scorer.ts # Brand compliance scoring engine
logo-extractor.ts # Logo candidate detection
svg-resolver.ts # SVG inlining and base64 encoding
report-html.ts # HTML report generation
vim-generator.ts # Visual Identity Manifest + system integration markdown
runtime-compiler.ts # Compile brand-runtime.json from 4 source YAMLs
interaction-policy-compiler.ts # Compile interaction-policy.json (enforceable rules)
response.ts # Structured MCP response builder
version.ts # Package version reader
types/
index.ts # TypeScript type definitions
schemas/
index.ts # Zod schemas for validation (7 schema files)
bin/
brandsystem-mcp.mjs # CLI entry point
specs/
brand-runtime-schema.md # Runtime contract documentation
interaction-policy-schema.md # Interaction policy documentation
test/
lib/ # Library unit tests (9 files)
tools/ # Tool tests (2 files: export + smoke)
server.test.ts # Server creation smoke testAgent Evaluation Suite
The eval/ directory ships fixtures, methodology, and a runnable harness measuring what matters to agents: first-tool selection on real prompts, response token budgets, envelope conformance, compliance-check accuracy against labeled cases, and whether a second agent can use a generated runtime with no explanation. Run the deterministic tier with npm run eval; the model-dependent tier (first-tool selection) is opt-in via ANTHROPIC_API_KEY. Results are published only from actual runs with stated model versions and dates — the repo ships evidence machinery, not claims. See eval/README.md.
Security
Report vulnerabilities privately via the repository's Security page → Advisories → "Report a vulnerability". See SECURITY.md. Please don't open public issues for suspected vulnerabilities.
Local-first by design. Extraction and compilation run on your machine. Network activity is limited to: fetching the sources you point the tools at (websites, Figma via your own Figma MCP), optional Brandcode Studio connector calls when you connect a hosted brand, and optional
brand_feedbackreports.What gets written locally: everything lands in
.brand/inside your working directory. Connector credentials are stored in.brand/brandcode-auth.json(gitignored).
License
MIT
Available Tools
1 toolbrand_clarifyClarify brand valuesA
Resolve an ambiguous brand value interactively. After brand_compile, some values need human confirmation — wrong primary color, unknown font, unassigned color roles. Pass the clarification item ID and the user's answer (hex color, role name, font name, or 'yes'/'no'). Supports natural language: 'the purple one is accent' or '#5544f2 is secondary'. Returns updated identity and remaining clarification count.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Clarification item ID from needs-clarification.yaml (e.g. 'clarify-1') | |
| answer | Yes | The user's answer: a hex color (#ff0000), a role name (primary, secondary, accent, neutral, surface, text, action, tint, overlay, border, gradient, highlight), a font name, 'yes'/'no', or natural language ('the purple one is accent, the pink transparents are tint') |
Output Schema
| Name | Required | Description |
|---|---|---|
| _metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool modifies state (returns updated identity) and supports natural language input, adding value beyond the annotations which only indicate non-read-only and non-destructive. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the primary action, and every sentence adds value. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's function and return (updated identity, count). It lacks explicit mention of error handling or prerequisites beyond 'after brand_compile', but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description enriches parameter meaning by explaining the ID's source (needs-clarification.yaml) and detailing valid answer formats (hex color, role names, natural language), which goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resolves ambiguous brand values interactively, specifies it is used after brand_compile, and lists the types of items needing confirmation. It distinguishes itself from any potential siblings by detailing its specific role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (after brand_compile when there are ambiguous values) but does not explicitly state when not to use it or mention alternatives. The guidance is sufficient but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.14.1- Added
brand_clarify - Removed
brand_compile - Removed
brand_report - Removed
brand_start - Removed
brand_status
10 tool updates
v0.13.4- Removed
brand_brandcode_auth - Removed
brand_brandcode_connect - Removed
brand_check - Added
brand_compile - Removed
brand_context - Removed
brand_export - Removed
brand_preflight - Removed
brand_runtime - Added
brand_start - Added
brand_status
6 tool updates
v0.12.0- Changed
brand_check5 fields changed- added
Output schema / properties / brand_paletteAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "hex": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "hex" + ], + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / checkedAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / errorAdded value: +{ + "type": "string" +} - added
Output schema / properties / flagsAdded value: +{ + "items": { + "additionalProperties": true, + "properties": { + "fix": { + "type": "string" + }, + "message": { + "type": "string" + }, + "severity": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / passAdded value: +{ + "type": "boolean" +}
- Removed
brand_clarify - Removed
brand_compile - Changed
brand_runtime5 fields changed- added
Output schema / properties / agent_tipAdded value: +{ + "type": "string" +} - added
Output schema / properties / approvalAdded value: +{ + "type": "string" +} - added
Output schema / properties / errorAdded value: +{ + "type": "string" +} - added
Output schema / properties / runtimeAdded value: +{ + "additionalProperties": {}, + "type": "object" +} - added
Output schema / properties / runtime_originAdded value: +{ + "type": "string" +}
- Removed
brand_start - Removed
brand_status
44 tool updates
v0.11.0- Removed
brand_audit - Removed
brand_audit_content - Removed
brand_audit_drift - Changed
brand_brandcode_auth1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Changed
brand_brandcode_connect1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Removed
brand_brandcode_live - Removed
brand_brandcode_status - Removed
brand_brandcode_sync - Removed
brand_build_journey - Removed
brand_build_matrix - Removed
brand_build_personas - Removed
brand_build_themes - Changed
brand_check1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Removed
brand_check_compliance - Changed
brand_clarify1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Changed
brand_compile1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Removed
brand_compile_messaging - Removed
brand_connect_repo - Added
brand_context - Removed
brand_deepen_identity - Removed
brand_enrich_skill - Changed
brand_export1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Removed
brand_extract_figma - Removed
brand_extract_messaging - Removed
brand_extract_pdf - Removed
brand_extract_site - Removed
brand_extract_visual - Removed
brand_extract_web - Removed
brand_feedback - Removed
brand_feedback_review - Removed
brand_feedback_triage - Removed
brand_generate_designmd - Removed
brand_ingest_assets - Removed
brand_init - Changed
brand_preflight1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Removed
brand_preview - Removed
brand_repo_status - Changed
brand_report1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Removed
brand_resolve_conflicts - Changed
brand_runtime1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Removed
brand_set_logo - Changed
brand_start5 fields changed- added
Input schema / properties / brandcode_urlAdded value: +{ + "description": "Brandcode Studio brand URL for adopting an existing hosted brand (e.g. 'https://brandcode.studio/start/brands/acme'). Routes adoption through brand_brandcode_connect.", + "format": "uri", + "type": "string" +} - added
Input schema / properties / figma_file_keyAdded value: +{ + "description": "Figma file key for design-file extraction. Routes adoption through brand_extract_figma.", + "type": "string" +} - added
Input schema / properties / guideline_pdfAdded value: +{ + "description": "Path to a PDF brand guideline in or under the working directory (e.g. './brand-guidelines.pdf'). Routes adoption through brand_extract_pdf.", + "type": "string" +} - changed
Input schema / properties / mode / descriptionPrevious value: -"'auto' (recommended): runs full pipeline in one call when website_url is provided. 'interactive': presents source menu for user to choose extraction method."New value: +"'auto' (recommended): runs full pipeline in one call when website_url is provided. 'interactive': assesses available sources (including files discovered in the working directory) and presents a source menu." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Changed
brand_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "_metadata": { + "additionalProperties": true, + "properties": { + "next_steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "what_happened": { + "type": "string" + } + }, + "required": [ + "what_happened", + "next_steps" + ], + "type": "object" + } + }, + "required": [ + "_metadata" + ], + "type": "object" +}
- Removed
brand_write
12 tool updates
v0.9.2- Added
brand_brandcode_auth - Changed
brand_brandcode_connect3 fields changed- added
Input schema / properties / modeAdded value: +{ + "default": "pull", + "description": "\"pull\" connects to an existing hosted brand and downloads it. \"save\" uploads the local .brand/ to Studio (requires auth via brand_brandcode_auth).", + "enum": [ + "pull", + "save" + ], + "type": "string" +} - changed
Input schema / properties / url / descriptionPrevious value: -"Brandcode Studio brand URL or slug. Examples: \"https://brandcode.studio/start/brands/pendium\", \"pendium\""New value: +"Brandcode Studio brand URL or slug. Required for mode=\"pull\". Examples: \"https://brandcode.studio/start/brands/pendium\", \"pendium\"" - removed
Input schema / requiredRemoved value: -[ - "url" -]
- Added
brand_brandcode_live - Changed
brand_brandcode_sync2 fields changed- added
Input schema / properties / directionAdded value: +{ + "default": "pull", + "description": "\"pull\" (default) fetches the latest from Studio. \"push\" uploads local .brand/ to Studio (requires auth).", + "enum": [ + "pull", + "push" + ], + "type": "string" +} - changed
Input schema / properties / share_token / descriptionPrevious value: -"Share token for protected brands (only needed if not stored)"New value: +"Share token for protected brands (only needed for pull)"
- Added
brand_check - Added
brand_connect_repo - Added
brand_enrich_skill - Changed
brand_export2 fields changed- changed
Input schema / properties / target / descriptionPrevious value: -"Where this export will be used. 'chat': upload to AI conversation (Claude/ChatGPT/Gemini). 'code': paste into CLAUDE.md or .cursorrules. 'team': share with designers/writers. 'email': send via Slack or email. 'claude-skill': persistent Claude skill file with embedded logo + brand rules — the gold standard for automatic brand application in every artifact."New value: +"Where this export will be used. 'chat': upload to AI conversation (Claude/ChatGPT/Gemini). 'code': paste into CLAUDE.md or .cursorrules. 'team': share with designers/writers. 'email': send via Slack or email. 'claude-skill': persistent Claude skill file with embedded logo + brand rules. 'pdf': brand guide PDF with color swatches, typography, visual rules, and voice summary — no browser needed." - changed
Input schema / properties / target / enumPrevious value: -[ - "chat", - "code", - "team", - "email", - "claude-skill" -]New value: +[ + "chat", + "code", + "team", + "email", + "claude-skill", + "pdf" +]
- Changed
brand_extract_figma8 fields changed- added
Input schema / properties / design_contextAdded value: +{ + "description": "Raw output from get_design_context - colors and fonts parsed from generated code", + "type": "string" +} - changed
Input schema / properties / figma_file_key / descriptionPrevious value: -"Figma file key (required for plan mode)"New value: +"Figma file key from URL" - added
Input schema / properties / figma_urlAdded value: +{ + "description": "Full Figma URL - file key and node ID extracted automatically", + "type": "string" +} - changed
Input schema / properties / logo_svg / descriptionPrevious value: -"Raw SVG of logo component (for ingest mode)"New value: +"Raw SVG of logo component" - changed
Input schema / properties / mode / descriptionPrevious value: -"\"plan\" to get instructions, \"ingest\" to process Figma data"New value: +"\"plan\" to get extraction instructions, \"ingest\" to process collected Figma data" - changed
Input schema / properties / styles / descriptionPrevious value: -"Figma text styles (for ingest mode)"New value: +"Figma text styles" - added
Input schema / properties / variable_mapAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "Simple { name: hex } map from get_variable_defs", + "type": "object" +} - changed
Input schema / properties / variables / descriptionPrevious value: -"Figma variables (for ingest mode)"New value: +"Figma variables in structured format"
- Added
brand_preview - Added
brand_repo_status - Changed
brand_runtime3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / sliceAdded value: +{ + "default": "full", + "description": "Which slice of the runtime to return. 'full': everything (~1200 tokens). 'visual': colors, typography, logo, anti-patterns, composition (~200 tokens). 'voice': tone, vocabulary, never-say, perspective (~400 tokens). 'minimal': primary color, heading font, logo reference only (~100 tokens). Use slices to reduce prompt size when handing off to sub-agents that only need part of the brand.", + "enum": [ + "full", + "visual", + "voice", + "minimal" + ], + "type": "string" +}
36 tool updates
v0.5.0- First observed
brand_audit - First observed
brand_audit_content - First observed
brand_audit_drift - First observed
brand_brandcode_connect - First observed
brand_brandcode_status - First observed
brand_brandcode_sync - First observed
brand_build_journey - First observed
brand_build_matrix - First observed
brand_build_personas - First observed
brand_build_themes - First observed
brand_check_compliance - First observed
brand_clarify - First observed
brand_compile - First observed
brand_compile_messaging - First observed
brand_deepen_identity - First observed
brand_export - First observed
brand_extract_figma - First observed
brand_extract_messaging - First observed
brand_extract_pdf - First observed
brand_extract_site - First observed
brand_extract_visual - First observed
brand_extract_web - First observed
brand_feedback - First observed
brand_feedback_review - First observed
brand_feedback_triage - First observed
brand_generate_designmd - First observed
brand_ingest_assets - First observed
brand_init - First observed
brand_preflight - First observed
brand_report - First observed
brand_resolve_conflicts - First observed
brand_runtime - First observed
brand_set_logo - First observed
brand_start - First observed
brand_status - First observed
brand_write
TDQS
Only one tool exists, so there is no possibility of confusion with other tools.
The single tool uses a clear verb_noun pattern ('brand_clarify'), and consistency is unproblematic with only one tool.
A single tool for a narrow clarification task is borderline; the server would benefit from including the complementary 'brand_compile' tool to provide a complete workflow.
The tool assumes a prior 'brand_compile' step that is absent from the server, leaving a significant gap in the tool surface. Users cannot independently use the server without an external compilation tool.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- miromiroOAuthapp.miromiro
Turn any live website into brand colors, fonts, design tokens, SVGs, Lottie and paste-ready code.
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
Score any URL against a real design contract — 42 checks, A-F grade, token + motion validation.
Jinn gateway MCP — brand DNA, brand kits, design systems, and agency tools behind one bearer token.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides standardized brand guidelines and structured content templates for marketing assets like blogs, emails, and social media. It serves as a central source of truth for brand voice and strategy through an extensible file-based system.1-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to inspect, modify, export, and validate design documents with 47 tools covering design, code generation, branding, and print/mockup workflows.61MIT
- AlicenseNot gradedqualityDmaintenanceExtracts brand identity (colors, typography, spacing) from any website and generates HTML/CSS replicas or applies branding to templates.1MIT
- AlicenseNot gradedqualityFmaintenanceGenerates complete brand identity systems including colors, typography, logos, and design tokens with 58 MCP tools. Supports multi-format export and AI-assisted refinement.2052MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Brandcode-Studio/brandsystem-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server