Skip to main content
Glama

Strapi MCP Server

AI-powered content management for Strapi CMS via Model Context Protocol.

PyPI version License: MIT Python 3.11+

Features

Connect any MCP-compatible AI assistant (Claude, Cursor, etc.) to your Strapi CMS. Manage content, media, locales, and more through natural language.

20 Tools across 8 categories

Category

Tools

Description

Schema (3)

list_content_types, get_content_type_schema, get_components

Discover and inspect content models

Content (5)

list_entries, get_entry, create_entry, update_entry, delete_entry

Full CRUD for any content type

Media (3)

upload_media, list_media, delete_media

Upload, browse, and manage media library

Publish (3)

publish_entry, unpublish_entry, discard_draft

Control publication lifecycle

i18n (2)

list_locales, get_localized_entry

Internationalization support

Search (2)

search_entries, count_entries

Full-text search and counting

Bulk (1)

bulk_action

Batch create, update, or delete

System (1)

get_strapi_info

Server info and version detection

Additional MCP capabilities

  • 3 Prompts: manage_content, content_migration, setup_guide -- guided workflows for common tasks

  • 1 Resource: strapi://help -- comprehensive usage guide with examples

Related MCP server: Strapi MCP Server

Quick Start

  1. Install the server:

    pip install strapi-mcp
  2. Configure your Strapi connection:

    export STRAPI_BASE_URL="http://localhost:1337"
    export STRAPI_API_TOKEN="your-strapi-api-token"
  3. Connect from your MCP client (see Client Configuration below).

Installation

Using pip

pip install strapi-mcp

Using uvx (no install required)

uvx strapi-mcp

From source

git clone https://github.com/alexzimmermann/strapi-mcp.git
cd strapi-mcp
pip install -e .

Configuration

All settings are configured via environment variables with the STRAPI_ prefix:

Variable

Default

Description

STRAPI_BASE_URL

http://localhost:1337

URL of your Strapi instance

STRAPI_API_TOKEN

(empty)

API token for authentication. Create in Strapi Admin > Settings > API Tokens.

STRAPI_API_VERSION

auto

Strapi version: auto, v4, or v5

STRAPI_TIMEOUT

30

HTTP request timeout in seconds

STRAPI_MAX_PAGE_SIZE

100

Maximum entries per page (1-100)

You can also place these in a .env file in your working directory.

