# Strapi MCP Server

AI-powered content management for Strapi CMS. Full CRUD operations, media upload, publishing workflow, i18n support, and bulk operations across Strapi v4 and v5 with automatic version detection.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add alex2zimmermann-ux/strapi-mcp

# Browse available tools
npx -y @smithery/cli@latest tool list alex2zimmermann-ux/strapi-mcp

# Get full schema for a tool
npx -y @smithery/cli@latest tool get alex2zimmermann-ux/strapi-mcp list_content_types

# Call a tool
npx -y @smithery/cli@latest tool call alex2zimmermann-ux/strapi-mcp list_content_types '{}'
```

## Direct MCP Connection

Endpoint: `https://strapi-mcp--alex2zimmermann-ux.run.tools`

**Optional config:**
- `strapiBaseUrl` (query) — URL of your Strapi instance (e.g., http://localhost:1337 or https://strapi.example.com)
- `strapiApiToken` (query) — Strapi API token for auth. Create in Admin > Settings > API Tokens (Full Access).

## Tools (20)

- `list_content_types` — List all user-defined content types registered in the Strapi instance. Fetches types from the Content-Type Builder API …
- `get_content_type_schema` — Retrieve the detailed field schema for a specific Strapi content type. Returns all field definitions including types, r…
- `get_components` — List all reusable components defined in the Strapi instance. Components are shared field groups embedded in multiple co…
- `list_entries` — List content entries from a Strapi content type with pagination, sorting, and filtering support. Returns entries as a r…
- `get_entry` — Retrieve a single content entry by its numeric ID with full field and relation data. Returns the complete entry includi…
- `create_entry` — Create a new content entry in the specified Strapi content type from a JSON data string. Accepts field values matching …
- `update_entry` — Update an existing content entry by its ID with partial or full field data as a JSON string. Only the fields included i…
- `delete_entry` — Permanently delete a content entry by its ID from the specified content type. This action is irreversible and removes t…
- `upload_media` — Upload a file to the Strapi media library from a public URL or base64-encoded data. Supports images, documents, videos,…
- `list_media` — List files in the Strapi media library with pagination support. Returns file details including name, URL, MIME type, di…
- `delete_media` — Permanently delete a file from the Strapi media library by its numeric ID. This removes the file from storage and break…
- `publish_entry` — Publish a draft content entry to make it publicly visible via the Strapi API. On Strapi v5 uses the dedicated publish a…
- `unpublish_entry` — Unpublish a live content entry, reverting it to draft status so it is no longer publicly visible. On Strapi v5 uses the…
- `discard_draft` — Discard unsaved draft changes on a content entry, reverting to the last published version. This is only available on St…
- `list_locales` — List all locales configured in the Strapi i18n plugin with their codes and display names. Returns each locale code, dis…
- `get_localized_entry` — Retrieve a specific localized version of a content entry by its ID and locale code. Returns the full entry data in the …
- `search_entries` — Search for content entries matching a text query within a specific content type. Uses case-insensitive containment filt…
- `count_entries` — Count the total number of entries in a content type, optionally filtered by criteria. Makes a lightweight API call requ…
- `bulk_action` — Execute a bulk operation on multiple content entries: create, update, delete, publish, or unpublish. Processes each ent…
- `get_strapi_info` — Retrieve comprehensive information about the connected Strapi instance including version, plugins, and content types. D…

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get alex2zimmermann-ux/strapi-mcp <tool-name>
```

## Resources

- `strapi://help` — Usage guide for the Strapi MCP server with examples for all 20 tools.

## Prompts (3)

- `manage_content` (content_type) — Guide for managing content entries in a Strapi content type.
- `content_migration` (source_type, target_type) — Guide for migrating content between content types.
- `setup_guide` — Step-by-step guide for connecting to a Strapi instance.
