Strapi MCP Server

strapi_rest

Execute REST API requests against Strapi endpoints. IMPORTANT: All write operations (POST, PUT, DELETE) require explicit user authorization via the userAuthorized parameter.

  1. Reading components: params: { populate: ['SEO'] } // Populate a component params: { populate: { SEO: { fields: ['Title', 'seoDescription'] } } } // With field selection
  2. Updating components (REQUIRES USER AUTHORIZATION): body: { data: { // For single components: componentName: { Title: 'value', seoDescription: 'value' }, // For repeatable components: componentName: [ { field: 'value' } ] } } userAuthorized: true // Must set this to true for POST/PUT/DELETE after getting user permission
  3. Other parameters:
  • fields: Select specific fields
  • filters: Filter results
  • sort: Sort results
  • pagination: Page through results

Input Schema

NameRequiredDescriptionDefault
bodyNoRequest body for POST/PUT requests. For components, use: { data: { componentName: { field: 'value' } } } for single components or { data: { componentName: [{ field: 'value' }] } } for repeatable components
endpointYesThe API endpoint (e.g., 'api/articles')
methodNoHTTP method to useGET
paramsNoOptional query parameters for GET requests. For components, use populate: ['componentName'] or populate: { componentName: { fields: ['field1'] } }
serverYesThe name of the server to connect to
userAuthorizedNoREQUIRED for POST/PUT/DELETE operations. Client MUST obtain explicit user authorization before setting this to true.

Input Schema (JSON Schema)

{ "properties": { "body": { "additionalProperties": true, "description": "Request body for POST/PUT requests. For components, use: { data: { componentName: { field: 'value' } } } for single components or { data: { componentName: [{ field: 'value' }] } } for repeatable components", "required": false, "type": "object" }, "endpoint": { "description": "The API endpoint (e.g., 'api/articles')", "type": "string" }, "method": { "default": "GET", "description": "HTTP method to use", "enum": [ "GET", "POST", "PUT", "DELETE" ], "type": "string" }, "params": { "additionalProperties": true, "description": "Optional query parameters for GET requests. For components, use populate: ['componentName'] or populate: { componentName: { fields: ['field1'] } }", "required": false, "type": "object" }, "server": { "description": "The name of the server to connect to", "type": "string" }, "userAuthorized": { "default": false, "description": "REQUIRED for POST/PUT/DELETE operations. Client MUST obtain explicit user authorization before setting this to true.", "type": "boolean" } }, "required": [ "server", "endpoint" ], "type": "object" }