dbravoan / dbcms-module-mcp
Servidor MCP estándar con transporte Streamable HTTP / JSON-RPC 2.0 y autenticación mediante Laravel Passport para agentes externos.
Package info
github.com/dbravoan/dbcms-module-mcp
Type:dbcms-module
pkg:composer/dbravoan/dbcms-module-mcp
Requires
- dbravoan/dbcms-core: ^1.0
- laravel/mcp: ^1.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Qué hace
dbravoan/dbcms-module-mcp expone capacidades CMS registradas mediante Streamable
HTTP en /mcp/cms. Instala/activa mcp y habilita sus ajustes. Conecta un cliente
compatible por HTTPS; el endpoint no es un recurso REST JSON convencional.
La autenticación usa Bearer Passport. Se exige mcp:access y el scope apropiado
mcp:read, mcp:write o mcp:destructive, además de permisos del actor CMS.
Emite tokens humanos con usuario y scopes mínimos explícitos:
./vendor/bin/sail artisan cms:issue-mcp-token --user=USER_ID --scopes=mcp:access,mcp:read
Los clientes de servicio usan cms:create-m2m-client --role=EXISTING_ROLE con
scopes explícitos y asociación real de cuenta de servicio. Conserva credenciales
solo en el almacén de secretos del cliente y protege las claves Passport.
Inicializa, inspecciona tools/list y descubre el catálogo vivo mediante
cms_capabilities, cms_entity_types y cms_resource_types cuando existan.
Descubre IDs, idiomas y mercados reales antes de mutar. Los módulos opcionales
determinan las operaciones disponibles.
Para componer secciones, consulta cms_block_types con entity_type, locale y
market reales; opcionalmente entity_id y block_type. El catálogo del núcleo
incluye esquemas anidados, opciones, campos de medios y referencias contextuales,
filtrados por disponibilidad y permiso de entidad. Las páginas Blade no admiten
edición de secciones. tools/list conserva el JSON Schema de las capacidades,
incluidas uniones, restricciones y estructuras anidadas.
Un agente con su propio modelo puede usar el catálogo, guardar borradores y subir
imágenes sin AiAssistant. cms_media_upload recibe filename y content_base64;
cms_media_import recibe url pública, title y alt_text opcionales. Requieren
mcp:write y manage:media. Las imágenes admiten hasta 50 MB y se guardan en la
biblioteca con el almacenamiento configurado. El selector del panel ofrece las
mismas vías de subida e importación. Consulta o modifica metadatos mediante el
recurso media autorizado.
cms_ai_generate_image utiliza el proveedor de imagen configurado en AiAssistant,
con use:ai y manage:media, además de permisos del destino si se asocia contenido.
Un proveedor de texto no acredita generación de imágenes. Reutiliza el ID y la URL
del medio almacenado; no vuelvas a generar si solo falló su asociación. Si una
acción responde status: needs_input, solicita lo indicado antes de continuar;
no lo interpretes como contenido completado. Generar o subir no publica.
HTTP 200 puede incluir una herramienta rechazada: inspecciona el resultado antes
de afirmar éxito. Las operaciones sensibles devuelven ejecución revisable;
confirm:true no concede aprobación y el agente no se aprueba a sí mismo. Muestra
la URL de revisión a la persona autorizada. La revisión editorial es independiente.
Verifica estado final de la entidad y su versión pública. Consulta el
contrato de extensiones.
Requisitos y dependencias
dbravoan/dbcms-core^1.0laravel/mcp^1.0- Identificador CMS:
mcp
Instalación y activación
Instala el paquete con Composer e instálalo/actívalo en el CMS (mcp). Habilita además sus ajustes (is_enabled, etc.).
Configuración
Ajustes del módulo (claves por nombre):
is_enabledrate_limit_per_minute
Rutas
- Endpoint Streamable HTTP:
POST /mcp/cms(y variantes documentadas enRoutes/native.php) - Panel: prefijo
{admin_path}/modules/mcp(guía / generate-token enRoutes/web.php)
Comandos Artisan
Este módulo no define comandos Artisan propios en su árbol.
Los siguientes comandos viven en el núcleo (packages/core/src/Console/Commands/); consulta el README del núcleo:
cms:issue-mcp-token—IssueMcpTokenCommandcms:create-m2m-client—CreateM2mClientCommand
Ejemplo de uso (comando de core):
./vendor/bin/sail artisan cms:issue-mcp-token --user=USER_ID --scopes=mcp:access,mcp:read
Permisos
Permisos/scopes relevantes:
- scope Passport
mcp:access - scope Passport
mcp:read - scope Passport
mcp:write - scope Passport
mcp:destructive access:admin(panel/ajustes)manage:modules(panel/ajustes)
Privacidad y datos
Las ejecuciones/revisiones sensibles las posee el núcleo (executions) u otros módulos. Emite tokens con scopes mínimos. No hay comando privacy propio del módulo MCP.