home / mcp / mcp strapi server

MCP Strapi Server

Provides CRUD and media management for Strapi content types via a standardized MCP interface.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "devlitus-mcp-strapi": {
      "command": "node",
      "args": [
        "/ruta/absoluta/a/mcp-strapi/dist/index.js"
      ],
      "env": {
        "STRAPI_URL": "http://localhost:1337",
        "STRAPI_API_TOKEN": "tu-token-opcional"
      }
    }
  }
}

You can run a dedicated MCP server that exposes Strapi content via standardized CRUD tools, enabling you to manage any Strapi content type, media, and i18n operations from a consistent interface.

How to use

Launch the MCP Strapi Server and connect your MCP client to it. You will interact with 13 tools that cover creating, reading, listing, updating, and deleting entries, managing content types and fields, handling media, and working with internationalization. Your client will communicate with a local or remote Strapi instance through the MCP bridge, using the predefined content type names in plural form and the standard tools for each operation.

How to install

Prerequisites you need before installing the MCP Strapi Server are Node.js 22 or newer (for native fetch) and a Strapi instance running on localhost:1337 (or a URL you configure via STRAPI_URL). Then install dependencies, configure environment variables, build TypeScript, and run the server.

# Install dependencies
npm install

# Copy environment variables example
cp .env.example .env

# Edit .env with your Strapi configuration
nano .env

# Build TypeScript
npm run build

# Run the MCP Strapi Server
npm start

Additional setup and configuration

Configure the MCP connection in your Claude Desktop or MCP client to point at the Strapi MCP bridge. The server runs as a local process, so you provide the runtime command and environment variables that point to your Strapi instance.

{
  "mcpServers": {
    "strapi": {
      "command": "node",
      "args": ["/ruta/absoluta/a/mcp-strapi/dist/index.js"],
      "env": {
        "STRAPI_URL": "http://localhost:1337",
        "STRAPI_API_TOKEN": "tu-token-opcional"
      }
    }
  }
}

Notes on content types and usage

When performing CRUD operations, always use the PLURAL name of the content type. Do not use the internal UID or singular form.

If you need to discover the correct plural name, use the strapi-list-content-types tool and look for the pluralName field in the response.

There is a known exception for adding fields: you must use the full UID (for example, api::product.product) with strapi-add-field; using the plural name alone will not work.

Environment variables you configure (STRAPI_URL and STRAPI_API_TOKEN) are used by the MCP bridge to reach Strapi and control access during operations.

Troubleshooting

If you encounter a Node 22+ requirement error, verify your Node.js version with node --version and upgrade if necessary.

If Strapi cannot be reached, ensure Strapi is running and accessible at the configured STRAPI_URL, for example by curling the API root.

Available tools

strapi-create

Create a new entry in a content type using the plural contentType name and a data payload.

strapi-read

Read a specific entry by ID or documentId, with optional field selection and population of relations.

strapi-list

List entries with optional filters, sorting, pagination, fields, and population.

strapi-update

Update an existing entry partially by ID or documentId with provided data and optional population.

strapi-delete

Delete an entry by content type and ID or documentId.

strapi-create-with-locales

Create an entry with locale-specific fields or locales information.

strapi-list-content-types

List all available content types.

strapi-get-schema

Get the detailed schema of a specific content type.

strapi-add-field

Add a new field to a content type using the full UID for the target type.

strapi-get-i18n-locales

Retrieve available internationalization locales.

strapi-search-media

Search and filter files in the media library.

strapi-get-media

Get a specific media file by its ID.

strapi-upload-media

Upload a file to the media library.