Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Finds UI drift in React apps (buttons, cards, colors, spacing) and gives your agent each fix
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"tavero": {
"command": "npx",
"args": [
"-y",
"tavero",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add tavero -- npx -y tavero mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"tavero": {
"command": "npx",
"args": [
"-y",
"tavero",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"tavero": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"tavero",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account baccaraaa, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.7.0) reached the registry 13 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Aiterm MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Persistent terminals and one launcher for Claude, Codex, Grok, Cursor, and Antigravity harnesses.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Tavero
Keep the UI your agent writes consistent.
taveroui.com · Docs · Demo
Tavero scans your running React app, finds drift in buttons, cards, colors and spacing, and gives your coding agent each fix with the file, the line and the token to use. It runs on your machine, as a CLI, an MCP server for Claude Code, Cursor, Codex and other agents, and a local panel where you decide what is intended.
A real finding from the Acme demo in this repository (demo/acme): six pages scanned at three widths.
Node 20 or later, a Vite or Next app on React 19 that runs in dev mode.
npm i -D tavero
npx playwright install chromium # once per machine npx tavero login --url http://localhost:5173/login # once, if the app has a login npx tavero scan --url http://localhost:5173 npx tavero findings
id sev rule decision title evidence f_c75ac3d6a2 high buttons 7 text button styles 7 f_36cb934b5e high scales 13 distinct padding values, 1 declared 12 f_94269275c1 medium buttons Two text button styles differ only in radius, paddingY, pa… 2 f_057122e1f9 medium buttons 4 place(s) write directly in page or section mark… 4 … 30 more, use --page 2
npx tavero finding f_ff30adc07c # evidence: file:line, current value, expected token, crops
npx tavero context # a ~1,500-token brief of the design system for an agent npx tavero report # a self-contained HTML report
Tavero writes only to /.tavero/. Every read command takes --json, and text output is capped at 20 rows so it fits an agent's context.
tavero mcp is an MCP server on stdio with nine tools. Print the config for your client and paste it where it says:
npx tavero mcp --print-config claude # Claude Code: .mcp.json
npx tavero mcp --print-config cursor # .cursor/mcp.json npx tavero mcp --print-config codex # .codex/config.toml npx tavero mcp --print-config gemini # .gemini/settings.json npx tavero mcp --print-config antigravity # .agents/mcp_config.json npx tavero mcp --print-config vscode # .vscode/mcp.json (GitHub Copilot) npx tavero mcp --print-config windsurf # ~/.codeium/windsurf/mcp_config.json
Then paste docs/AGENTS.snippet.md into AGENTS.md, CLAUDE.md or GEMINI.md, so the agent reads the design context before writing UI. SKILL.md is an Agent Skill with the full workflow.
A recorded run of Claude Code on the Acme demo, with no shell, 29 seconds:
› tavero_context
Action button is Button from src/components/Button.tsx (props: variant) › tavero_findings rule=colors f_ff30adc07c Color #4263eb is not a project token › tavero_finding f_ff30adc07c src/app.css:33 literal #4263eb in source expected --acme-primary #3b5bdb (ΔE 3.5) edit src/app.css:33 background: #4263eb → var(--acme-primary) › tavero_scan routes=/billing rules=colors › tavero_diff resolved f_ff30adc07c Color #4263eb is not a project token resolved f_18862a0332 Hardcoded color #4263eb in 1 place(s) new 0
| Tool | Use |
|---|---|
tavero_context | design-system brief; call before writing UI |
tavero_findings, tavero_finding | problems, worst first; one problem with evidence, the expected value and the exact rescan call |
tavero_scan | scan the app; after a fix, only the touched routes and rules. Streams progress, cancellable |
tavero_diff | resolved, new and unchanged findings since the previous scan |
tavero_components, tavero_component, tavero_show, tavero_tokens | inventory, crop paths, tokens |
| Rule | Reports |
|---|---|
buttons | distinct text and icon button styles with the components that render them, near-duplicate pairs, s written outside button components |
cards *(preliminary)* | distinct card styles, near pairs, card-like containers built inline |
colors | colors outside your tokens with the nearest token and ΔE, Tailwind default colors in a project with its own palette, near-identical pairs, hardcoded literals with file and line; in a dark theme, backgrounds that stay light, dark text on a dark page and dark-only colors without a token |
scales | radius, padding, gap, font size, weight and shadow values off the scale your tokens declare |
npx tavero ui --open # http://127.0.0.1:4747
A local panel for the person behind the agent. Go through the findings with the keyboard and decide. The agent sees each decision on its next call, without a rescan.
| Decision | What the agent sees |
|---|---|
| Fix | the finding comes first, marked as confirmed work |
| Intended | hidden until the finding gains new places |
| Canonical | on button and card variants: the reference variant and allowed ones, optionally named ("primary", "ghost"); the others get it as expected |
| Note | a message delivered with the finding |
Decisions are stored in .tavero/decisions.json, keyed by stable finding ids. Commit it to share them with your team and its agents. npx tavero ui --export ./panel writes a static, read-only copy of the panel.
cards rule is marked preliminary.npm ci
npx playwright install chromium npm test # unit and Playwright runtime tests; starts the test apps itself npm run typecheck npm run build
The website lives in site/ (Next.js static export). npm run site:install && npm run site:dev runs it; npm run site:audit runs its gates: Tavero on the site itself with 0 high and medium findings, Lighthouse, axe and three widths.
src/
core/ scan orchestration, aggregates, query API, decisions, diff, stable ids project/ framework detection static/ tokens, Tailwind theme and palette, hardcoded colors, component index runtime/ dev server, session, crawl, in-page collector, attribution, crops rules/ signatures and the four rules context/ the agent-facing brief report/ HTML report mcp/ MCP server, tools, client configs ui/ local panel and static export cli/ the command line demo/acme/ a small dashboard with deliberate drift, used by tests and the website test/ unit and runtime tests with mini Vite and Next apps design/ design tokens shared by the panel and the website site/ the website
See CONTRIBUTING.md before opening a pull request.