AINative Strapi MCP Server
Provides natural language blog publishing and content management for Strapi CMS, including operations for creating, reading, updating, and publishing blog posts, tutorials, and events with support for categories, tags, authors, and advanced filtering.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AINative Strapi MCP Servercreate a blog post about AI development trends for 2025"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AINative Strapi MCP Server
Natural language blog publishing and content management for Strapi CMS. Production-ready MCP (Model Context Protocol) integration for AI assistants.
Features
Blog Post Management: Create, read, update, publish blog posts with markdown support
Tutorial System: Create step-by-step tutorials with difficulty levels and duration tracking
Event Management: Manage webinars, workshops, meetups, and conferences
Advanced Filtering: Search and filter by categories, tags, authors, difficulty, event types
Metadata Operations: List authors, categories, and tags
Production Ready: Tested with 100% pass rate on comprehensive test suite
Related MCP server: Storyblok MCP Server
Installation
Global Installation
npm install -g ainative-strapi-mcp-serverFor MCP-Compatible AI Assistants
Add to your MCP configuration file:
{
"mcpServers": {
"ainative-strapi": {
"command": "ainative-strapi-mcp",
"args": [],
"env": {
"STRAPI_URL": "https://your-strapi-instance.com",
"STRAPI_ADMIN_EMAIL": "your-admin@example.com",
"STRAPI_ADMIN_PASSWORD": "your-secure-password"
}
}
}
}Environment Variables
Variable | Required | Description |
| Yes | Your Strapi instance URL (e.g., |
| Yes | Admin email for authentication |
| Yes | Admin password for authentication |
Available Operations
Blog Post Operations (6)
strapi_create_blog_post - Create a new blog post
strapi_list_blog_posts - List blog posts with advanced filtering
strapi_get_blog_post - Get a specific blog post by document ID
strapi_update_blog_post - Update an existing blog post
strapi_publish_blog_post - Publish or unpublish a blog post
strapi_list_authors - List all authors
strapi_list_categories - List all blog categories
strapi_list_tags - List all blog tags
Tutorial Operations (5)
strapi_create_tutorial - Create a step-by-step tutorial
strapi_list_tutorials - List tutorials with filtering
strapi_get_tutorial - Get a specific tutorial by document ID
strapi_update_tutorial - Update an existing tutorial
strapi_publish_tutorial - Publish or unpublish a tutorial
Event Operations (5)
strapi_create_event - Create a new event
strapi_list_events - List events with filtering
strapi_get_event - Get a specific event by document ID
strapi_update_event - Update an existing event
strapi_publish_event - Publish or unpublish an event
Usage Examples
Creating a Blog Post
strapi_create_blog_post({
title: "Getting Started with AI Development",
content: "# Introduction\n\nLet's explore AI development...",
description: "A beginner's guide to AI development",
author_id: 1,
category_id: 2,
tag_ids: [1, 3, 5]
})Listing Blog Posts with Filters
strapi_list_blog_posts({
status: "published",
category_id: 2,
page: 1,
pageSize: 10,
sort: "publishedAt:desc"
})Creating a Tutorial
strapi_create_tutorial({
title: "Building Your First AI Agent",
content: "# Step 1: Setup\n\nFirst, install the required packages...",
description: "Learn to build AI agents from scratch",
difficulty: "beginner",
duration: 30,
author_id: 1
})Creating an Event
strapi_create_event({
title: "AI Development Workshop",
description: "Hands-on workshop for building AI applications",
event_type: "workshop",
start_date: "2025-02-15T10:00:00Z",
end_date: "2025-02-15T16:00:00Z",
location: "Virtual - Zoom",
registration_url: "https://example.com/register",
max_attendees: 50
})Version History
v1.0.0 (2025-12-13)
Initial release
Support for blog posts, tutorials, and events
18 operations with full CRUD capabilities
Advanced filtering and search
Production-ready with comprehensive testing
License
MIT License - see LICENSE file for details
Support
For issues, questions, or contributions:
GitHub Issues: https://github.com/AINative-Studio/ainative-strapi-mcp-server/issues
Email: support@ainative.studio
Website: https://ainative.studio
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Acknowledgments
Built by AINative Studio for the Model Context Protocol ecosystem.
Available Tools
18 toolsstrapi_create_blog_postC
Create a new blog post in Strapi CMS with markdown content
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Blog post title | |
| content | Yes | Blog post content in MARKDOWN format | |
| description | No | Short description/excerpt | |
| author_id | Yes | Author ID (use strapi_list_authors to find) | |
| category_id | No | Category ID (use strapi_list_categories) | |
| tag_ids | No | Array of tag IDs (use strapi_list_tags) | |
| publishedAt | No | Publication date (ISO 8601) or null for draft |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states it creates content but doesn't disclose behavioral traits like required permissions, whether it's idempotent, error handling, or what happens on success (e.g., returns ID). 'Create' implies mutation, but details are missing for a tool with 7 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place with no redundancy or wasted text, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't cover return values, error conditions, or behavioral nuances needed for safe invocation. The high schema coverage helps, but the description lacks context for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters. The description adds minimal value beyond schema by specifying 'markdown content' for the content parameter, but doesn't explain parameter interactions or provide additional context. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new blog post') and resource ('in Strapi CMS'), specifying markdown content. It distinguishes from siblings like strapi_update_blog_post or strapi_publish_blog_post by focusing on creation, but doesn't explicitly differentiate from other create tools like strapi_create_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. It doesn't mention when to choose this over strapi_publish_blog_post for publishing, or prerequisites like needing author/category IDs from list tools. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_create_eventC
Create a new event (webinar, workshop, meetup, conference)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Event title | |
| description | Yes | Event description in MARKDOWN | |
| event_type | Yes | Type of event | |
| start_date | Yes | Event start date/time (ISO 8601) | |
| end_date | No | Event end date/time (ISO 8601) | |
| location | No | Physical location or virtual platform | |
| registration_url | No | Registration/signup URL | |
| max_attendees | No | Maximum number of attendees | |
| publishedAt | No | Publication date (ISO 8601) or null for draft |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose permissions needed, whether creation is idempotent, rate limits, or what happens on success/failure. 'Create' implies mutation, but no further context is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and includes helpful examples without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 9 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain return values, error conditions, or system behavior post-creation, leaving significant gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no parameter-specific information beyond the event_type examples, which are already in the enum. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('a new event'), with examples of event types in parentheses. It distinguishes from siblings like strapi_create_blog_post by specifying the event domain, though it doesn't explicitly contrast with other creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. The description doesn't mention sibling tools like strapi_publish_event for publishing or strapi_update_event for modifications, nor does it specify prerequisites or appropriate contexts for event creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_create_tutorialC
Create a new tutorial with step-by-step content in markdown
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Tutorial title | |
| content | Yes | Tutorial content in MARKDOWN format | |
| description | No | Short description | |
| difficulty | No | Difficulty level | |
| duration | No | Estimated duration in minutes | |
| author_id | Yes | Author ID | |
| category_id | No | Category ID | |
| tag_ids | No | Array of tag IDs | |
| publishedAt | No | Publication date (ISO 8601) or null for draft |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a tutorial but doesn't mention whether this is a draft or published by default, what permissions are required, how errors are handled, or what the response looks like (e.g., returns the created tutorial object). For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 9 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like default states (draft vs. published), error conditions, or response format, leaving significant gaps for an AI agent to understand how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds minimal value by specifying 'step-by-step content in markdown' (which aligns with the schema's 'content' description) but doesn't provide additional context beyond what's in the structured fields. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new tutorial') and specifies the content format ('step-by-step content in markdown'), which distinguishes it from generic creation tools. However, it doesn't explicitly differentiate from sibling creation tools like 'strapi_create_blog_post' or 'strapi_create_event' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing author_id), when to choose this over 'strapi_create_blog_post', or how it relates to sibling tools like 'strapi_publish_tutorial' or 'strapi_update_tutorial'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_get_blog_postB
Get a specific blog post by document ID
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Blog post document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't disclose behavioral traits such as authentication needs, rate limits, error responses, or whether it returns full or partial post data. For a tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on usage, behavior, and output, which are needed for full contextual understanding. It's complete enough for a simple read operation but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'document_id' fully documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., format examples or constraints), so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific blog post'), and specifies the lookup method ('by document ID'). It distinguishes from list operations but doesn't explicitly differentiate from other 'get' siblings like strapi_get_event or strapi_get_tutorial, which follow the same pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid document ID), contrast with strapi_list_blog_posts for browsing, or specify error handling for invalid IDs. The description implies usage but offers no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_get_eventB
Get a specific event by document ID
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Event document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying it's likely read-only, but doesn't confirm safety aspects like whether it requires authentication, has rate limits, or what happens with invalid IDs. For a retrieval tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence earns its place by specifying the action, resource, and key identifier. There is zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one well-documented parameter and no output schema, the description is minimally adequate. It covers the basic purpose but lacks behavioral context (e.g., error handling, authentication needs) and usage guidance relative to siblings. Without annotations or output schema, more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'document_id' fully documented in the schema. The description adds no additional parameter information beyond implying it's used to identify the event. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific event by document ID'), making the purpose immediately understandable. It distinguishes this tool from list operations like 'strapi_list_events' by specifying retrieval of a single item. However, it doesn't explicitly differentiate from other 'get' siblings like 'strapi_get_blog_post' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid document ID), contrast with 'strapi_list_events' for browsing, or explain when to choose this over other retrieval tools. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_get_tutorialC
Get a specific tutorial by document ID
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Tutorial document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Get') but lacks details on permissions, rate limits, error handling, or response format. This is a significant gap for a retrieval tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It is appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., tutorial data structure), error cases, or behavioral traits, leaving gaps for an AI agent to understand how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'document_id' parameter. The description adds minimal value by implying the parameter is used to identify a tutorial, but doesn't provide additional context like format examples or constraints beyond what the schema specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('a specific tutorial'), specifying it retrieves by document ID. It distinguishes from sibling 'strapi_list_tutorials' by focusing on single retrieval rather than listing, though it doesn't explicitly mention this distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'strapi_list_tutorials' or other get tools (e.g., 'strapi_get_blog_post'). The description implies usage for retrieving a specific tutorial but offers no context on prerequisites, error conditions, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_list_authorsB
List all authors
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List all authors' implies a read-only operation, but it doesn't specify whether this requires authentication, how results are returned (e.g., pagination, sorting), or any rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise ('List all authors') with zero wasted words. It's front-loaded and efficiently communicates the core purpose in three words, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks behavioral details (e.g., response format, auth needs). For a basic list operation, this is adequate but leaves room for improvement in guiding the agent on usage and output expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to add parameter details, so it meets the baseline of 4 for parameterless tools. No additional semantic value is required or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all authors' clearly states the verb ('List') and resource ('authors'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'strapi_list_blog_posts' by specifying the resource type. However, it doesn't explicitly mention the scope (e.g., all authors without filtering) which would make it a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'strapi_get_blog_post' (for single items) or other list tools, nor does it specify prerequisites or exclusions. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_list_blog_postsB
List all blog posts with advanced filtering, sorting, and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| pageSize | No | Results per page | |
| status | No | Filter by status | all |
| category_id | No | Filter by category ID | |
| author_id | No | Filter by author ID | |
| tag_id | No | Filter by tag ID | |
| sort | No | Sort field and direction (e.g., "publishedAt:desc", "title:asc") | createdAt:desc |
| search | No | Search in title and content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'advanced filtering, sorting, and pagination,' which hints at read-only, non-destructive behavior, but doesn't explicitly state this is a safe read operation, describe potential rate limits, authentication needs, or what the return format looks like (e.g., array of posts). For a tool with 8 parameters and no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List all blog posts') and adds key features ('with advanced filtering, sorting, and pagination') without waste. Every word earns its place, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and hints at functionality, but lacks details on behavioral traits (e.g., read-only nature, response format) and doesn't compensate for the missing output schema. For a list tool with filtering, more context on usage and results would be helpful, though the high schema coverage mitigates some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters with descriptions, defaults, and enums. The description adds minimal value beyond the schema by mentioning 'advanced filtering, sorting, and pagination,' which aligns with parameters like 'status', 'sort', 'page', and 'pageSize', but doesn't provide additional syntax, format details, or usage examples. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all blog posts') and resource ('blog posts'), which is specific and unambiguous. It distinguishes from sibling tools like 'strapi_get_blog_post' by indicating it returns multiple items rather than a single one. However, it doesn't explicitly differentiate from other list tools like 'strapi_list_events' or 'strapi_list_tutorials' beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving multiple blog posts with filtering capabilities, suggesting it's for browsing or searching rather than fetching a single post. However, it lacks explicit guidance on when to use this versus alternatives like 'strapi_get_blog_post' (for single posts) or other list tools for different resources, and doesn't mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_list_categoriesB
List all categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List all categories' implies a read-only operation, but it doesn't specify details like pagination, sorting, authentication requirements, rate limits, or what 'all' entails (e.g., if there are limits). This leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just three words, front-loaded with the key action and resource. Every word earns its place, and there is no wasted information, making it highly efficient for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity is low (0 parameters, no output schema), the description is minimal but incomplete. It lacks context on how categories relate to other resources (e.g., blog posts or tutorials), behavioral details, or usage guidelines. Without annotations or output schema, more information would help the agent use it correctly in context with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, but since there are no parameters, this is appropriate. A baseline of 4 is given as the description doesn't need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all categories' clearly states the verb ('List') and resource ('categories'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'strapi_list_authors' or 'strapi_list_tags' by specifying the resource type. However, it doesn't specify the scope (e.g., 'all' could be implied but isn't explicit), keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'strapi_list_blog_posts' or 'strapi_list_tutorials', it's unclear if categories are a separate resource or how they relate to other listing tools. No explicit context, exclusions, or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_list_eventsB
List all events with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| pageSize | No | Results per page | |
| status | No | Filter by status | all |
| event_type | No | Filter by event type | |
| upcoming | No | Show only upcoming events | |
| sort | No | Sort field and direction | start_date:asc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions filtering and pagination but doesn't describe the return format (e.g., array of events with fields), error conditions, authentication requirements, rate limits, or whether it's a read-only operation (implied but not stated).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place with no redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with rich schema coverage (100%) but no annotations and no output schema, the description is minimally adequate. It covers the basic purpose but lacks behavioral context and output information that would be helpful for an AI agent. The schema handles parameters well, but the description doesn't compensate for missing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing full documentation for all 6 parameters. The description adds minimal value beyond the schema by mentioning filtering and pagination generally, but doesn't explain parameter interactions or provide additional semantic context. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('events'), and specifies filtering and pagination capabilities. It distinguishes from sibling tools like 'strapi_get_event' (singular retrieval) but doesn't explicitly differentiate from other list tools like 'strapi_list_blog_posts' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use 'strapi_list_events' versus 'strapi_get_event' (singular retrieval) or other list tools, nor does it provide context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_list_tagsB
List all tags
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List all tags' implies a read-only operation, but it doesn't specify whether this is paginated, sorted, or includes metadata like counts. It also doesn't mention any rate limits, authentication requirements, or potential side effects. For a tool with zero annotation coverage, this is a significant gap in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description 'List all tags' is extremely concise—just three words—and front-loaded with the core action and resource. There's no wasted language or unnecessary elaboration, making it efficient and easy to parse. Every word earns its place by directly contributing to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks details on behavior, usage context, or output format. For a basic list operation, this might be adequate, but it doesn't provide enough context for optimal agent decision-making, such as how results are returned or any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% description coverage, so the schema fully documents the lack of parameters. The description doesn't add any parameter-specific information, which is appropriate since there are no parameters. Baseline is 4 for 0 parameters, as the description doesn't need to compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all tags' clearly states the verb ('List') and resource ('tags'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'strapi_list_authors' or 'strapi_list_categories' by specifying the resource type. However, it doesn't explicitly mention the scope (e.g., all tags in the system) beyond 'all', which could be implied but isn't as specific as mentioning filtering or pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for usage, or comparisons to other tools like 'strapi_list_categories' or 'strapi_list_authors'. There's no indication of when this tool is appropriate or what scenarios it's designed for, leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_list_tutorialsC
List all tutorials with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| pageSize | No | Results per page | |
| status | No | Filter by status | all |
| difficulty | No | Filter by difficulty | |
| category_id | No | Filter by category ID | |
| sort | No | Sort field and direction | createdAt:desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions 'filtering and pagination', it doesn't describe key behaviors like whether this is a read-only operation, what the return format looks like, error conditions, rate limits, or authentication requirements. For a list tool with 6 parameters and no annotations, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List all tutorials') and adds qualifying details ('with filtering and pagination'). There's no wasted verbiage or redundant information, making it appropriately concise for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., structure of tutorial objects), error handling, or behavioral constraints. For a list operation with multiple filtering options, more context is needed to use it effectively without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters with descriptions, defaults, and enums. The description adds minimal value by mentioning 'filtering and pagination' which loosely relates to some parameters but doesn't provide additional semantic context beyond what's in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('tutorials'), specifying the action and target. It also mentions 'filtering and pagination' which adds useful scope. However, it doesn't explicitly distinguish this tool from sibling list tools like 'strapi_list_blog_posts' or 'strapi_list_events', which have similar functionality for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over other list tools (e.g., for tutorials specifically) or when to use filtering/pagination features. There's no context about prerequisites, exclusions, or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_publish_blog_postC
Publish or unpublish a blog post
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Blog post document ID | |
| publish | No | true to publish, false to unpublish |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but doesn't describe what 'publish' or 'unpublish' means operationally (e.g., visibility changes, status updates), whether it's reversible, what permissions are required, or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words) and front-loaded with the core action. Every word earns its place, with no wasted text or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, what errors might occur, or behavioral details like side effects. Given the complexity of a publish/unpublish operation, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (document_id and publish). The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or edge cases. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('publish or unpublish') and resource ('a blog post'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like strapi_publish_event or strapi_publish_tutorial, which have identical descriptions except for the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing blog post), when to use strapi_update_blog_post instead, or any constraints like permissions or workflow states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_publish_eventC
Publish or unpublish an event
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Event document ID | |
| publish | No | true to publish, false to unpublish |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It indicates a mutation operation ('Publish or unpublish') but doesn't address permission requirements, whether the action is reversible, potential side effects, or what happens to the event's visibility. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, with zero wasted language. It's front-loaded with the core action and resource, making it immediately understandable without any unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'publishing' means in this context, what the expected outcome is, whether there are validation requirements, or what happens if the operation fails. Given the complexity of a state-change operation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with both parameters clearly documented in the schema itself. The description doesn't add any meaningful parameter information beyond what's already in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Publish or unpublish') and resource ('an event'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'strapi_publish_blog_post' and 'strapi_publish_tutorial' which perform similar operations on different content types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'strapi_update_event' for other modifications, nor does it mention prerequisites such as needing an existing event document. It simply states what the tool does without context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_publish_tutorialC
Publish or unpublish a tutorial
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Tutorial document ID | |
| publish | No | true to publish, false to unpublish |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but lacks critical details: it doesn't specify required permissions, whether the operation is reversible, potential side effects, or error conditions. For a mutation tool, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks behavioral details (e.g., permissions, reversibility), usage context, and output information, making it inadequate for safe and effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters thoroughly. The description adds no additional semantic context beyond what's in the schema (e.g., it doesn't explain where to find 'document_id' or clarify 'publish' behavior further), resulting in the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('publish or unpublish') and resource ('a tutorial'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'strapi_publish_blog_post' or 'strapi_publish_event' beyond the resource type, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing tutorial), exclusions, or comparisons to sibling tools like 'strapi_create_tutorial' or 'strapi_update_tutorial', leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_update_blog_postC
Update an existing blog post
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Blog post document ID | |
| title | No | New title | |
| content | No | New content in MARKDOWN | |
| description | No | New description | |
| category_id | No | New category ID | |
| tag_ids | No | New tag IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Update an existing blog post' implies a mutation operation but reveals nothing about required permissions, whether changes are reversible, what happens to fields not specified, rate limits, or what the response contains. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized and front-loaded with the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 6 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens during the update, what the response looks like, or any behavioral constraints. The high schema coverage helps with parameters, but other critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline expectation but doesn't provide extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing blog post'), making the purpose immediately understandable. However, it doesn't differentiate this update tool from its sibling 'strapi_update_event' and 'strapi_update_tutorial' tools, which have identical descriptions except for the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an existing document ID), when not to use it, or how it differs from other update tools or the publish tools available in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_update_eventC
Update an existing event
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Event document ID | |
| title | No | New title | |
| description | No | New description | |
| start_date | No | New start date/time | |
| end_date | No | New end date/time | |
| location | No | New location | |
| registration_url | No | New registration URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Update' implies a mutation, it doesn't specify required permissions, whether changes are reversible, what happens to fields not mentioned, or error conditions. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a straightforward update operation and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens during update, what the response looks like, error handling, or behavioral constraints. The combination of mutation complexity and lack of structured metadata requires more descriptive content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. According to guidelines, when schema coverage is high (>80%), the baseline is 3 even with no param info in description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing event'), which is specific and unambiguous. It distinguishes from creation tools like 'strapi_create_event' by specifying 'existing', but doesn't explicitly differentiate from other update tools like 'strapi_update_blog_post' beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing event ID), when not to use it, or how it differs from other update tools like 'strapi_update_blog_post' beyond the obvious resource difference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_update_tutorialC
Update an existing tutorial
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Tutorial document ID | |
| title | No | New title | |
| content | No | New content in MARKDOWN | |
| description | No | New description | |
| difficulty | No | New difficulty | |
| duration | No | New duration in minutes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Update an existing tutorial' implies a mutation operation, but it doesn't describe whether this requires specific permissions, if changes are reversible, what happens to fields not specified in the update, or what the response looks like (e.g., success/failure indicators). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—'Update an existing tutorial' is front-loaded and directly conveys the core purpose without unnecessary elaboration. Every word earns its place, making it highly concise and well-structured for its minimal content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like error handling, authentication needs, or what the tool returns upon success. While the schema covers parameters well, the description fails to compensate for the lack of annotations and output schema, leaving gaps in understanding how to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters (document_id, title, content, description, difficulty, duration) with clear descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or update semantics. With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing tutorial' clearly states the verb (update) and resource (tutorial), but it's vague about what specific aspects can be updated. It doesn't distinguish this tool from sibling update tools like strapi_update_blog_post or strapi_update_event, which follow the same pattern but for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing tutorial ID), when not to use it (e.g., for creating new tutorials vs. updating), or how it differs from other update tools in the sibling list. The description offers only basic functional information without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Every tool has a clearly distinct purpose based on resource type (blog_post, event, tutorial, author, category, tag) and action (create, get, list, publish, update), with no overlapping functionality. The descriptions reinforce this separation, making tool selection unambiguous.
All tools follow a strict and predictable pattern: 'strapi_' prefix, then verb (create, get, list, publish, update), then noun (e.g., blog_post, event, tutorial). This consistency is maintained across all 18 tools, making the set highly readable and systematic.
With 18 tools, the count is slightly high but reasonable for a CMS server covering multiple content types (blog posts, events, tutorials) and supporting full CRUD operations plus listing and publishing. It feels comprehensive rather than bloated, though it could be streamlined by reducing redundancy in some list operations.
The tool set provides complete CRUD and lifecycle coverage for the core content types (blog posts, events, tutorials), including create, get, update, list, and publish/unpublish actions. It also includes auxiliary resources like authors, categories, and tags, leaving no obvious gaps for typical CMS workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create, manage, publish, and analyze Inblog content through AI agents.
AI-native Git-based CMS for Astro. Create and publish content in the browser, without learning git.
Your Supabase account in natural language: run SQL, apply migrations, manage tables, storage, edge f
日本語ヘッドレスCMS。記事の作成・更新・予約公開・画像取り込みをAIから実行できる。APIキーで接続、npm不要。Astro/Next.js等へ配信APIで届く。
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Strapi CMS instances through REST API operations. Supports content management, media uploads, schema introspection, and multiple server configurations with JWT authentication.9MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables comprehensive management of Storyblok CMS through natural language interactions. Supports story creation and publishing, asset management, component schema updates, release workflows, and content discovery across all major Storyblok APIs.13
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact directly with Strapi v5 CMS content through full CRUD operations, media uploads, and content type exploration using Strapi's Document Service API.2011MIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with full access to Strapi 5.x CMS for managing content types, entries, media, and schemas. It supports full CRUD operations, relation management, and secure authentication for comprehensive content administration.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/AINative-Studio/ainative-strapi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server