Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
PlayGuard
Resumen
Descripción del creador (original en inglés)
Proxy MCP for Playwright, Figma, DevTools, Shopify Dev, Context7 — fewer tokens, caching
Los tres pilares de PopNx MCP
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
- Opinión de usuariosiAún no hay reseñasLas reseñas se abrirán junto con las cuentas en una etapa posterior
- Nuestras revisiones básicasi1 de 1 superadasRevisado con información pública; el código aún no se ha escaneado
- UsoiAún sin medir★ –
Qué puedes hacer con él
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
- Conexión: Se ejecuta en tu computadora
- Transporte: stdio
- Categoría: Tiendas en línea y pagos
Instalación
Elige la app de IA que usas y copia la configuración.
Antes de instalar
- Revisiones básicas: 1 de 1 superadas
- Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
- Debes completar tú:
FIGMA_MCP_CMD,FIGMA_MCP_URL,DEVTOOLS_MCP_CMD,SHOPIFY_DEV_MCP_CMD,CONTEXT7_MCP_CMD
Necesitas
- npmNode.js instalado (para el comando npx)
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"playguard": {
"command": "npx",
"args": [
"-y",
"playguard"
],
"env": {
"FIGMA_MCP_CMD": "your-value",
"FIGMA_MCP_URL": "your-value",
"DEVTOOLS_MCP_CMD": "your-value",
"SHOPIFY_DEV_MCP_CMD": "your-value",
"CONTEXT7_MCP_CMD": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add playguard --env FIGMA_MCP_CMD=your-value --env FIGMA_MCP_URL=your-value --env DEVTOOLS_MCP_CMD=your-value --env SHOPIFY_DEV_MCP_CMD=your-value --env CONTEXT7_MCP_CMD=your-value -- npx -y playguardCompleta los valores vacíos antes de ejecutarlo.
O copia la configuración tú
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"playguard": {
"command": "npx",
"args": [
"-y",
"playguard"
],
"env": {
"FIGMA_MCP_CMD": "your-value",
"FIGMA_MCP_URL": "your-value",
"DEVTOOLS_MCP_CMD": "your-value",
"SHOPIFY_DEV_MCP_CMD": "your-value",
"CONTEXT7_MCP_CMD": "your-value"
}
}
}
}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ú.
O copia la configuración tú
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"playguard": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"playguard"
],
"env": {
"FIGMA_MCP_CMD": "your-value",
"FIGMA_MCP_URL": "your-value",
"DEVTOOLS_MCP_CMD": "your-value",
"SHOPIFY_DEV_MCP_CMD": "your-value",
"CONTEXT7_MCP_CMD": "your-value"
}
}
}
}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ú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Valores que debes completar
FIGMA_MCP_CMDenvCommand that starts the Framelink Figma MCP (enables Figma tools)FIGMA_MCP_URLenvOfficial Figma desktop MCP URL, e.g. http://127.0.0.1:3845/mcpDEVTOOLS_MCP_CMDenvCommand that starts Chrome DevTools MCP, e.g. npx -y chrome-devtools-mcp@latestSHOPIFY_DEV_MCP_CMDenvCommand that starts Shopify Dev MCPCONTEXT7_MCP_CMDenvCommand that starts Context7 MCP
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Qué puede hacer
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisiones básicasi
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
- ✓ Superada
El creador coincide con el repo
El nombre en el registro se verificó con la cuenta de GitHub ZenyaDAR, dueña del repo
- … Aún sin revisar
Sigue en mantenimiento
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
Tiene licencia
Todavía no hemos leído este repo en GitHub
- – No aplica
El endpoint responde
Este se ejecuta en tu computadora; no hay endpoint en internet
- – No aplica
Inicio de sesión con OAuth
Se ejecuta en tu computadora y usa ajustes locales en su lugar
- … Aún sin revisar
Sin instrucciones ocultas en las descripciones de herramientas
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con otros en Tiendas en línea y pagosi
- Más estrellas que el 0% de los otros 1753 servidores de esta categoría
- Publicado en el registro más recientemente que el 81% de los otros 1753 servidores de esta categoría
- Revisiones básicas iguales o mejores que el 100% de los otros 1753 servidores de esta categoría
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.
Preguntas frecuentes
¿Es seguro PlayGuard?
Superó 1 de 1 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.
¿Qué claves o códigos necesita?
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
¿Se ejecuta en mi computadora o en la nube?
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
¿Sigue en mantenimiento?
El repo de GitHub cambió por última vez –, y la última versión (0.10.1) llegó al registro hace 5 días.
¿Qué apps pueden usarlo?
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
¿Qué puedo usar en su lugar?
En la misma categoría: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
Alternativas
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
Stripe MCP
MCP server integrating with Stripe - tools for customers, products, payments, and more.
MCP Cn Commerce
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
README del creador
Abrir el README
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.
PlayGuard
A proxy MCP: one MCP server in your client config that runs several MCP servers under the hood, exposes all their tools through a single connection, and optimizes their responses.
You add playguard to your MCP client once. Which upstream MCPs it starts is decided by environment variables in that one config entry — an upstream without its variable is not started and its tools are not listed. Every response passes through PlayGuard on the way back, which adds:
- One connection, several upstreams — Playwright MCP (bundled, always on), Figma (Framelink or the official desktop server), Chrome DevTools MCP, Shopify Dev MCP and Context7. A failing optional upstream only removes its own tools; the others keep working
- Token optimization — compact/delta/
UNCHANGEDsnapshots, Figma tree trimming, network-list summaries, rewritten documentation answers; browser snapshot cost drops 70–90% - Session recovery — dead browser sessions and crashed upstream processes are revived; the agent doesn't see the crash
- Caching — snapshot,
browser_evaluate, Figma and on-disk documentation caches - Screenshot policy — redirect, warn, block, or allow screenshot calls
- Logged savings — every call is written to an NDJSON log;
npm run analyzereports tokens saved per upstream - Two tools of its own —
playguard_a11y_audit(axe-core in the Playwright page) andplayguard_compare_design(Figma node vs live DOM element, Framelink only)
Works with Claude Code, Claude Desktop, Cursor, Codex, or any MCP-compatible agent.
Website: playguard.dev · Docs: How PlayGuard works
Upstream MCPs at a glance
| Upstream | Enable with | What PlayGuard optimizes | Details |
|---|---|---|---|
Playwright MCP (@playwright/mcp, bundled) | always on | Compact / delta / UNCHANGED snapshots, snapshot filters, session recovery, screenshot policy, eval cache, --codegen none, batching hints | Browser |
Figma, Framelink (figma-developer-mcp) | FIGMA_MCP_CMD + FIGMA_API_KEY (any Figma plan) | Optimizer modules, structural budget trim, cache, playguard_compare_design | Figma Optimizer |
| Figma, official desktop server | FIGMA_MCP_URL=http://127.0.0.1:3845/mcp (no key; Figma desktop app + Dev/Full seat on a paid plan) | Passthrough, whole responses, no cache | Official Figma MCP |
| Chrome DevTools MCP | DEVTOOLS_MCP_CMD | Network summary, request trim, snapshot compaction, trace trim, error hints, privacy launch defaults | Chrome DevTools MCP |
| Shopify Dev MCP | SHOPIFY_DEV_MCP_CMD | Response rewrites, disk cache, UNCHANGED repeats, compacted tools/list | Documentation MCPs |
| Context7 | CONTEXT7_MCP_CMD | Response rewrites, disk cache, UNCHANGED repeats, compacted tools/list | Documentation MCPs |
Figma is one option at a time: Framelink or the official desktop server (FIGMA_MCP_URL wins if both are set). Figma's remote server (mcp.figma.com) can't be proxied — see Official Figma MCP.
Choosing upstreams
The env block of the playguard entry decides what runs. Nothing to install separately: Playwright MCP ships with PlayGuard, the others are launched through the command you give. For example, Playwright + Framelink Figma + Shopify Dev:
{
"mcpServers": { "playguard": { "command": "npx", "args": ["-y", "playguard@latest"], "env": { "PLAYGUARD_SCREENSHOTS": "redirect", "FIGMA_MCP_CMD": "npx", "FIGMA_MCP_ARGS": "-y figma-developer-mcp --stdio", "FIGMA_API_KEY": "your-figma-api-key", "SHOPIFY_DEV_MCP_CMD": "npx -y @shopify/dev-mcp@latest" } } } }
Remove a variable to drop that upstream. Restart the MCP client after changing the config — the server and its upstreams are started once per client session.
Architecture
Claude Code / Claude Desktop / Cursor / Codex
│ │ MCP (stdio) — one connection ▼ ┌───────────────────┐ │ PlayGuard │ proxy MCP │ │ │ • router │ browser_* → Playwright MCP (always) │ • recovery │ Figma tools → Framelink / Figma (FIGMA_MCP_CMD / _URL) │ • optimizers │ DevTools tools → Chrome DevTools MCP (DEVTOOLS_MCP_CMD) │ • caches │ Shopify docs tools → Shopify Dev MCP (SHOPIFY_DEV_MCP_CMD) │ • analytics │ Context7 tools → Context7 (CONTEXT7_MCP_CMD) │ • own tools │ playguard_a11y_audit, playguard_compare_design └─────────┬─────────┘ │ one child process per enabled upstream ┌─────────┼───────────┬──────────┬───────────┬──────────┐ ▼ ▼ ▼ ▼ ▼ ▼ Playwright Figma Chrome Shopify Context7 (each optional MCP MCP DevTools Dev MCP except Playwright) │ │ ▼ ▼ Chromium / Firefox / WebKit Chrome (its own instance)
Every upstream except Playwright is optional. If none of FIGMA_MCP_CMD, FIGMA_MCP_URL, DEVTOOLS_MCP_CMD, SHOPIFY_DEV_MCP_CMD and CONTEXT7_MCP_CMD is set, PlayGuard runs with Playwright only. Playwright MCP is bundled as a dependency — no separate installation required. Optional upstreams start lazily and are isolated from each other; tools/list waits a bounded time for a slow one and announces its tools later with tools/list_changed.
Features
Browser (Playwright)
Automatic Session Recovery
PlayGuard intercepts dead-session errors before the agent sees them:
Target.*closed · Browser.*closed · connect ECONNREFUSED · crashed
It restarts Playwright MCP, restores the last URL, and retries the call transparently. Two concurrent calls during a crash → one restart, both calls continue.
Compact Snapshots
browser_snapshot normally returns the full accessibility tree. PlayGuard keeps only lines with [ref=] (interactive elements) and structural landmarks (nav, main, form, dialog, …). Static text and decorative images have no refs and are not needed for navigation.
[PlayGuard compact: 312/1840 lines, ~83% removed, 124.3KB→14.1KB]
Snapshot Filtering
For pages where even the compact tree is large, browser_snapshot accepts optional params to narrow the result to one subtree:
section— return only the landmark subtree whose label starts with or contains this string (e.g."form","navigation \"Footer\"")around— return only the landmark subtree containing this[ref=N], useful once you know a specific element's refdepth— cap the returned subtree's depth (combine withsection/aroundfor a high-level overview first, or use alone to flatten the whole tree)
Falls back to the full snapshot with a [PlayGuard: ... not found] warning if the requested section/ref doesn't exist. Switching filters between calls always forces a fresh snapshot — it never returns a stale UNCHANGED/cached result from a differently-filtered request.
Smart Wait
Set PLAYGUARD_SMART_WAIT=1 to have browser_snapshot retry when a page looks mid-load — few interactive refs plus a loading/spinner/skeleton indicator in the text. Retries PLAYGUARD_SMART_WAIT_MAX_RETRIES times, PLAYGUARD_SMART_WAIT_MS apart, before returning (with a warning if it still looks like it's loading). Off by default — it adds latency to every snapshot call.
Set PLAYGUARD_COMPACT=false to receive the raw snapshot.
Delta Snapshots
When a page changes only slightly, PlayGuard returns a diff instead of the full snapshot:
[PlayGuard delta: +3 added, 1 removed, ~91% saved]
ADDED:
- button "Submit" [ref=47]
REMOVED:
- button "Loading..." [ref=44]
Snapshot Cache + Prefetch
An unchanged page returns UNCHANGED without hitting the browser.
Optional prefetch (PLAYGUARD_PREFETCH_SNAPSHOT=true, off by default since 0.8.0): after browser_navigate, PlayGuard fetches a snapshot in the background so the next browser_snapshot is served from cache. It only pays off for agents that snapshot right after navigating — any browser_evaluate or action in between discards it, and the background call competes with that action for the browser.
Shorter Playwright Responses
PlayGuard starts the bundled Playwright MCP with --codegen none, which drops the ### Ran Playwright code block from every response (80–150 characters per call). Not applied to a custom PLAYWRIGHT_MCP_CMD or when --codegen is already in PLAYWRIGHT_MCP_ARGS; set PLAYGUARD_CODEGEN=keep to restore it.
Batching Hints
Every browser_evaluate / browser_run_code_unsafe call waits at least ~0.5 s inside Playwright MCP for the page to settle. PlayGuard appends a one-line hint to those tools' descriptions (and to browser_wait_for) nudging the agent to combine checks into fewer calls. PLAYGUARD_HINTS=false turns this off.
Screenshot Policy
| Mode | Behavior |
|---|---|
warn (default) | Screenshot executes; warning written to stderr |
redirect | Replaced with browser_snapshot. Pass {visual:true} for a real screenshot; a call with filename, element/ref/target or fullPage always gets pixels |
block | Blocked with an error; agent is told which env var to change |
allow | No restriction |
Eval Cache + Output Compaction
Repeated browser_evaluate calls with the same script on the same URL are served from cache (configurable TTL). Large eval output is truncated to a character limit to avoid blowing the context window.
Accessibility Audit
playguard_a11y_audit runs axe-core (bundled) inside the page the browser_* tools have open and returns a short report instead of axe's raw JSON:
[PlayGuard a11y: 6 violations (6 elements) · 7 rules passed · axe 4.14.0 · wcag2a,wcag2aa,… · https://shop.test/]
critical image-alt — Images must have alternative text (1)
- img Element does not have an alt attribute (+4 more) https://dequeuniversity.com/rules/axe/4.14/image-alt
serious color-contrast — Elements must meet minimum color contrast ratio thresholds (1)
- main > p Low contrast text Element has insufficient color contrast of 1.91 (foreground color: #bbbbbb, …). Expected contrast ratio of 4.5:1
Rules are sorted by impact; each lists at most 5 elements (the rest are counted) with a CSS selector, a 140-char html excerpt and the first way to fix it. Rules axe could not decide are named under "Needs manual review".
| Param | Default | |
|---|---|---|
selector | whole page | Audit only this part, e.g. #cart-drawer — open a dialog first, then audit it |
tags | wcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa | Replaces the default. To add best-practice (non-WCAG advice) or wcag2aaa, pass the defaults plus it. A single string is accepted; any tag that matches no axe rule (a typo) is an error, not a clean report |
Automated checks don't cover keyboard flow or screen-reader wording. The page keeps axe loaded after the first audit.
Figma Optimizer
PlayGuard intercepts Figma MCP responses and runs them through an optimization pipeline before delivering to the agent.
[PlayGuard figma: -68% (284.0KB→91.0KB)]
Note: Modules 1–4 and 6 target raw Figma REST API JSON (
document.children,componentId,fillGeometry). I
Solo se muestra el principio; lee el resto en el repo