wp_criu
This server is a WordPress management hub that acts as an MCP Hub for Codex and ChatGPT, letting you remotely inspect, configure, and control WordPress sites. It also integrates with Notion via OAuth and persists state in a JSON store.
Site Management
list_sites– List configured WordPress sites (optionally filtered by environment)get_site_info– Validate connection and retrieve metadata for a specific site
Plugin Management
list_plugins– List all installed pluginsplugin_action– Activate, deactivate, or delete a plugininstall_plugin_zip– Install a plugin from a ZIP file and optionally activate it
Theme Management
list_themes– List all installed themesactivate_theme– Activate a theme by its stylesheet identifier
WordPress Options
get_options– Read one or more WordPress optionsupdate_options– Update WordPress options via a JSON object
File System Access
read_file– Read any file within the site's ABSPATHwrite_file– Write a file within the site's ABSPATH (with optional backup, supports text or base64)
Database Access
db_query– Execute read-only SQL queries on a site's database
REST API Proxy
rest_proxy– Call any internal WordPress REST API route (GET, POST, PUT, PATCH, DELETE)
Translations
check_translations– Verify string translations for a given text domaincheck_plural_translations– Verify plural translations for a given text domain
WooCommerce
get_wc_checkout_fields– Retrieve the WooCommerce checkout fields structure
Raw Bridge Access
bridge_raw_request– Make a raw GET or POST call to any bridge endpoint for untyped operations
Allows to inspect WooCommerce checkout fields.
Allows to manage one or more WordPress sites, including listing sites, inspecting sites, managing plugins and themes, reading and updating options, reading and writing files, executing read-only SQL, using a REST proxy, and automatically registering sites via an HTTP endpoint.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@wp_criulist all registered WordPress sites"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Hub propio para Codex y ChatGPT
Este servicio consolida dos cosas en una sola capa:
MCP remoto por
Streamable HTTPpara Codex y ChatGPT.Panel técnico y registry compatible para onboarding de conectores y sitios WordPress.
Qué incluye ahora
Hub MCP con herramientas de Notion y WordPress.
State store persistido en JSON para onboarding editable.
Panel técnico en
/admin.Admin API en
/api/admin/*.Registry WordPress compatible:
GET /sitesGET /sites/:site_idPOST /register-sitePATCH /sites/:site_idDELETE /sites/:site_id
Related MCP server: WordPress + WooCommerce MCP Server
Arquitectura
src/index.ts: entrypoint HTTP,/mcp,/health,/adminy 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/admin/*: UI y API técnica de onboarding.
Variables de entorno
Obligatorias en producción:
ADMIN_API_KEYADMIN_SESSION_SECRETWORDPRESS_REGISTRY_TOKEN
Recomendadas:
MCP_AUTH_MODE=bearerMCP_API_KEYMCP_ALLOWED_HOSTS=mcp.tudominio.com,localhost,127.0.0.1HUB_STATE_FILE=/app/data/hub-state.json
Bootstrap opcional:
NOTION_CONNECTIONS_JSONWORDPRESS_BOOTSTRAP_SITES_FILENOTION_OAUTH_CLIENT_IDNOTION_OAUTH_CLIENT_SECRETNOTION_OAUTH_REDIRECT_URI
Rutas principales
GET /GET /healthGET /adminPOST /mcpGET /sitesPOST /register-site
Panel técnico
El panel permite:
iniciar autorizaciones de Notion por OAuth;
almacenar y editar conexiones Notion ya autorizadas;
validarlas con
whoami;registrar sitios WordPress a mano;
ver estado de bridge;
ocultar o desactivar sitios sin borrarlos lógicamente del modelo;
eliminar sitios del registry;
ver el catálogo técnico para futuros conectores.
Compatibilidad WordPress
La idea es no romper el stack actual:
el plugin WordPress puede seguir enviando auto-registro a
POST /register-site;el modelo por
site_id,site_labelybase_urlse mantiene;las herramientas MCP WordPress conservan los mismos nombres usados antes.
Uso local
npm install
copy .env.example .env
npm run devPruebas rápidas:
curl http://localhost:3000/health
npm run smoke:httpAbre:
http://localhost:3000/adminDespliegue en EasyPanel
Crea el servicio desde este directorio.
Persiste
./datao define un volumen paraHUB_STATE_FILE.Configura
MCP_AUTH_MODE=bearery unMCP_API_KEYprivado.Configura
MCP_ALLOWED_HOSTScon tu dominio publico y localhost.Configura
ADMIN_API_KEY,ADMIN_SESSION_SECRETyWORDPRESS_REGISTRY_TOKEN.Si vas a conectar Notion desde el panel, configura
NOTION_OAUTH_CLIENT_ID,NOTION_OAUTH_CLIENT_SECRETyNOTION_OAUTH_REDIRECT_URI=https://tu-dominio/api/admin/connectors/notion/oauth/callback.Si vienes del
wp_criu_registryactual, monta el mismo volumen y dejaWORDPRESS_BOOTSTRAP_SITES_FILE=/app/data/sites.json.Publica el servicio por HTTPS.
Usa
/mcppara MCP y/adminpara onboarding humano.
Onboarding de Notion
Crea una integración pública de Notion y define como redirect URI:
https://tu-dominio/api/admin/connectors/notion/oauth/callback
Carga
NOTION_OAUTH_CLIENT_ID,NOTION_OAUTH_CLIENT_SECRETyNOTION_OAUTH_REDIRECT_URIen EasyPanel.Entra a
/admin.Escribe
alias,labelopcional ydefaultParentPageIdopcional.Pulsa
Conectar con Notion.Autoriza la integración en Notion.
Vuelve al panel y valida con
whoami.
Migración directa desde el registry actual
Si mcp.criu.com.co hoy responde como wp_criu_registry, la migración segura para reemplazarlo con este hub es:
Respaldar el volumen actual de
/app/data.Mantener el archivo legado
sites.jsonen ese mismo volumen.Desplegar este servicio con:
HUB_STATE_FILE=/app/data/hub-state.jsonWORDPRESS_BOOTSTRAP_SITES_FILE=/app/data/sites.json
Arrancar el hub nuevo.
Confirmar en
/adminque 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.
Codex
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.
ChatGPT
Diseño recomendado:
camino principal:
Secure MCP Tunnelfallback: endpoint HTTPS directo a
/mcp
Guía operativa
Hay 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.
Scripts útiles
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:httpFuturos conectores
Cada integración nueva debería entrar como:
manifest del conector
config schema
health check
admin form
entidades administrables
adaptador MCP
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/criustudio/wp-criu-registry'
If you have feedback or need assistance with the MCP directory API, please join our Discord server