dsbridge
dsbridge
Un servidor MCP que responde a una pregunta sobre cualquier aplicación: ¿se mantiene el contrato entre el sistema de diseño que instaló y la aplicación? Cada valor que la aplicación escribe y cada componente que renderiza, ordenados por su origen — el sistema de diseño, un nombre que la aplicación se dio a sí misma, o nada en absoluto — y lo que la propia marca de la aplicación hace para contrastar.
Pregunta desde dentro de una aplicación consumidora, en lenguaje natural — "comprueba mi uso del sistema de diseño" — y recibe el informe en forma de tablas, en la terminal, con un archivo y una línea para cada fila.
web · 2026-08-26
@acme/tokens · @acme/react — 67% of written values came through the system
values written count share
------------------------------------ ----- -----
through a design system token 234 67%
through a token the app named itself 112 32%
through no token at all 2 1%
Values with no token behind them (2)
kind written a token already holds
---- ------- ---------------------
size 2 —
components rendered kinds places
------------------------------------------- ----- ------
from the design system 63 511
the app's own 144 649
of those, could move into the system 14 —
of those, a name the system already ships 0 —
from another package 9 132
shipped by the system, never rendered 9 —
The app's own components (144)
component rendered in files note
----------- -------- -------- --------------------------
AuthorLine 9 4 could move into the system
TagList 6 4 could move into the system
Section 4 4 could move into the system
MemberList 16 3 could move into the system
CountBadge 8 3 could move into the system
FilterChips 8 3 could move into the system
ActionBar 3 3 could move into the system
RailCard 4 3 could move into the system
SplitPane 5 2 could move into the system
Byline 3 2 could move into the system
… and 134 more
Never rendered (9)
Container, DateTimePicker, Popover, ProgressBar, Spinner, Tab, TabList, TabPanel, Tabs
tokens count
-------------------------------------- -----
declared by the design system 268
read by the app 67
re-pointed by the app's brand 60
declared by the app itself 47
of those, read anywhere 46
read by the app and declared by nobody 0
Tokens the app named itself (47)
where token value read the system holds this value too
---------------------------------- ------------- --------------------- ---- -------------------------------
…/web/src/app/frames.module.css:13 --logo-height var(--acme-logo-md) 1
…/web/src/app/frames.module.css:28 --logo-height var(--acme-logo-lg) 1
…/Logo/Logo.module.css:27 --logo-height var(--acme-logo-sm) 1
…/Logo/Logo.module.css:41 --logo-height var(--acme-icon-slot… 1
…/src/tokens/brand.css:17 --brand-red #990100 1
…/src/tokens/brand.css:18 --brand-rose #ecdbdb 1
…/src/tokens/brand.css:19 --brand-paper #fdfaf1 2
…/src/tokens/brand.css:20 --brand-white #ffffff 1 --acme-color-on-accent
… and 39 more
WCAG 1.4.3 contrast pairs in the system in the app
------------------------------------------------ ----- ------------- ----------
pass 107 97 10
fail 3 3 0
exempt: an inactive control is not asked to pass 7 7 0
not measurable 17 17 0
text over media, where no ratio exists 5 — —
Contrast failures (3)
where selector text on surface light dark needs fails
--------------------------- ------------------------ -------------------------------- ----- ----- ----- -----
…/react/dist/index.css:2559 .acme-ImageCarousel__co… --acme-text-on-media on --acme-… 2.60 19.88 4.5 light
…/react/dist/index.css:2782 .acme-VideoPlayer__start --acme-text-on-media on --acme-… 2.60 19.88 4.5 light
…/react/dist/index.css:530 .acme-Chip__variant-soft --acme-text-accent on --acme-ac… 6.67 4.39 4.5 darkInstall
Node 20 o superior. Un solo comando, nada que clonar:
claude mcp add --scope user dsbridge -- npx -y github:blumaa/dsbridge--scope user escribe ~/.claude.json, por lo que el servidor está disponible en todos los repositorios sin estar instalado en ninguno de ellos. Sin hooks, nada que se ejecute por sí solo, nada añadido a la aplicación consumidora. Reinicia la sesión y claude mcp list debería mostrarlo conectado.
La primera ejecución clona este repositorio y lo compila — el script prepare compila en la instalación, por eso dist/ no está confirmado. Las ejecuciones posteriores provienen de la caché de npx. Para obtener una nueva versión, límpiala: npx clear-npx-cache.
Cualquier cliente MCP funciona. El servidor habla stdio y el comando es npx -y github:blumaa/dsbridge.
Para trabajar en ello en lugar de solo usarlo:
git clone git@github.com:blumaa/dsbridge.git
cd dsbridge && pnpm install
claude mcp add --scope user dsbridge -- node "$PWD/dist/server.js"Related MCP server: GDS MCP
Use
Dos herramientas. Ambas aceptan un path opcional y usan por defecto el directorio de trabajo.
Tool | Returns |
| El informe anterior: una tabla por pregunta, diez filas en cada lista |
| El mismo informe con cien filas en cada lista en lugar de diez, y hasta quinientas a petición |
Pide cualquiera de las dos con palabras. "¿Dónde se está desviando esta aplicación del sistema de diseño?" llega a la segunda.
No se escribe nada en ningún sitio. La aplicación se lee y se deja exactamente como se encontró, y el informe es toda la respuesta — no hay ningún archivo que abrir después.
Qué mide
Cada valor escrito y cada componente renderizado, ordenados por su origen: el sistema de diseño, algo que la aplicación se nombró a sí misma, o nada en absoluto.
Valores — cuántos vinieron a través de un token del sistema, a través de un token que la aplicación declaró, y a través de ninguno, con los escritos a mano desglosados por qué son valores. Una escala de color a la que nadie puede acceder es un trabajo diferente de una escala de espaciado que nadie usó.
Componentes — cuántos tipos renderiza la aplicación del sistema, cuántos son propios y cuántos vienen de otros lugares. De los propios de la aplicación: cuáles ya los ofrece el sistema con ese nombre y cuáles podrían pasar a él — un componente cuyo archivo no importa nada más que el sistema, React y una hoja de estilos no retiene nada de esta aplicación.
Tokens — declarados, leídos, re-apuntados por la marca de la aplicación, declarados por la aplicación junto a uno existente, o leídos y declarados por nadie, lo que es una referencia rota. Dos tokens cuentan como un solo valor solo cuando se leen para el mismo tipo de cosa: en una cuadrícula de ocho puntos, un espaciado y una altura pueden tener ambos 8px sin significar lo mismo.
Contraste — cada par de texto y fondo que la aplicación puede renderizar, resuelto bajo la propia marca de la aplicación en claro y oscuro, contra WCAG 1.4.3 y 1.4.11, y dividido por qué hoja de estilos escribió el par.
Nada se descarta por ser difícil. El texto sobre un degradado o una imagen se informa por separado, y un par que no se puede resolver se informa con el motivo. Los controles inactivos se muestran como exentos en lugar de contarse en contra de la aplicación, porque WCAG no les exige que pasen.
Sin configuración
No hay archivo de configuración ni nada que nombrar. El sistema de diseño se encuentra por forma: el paquete de tokens es la dependencia instalada que declara la mayoría de las propiedades personalizadas, y el paquete de componentes es el miembro de la familia que solo las gasta. Cualquier sistema de diseño, cualquier aplicación.
Desarrollo
pnpm verify # build, typecheck, testLas pruebas se ejecutan contra aplicaciones de ejemplo en src/__fixtures__, incluidos sus node_modules, que se confirman a propósito — cómo un paquete declara sus exportaciones es lo que se está probando.
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Query and audit AppSheet apps in natural language via Knotrik's pre-scanned definitions.
Statically audits MCP tool surfaces for token cost, schema quality, and design issues.
Query your SEO data in plain language: rankings, audits, backlinks, competitors and AI visibility.
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
Related MCP Servers
- AlicenseAqualityFmaintenanceQueries Aurum design system components, tokens, icons, Figma node IDs, and changelog via LLM clients.9MIT
- FlicenseAqualityDmaintenanceExposes Levit design system (GDS) metadata to AI coding tools, enabling queries about color tokens and component usage via natural language.11
- FlicenseNot gradedqualityDmaintenanceEnforces agent design system compliance with tools to check guards, explain gaps, issue receipts, suggest fixes, and export audits.
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to score live URLs against a 40-check design contract, validate DTCG tokens and Lottie animations, audit accessibility, and retrieve design-system contracts, catalogs, and review rubrics.35MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/blumaa/dsbridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server