GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Descripción del creador (original en inglés)
Mlola UI components, tokens and design rules for coding agents, with a markup checker
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Funciona en Claude para web, escritorio y móvil:
https://ui.mlola.com/mcpAbre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"mlola-ui": {
"command": "npx",
"args": [
"-y",
"mlola-ui",
"mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add --transport http mlola-ui https://ui.mlola.com/mcpclaude mcp add mlola-ui -- npx -y mlola-ui mcpPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"mlola-ui": {
"url": "https://ui.mlola.com/mcp"
}
}
}Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"mlola-ui": {
"command": "npx",
"args": [
"-y",
"mlola-ui",
"mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"mlola-ui": {
"type": "http",
"url": "https://ui.mlola.com/mcp"
}
}
}Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"mlola-ui": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mlola-ui",
"mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
ChatGPT solo se conecta a servidores en internet:
https://ui.mlola.com/mcpLos nombres de los menús pueden variar un poco según el plan y con el tiempo.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Nombres y descripciones de las herramientas tal como los informó el servidor el 7 nov 2026. Los escribió el creador, no nosotros; los mostramos como texto sin formato.
get_design_rulesThe rules for building UI with Mlola: compose first, color by role, measure with the scales, shared state words, touch and focus. Read once before writing UI.
search_componentsFind components, blocks, pages and templates by what they do (for example 'date range', 'chat input', 'pricing'). Returns name, tier (free or Mlola Pro) and a one-line description.
get_componentEverything needed to use one item: import, every prop with fixed values (variant, tone, size, side…) and its default, the classes it styles and the data-* values each reacts to, dependencies and the install command. Set include_source to read a free component's source.
get_tokensThe --ml-* tokens grouped by purpose (planes and ink, color roles, spacing, type, density, shape, depth, motion, layers…). Filter with a group name or part of a token name.
check_markupChecks HTML or JSX: classes that do not exist, variant classes, data-* values a class does not react to, utility classes, misuse of data-theme or data-mode, and in style attributes, blocks and utility classes (bg-[#fafafa]) hand-written colors, spacing written by hand instead of
get_render_catalogThe components an agent may compose at runtime with Mlola Render, as A2UI v0.9 messages: each component's props and allowed values, how surfaces, data binding and actions work, and complete examples. Read once before composing a surface. format "schema" returns the A2UI catalog (
check_renderChecks A2UI messages (createSurface, updateComponents, updateDataModel, deleteSurface) against the Mlola Render catalog before they render: components and props that do not exist, values a component does not offer, colors or styles set by hand, fields and controls without a name,
render_uiShows an interface in the conversation: a form, a status card, a table of results. Pass A2UI messages composed from the Mlola Render catalog (read get_render_catalog first); they are checked, and drawn with Mlola components where the host shows MCP Apps. When the person presses a
get_install_commandHow to set Mlola up: the commands to run in a project to add components, blocks, pages or templates (with the license step for Mlola Pro items), and the stylesheet link and script for a page with no build step. Leave names out for the setup alone.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub mlolahq, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Respondió en 1495 ms (HTTP 200)
No hace falta iniciar sesión
Leímos 9 descripciones de herramientas y no encontramos instrucciones ocultas para la IA
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 3 de 3 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Funciona de las dos formas: instálalo en tu computadora o conéctate a la versión en la nube.
El repo de GitHub cambió por última vez –, y la última versión (1.14.3) llegó al registro hace 17 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
En la misma categoría: GitHub, Desktop Commander, Cloudflare MCP
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
The Mlola UI source-copy CLI. It writes components, blocks, pages, and templates into your project, rewrites their imports to fit it, and installs the Mlola packages they import with your package manager. Framework-free: the copied markup works in any language that can emit HTML, and React sources use only React.
The library's contract is generated from its own stylesheet, so a model reading it cannot invent a class or attribute that does not exist.
npx mlola-ui init
npx mlola-ui add button sheet hero-split landing npx mlola-ui doctor
init writes mlola.config.json, the engine stylesheet, and the instructions your coding agents read (see below), and installs @mlola-ui/engine. It fits the project it finds: files go where the @/ alias in tsconfig.json points, or into src/ when there is one. Without an alias, as in a new Vite app, it sets "imports": "relative" and the copied files import each other by relative path, so nothing needs setting up first.
add resolves the dependency graph (a page pulls its blocks, a block pulls its components), copies only what you asked for, and installs the packages the copied code imports that package.json does not declare yet. Pass --no-install to only print the command. doctor checks the project against the registry: packages the installed items import, the engine import, the theme attribute, and files changed since they were added.
Tailwind can stay in the project. The engine places Mlola's layers above Tailwind's preflight in either import order.
| Command | What it does |
|---|---|
init [--no-agents] [--no-install] | create mlola.config.json, the stylesheet entry and the agent instructions, and install the engine |
agents | write or refresh the agent instructions in an existing project |
mcp | run the Mlola MCP server over stdio, for coding agents |
add [--no-install] | copy items and their dependencies into the project, and install the packages they import |
list [--json] | print every installable item |
doctor | report project and registry problems |
check [path…] [--json] [--strict] [--all] | check every file's markup and CSS against the contract, and count the colors and spacing typed by hand |
migrate [path…] [--write] [--json] | move a shadcn/ui project's props, toasts and icons to Mlola, and list what needs a person |
render check [--json] | check A2UI messages an agent composed against the Mlola Render catalog; exits 1 on an error |
render catalog [--schema] | print the Mlola Render catalog as the guide an agent reads, or as the A2UI catalog |
render prompt [--tool] [--page-theme] | print the system prompt for a model you call yourself: every answer a surface, or (--tool) a tool the model calls when one helps; --page-theme leaves themes to the page |
login | save a Mlola Pro token (from /account) for this user |
logout | forget the saved token |
check runs the same check as the MCP server's check_markup over every HTML, JSX, TSX, Vue, Svelte, Astro and CSS file in the project (or the paths you name), and reports each issue with its line and fix:
npx mlola-ui check # the whole project
npx mlola-ui check src --json # one folder, every issue as data
It ends with the drift: how many different colors and spacing values were typed by hand instead of read from the tokens, and which ones most. It works in any project, so it can measure one before it uses Mlola. In a Mlola project it leaves out what the CLI installed (--all takes the copied markup in; Mlola's own stylesheets, the built theme among them, are held by the library's gates and never checked); where Tailwind, UnoCSS or Windi is installed it leaves utility classes alone and counts only the values typed into them (bg-[#fafafa], p-[13px]).
It exits 1 when it finds an error (with --strict, a warning too), and on GitHub Actions each issue is also an annotation on the pull request:
# .github/workflows/ui.yml
name: UI on: pull_request jobs: mlola: runs-on: ubuntu-latest steps:
migrate makes the changes a machine can make without guessing, and lists the rest with the line and what to do. Mlola installs a component at the same file shadcn/ui did (components/ui/button.tsx), so imports stay as they are. It reads by default; --write makes the changes.
npx mlola-ui migrate # what would change, and what needs a person
npx mlola-ui migrate --write # make the changes npx mlola-ui add button badge toast --overwrite # the command it prints
It rewrites props written out as literals (variant="destructive" becomes variant="danger", a Badge's variant becomes its tone), moves sonner and the older use-toast to Mlola's toast (toast.error becomes toast.danger), switch to toggle, and the lucide-react glyphs Mlola has to @mlola-ui/icons, in the file's own import style. It leaves a value computed at runtime, a cva() helper and a component whose API differs (Dialog, Select, Dropdown Menu…) to you, naming the attributes or the component that replace each one.
init (or agents, in an existing project) tells the project's coding agents that its UI is Mlola:
mlola.agents.md: the design guide, with every class, data-* value and token, and the rules for new UI;AGENTS.md: a short section between markers pointing at the guide (merged, never overwritten), and CLAUDE.md importing it for Claude Code;.mcp.json (and .cursor/ or .vscode/ when the project uses them): the Mlola MCP server.npx mlola-ui mcp is that server. It answers from the registry bundled with this CLI, offline: get_design_rules, search_components, get_component, get_tokens, check_markup (invented classes, wrong data-* values, utility classes, and hand-written colors, spacing off the --ml-space-* scale or faded text in style attributes, blocks and utility classes, each with its line), get_render_catalog, check_render and render_ui (Mlola Render, below), add_components and init_project. For Claude Code without init:
claude mcp add mlola --scope project -- npx -y mlola-ui mcp
It is started by your agent and talks over stdio, so run by hand it prints one line and waits. The same tools, minus the two that write, answer at https://ui.mlola.com/mcp for agents that cannot run a command (with get_install_command, which also gives the CDN link and script for a page with no build step), and the server is listed in the MCP Registry as io.github.mlolahq/mlola-ui. See https://ui.mlola.com/docs/agents for Cursor, VS Code, Codex and chat apps.
When an agent should show interface instead of writing code for it (a form in a chat, a status card in an agent's app), it composes A2UI v0.9 messages from the Mlola Render catalog: free components and named values, never a color or a class. The check holds them to the catalog and to what makes a surface usable (a name on every field, one root, no loops, headings in order, values in range) and answers in A2UI's VALIDATION_FAILED shape, so the agent fixes its own messages:
npx mlola-ui render catalog # what an agent may compose
npx mlola-ui render check ui.json # an array, one message, or JSON Lines
import { validateRender } from "mlola-ui/render";
import rules from "mlola-ui/render/rules" with { type: "json" };
const { valid, errors } = validateRender(messages, rules);
The MCP tools are get_render_catalog, check_render and render_ui. In a chat that shows MCP Apps, render_ui draws the surface in the conversation (its view is the resource ui://mlola/render), and what the person presses comes back to the agent as their next message, with A2UI's action. The A2UI catalog is mlola-ui/render/catalog and https://ui.mlola.com/a2ui/catalog/v1.
With a model you call yourself, mlola-ui/render/ai is what goes around the call: the system prompt, a reader for what the model answers (as it streams, and however it wrapped the JSON), and the loop that hands a refused reply back with its errors. Mlola never calls a model and holds no key:
import { composeRender } from "mlola-ui/render/ai";
const { valid, messages, turns } = await composeRender({ rules, request: "A form to book a table for tonight", generate: ({ system, messages }) => callYourModel(system, messages), // answers with the model's text });
renderSystemPrompt, renderTool, createRenderReader, readRenderReply, checkRenderReply and renderRepairPrompt are the parts, for a stream, a tool call or a loop of your own. npx mlola-ui render prompt prints the prompt for a server in another language.
To draw surfaces yourself: npx mlola-ui add render-surface in React, or @mlola-ui/behavior/render on a page without a framework. See https://ui.mlola.com/docs/render.
Pro components, blocks, pages and templates are not in this package. With a license, create a token at https://ui.mlola.com/account, then:
npx mlola-ui login mlp_…
npx mlola-ui add conversation bot
add fetches Pro items and their Pro dependencies from the service, checks every file against its integrity hash, and writes them like any other item. Free dependencies still come from this package. Pro stylesheets land in styles/mlola-pro/, gathered by styles/mlola-pro.css: import it once, after the engine stylesheet. mlola-pro.agents.md at the project root lists every Pro class and attribute for coding agents; point your AGENTS.md at it. In CI, set MLOLA_PRO_TOKEN instead of logging in. The token is stored in ~/.config/mlola-ui/credentials.json, readable by you only.
Aliases and targets live in mlola.config.json:
{
"aliases": { "components": "@/components/ui", "blocks": "@/components/blocks", "pages": "@/app/pages", "templates": "@/app/templates" } }
The CLI works from an npm tarball with no repository checkout; the packed installation is tested in CI.
MIT licensed. Part of Mlola UI.