What is Tenet MCP?
Tenet is a Go based MCP server that reads a project's design system: a point of view statement, design tokens, components, templates and flows, plus checkable rules with reasons, then serves them to an AI coding agent through five tools, plus a critique tool that scans UI source for rule violations.
Tenet is a Go command line tool and MCP server. It reads a project's design system, a point of view statement, design tokens, checkable rules, and optional components, templates and flows, then serves that material to an AI coding agent through five MCP tools.
Point of view, tokens and rules
The point of view is free form Markdown text about the brand. Tokens are named values such as color and spacing, grouped into categories. Rules pair a statement with a reason, and can name the tokens, components, templates or flows they apply to.
Delivery tools and the point of view
get_point_of_view returns the brand statement. get_tokens, get_component, get_template and get_flow each return one item, its text, and the rules linked to it, so an agent reads only what the current task needs.
The critique tool
critique checks UI source text against rules that carry a Forbid: pattern, a regular expression. It returns one finding per match, naming the line and the fix text from the rule, and stays deterministic rather than judging layout or intent.
Who it suits
Best for
- Teams that already wrote down brand voice, tokens and rules, and want an agent to pull the right piece on demand.
- Projects that want an enforceable rule: a
Forbid:regular expression an agent or a script can run against UI source. - Agents that build interfaces and need a point of view beyond generic patterns, matching a project's own conventions.
Not for
- Indexing an existing design system Git repository for pattern and token lookups, where Design System MCP serves that repository's content straight to agents.
- Pulling component code and UI review rules from 31 bundled shadcn based systems, where Better Design MCP already ships that catalog.
- Scoring a finished screenshot for layout, color and type quality, where Design Critique MCP returns those numeric scores instead.
- Running design system diagnostics through a separate command line tool, where Memoire MCP takes that path instead.
Use it with UiChemy
Tenet is a developer level MCP server that shapes an agent's own design system text before it builds. UiChemy turns a Figma design or an AI build into a live WordPress page, so a project can enforce rules upstream and finish layout downstream.
Connect Tenet MCP: Deliver Your Design System Rules to AI Agents to your AI client
claude mcp add --transport stdio tenet -- /absolute/path/to/tenet --dir /absolute/path/to/your/projectBuild the binary
Run
go build -o tenet ./cmd/tenetinside the repository, or try it first withgo run ./cmd/tenet --dir testdata/project.Start a design system
Run
tenet init --dir /path/to/your/projectonce. It writes an empty, valid design system layout and stops if one already exists.Check it
Run
tenet validate --dir /path/to/your/projectbefore connecting, so the point of view, tokens and rules are confirmed valid first.Connect the server
Run the command above with an absolute path to the built binary and your project, then run
claude mcp listand confirm tenet is connected.
What you can do with it
- Five delivery toolsget_point_of_view, get_tokens, get_component, get_template and get_flow each return one item and its linked rules, so a call stays small.
- Rules carry a reasonEvery rule in rules.md pairs a statement with exactly one Reason line, so an agent sees why the rule exists, not just the rule itself.
- Checkable Forbid patternsA rule can add a Forbid regular expression and a Fix line, turning the rule into something the critique tool can test mechanically.
- critique scans UI sourceThe critique tool checks one piece of UI source text against the Forbid patterns in a design system and returns one finding per match.
- validate catches problems earlyThe validate command exits 0 when a design system is valid, 1 when it has problems, and 2 for a usage error, with path and line output most editors can click.
- init starts cleanThe init command writes an empty, valid design system and stops before overwriting one that already exists.
- Stdio JSON-RPC serverThe default command serves MCP over stdio, matching the standard JSON-RPC lifecycle, with a documented way to check it from a terminal.
- A worked reference packA full Stripe inspired reference design system ships in the repository, reverse engineered from public sources, as a complete worked example.
Tools it exposes
get_point_of_view
Returns the project's brand point of view text.
get_tokens
Returns the named values in one token category, plus the rules linked to that category.
get_component
Returns one component's text and the rules linked to it, by id.
get_template
Returns one template's text and its linked rules, by id.
get_flow
Returns one flow's text and its linked rules, by id.
critique
Checks one piece of UI source text against the Forbid patterns in a design system and returns one finding per match.
Frequently asked questions
What is Tenet MCP?
Tenet is a Go based command line tool and MCP server. A project keeps its own design system: a point of view statement, token values, checkable rules with reasons, and optional component, template and flow text. The server reads that material and serves it to an AI coding agent through five delivery tools, plus a critique tool that checks UI source against the rules.
How do I install and connect Tenet MCP?
Build the binary with go build -o tenet ./cmd/tenet, or run it directly with go run ./cmd/tenet --dir testdata/project. Then run claude mcp add --transport stdio tenet -- /absolute/path/to/tenet --dir /absolute/path/to/your/project and confirm the connection with claude mcp list.
What tools does Tenet MCP expose?
It exposes six tools: get_point_of_view for the brand statement, four delivery tools, get_tokens, get_component, get_template and get_flow, that each return one item and its linked rules, and critique, which checks UI source text against Forbid patterns and returns one finding per match.
How does a rule gain a mechanical check?
A rule can add a Forbid line, a regular expression, and a Fix line describing the repair. The critique tool then matches that pattern against UI source text and reports one finding per match, with the fix text from the rule attached.
Does the validate command check anything beyond syntax?
Yes. tenet validate reports missing required text, rules that reference items or token categories that do not exist, and malformed Forbid or Fix lines. It exits 0 when everything is valid, 1 when problems are found, and 2 for a usage error.
Does critique judge design quality?
No. critique is deterministic: it reads UI source text one line at a time and reports regular expression matches, so a pattern cannot span lines or judge layout or intent. The calling agent uses the matches and the rule text to make that judgment.
What happens if init finds a design system already there?
It refuses to run and writes nothing. The init command only creates a fresh, empty, valid design system layout, and stops before touching rules, tokens or other text that already exist in a project.


