mcp-strapi-cms
v1.0.0
Published
MCP server for managing Strapi CMS use cases, media, and localizations
Maintainers
Readme
mcp-strapi-cms
MCP server for managing Strapi CMS use cases, media, and localizations via the Model Context Protocol.
Setup
Environment Variables
| Variable | Description |
|----------|-------------|
| STRAPI_URL | Strapi instance URL (e.g. https://cms.example.com) |
| STRAPI_API_TOKEN | Full-access API token from Strapi admin |
MCP Configuration
Add to your .mcp.json or Claude Desktop config:
{
"mcpServers": {
"strapi-cms": {
"command": "npx",
"args": ["mcp-strapi-cms"],
"env": {
"STRAPI_URL": "https://cms.example.com",
"STRAPI_API_TOKEN": "your_token_here"
}
}
}
}Available Tools
Use Cases
| Tool | Description |
|------|-------------|
| strapi_list_use_cases | List all use cases (with locale filter) |
| strapi_get_use_case | Get a single use case by document ID |
| strapi_create_use_case | Create a new use case |
| strapi_update_use_case | Update an existing use case |
| strapi_delete_use_case | Delete a use case (supports locale-specific deletion) |
| strapi_add_metrics | Add or replace metrics for a use case |
| strapi_add_partners | Add or replace partners for a use case |
Media
| Tool | Description |
|------|-------------|
| strapi_list_media | List all media files |
| strapi_upload_image | Upload and link an image to a use case |
| strapi_delete_media | Delete a single media file |
| strapi_delete_media_batch | Delete multiple media files at once |
Localization
| Tool | Description |
|------|-------------|
| strapi_create_localization | Create a localized version (e.g. EN) of an existing use case |
Development
npm install
npm run dev # Run with tsx (hot reload)
npm test # Run tests
npm run lint # Check code style
npm run build # Compile TypeScriptImportant Notes
- Images must be uploaded last. Strapi v5 changes internal numeric IDs when entries are updated via PUT. Upload images only after all text, metrics, and partner changes are complete.
- Delete with locale. When deleting locale-specific entries, always pass the
localeparameter — otherwise EN-only entries may not be deleted. - Numeric ID vs Document ID. Use
documentIdfor content operations (CRUD), butid(numeric) for image uploads.
License
MIT
