BrixUI MCP Server
Allows AI agents to interact with BrixUI Design System components and design tokens via Figma, providing tools for listing, searching, and retrieving component details, as well as accessing design tokens such as colors, spacing, border radius, and typography.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BrixUI MCP ServerList all components in BrixUI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BrixUI MCP Server
A production-ready Model Context Protocol server for the BrixUI Design System V1.2. Connects AI clients — Claude, ChatGPT, Cursor, Windsurf, Roo Code, Cline, and any MCP-compatible client — directly to your Figma components, design tokens, and variables.
What it does
Capability | Details |
List components | Browse all 274+ components organized by category |
Search components | Fuzzy search by name, category, or description |
Component details | Full node metadata, auto-layout, variants, fills, effects |
Design tokens | Colors, spacing, border radius, typography via Variables API |
MCP Resources |
|
Related MCP server: figmind
Requirements
Node.js 20+
Installation
Global install
npm install -g brixui-mcp-serverOr run without installing
npx brixui-mcp-serverEnvironment Setup
export FIGMA_PERSONAL_ACCESS_TOKEN=your_figma_token_hereTo use a different Figma file (optional):
export BRIXUI_FILE_KEY=your_custom_file_keyThe default BrixUI file key is 6Gvd4zkjc7K7RdRxkRF5wP.
Create a .env file for local development:
cp .env.example .env
# edit .env and add your tokenClient Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"brixui": {
"command": "npx",
"args": ["brixui-mcp-server"],
"env": {
"FIGMA_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}Or if installed globally:
{
"mcpServers": {
"brixui": {
"command": "brixui-mcp-server",
"env": {
"FIGMA_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}ChatGPT Desktop
In ChatGPT Desktop → Settings → MCP Servers → Add Server:
{
"name": "BrixUI Design System",
"command": "npx",
"args": ["brixui-mcp-server"],
"env": {
"FIGMA_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"brixui": {
"command": "npx",
"args": ["brixui-mcp-server"],
"env": {
"FIGMA_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}Roo Code
Edit your Roo Code MCP config (~/.roo/mcp.json or the workspace .roo/mcp.json):
{
"mcpServers": {
"brixui": {
"command": "npx",
"args": ["brixui-mcp-server"],
"env": {
"FIGMA_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}Windsurf / Cline / other MCP clients
Any client that supports stdio MCP servers can use:
{
"command": "npx",
"args": ["brixui-mcp-server"],
"env": {
"FIGMA_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}Available Tools
Tool | Description |
| List all components grouped by category |
| Search by keyword with optional category filter |
| Full details for a component by node ID |
| All color, spacing, radius, and typography tokens |
Available Resources
URI | Description |
| Full component catalog in plain text |
| All design tokens |
| Color variables with hex values |
| Typography scale |
Example Prompts
Show all button components from BrixUISearch for card components in BrixUIGet the full details of BrixUI component with nodeId 1958:62429What are all the color tokens in BrixUI? Generate a Tailwind config from them.Show me the spacing scale from BrixUI and generate CSS custom properties for itExplain the auto-layout structure of this BrixUI navigation component: <nodeId>Generate a React component using BrixUI design tokens for a pricing cardWhat typography styles does BrixUI use? Create a matching Tailwind typography config.Development
git clone https://github.com/multicomak/BrixUI-MCP.git
cd BrixUI-MCP
npm install
cp .env.example .env
# add your FIGMA_PERSONAL_ACCESS_TOKEN to .env
npm run dev # watch mode
npm run build # production build
npm run typecheck # type checking onlyArchitecture
src/
├── index.ts # MCP server, tools, resources wiring
├── figma/
│ ├── client.ts # Figma REST API client
│ ├── types.ts # Full TypeScript types for all Figma structures
│ └── cache.ts # In-memory cache (5-min TTL)
├── tools/
│ ├── listComponents.ts
│ ├── searchComponents.ts
│ ├── componentDetails.ts
│ └── designTokens.ts
├── resources/
│ ├── components.ts
│ ├── tokens.ts
│ └── typography.ts
├── utils/
│ ├── env.ts # Token validation and env reading
│ └── logger.ts # Clean stderr logging
└── constants/
└── config.ts # Base URLs, defaults, TTLLicense
MIT
Available Tools
4 toolsget_brix_component_detailsA
Get full details for a specific BrixUI component by Figma node ID. Returns metadata, auto-layout, variants, properties, fills, strokes, effects, and child structure.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Figma node ID (e.g. "1958:62429"). Use list_brix_components to find IDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It clearly lists what the tool returns (metadata, auto-layout, variants, properties, fills, strokes, effects, child structure), giving good transparency about the output scope. It implies a read-only operation with no side effects, which is sufficient for this context.
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 very concise: two sentences. First sentence declares purpose, second enumerates what is returned. Every word serves a purpose, no redundancy. It is well front-loaded and efficient.
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 tool's simplicity (one parameter, no output schema, no nested objects, read-only), the description covers the essential aspects: what it does, how to use the parameter, and what to expect in return. It is sufficient for an agent to select and invoke the tool correctly. Minor improvement could include explaining the output structure format, but not necessary for completeness.
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 description coverage is 100% for the sole parameter `nodeId`, so baseline is 3. The main description does not add extra meaning beyond the schema's own description, which already explains the parameter and its usage. No additional semantic value is provided, so score remains at baseline.
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 verb 'Get full details' and the resource 'specific BrixUI component by Figma node ID'. It distinguishes from siblings: `list_brix_components` returns all, `search_brix_components` finds by criteria, and `get_brix_design_tokens` is about tokens, making this tool's purpose unique and precise.
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 implies usage when you have a specific nodeId and need full component details. The parameter description explicitly directs to use `list_brix_components` to find node IDs, providing clear context for when this tool is appropriate. However, it does not explicitly state when not to use it or contrast with siblings, leaving room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brix_design_tokensA
Retrieve all design tokens from BrixUI — colors, spacing, border radius, typography, and other variables. Prefers the Figma Variables API with automatic fallback to the Styles API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses that the tool prefers the Figma Variables API with automatic fallback to the Styles API, which is a useful behavioral trait. However, it does not mention potential failure modes, authentication needs, or return format, which would increase transparency.
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 extremely concise with two sentences. The first sentence clearly states purpose with examples, and the second adds technical detail about API fallback. Every word earns its place.
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 no parameters, no output schema, and no annotations, the description is fairly complete. It specifies what is retrieved and the internal logic. It could mention output format or whether filtering is possible, but for a 'get all' tool, it is adequate.
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?
The input schema has no parameters, so schema description coverage is 100%. The description does not need to add parameter semantics, and the baseline score for zero parameters is 4.
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 verb 'Retrieve', the resource 'all design tokens from BrixUI', and provides examples like colors, spacing, border radius, and typography. It distinguishes its purpose from sibling tools, which focus on components, making it easy for an agent to select correctly.
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?
While explicit when-to-use vs alternatives is not stated, the context is clear: this tool is for retrieving design tokens, and sibling tools are for component-related operations. The description effectively implies usage without needing explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_brix_componentsA
List all components and component sets from the BrixUI Design System, grouped by category. Returns names, IDs, descriptions, and category groupings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral disclosure. It states what is returned (names, IDs, descriptions, category groupings) and grouping behavior. However, it does not disclose whether the tool is read-only, any prerequisites, or if results are paginated, leaving safety ambiguous.
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?
Two concise sentences, perfectly front-loaded with the action and resource. Every phrase adds value. No redundancy or fluff.
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 zero parameters and no output schema, description adequately covers purpose, return fields, and structure (grouped by category). Missing details like 'all' vs 'available' or ordering, but sufficient for a simple list tool.
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?
No parameters exist, so schema coverage is effectively 100%. According to rubric, zero parameters baseline is 4. Description adds no parameter info, but that is appropriate as none are needed.
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?
Description clearly specifies verb 'list' and resource 'components and component sets from the BrixUI Design System, grouped by category.' It distinguishes itself from siblings ('get', 'search', 'tokens') by implying a broad overview rather than detail lookup or search.
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?
No explicit when-to-use or when-not-to-use guidance. The description implies it's for listing all components grouped by category, but lacks mention of alternatives or conditions. The context of sibling tools is not leveraged.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_brix_componentsB
Search BrixUI components by name, category, or description. Supports fuzzy matching and optional category filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (e.g. 'button', 'card', 'input') | |
| category | No | Optional category filter (e.g. 'Buttons', 'Cards', 'Navigation') | |
| limit | No | Maximum results to return (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions fuzzy matching and optional category filtering, but fails to disclose what the tool returns (e.g., full component objects or just IDs), pagination behavior beyond the limit parameter, or any side effects.
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 a single sentence with no redundant words. It is front-loaded with the core function and efficiently conveys key features.
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?
For a search tool with 3 parameters and no output schema, the description is adequate but incomplete. It does not describe the return format (e.g., list of component names or details) or mention pagination limits beyond the parameter definition. The context from siblings helps but is not explicit.
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% with parameter descriptions. The tool description adds value by specifying 'fuzzy matching' for the query parameter and 'optional category filtering' for the category parameter, which enhances understanding beyond the schema alone.
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 'Search BrixUI components by name, category, or description', which defines a specific verb and resource. It implies distinction from siblings like 'list_brix_components' but does not explicitly differentiate when to use search vs list.
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 implies usage for searching with fuzzy matching and filtering, but lacks explicit guidance on when to use this tool versus alternatives like 'list_brix_components'. No 'when not to use' or prerequisites are mentioned.
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.
4 tool updates
v1.2.0- First observed
get_brix_component_details - First observed
get_brix_design_tokens - First observed
list_brix_components - First observed
search_brix_components
TDQS
Each tool serves a distinct purpose: retrieving component details, design tokens, listing all components, and searching. There is no overlap or ambiguity between them.
All tools follow the consistent pattern 'verb_brix_noun' using snake_case, making the naming predictable and easy to remember.
With only 4 tools, the server is quite minimal. While acceptable for a focused read-only surface, the count feels thin for a comprehensive design system interface.
The server only provides read operations (get, list, search). There are no tools for creating, updating, or deleting components or design tokens, leaving significant gaps for typical workflows.
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
The Figma MCP server brings Figma design context directly into your AI workflow.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server that exposes your design system components and tokens to AI agents, preventing duplicate component creation and hardcoded token values.189MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that connects AI clients to Figma, enabling real-time reading, creation, and modification of designs using natural language.MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that gives AI assistants structured access to a design system's tokens, components, guidelines, and patterns, enabling them to read, lint, and author design system data.1MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI coding agents access to Figma design data, enabling pixel-perfect implementation of designs through structured data extraction, image downloads, and design token retrieval.541MIT
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/multicomak/BrixUI-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server