strapi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STRAPI_TIMEOUT | No | HTTP request timeout in seconds | 30 |
| STRAPI_BASE_URL | Yes | URL of your Strapi instance | http://localhost:1337 |
| STRAPI_API_TOKEN | Yes | API token for authentication. Create in Strapi Admin > Settings > API Tokens. | |
| STRAPI_API_VERSION | No | Strapi version: auto, v4, or v5 | auto |
| STRAPI_MAX_PAGE_SIZE | No | Maximum entries per page (1-100) | 100 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_content_typesA | List all user-defined content types registered in the Strapi instance. Fetches content types from the Content-Type Builder API and filters to only include those in the 'api::' namespace (i.e., user-created types). Use this as a first step to discover what content is available before querying entries. |
| get_content_type_schemaA | Retrieve the detailed field schema for a specific Strapi content type. Returns all field definitions including types, required status, and relations, formatted as a readable list. Use this before creating or updating entries to understand the expected data structure and required fields. |
| get_componentsA | List all reusable components defined in the Strapi instance. Components are shared field groups that can be embedded in multiple content types (e.g., SEO metadata, address blocks). Use this to understand available components before referencing them in content type schemas or entry data. |
| list_entriesA | List content entries from a Strapi content type with full pagination, sorting, and filtering support. Returns entries formatted as a readable markdown list with metadata and pagination info. Use this to browse and explore content, applying filters and sort orders as needed. Call list_content_types first if you are unsure which content types are available. |
| get_entryA | Retrieve a single content entry by its ID with full field and relation data. Returns the complete entry including all populated relations and metadata fields. Use this when you need the full details of a specific entry after finding it via list_entries or search_entries. |
| create_entryA | Create a new content entry in the specified Strapi content type. Accepts a JSON string with field values that match the content type schema. Use get_content_type_schema first to understand which fields are required and their expected types before calling this tool. |
| update_entryA | Update an existing content entry by its ID with partial or full field data. Only the fields included in the data JSON will be modified; other fields remain unchanged. Use get_entry first to see the current values, then provide only the fields you want to change. |
| delete_entryA | Permanently delete a content entry by its ID from the specified content type. This action is irreversible and will remove the entry and its associated data. Use get_entry first to verify you are deleting the correct entry. If a locale is specified, only that localization is removed. |
| upload_mediaA | Upload a file to the Strapi media library from a URL or base64-encoded data. Supports images, documents, videos, and any file type allowed by Strapi. Provide either a public file_url or base64 content along with a descriptive file name. The uploaded file can then be linked to content entries via relation fields. |
| list_mediaA | List files in the Strapi media library with pagination support. Returns file details including name, URL, type, dimensions, and metadata for each media asset. Use this to browse available files before linking them to content entries or to find files for deletion. |
| delete_mediaA | Permanently delete a file from the Strapi media library by its ID. This removes the file from storage and breaks any references to it in content entries. Use list_media first to find the correct file ID before deleting. This action cannot be undone. |
| publish_entryA | Publish a draft content entry to make it publicly visible via the Strapi API. On Strapi v5, uses the dedicated publish action endpoint; on v4, sets the publishedAt timestamp. Use list_entries with status='draft' to find unpublished entries that need publishing. |
| unpublish_entryA | Unpublish a live content entry, reverting it to draft status so it is no longer publicly visible. On Strapi v5, uses the dedicated unpublish action endpoint; on v4, sets publishedAt to null. The entry data is preserved and can be re-published later with publish_entry. |
| discard_draftA | Discard unsaved draft changes on a content entry, reverting to the last published version. This is only available on Strapi v5 which has a separate draft layer. On Strapi v4, this operation is not supported and will return an error. Use this when you want to abandon draft edits without affecting the currently published version. |
| list_localesA | List all locales configured in the Strapi i18n plugin with their codes and display names. Returns each locale's code, display name, and whether it is the default locale. Use this to discover available languages before creating or querying localized content entries. |
| get_localized_entryA | Retrieve a specific localized version of a content entry by its ID and locale code. Returns the full entry data in the requested language, including all populated relations. Use list_locales first to see available locale codes, then use this to fetch content in a specific language for comparison or translation workflows. |
| search_entriesA | Search for content entries matching a text query within a specific content type. Uses case-insensitive containment filters ($containsi) on string fields to find matching entries. Specify search_fields to narrow the search to specific fields, or leave it empty to search common text fields like title, name, and description. |
| count_entriesA | Count the total number of entries in a content type, optionally filtered by criteria. Makes a lightweight API call that only requests pagination metadata to get the total count efficiently. Use this to understand dataset sizes before bulk operations or to verify migration completeness. |
| bulk_actionA | Execute a bulk operation (create, update, delete, publish, or unpublish) on multiple content entries. Processes each entry sequentially with per-entry error handling so individual failures do not abort the entire batch. Returns a detailed summary showing successes, failures, and error messages for each entry. Use this for batch imports, migrations, or mass status changes. |
| get_strapi_infoA | Retrieve comprehensive information about the connected Strapi instance including version, plugins, and content types. Performs multiple API calls to detect the Strapi version (v4 or v5), count available content types, list installed plugins, and check configured locales. Use this as the first tool call when connecting to a new Strapi instance to understand its configuration and capabilities. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| manage_content | Guide for managing content entries in a Strapi content type. |
| content_migration | Guide for migrating content between content types. |
| setup_guide | Step-by-step guide for connecting to a Strapi instance. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| help_resource | Usage guide for the Strapi MCP server with examples for all 20 tools. |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alex2zimmermann-ux/strapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server