MCP (Model Context Protocol) es un estándar para que un asistente de IA pueda usar herramientas externas. Si tu CMS lo habla, el asistente puede leer tus artículos, crear uno nuevo o corregir un campo sin que copies y pegues nada. Payload tiene un plugin oficial para esto. Así lo usamos en este sitio.
Qué consigues
Con el servidor MCP activo, desde un asistente puedes pedir cosas como «lista los artículos de la categoría CMS» o «crea un borrador con este texto». El asistente llama al CMS por el protocolo, con permisos que tú defines, no por la pantalla del panel.
Paso 1: instala el plugin
pnpm add @payloadcms/plugin-mcpPaso 2: elige qué se expone
Lo importante del plugin es lo que no activas. En plugins/index.ts:
mcpPlugin({
userCollection: 'users',
collections: {
posts: {
enabled: true,
description: 'Artículos del blog, localizados en es y en.',
},
projects: {
enabled: true,
description: 'Casos y proyectos entregados, localizados en es y en.',
},
categories: { enabled: true },
authors: { enabled: true },
media: { enabled: { find: true, create: true, update: true } },
},
globals: {
'site-settings': { enabled: true, description: 'Contacto, redes y clientes.' },
header: { enabled: true, description: 'Menú principal y megamenú.' },
footer: { enabled: true, description: 'Pie de página.' },
},
}),Fíjate en tres cosas:
- Solo expones lo que el asistente necesita. Nuestras colecciones de usuarios o de envíos de formularios no aparecen.
- La
descriptionde cada colección ayuda al asistente a saber para qué sirve. Escríbela como se la explicarías a una persona nueva. - En
mediase activan solofind,createyupdate. No haydelete.
Paso 3: controla quién puede entrar
Las claves de API viven en su propia colección. Nosotros ajustamos su control de acceso para que solo usuarios autenticados las gestionen:
overrideApiKeyCollection: (collection) => ({
...collection,
access: {
admin: ({ req }) => Boolean(req.user),
read: authenticated,
create: authenticated,
update: authenticated,
delete: authenticated,
},
}),Paso 4: crea una clave y conecta el asistente
En el panel de administración, en la sección MCP → API Keys, crea una clave y revisa los permisos que el plugin te deja asignar. Luego, con Claude Code:
claude mcp add --transport http codegea http://localhost:4000/api/mcp \
--header "Authorization: Bearer <API_KEY>"El servidor responde en /api/mcp de tu propia aplicación. En producción, cambia la URL por la de tu dominio.
Buenas prácticas
- Una clave por persona o herramienta, con los permisos mínimos. Así revocas una sin afectar al resto.
- No subas la clave al repositorio. Se guarda en la configuración del asistente, no en el código.
- Empieza con permisos de lectura y añade escritura cuando sepas qué necesitas.
- Revisa lo que crea. Un asistente puede publicar texto sin revisar. Deja las escrituras en borrador si tu flujo lo permite.
- Ten en cuenta el contenido que lee. Lo que está en tu CMS pasa al asistente como contexto; si hay datos privados, no habilites esa colección.
Cuándo no vale la pena
Si editas contenido unas pocas veces al mes, el panel de siempre es más simple. MCP se paga solo cuando haces tareas repetitivas o por lotes: migrar cien artículos, traducir, revisar campos SEO, subir imágenes con su texto alternativo.
Más sobre el CMS que usamos en Payload vs Strapi vs Directus.
Escrito por
Derian Pinto
Founder & Full Stack Developer
Fundador de Codegea. Desarrolla sitios, tiendas y plataformas a medida, e integra y da soporte a Arc XP para medios.