Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
shadcn/ui for Laravel Blade — discover, read and install BlatUI components, blocks and charts.
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 …”.
Works in Claude on the web, desktop and mobile:
https://blatui.remix-it.com/mcpRun this in your terminal
claude mcp add --transport http blatui https://blatui.remix-it.com/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"blatui": {
"url": "https://blatui.remix-it.com/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": {
"blatui": {
"type": "http",
"url": "https://blatui.remix-it.com/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.
ChatGPT connects only to servers on the internet:
https://blatui.remix-it.com/mcpMenu names can differ slightly by plan and over time.
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.
We have not read this server’s tool list yet; we check endpoints in rotation.
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 anousss007, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
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 in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.0.0) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod
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.
Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.
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.
A CLI that copies open-source, copy-paste UI components you own straight into your Laravel project.
155 components · 614 variants · 64 blocks · 70 charts · accessible (WCAG AA) · Livewire-ready · fully themeable · light + dark · MIT
Live demo & docs → blatui.remix-it.com
🧩 This is the BlatUI monorepo. The Composer package is the repo root (
src/+stubs/)
— Packagist reads it directly, so
composer require anousss007/blatuiis unchanged and the
apps/are stripped from the dist tarball. Components are authored in `apps/demo/` and
generated into
stubs/. See Contributing before editing a component.
vendor/. Edit them however you like; updating the package never overwrites your edits.wire:model works on every form control — inputs, selects, checkboxes, switches, sliders, date/time pickers, file uploads and more — with full two-way binding. A free, you-own-the-code alternative to Flux Pro. See the Livewire guide →# 1. Install the CLI
composer require anousss007/blatui
composer require gehrisandro/tailwind-merge-laravel mallardduck/blade-lucide-icons npm install -D alpinejs @alpinejs/anchor @floating-ui/dom @alpinejs/collapse @alpinejs/focus
php artisan vendor:publish --tag=blatui-foundations
php artisan blatui:init
Point your two Vite entrypoints at the published foundations — replace each file's contents:
/* resources/css/app.css */
@import "./blatui.css";
```js
// resources/js/app.js import "./blatui.js";
blatui.cssbrings Tailwind, the design tokens and the@theme
mapping;
blatui.jsboots Alpine + its plugins and lazy-loads ApexCharts. Run
blatui:initto confirm everything (packages, tokens, imports) is wired up.
The foundations are published once and become *yours* — tweak the tokens, drop
the chart engine if you don't need charts, etc.
blatui:initwill tell you
what's still missing.
Everything is additive — you don't replace your files.
@theme inline, oklch). On Tailwind v3, migrate first with npx @tailwindcss/upgrade; blatui:init detects the version.@import "./blatui.css"; to your existing app.css, below @import "tailwindcss";.blatui.js (it would boot a second Alpine). Register BlatUI into your own instance instead, before you start it:import Alpine from 'alpinejs'
import { registerBlatUI } from './blatui-core.js'
registerBlatUI(Alpine) // plugins + theme store + chart/calendar engines window.Alpine = Alpine Alpine.start()
npm install alpinejs (that's the duplicate-Alpine trap) and don't import blatui.js. Install only the plugins — npm install -D @alpinejs/anchor @floating-ui/dom @alpinejs/collapse @alpinejs/focus (add apexcharts only if you use charts) — and register BlatUI onto Livewire's Alpine via the alpine:init hook:import { registerBlatUI } from './blatui-core.js'
document.addEventListener('alpine:init', () => { registerBlatUI(window.Alpine) })
BlatUI registers a theme store for dark mode. If Flux already drives dark mode, pass registerBlatUI(window.Alpine, { darkMode: false }) so the two don't both toggle .dark.
# Add one or more — dependencies are resolved automatically
php artisan blatui:add button card input
php artisan blatui:list
php artisan blatui:list select
php artisan blatui:add --all
Components land in resources/views/components/ui/ as Blade tags:
<x-ui.card class="max-w-sm">
Welcome back Sign in to continue.
Sign in
blatui:add prints any extra composer/npm packages a component needs (e.g. charts pull in apexcharts).
You own the copied files, so an upgrade is never automatic — blatui:update shows you what changed and lets you decide, file by file:
# What would change across everything you have installed?
php artisan blatui:update --dry-run --diff
php artisan blatui:update
php artisan blatui:update button card --force
A file that differs is either your customisation or an outdated copy — nothing on disk tells the two apart, so BlatUI never overwrites one without showing the diff and asking. --force still writes a .bak next to each file it replaces (opt out with --no-backup). Files a family gained in a newer release are simply added.
Running Pint or Prettier over resources/views? Your formatter rewrites the layout of every component you copied, and all of them then read as changed. They are counted separately as *same content, reformatted*, and --ignore-whitespace leaves them out:
php artisan blatui:update --dry-run --ignore-whitespace
The CSS/JS foundations are published, not copied — re-sync those with vendor:publish --tag=blatui-foundations --force; blatui:init tells you when the engine has fallen behind.
Blocks (dashboards, sidebars, login pages…) and the 70 charts are copy-paste from the demo site — they're full-page compositions, not primitives, so you grab the exact source you want rather than installing it:
👉 [Browse blocks & charts on the live demo](https://blatui.remix-it.com/blocks)
| Command | Description |
|---|---|
blatui:init | Doctor — checks packages, Tailwind v4, theme tokens, Alpine/engine wiring |
blatui:list [component] | List all component families, or detail one |
blatui:add | Copy components (+ deps) into your project |
blatui:update [components...] | Diff installed components against this version and update them (--dry-run, --diff, --force, --ignore-whitespace) |
blatui:doctor [path] | Scan your Blade for known footguns (typeless buttons in forms, leaked tags) |
blatui:mcp | Run the MCP server (stdio) so an AI editor can search and install components |
vendor:publish --tag=blatui-foundations | Publish theme CSS + JS engine |
BlatUI is a monorepo — one repo, one PR, one CI. The Composer package is the repo root; the demo/docs site and starter kit are apps that live alongside it (excluded from the published package via .gitattributes).
composer.json src/ stubs/ → the published package (this is what `composer require` gets)
apps/demo/ → authors AND renders every component; the live docs site apps/starter/ → the Laravel starter kit scripts/build-package.sh → regenerates stubs/ from apps/demo (CI enforces it)
Components are authored in `apps/demo/resources/views/components/ui/` (the only place they render, so it's the source of truth); stubs/ is generated — don't hand-edit it. After changing a component, run bash scripts/build-package.sh and commit both. CI fails if they drift. Full guide: CONTRIBUTING.md.
BlatUI is a port of shadcn/ui to the Laravel/Blade ecosystem. Thanks to shadcn and contributors. Icons by Lucide. Charts by ApexCharts.
MIT — free for personal and commercial use.