Strapi MCP Server
Servidor Strapi MCP
Un servidor de Protocolo de Contexto de Modelo para interactuar con Strapi CMS. Este servidor permite que los asistentes de IA interactúen con su instancia de Strapi a través de una interfaz estandarizada, compatible con tipos de contenido y operaciones de API REST.
⚠️ AVISO IMPORTANTE : Este software se ha desarrollado con tecnología de IA. Se proporciona tal cual y NO debe utilizarse en entornos de producción sin realizar pruebas y validaciones exhaustivas. El código puede contener errores, vulnerabilidades de seguridad o comportamientos inesperados. Úselo bajo su propia responsabilidad únicamente con fines de investigación, aprendizaje o desarrollo.
Registro de cambios
Versión 2.3.0 - Mejora de la documentación y configuración
📚 Se agregó documentación completa del proyecto en CLAUDE.md
⚙️ Opciones de configuración ampliadas con mejor detección de versiones
🛠️ Guías de solución de problemas mejoradas para problemas comunes
🔄 Documentación detallada de la API REST con ejemplos prácticos
📝 Guía de mejores prácticas para la gestión de contenidos
🐛 Análisis de versión fija a partir de diferentes patrones de formato
🔍 Mensajes de error mejorados con orientación específica para cada versión
Versión 2.2.0 - Actualización de seguridad y manejo de versiones
🔒 Se agregó una política estricta de protección contra escritura
🔄 Soporte de formato de versión mejorada (5.*, 4.1.5, v4, etc.)
📚 Documentación integrada en las capacidades del servidor
🚫 Se eliminó el mensaje de conexión (ahora en capacidades)
⚡ Manejo de errores y validación mejorados
🔍 Se agregó una guía de diferencias específicas de cada versión
📋 Documentación de capacidades mejoradas del servidor
Versión 2.1.0
Compatibilidad mejorada con Strapi v4 y v5
Se eliminó la validación automática para admitir diferentes estructuras de datos entre versiones.
Mensajes de error mejorados con sugerencias específicas de la versión
Manejo simplificado de solicitudes para brindarles a los clientes más control
Documentación actualizada con ejemplos claros para ambas versiones.
Related MCP server: Directus MCP Server
Características
🔍 Introspección de esquemas
🔄 Compatibilidad con API REST con validación
📸 Manejo de carga de medios
🔐 Autenticación JWT
📝 Gestión de tipos de contenido
🖼️ Procesamiento de imágenes con conversión de formato
🌐 Soporte para múltiples servidores
✅ Validación automática del esquema
Política de protección contra escritura
📚 Documentación integrada
🔄 Gestión de compatibilidad de versiones
Instalación
Puedes utilizar este servidor directamente con npx en tu configuración de Claude Desktop:
{
"mcpServers": {
"strapi": {
"command": "npx",
"args": ["-y", "@bschauer/strapi-mcp-server@2.5.0"]
}
}
}Configuración
Cree un archivo de configuración en ~/.mcp/strapi-mcp-server.config.json :
{
"myserver": {
"api_url": "http://localhost:1337",
"api_key": "your-jwt-token-from-strapi-admin",
"version": "5.*" // Optional: Specify Strapi version (e.g., "5.*", "4.1.5", "v4")
}
}Puede configurar varias instancias de Strapi agregándolas a este archivo.
Configuración de la versión
El servidor ahora admite varios formatos de versión:
Comodín: "5. ", "4. "
Específico: "4.1.5", "5.0.0"
Sencillo: "v4", "v5"
Esto ayuda al servidor a proporcionar orientación específica de la versión y a gestionar las diferencias de API de forma adecuada.
Obtener un token JWT
Inicie sesión en su panel de administración de Strapi
Cree un token de API con los permisos adecuados
Agregue el token a su archivo de configuración bajo el nombre de servidor apropiado
Uso
Lista de servidores disponibles
strapi_list_servers();
// Now includes version information and differences between v4 and v5Tipos de contenido
// Get all content types from a specific server
strapi_get_content_types({
server: "myserver",
});
// Get components with pagination
strapi_get_components({
server: "myserver",
page: 1,
pageSize: 25,
});API REST
La API REST proporciona operaciones CRUD integrales con validación incorporada y manejo específico de la versión:
// Query content with filters
strapi_rest({
server: "myserver",
endpoint: "api/articles",
method: "GET",
params: {
filters: {
title: {
$contains: "search term",
},
},
},
});
// Create new content
strapi_rest({
server: "myserver",
endpoint: "api/articles",
method: "POST",
body: {
data: {
title: "New Article",
content: "Article content",
category: "news",
},
},
});
// Update content
strapi_rest({
server: "myserver",
endpoint: "api/articles/123",
method: "PUT",
body: {
data: {
title: "Updated Title",
content: "Updated content",
},
},
});
// Delete content
strapi_rest({
server: "myserver",
endpoint: "api/articles/123",
method: "DELETE",
});Carga de medios
// Upload image with automatic optimization
strapi_upload_media({
server: "myserver",
url: "https://example.com/image.jpg",
format: "webp",
quality: 80,
metadata: {
name: "My Image",
caption: "Image Caption",
alternativeText: "Alt Text",
},
});Diferencias de versiones (v4 vs v5)
Diferencias clave entre las versiones de Strapi que el servidor maneja automáticamente:
versión 4
Utiliza identificadores numéricos
Estructura de atributos anidados
Envoltorio de datos en las respuestas
Patrones REST tradicionales
Complemento i18n externo
versión 5
Identificaciones basadas en documentos
Estructura de datos plana
Acceso directo a atributos
Seguridad JWT mejorada
Soporte i18n integrado
Nueva API de servicio de documentos
Características de seguridad
Política de protección contra escritura
El servidor implementa una estricta política de protección contra escritura:
Todas las operaciones de escritura requieren autorización explícita
Las operaciones protegidas incluyen:
POST (Crear)
PUT (Actualizar)
BORRAR
Carga de medios
Cada operación se registra y valida.
Mejores prácticas
Siempre verifique primero el esquema con
strapi_get_content_typesUtilice las formas plural/singular adecuadas para los puntos finales
Incluya el manejo de errores en sus consultas
Validar las URL antes de cargarlas
Comience con consultas mínimas y agregue población solo cuando sea necesario
Incluya siempre el objeto de datos completo al actualizar
Utilice filtros para optimizar el rendimiento de las consultas
Aproveche la validación de esquema incorporada
Verifique la compatibilidad de la versión para sus operaciones
Siga las pautas de la política de protección contra escritura
Consejos sobre la API REST
Filtración
// Filter by field value
params: {
filters: {
title: "Exact Match";
}
}
// Contains filter
params: {
filters: {
title: {
$contains: "partial";
}
}
}
// Multiple conditions
params: {
filters: {
$and: [{ category: "news" }, { published: true }];
}
}Clasificación
params: {
sort: ["createdAt:desc"];
}Paginación
params: {
pagination: {
page: 1,
pageSize: 25
}
}Población
// Basic request without population
params: {
}
// Selective population when needed
params: {
populate: ["category"];
}
// Detailed population with field selection
params: {
populate: {
category: {
fields: ["name", "slug"];
}
}
}Solución de problemas
Problemas comunes y soluciones:
Errores 404
Comprobar la forma plural/singular del punto final
Verificar que el tipo de contenido exista
Asegúrese de que la URL de la API sea correcta
Verifique si se utiliza el formato de identificación correcto (numérico o basado en documento)
Problemas de autenticación
Verificar que el token JWT sea válido
Comprobar los permisos del token
Asegúrese de que el token no haya expirado
Problemas relacionados con la versión
Verificar la especificación de la versión en la configuración
Comprobar que la estructura de datos coincida con la versión
Revisar la documentación sobre las diferencias de versiones
Errores de protección contra escritura
Asegúrese de que la operación esté autorizada
Comprobar si la operación está protegida
Verificar que la solicitud cumpla con la política de seguridad
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Licencia
Instituto Tecnológico de Massachusetts (MIT)
Available Tools
5 toolsstrapi_get_componentsA
Get all components from Strapi with pagination support. Returns both component data and pagination metadata (page, pageSize, total, pageCount).
Inputs: server (required), page, pageSize.
strapi_get_content_typesB
Get all content types from Strapi. Returns the complete schema of all content types.
Initialization Steps (ALWAYS DO FIRST)
Get schema and analyze with this tool
Capture Content Types and structures
Remember endpoint names (pluralName/singularName)
Document fields and types
Identify relations
Consider required fields and validations
Schema Conventions
singularName: Used for single item queries (e.g., "article")
pluralName: Used for collection endpoints (e.g., "articles")
collectionName: Database collection name
Endpoint Patterns
Collection: GET /api/{pluralName}
Single: GET /api/{pluralName}/{id}
Create: POST /api/{pluralName}
Update: PUT /api/{pluralName}/{id}
Delete: DELETE /api/{pluralName}/{id}
Inputs: server (required).
strapi_list_serversC
List all available Strapi servers from the configuration.
Security Policy
STRICT_USER_AUTHORIZATION_REQUIRED: No write operations without explicit user authorization. Protected operations: POST (Create), PUT (Update), DELETE (Delete), Media Upload. All write operations require userAuthorized: true parameter.
Strapi Version Support
Supports both Strapi v4 and v5 with automatic version detection.
Version Differences
v4: Numeric IDs, nested attributes under 'attributes', data wrapper in responses
v5: Document-based IDs (documentId), flat structure, direct attribute access
Common Errors
404: Using numeric ID instead of documentId, wrong plural/singular form
405: Incorrect endpoint (/article instead of /articles)
400: Missing data wrapper in request body
Best Practices
Always check schema first with strapi_get_content_types
Use documentId (not numeric id) for Strapi v5
Always use data wrapper for updates: { data: { field: value } }
Use pluralName for collection endpoints (api/articles)
Validate URLs with webtools before using them
Inputs: no named parameters.
strapi_restA
Execute REST API requests against Strapi endpoints. IMPORTANT: All write operations (POST, PUT, DELETE) require explicit user authorization via the userAuthorized parameter.
Reading Data
params: { populate: ['SEO'] } // Populate a component params: { populate: { SEO: { fields: ['Title', 'seoDescription'] } } } // With field selection params: { filters: { title: { $contains: 'search' } } } // Filter results params: { sort: ['createdAt:desc'] } // Sort results params: { pagination: { page: 1, pageSize: 10 } } // Pagination
Writing Data (REQUIRES userAuthorized: true)
body: { data: { componentName: { Title: 'value' }, // Single component componentName: [{ field: 'value' }] // Repeatable component } }
Debugging Guide
404 Error: Check plural/singular form, use documentId not numeric id
400 Error: Check if data wrapper is present in body
405 Error: Check endpoint format (/articles not /article)
URL Errors: Validate URLs with webtools first
ID Problems: Use documentId for Strapi v5
Strapi v5 Specifics
Use documentId instead of numeric id
Direct attribute access (no nested attributes)
No data wrapper in GET responses
Inputs: server (required), endpoint (required), body, method, +2 more.
strapi_upload_mediaA
Upload media to Strapi's media library from a URL with format conversion, quality control, and metadata options. IMPORTANT: This is a write operation that REQUIRES explicit user authorization via the userAuthorized parameter.
Upload Steps
Upload via strapi_upload_media with URL and metadata
Get image ID from response
Link to content using strapi_rest PUT request
Linking Images to Content (Strapi v5)
After upload, use PUT request to link: { "method": "PUT", "endpoint": "api/articles/{documentId}", "body": { "data": { "images": ["imageId"] } }, "userAuthorized": true }
Inputs: url (required), server (required), format, quality, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool targets a distinct function: schema introspection (components vs content types), server listing, generic REST execution, and media upload. No overlap in purposes.
Tools follow a strapi_verb_noun pattern mostly (get_components, get_content_types, list_servers, upload_media), but 'strapi_rest' deviates by using an acronym instead of a verb. Overall consistent.
5 tools is well-scoped for a Strapi MCP server, covering schema discovery, generic API access, media upload, and server management without superfluous tools.
The tool set provides schema introspection and a generic REST tool for all CRUD operations, plus media upload. Minor gap: no dedicated tool for content entry listing, but the REST tool covers it with schema guidance.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
Related MCP Servers
- AlicenseAqualityFmaintenanceA Model Context Protocol server that enables AI assistants to interact with Confluence content, supporting operations like retrieving, searching, creating, and updating pages and spaces.97 npm12MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows AI tools to connect to and interact with your Directus API, enabling automated access to collections, items, and user data.17 npm27MIT
- AlicenseNot gradedqualityDmaintenanceA server that implements the Model Context Protocol, providing a standardized way to connect AI models to different data sources and tools.10 npm12MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides AI models with structured access to external data and services, acting as a bridge between AI assistants and applications, databases, and APIs in a standardized, secure way.2-