Primitiv
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIGMA_ACCESS_TOKEN | No | Figma access token for connecting to Figma sources (optional, for Figma source adapter) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_component_catalogA | Inspect component counts, classification coverage, supported discovery filters, source/guidance health, and the loaded snapshot. Read-only. No full name inventory. |
| find_componentsB | Find a bounded component shortlist sorted by exact ID. Filters combine with AND; intents match any by default. Inspect coverage and broaden filters or search unclassified records before concluding no reusable component exists. Continue using nextCursor with the same filters. Read-only. |
| get_component_contextA | Inspect an exact component ID in the selected snapshot, with API, guidance, relationships and source sections. Follow nextCursor until complete. JSON-fragment continuations must be concatenated in order then JSON-parsed. Observed usage is static evidence; pairings are advisory. Restart discovery after snapshot-changed. Read-only. |
| get_design_contextA | Get the resolved design system context before building UI. Read-only, no side effects. Default (no category) returns a JSON summary of token counts, component names, conflict counts, comparison diagnostic counts, and contract metadata. Pass category: 'all' | 'tokens' | 'components' | 'conflicts' | 'diagnostics' to get detail. Pass tokenCategory to filter tokens: colors, spacing, sizes, typography, borderRadius, shadows, zIndex, breakpoints, motion (unknown/aliased categories return an actionable error, not a silent empty result). Use this as the first call to understand what exists. For lookups by name, use get_token or get_component instead. |
| get_tokenA | Look up a specific design token by name. Read-only, no side effects. Returns the token's name, value, and category, or an error if not found. Pass category to narrow search: colors, spacing, sizes, typography, borderRadius, shadows, zIndex, breakpoints, motion (aliases like 'color'/'radius'/'z-index' are normalized). Omit category to search all. Use this when you know the token name. For a broad overview of all tokens, use get_design_context with category 'tokens' instead. |
| get_componentA | Look up a component by name or id. Read-only, no side effects. Pass context (your current working file or directory) so same-name components resolve by path scope. Returns the component JSON (with its id) when the lookup resolves to exactly one component, or an error listing available names if not found. Detail is opt-in: pass 'api' for the component's declared prop contract, 'usage' for static JSX-site counts and observed prop values, 'relationships' for sorted outgoing uses and derived incoming usedBy counts, 'conflicts' for bounded source-conflict evidence, or 'all' for every projection. These are static source-site facts, never runtime frequency. When several components share the name and neither governance nor scope decides, returns { ambiguous, matches, instruction } — follow the instruction: match each candidate's rationale.when against the user's intent, and if that doesn't decide, ask the user; never pick arbitrarily. Use this when you need implementation details for a known component to reuse it rather than recreate it. For a list of all components, use get_design_context with category 'components' instead. |
| get_conflictsA | Get a bounded, repeatable page of design-system conflicts. Read-only, no side effects. Filter by type, status, scope, exact component name or durable component ID, and a structured fieldPath prefix. Use offset and limit for pagination (default 25, maximum 100). For resolved design values, use get_token or get_component instead. |
| get_inferred_rulesA | Get the design rules inferred from your codebase patterns. Read-only, no side effects. Returns JSON with a list of rules including category, pattern, and confidence, or an error if no rules have been generated yet. Pass category to filter: spacing, colors, typography, borderRadius, naming, components. Omit category to get all. Use this to understand implicit conventions the codebase follows. For explicit design token values, use get_token. For source conflicts, use get_conflicts. |
| get_violationsA | Get hardcoded token values: literals in source code typed inline instead of referencing a design token, bypassing the contract. Read-only, no side effects. Returns JSON with a count, suggestion-coverage stats, and a list with file:line:column, the captured literal, the surrounding utility (e.g. 'bg-[#ff0000]'), and an optional smart-match suggestion when a contract token has the same value. Pass category to filter: 'all' | 'colors' | 'spacing' (hardcoded values are only detected for these). Call this BEFORE generating UI with literal values — prefer the suggested token over a hardcoded literal. For available tokens to use instead, use get_design_context or get_token. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools have distinct purposes, but there are real overlaps: get_component vs get_component_context (both inspect a single component), and get_design_context vs get_component_catalog (both give a system overview). The descriptions mitigate this heavily with explicit cross-references ('for X, use Y instead'), keeping misselection risk low but nonzero.
Eight of nine tools use a clean get_<noun> pattern (get_component, get_token, get_conflicts, get_violations, get_inferred_rules, get_design_context, get_component_catalog, get_component_context). find_components is the lone deviation, but the search-vs-fetch distinction is meaningful and readable.
Nine tools is well-scoped for a read-only design-system inspection server. Each tool covers a distinct facet (catalog, discovery, component detail, tokens, rules, conflicts, violations, context) without redundancy in count.
The surface covers discovery, component lookup, token lookup, inferred rules, conflicts, and violations, giving broad lifecycle coverage for a read-only inspection role. Minor gaps exist (no explicit snapshot-compare or diagnostics tool outside get_design_context), but agents can work around these.