Creating a Strapi API Token

  1. Open your Strapi Admin panel (e.g., http://localhost:1337/admin)

  2. Navigate to Settings > API Tokens

  3. Click Create new API Token

  4. Set Token type to Full Access (or customize permissions)

  5. Copy the generated token and set it as STRAPI_API_TOKEN

Client Configuration

Claude Desktop

Add to your Claude Desktop config file (claude_desktop_config.json):

{
  "mcpServers": {
    "strapi": {
      "command": "uvx",
      "args": ["strapi-mcp"],
      "env": {
        "STRAPI_BASE_URL": "http://localhost:1337",
        "STRAPI_API_TOKEN": "your-strapi-api-token"
      }
    }
  }
}

Cursor

Add to your Cursor MCP config:

{
  "mcpServers": {
    "strapi": {
      "command": "uvx",
      "args": ["strapi-mcp"],
      "env": {
        "STRAPI_BASE_URL": "http://localhost:1337",
        "STRAPI_API_TOKEN": "your-strapi-api-token"
      }
    }
  }
}

Smithery

This server is available on Smithery. Install directly from the Smithery registry or configure manually using the smithery.yaml included in this repository.

Available Tools

Tool

Description

list_content_types

List all available content types in the Strapi instance

get_content_type_schema

Get the full field schema for a specific content type

get_components

List all reusable components and their schemas

list_entries

List entries with filtering, sorting, pagination, and population

get_entry

Get a single entry by ID (or documentId in v5)

create_entry

Create a new content entry with field data

update_entry

Update an existing entry by ID

delete_entry

Delete an entry by ID

upload_media

Upload a file to the media library (URL or base64)

list_media

Browse the media library with pagination

delete_media

Delete a file from the media library

publish_entry

Publish a draft entry to make it publicly available

unpublish_entry

Revert a published entry to draft status

discard_draft

Discard unsaved draft changes (Strapi v5 only)

list_locales

List all configured locales for i18n

get_localized_entry

Get an entry in a specific locale

search_entries

Full-text search across entries of a content type

count_entries

Count entries matching optional filter criteria

bulk_action

Perform bulk create, update, or delete operations

get_strapi_info

Get Strapi server info, version, and connection status

Strapi Version Support

This server supports both Strapi v4 and Strapi v5 with automatic version detection.

Auto-detection

When STRAPI_API_VERSION is set to auto (the default), the server detects your Strapi version at startup by:

  1. Fetching a content type entry and inspecting its response format

  2. Checking the admin information endpoint for a version string

  3. Defaulting to v5 if detection is inconclusive

Key differences handled automatically

Feature

Strapi v4

Strapi v5

Entry format

Nested data.attributes

Flat with documentId

Entry identifier

Numeric id

String documentId

Publication status

publicationState=live|preview

status=published|draft

Draft discard

Not available

discard_draft tool

You can force a specific version by setting STRAPI_API_VERSION=v4 or STRAPI_API_VERSION=v5.

Development

Setup

git clone https://github.com/alexzimmermann/strapi-mcp.git
cd strapi-mcp
python -m venv .venv
source .venv/bin/activate  # or .venv\Scripts\activate on Windows
pip install -e ".[dev]"

Running tests

pytest

Running with coverage

pytest --cov=strapi_mcp --cov-report=term-missing

Code style

ruff check .
ruff format .

License

MIT License. See LICENSE for details.

Available Tools

20 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe bulk operation to perform. Must be one of: 'create', 'update', 'delete', 'publish', or 'unpublish'. Each action expects different entry data formats.
entriesYesJSON array of entry objects. Format depends on the action: - create: [{"title": "A", ...}, {"title": "B", ...}] - update: [{"id": 1, "data": {"title": "Updated"}}, ...] - delete: [{"id": 1}, {"id": 2}, ...] or [1, 2, 3] - publish: [{"id": 1}, {"id": 2}, ...] or [1, 2, 3] - unpublish: [{"id": 1}, {"id": 2}, ...] or [1, 2, 3]
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds sequential processing, per-entry error handling to prevent batch aborts, and return summary details. These go beyond annotations (readOnlyHint, destructiveHint, openWorldHint) providing crucial behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first defines purpose, second adds behavioral details, third gives usage guidance. No redundancy, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers what the tool does and how it behaves. Missing potential constraints like batch size limits or idempotency, but output schema and high schema coverage compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter semantics with detailed descriptions and format examples. Description does not add significant new information about parameters beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it executes bulk operations (create, update, delete, publish, unpublish) on multiple content entries, explicitly contrasting with single-entry sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends use for batch imports, migrations, or mass status changes. Lacks direct 'when not to use' but sibling tools provide enough context to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

count_entriesA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLocale code to count entries for a specific language (e.g., 'en', 'fr')
statusNoPublication status filter: 'draft' or 'published' (v5 only)
filtersNoJSON string of Strapi filters to count only matching entries (e.g., '{"category":{"$eq":"tech"}}', '{"price":{"$gt":50}}'). Omit for total count.
content_typeYesPlural API ID of the content type to count (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and non-destructive behavior. The description adds value by disclosing the lightweight API call that only requests pagination metadata for efficiency, aligning with annotations and providing extra behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each serving a distinct purpose: purpose, implementation detail, usage guidance. No unnecessary words, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description suffices by covering purpose, efficiency, and use cases. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds no new details about individual parameters beyond summarizing overall filtering capability. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Count', the resource 'entries in a content type', and the ability to filter. It distinguishes from siblings like 'list_entries' by emphasizing the count action and lightweight nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly guides when to use: 'understand dataset sizes before bulk operations or to verify migration completeness'. It does not address when not to use, but the guidance is clear and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesJSON string with the entry data. Must contain the fields defined in the content type schema. Example: '{"title": "My Article", "content": "Hello world", "slug": "my-article"}'
localeNoLocale for the entry if i18n is enabled (e.g., 'en', 'fr')
statusNoInitial publication status: 'draft' or 'published' (v5 only)
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). Description adds context about accepting JSON string and referencing schema, but no additional behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with primary purpose, then necessary usage instruction. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key aspects: purpose, prerequisite, data format. With output schema present, no need to detail return values. Minor gap: does not mention that content_type must be plural API ID (though schema describes it).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and schema already documents all parameters. Description only adds that data is a JSON string, which is already implied by the parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new content entry' with a specific verb and resource ('Strapi content type'). It distinguishes from sibling tools like update_entry, delete_entry, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use get_content_type_schema first to understand required fields and types. Provides clear context for when to use the tool, though does not list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_entryA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLocale of the specific localization to delete (e.g., 'fr'). If omitted, deletes all localizations.
entry_idYesNumeric ID of the entry to permanently delete
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, but the description adds 'This action is irreversible and will remove the entry and its associated data,' offering concrete context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a delete tool with optional locale, the description covers purpose, irreversibility, verification step, and locale behavior. Output schema exists, so return values are not needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3). The description adds detail for the locale parameter: 'If a locale is specified, only that localization is removed,' which enhances understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Permanently delete a content entry by its ID from the specified content type.' It uses a specific verb and resource, and distinguishes from siblings like delete_media or discard_draft.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises 'Use get_entry first to verify you are deleting the correct entry,' providing a clear precaution. It also explains locale behavior but does not explicitly mention when not to use or full alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_mediaA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesNumeric ID of the media file to permanently delete from the library

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by explaining that deletion removes the file from storage and breaks references, and notes it cannot be undone. This complements the destructiveHint annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loading the purpose and providing essential behavioral and usage information without extraneous detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool with one parameter and annotations present, the description fully explains the action, consequences, and prerequisite, making it complete for agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema's description of 'file_id' as a numeric ID.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Permanently delete') and the resource ('file from the Strapi media library by its ID'), distinguishing it from sibling tools like list_media and upload_media.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using list_media first to find the correct file ID, providing clear context for use. It does not explicitly state when not to use this tool or name alternatives beyond list_media.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discard_draftA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLocale of the draft to discard (e.g., 'en', 'fr'). Only needed for i18n-enabled types.
entry_idYesNumeric ID of the entry whose draft changes should be discarded
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds value by explaining what gets destroyed (draft changes) and that the published version remains unaffected. It also reveals the Strapi v5 dependency. These additions justify a score above the baseline, but no further details on side effects or return behavior are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two sentences, with the first sentence clearly stating the action and effect, and the second adding constraints and usage guidance. Every sentence earns its place; no unnecessary words. Structurally front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core behavior, version constraint, and usage scenario. An output schema exists, so return values need not be explained. However, it omits handling of edge cases (e.g., no draft to discard) and does not mention the locale parameter's context (only for i18n-enabled types), leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not provide additional semantics beyond what the schema already states for each parameter; it only frames the parameters indirectly (e.g., 'unsaved draft changes'). No extra value is added to parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'discard' and the resource 'unsaved draft changes on a content entry', with the effect 'reverting to the last published version'. It distinguishes from sibling tools by specifying Strapi v5 exclusivity and contrasting with updating or creating entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when you want to abandon draft edits without affecting the currently published version', providing a clear use case. However, it does not explicitly name alternative tools (e.g., update_entry or publish_entry) for when-not scenarios, which prevents a score of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_componentsA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is clear. The description does not add behavioral traits beyond the annotations, such as authentication needs or pagination, but it adds resource context. With annotations, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first states action and resource, second explains components, third gives usage advice. No wasted words, front-loaded with main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters and has an output schema. The description fully explains the purpose, context, and usage, making it complete for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100%. The description adds meaning by explaining what components are and how to use the result, which goes beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all reusable components, defines what components are (shared field groups), and gives examples (SEO metadata, address blocks). It distinguishes from siblings as no other tool lists components specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage advice: 'Use this to understand available components before referencing them in content type schemas or entry data.' It gives clear context but does not explicitly mention when not to use it or alternatives, though none exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_content_type_schemaA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
content_typeYesThe full UID of the content type (e.g., 'api::article.article') or the plural API ID (e.g., 'articles'). If a short name is provided, the tool will attempt to resolve it to a full UID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, non-destructive, and openWorld. The description adds context about the output: 'all field definitions including types, required status, and relations, formatted as a readable list', which is beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. First sentence states purpose, second provides usage guidance and output details. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple single-parameter tool with complete annotations and output schema, the description fully covers what an agent needs: purpose, when to use, and output format. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already describes the content_type parameter's UID or API ID and resolution behavior. The description does not add additional semantic value beyond what is in the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Retrieve' and explicitly names the resource 'detailed field schema for a specific Strapi content type', clearly distinguishing it from sibling tools like list_content_types or get_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Use this before creating or updating entries to understand the expected data structure and required fields.' While it doesn't mention when not to use or alternative tools, the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_entryA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLocale code to retrieve a specific localization (e.g., 'en', 'fr')
entry_idYesNumeric ID of the entry to retrieve
populateNoRelations to populate. Use '*' for all, or specify fields like 'author,tags'*
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds that it returns 'complete entry including all populated relations and metadata fields', which is useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then return details, then usage guidance. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and the description covering purpose, usage, and return value, the description is complete. It mentions populated relations and metadata, aligning with expected outputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well-documented. The description does not add significant meaning beyond the schema; it only mentions 'full field and relation data' which pertains to output rather than parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve a single content entry by its ID with full field and relation data', specifying the verb and resource. It distinguishes from siblings like list_entries and search_entries by mentioning its use after finding a specific entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: 'Use this when you need the full details of a specific entry after finding it via list_entries or search_entries.' This provides clear context and differentiates from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_localized_entryA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeYesLocale code for the desired translation (e.g., 'en', 'fr', 'de', 'es')
entry_idYesNumeric ID of the entry to retrieve in the specified locale
populateNoRelations to populate. Use '*' for all, or specify fields like 'author,tags'*
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds behavioral context by stating it returns 'full entry data in the requested language, including all populated relations,' which is helpful but not strictly required given annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences that are front-loaded and efficient: first sentence states the core purpose, second adds what is returned, third provides usage guidance. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description explains the return behavior (full entry data with relations). It also references sibling tools (list_locales), making the context complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add significant new meaning to the parameters beyond what is in the schema; it only implies the use of 'entry_id' and 'locale'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a localized version of a content entry by ID and locale code. It uses a specific verb ('Retrieve') and identifies the resource ('localized version of a content entry'). This differentiates it from siblings like get_entry (which likely gets the default locale) and list_locales.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using list_locales first to get available locale codes, and suggests using this tool for comparison or translation workflows. This provides clear when-to-use guidance and distinguishes from alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_strapi_infoA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by disclosing that it performs multiple internal API calls to detect version, count content types, list plugins, and check locales. This gives the agent insight into the tool's behavior, complementing the readOnlyHint and destructiveHint annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the main purpose, each sentence adding distinct value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, the presence of an output schema, and annotations that clearly mark it as a safe read operation, the description is fully complete. It covers scope, behavior, and usage guidance comprehensively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so no parameter documentation is needed. The description adds meaning by stating what information is retrieved, which suffices given the schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves comprehensive information about a Strapi instance including version, plugins, content types, and locales. It explicitly says 'Use this as the first tool call when connecting to a new Strapi instance', distinguishing it from sibling tools that perform mutations or more specific queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly guides the agent to 'Use this as the first tool call when connecting to a new Strapi instance to understand its configuration and capabilities', providing clear context and recommended usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_content_typesA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, openWorldHint, destructiveHint) already declare safety. Description adds that it fetches from specific API and filters to user-created types, but does not disclose any additional behavioral traits beyond what annotations imply. Since annotations are present, description adds moderate value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose. No wasted words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an output schema (not shown but present), description fully covers what the tool does, its filtering logic, and usage context. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Description does not need to add parameter info. Baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists user-defined content types from the Content-Type Builder API filtered to 'api::' namespace. Verb 'list' matches action, resource 'content types' specific. Distinguishes from siblings like get_content_type_schema (schema for one type) and list_entries (entries of a type).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends using as 'first step to discover content before querying entries'. Provides clear context but does not mention when to use alternative sibling tools like get_content_type_schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_entriesA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination, starting at 1
sortNoSort expression (e.g., 'title:asc', 'createdAt:desc', 'price:asc,title:desc')
fieldsNoComma-separated list of fields to return (e.g., 'title,slug,price')
localeNoLocale code to filter entries (e.g., 'en', 'fr', 'de')
statusNoPublication status filter: 'draft' or 'published' (v5 only)
filtersNoJSON string of Strapi filters (e.g., '{"title":{"$contains":"hello"}}' or '{"price":{"$gt":10}}')
populateNoRelations to populate. Use '*' for all, or specify fields like 'author,category'*
page_sizeNoNumber of entries per page (1-100, default 25)
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products', 'categories')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering safety. The description adds context about the output format ('readable markdown list with metadata and pagination info') and capabilities, which enhances transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only 4 sentences, with no redundant information. It front-loads the core purpose and efficiently conveys key usage guidance. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, output schema exists), the description covers the main use case and provides a prerequisite hint. However, it could briefly mention navigating pagination or the scope of results, but the output schema fills some gaps. Overall, it feels sufficiently complete for a read-only browsing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description mentions 'full pagination, sorting, and filtering' which maps to parameters, but does not add new meaning beyond the schema details. No parameter-specific elaboration is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'content entries from a Strapi content type', with specific features (pagination, sorting, filtering). It also distinguishes from siblings by advising to call list_content_types first, and implies its use for browsing vs. other operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to use list_content_types first when unsure, and states 'Use this to browse and explore content'. However, it does not explicitly mention when not to use this tool, such as for single entry retrieval or complex search queries (compared to get_entry or search_entries).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_localesA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and non-destructive behavior. The description adds value by specifying the returned fields (code, display name, default flag) and confirms it lists all locales.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with the core action, followed by return details and usage advice—no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, no-parameter tool with an output schema, the description adequately covers purpose, return fields, and usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the description correctly omits parameter details, meeting the baseline for no-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool lists all locales with codes and display names, clearly distinguishing it from other list tools like list_content_types and list_entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using it to discover available languages before creating or querying localized entries, providing clear when-to-use context even though alternatives are not explicitly mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_mediaA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination, starting at 1
page_sizeNoNumber of media files per page (1-100, default 25)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of return fields and pagination adds some value but is not extensive. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded main action and context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With good annotations and schema, the description adequately covers purpose and usage. Lacks details on return structure, but output schema exists (not shown) so not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description only mentions 'pagination support', adding no new semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists files in the Strapi media library with pagination support, and distinguishes from sibling tools like delete_media and upload_media.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases: browsing files before linking or deletion. However, it does not mention when not to use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLocale of the entry to publish (e.g., 'en', 'fr'). Only needed for i18n-enabled types.
entry_idYesNumeric ID of the entry to publish
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds critical behavioral details: version-specific implementation differences (v5 vs v4) and the consequence of making the entry 'publicly visible.' This goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action, then version-specific details, then a usage tip. No filler words; every sentence contributes new information. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has version-specific behavior and an output schema, the description covers the essentials: purpose, version behavior, and how to find eligible entries. It does not repeat output schema details, and no obvious gaps remain for a confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema descriptions are already clear. The description only adds the context that locale is needed for i18n-enabled types, which is already in the schema description. Thus, minimal added value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Publish a draft content entry to make it publicly visible.' It distinguishes from siblings like unpublish_entry (reverse) and discard_draft (discard without publishing) by explicitly mentioning the draft-to-public transition and version-specific behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides actionable guidance: 'Use list_entries with status='draft' to find unpublished entries that need publishing.' This helps the agent understand the prerequisite step. It implies when to use (for draft entries) and when not (for non-drafts), but does not explicitly exclude other scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_entriesA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination, starting at 1
queryYesSearch text to look for across the content type fields (e.g., 'machine learning', 'summer sale')
page_sizeNoNumber of results per page (1-100, default 25)
content_typeYesPlural API ID of the content type to search (e.g., 'articles', 'products')
search_fieldsNoComma-separated list of field names to search in (e.g., 'title,description'). If omitted, searches all string/text fields using $containsi filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds specific behavioral details: uses $containsi filter, case-insensitive, default fields if search_fields omitted. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words. Front-loaded with purpose, followed by mechanism and optional parameter guidance. Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations (readOnlyHint, openWorldHint, destructiveHint) and the presence of an output schema, the description provides enough context to use the tool correctly. No missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining the search mechanism ($containsi) and the fallback behavior of search_fields. This justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for content entries by text query within a specific content type, using case-insensitive containment filters. It distinguishes from siblings like list_entries by adding search functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (searching by query) and how to use search_fields or leave it empty for common fields. It does not explicitly mention when not to use it or compare to list_entries, but the guidance on parameters is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLocale of the entry to unpublish (e.g., 'en', 'fr'). Only needed for i18n-enabled types.
entry_idYesNumeric ID of the entry to unpublish
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context beyond annotations: it specifies data preservation, version-specific behavior (v4 vs v5), and that the entry can be republished. No contradictions with annotations (readOnlyHint=false, destructiveHint=false).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first covers purpose and effect, second adds version-specific detail. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers main behavior, data preservation, and version differences. It has output schema, so return values are covered. Could mention permissions or prerequisites, but not essential for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter schema coverage is 100%, so the schema already describes parameters adequately. The tool description does not add significant new meaning for locale, entry_id, or content_type beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (unpublish), resource (live content entry), and outcome (reverts to draft, no longer publicly visible). It also distinguishes from the sibling 'publish_entry' by noting that the entry can be republished later.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to unpublish a live entry while preserving data) and contrasts with publish_entry. However, it does not provide explicit 'when-not' guidance or list alternatives like delete_entry or discard_draft.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesJSON string with the fields to update. Only include fields you want to change. Example: '{"title": "Updated Title", "price": 29.99}'
localeNoLocale of the entry to update if i18n is enabled (e.g., 'en', 'fr')
entry_idYesNumeric ID of the entry to update
content_typeYesPlural API ID of the content type (e.g., 'articles', 'products')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains the partial update behavior ('Only the fields included in the data JSON will be modified'), which adds context beyond the annotations. It does not cover failure modes or authorization, but annotations already provide safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: core purpose, behavioral detail, and usage advice. No redundancy or verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (partial update), the description adequately explains behavior and prerequisites. An output schema exists, so return values are covered. No gaps for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the partial update pattern for the 'data' parameter and suggesting a workflow, going beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update an existing content entry by its ID') and specifies the method ('with partial or full field data'), effectively distinguishing it from sibling tools like create_entry or delete_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using get_entry first to see current values and provides a clear pattern for partial updates. However, it does not explicitly mention when not to use this tool or compare with alternatives like bulk_action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
captionNoCaption or description for the media file.
alt_textNoAlternative text for accessibility. Recommended for all images.
file_urlNoPublic URL of the file to download and upload to Strapi (e.g., 'https://example.com/image.jpg'). Either file_url or file_base64 must be provided.
file_nameNoFile name including extension (e.g., 'photo.jpg', 'document.pdf'). Used for storage and display.upload
file_base64NoBase64-encoded file content to upload. Use this when you have the file data directly rather than a URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. Description adds file type support and linking behavior but omits details like overwrite policy or size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four well-structured sentences, front-loaded with action, no redundancy, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers input sources, file types, and linking purpose. Output schema exists so return format is handled. Adequate for a file upload tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions. Description reinforces mutual exclusivity but adds no new param meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (upload), resource (Strapi media library), and input methods (URL or base64). Distinguishes from siblings like delete_media and list_media.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to provide either file_url or file_base64 with file_name. Implies mutual exclusivity. Lacks explicit 'when not to use' but adequate given siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 20 tool updatesv0.1.0
    • First observedbulk_action
    • First observedcount_entries
    • First observedcreate_entry
    • First observeddelete_entry
    • First observeddelete_media
    • First observeddiscard_draft
    • First observedget_components
    • First observedget_content_type_schema
    • First observedget_entry
    • First observedget_localized_entry
    • First observedget_strapi_info
    • First observedlist_content_types
    • First observedlist_entries
    • First observedlist_locales
    • First observedlist_media
    • First observedpublish_entry
    • First observedsearch_entries
    • First observedunpublish_entry
    • First observedupdate_entry
    • First observedupload_media

TDQS

A4.4/5.0

Scored across 20 tools

Disambiguation5/5

Every tool targets a distinct aspect of Strapi CMS: content entries, media, locales, schemas, bulk operations, etc. No two tools have overlapping purposes; even similar ones like get_entry and get_localized_entry are clearly differentiated by locale.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using lowercase snake_case (e.g., create_entry, delete_media, list_content_types). This predictability makes it easy for an agent to infer functionality from names.

Tool Count5/5

With 20 tools, the server covers the full spectrum of Strapi operations—CRUD, media management, localization, schema inspection, bulk actions—without being overly numerous or sparse. Each tool serves a clear purpose.

Completeness5/5

The tool surface is comprehensive: full lifecycle for entries (create, read, update, delete, publish, unpublish, draft discard), media (upload, list, delete), locale support, schema discovery, and even bulk operations. No obvious gaps for typical CMS workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers