Wp Criu Registry — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Wp Criu Registry (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Este servicio consolida dos cosas en una sola capa:
Streamable HTTP para Codex y ChatGPT./admin, con pestañas separadas para WordPress Bridge y Webmaster IA. El plugin comercial registra cada sitio automáticamente y las invitaciones se crean desde la pestaña Webmaster IA./api/admin/*.GET /sitesGET /sites/:site_idPOST /register-sitePATCH /sites/:site_idDELETE /sites/:site_idsrc/index.ts: entrypoint HTTP, /mcp, /health, /admin y rutas de registry.src/mcp-server.ts: herramientas MCP de Notion y WordPress.src/lib/state.ts: estado persistido del hub.src/notion.ts: adaptador Notion por alias.src/wordpress.ts: adaptador WordPress compatible con el bridge actual.src/cpanel.ts: adaptador HTTPS para UAPI de cPanel y API 1 de WHM.src/admin/*: UI y API técnica de onboarding.Obligatorias en producción:
ADMIN_API_KEYADMIN_SESSION_SECRETWORDPRESS_REGISTRY_TOKENCRIU_COMMERCIAL_TELEGRAM_TOKEN, CRIU_COMMERCIAL_WEBHOOK_SECRET y CRIU_COMMERCIAL_OPENAI_KEY para el conector comercial; nunca se incluyen en el plugin ni en el repositorio.Recomendadas:
MCP_AUTH_MODE=bearerMCP_API_KEYMCP_ALLOWED_HOSTS=mcp.tudominio.com,localhost,127.0.0.1HUB_STATE_FILE=/app/data/hub-state.jsonBootstrap opcional:
NOTION_CONNECTIONS_JSONWORDPRESS_BOOTSTRAP_SITES_FILEHUB_STATE_FILE.NOTION_OAUTH_CLIENT_IDNOTION_OAUTH_CLIENT_SECRETNOTION_OAUTH_REDIRECT_URIGET /GET /healthGET /adminPOST /mcpGET /sitesPOST /register-siteEl conector admite dos modalidades:
cpanel_token, con un token creado dentro de cada cuenta cPanel, normalmente en el puerto 2083.whm_token, con un token reseller/root creado en WHM, normalmente en el puerto 2087.La administración se hace desde estas rutas protegidas por sesión de administrador:
GET /api/admin/connectors/cpanel/accountsPOST /api/admin/connectors/cpanel/accountsPATCH /api/admin/connectors/cpanel/accounts/:accountIdDELETE /api/admin/connectors/cpanel/accounts/:accountIdPOST /api/admin/connectors/cpanel/accounts/:accountId/validateLas herramientas MCP expuestas son cpanel_list_accounts, cpanel_check_account, cpanel_list_mailboxes, cpanel_create_mailbox, cpanel_delete_mailbox y whm_list_accounts.
Por seguridad, los listados nunca devuelven el token. Se recomienda crear tokens con permisos mínimos, expiración y sin acceso global cuando el proveedor lo permita. No se deben registrar contraseñas de cPanel ni tokens WHM en el chat.
La integración usa UAPI para operaciones cPanel y API 1 para WHM. Referencias: UAPI de cPanel, tokens de WHM, Email/list_pops.
El panel permite:
whoami;La idea es no romper el stack actual:
POST /register-site;site_id, site_label y base_url se mantiene;npm install
copy .env.example .env
npm run devPruebas rápidas:
curl http://localhost:3000/health
npm run smoke:httpAbre:
http://localhost:3000/admin./data o define un volumen para HUB_STATE_FILE.MCP_AUTH_MODE=bearer y un MCP_API_KEY privado.MCP_ALLOWED_HOSTS con tu dominio publico y localhost.ADMIN_API_KEY, ADMIN_SESSION_SECRET y WORDPRESS_REGISTRY_TOKEN.NOTION_OAUTH_CLIENT_ID, NOTION_OAUTH_CLIENT_SECRET y NOTION_OAUTH_REDIRECT_URI=https://tu-dominio/api/admin/connectors/notion/oauth/callback.wp_criu_registry actual, monta el mismo volumen y deja WORDPRESS_BOOTSTRAP_SITES_FILE=/app/data/sites.json./mcp para MCP y /admin para onboarding humano.https://tu-dominio/api/admin/connectors/notion/oauth/callbackNOTION_OAUTH_CLIENT_ID, NOTION_OAUTH_CLIENT_SECRET y NOTION_OAUTH_REDIRECT_URI en EasyPanel./admin.alias, label opcional y defaultParentPageId opcional.Conectar con Notion.whoami.Si mcp.criu.com.co hoy responde como wp_criu_registry, la migración segura para reemplazarlo con este hub es:
/app/data.sites.json en ese mismo volumen.HUB_STATE_FILE=/app/data/hub-state.jsonWORDPRESS_BOOTSTRAP_SITES_FILE=/app/data/sites.json/admin que los sitios heredados aparecieron.El hub también intenta detectar automáticamente un sites.json vecino al hub-state.json, de modo que un reemplazo directo no dependa de pasos manuales extra.
Ejemplo con bearer:
[mcp_servers.criu_hub]
url = "https://mcp.tudominio.com/mcp"
bearer_token_env_var = "CRIU_MCP_HUB_TOKEN"El valor de CRIU_MCP_HUB_TOKEN debe ser el mismo MCP_API_KEY del hub.
Diseño recomendado:
Secure MCP Tunnel/mcpHay una guía más aterrizada de uso personal, despliegue y onboarding en docs/OPERACION_PERSONAL.md.
Si este repo ya está desplegado en producción, el estado operativo real y los endpoints live actuales quedaron documentados en docs/ESTADO_LIVE_MCP_CRIU.md.
Importar sitios desde el registry vivo actual a data/sites.json:
LEGACY_REGISTRY_TOKEN=tu_token npm run import:legacy-registryO explícitamente:
node scripts/import-legacy-registry.mjs --url https://mcp.criu.com.co --token tu_token --output ./data/sites.jsonHacer smoke test HTTP/MCP del hub ya levantado:
MCP_HUB_URL=https://mcp.criu.com.co MCP_HUB_TOKEN=tu_token npm run smoke:httpCada integración nueva debería entrar como:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.