Skip to main content
Glama

AINative Strapi MCP Server

npm version License: MIT

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-server

For 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

STRAPI_URL

Yes

Your Strapi instance URL (e.g., https://cms.example.com)

STRAPI_ADMIN_EMAIL

Yes

Admin email for authentication

STRAPI_ADMIN_PASSWORD

Yes

Admin password for authentication

Available Operations

Blog Post Operations (6)

  1. strapi_create_blog_post - Create a new blog post

  2. strapi_list_blog_posts - List blog posts with advanced filtering

  3. strapi_get_blog_post - Get a specific blog post by document ID

  4. strapi_update_blog_post - Update an existing blog post

  5. strapi_publish_blog_post - Publish or unpublish a blog post

  6. strapi_list_authors - List all authors

  7. strapi_list_categories - List all blog categories

  8. strapi_list_tags - List all blog tags

Tutorial Operations (5)

  1. strapi_create_tutorial - Create a step-by-step tutorial

  2. strapi_list_tutorials - List tutorials with filtering

  3. strapi_get_tutorial - Get a specific tutorial by document ID

  4. strapi_update_tutorial - Update an existing tutorial

  5. strapi_publish_tutorial - Publish or unpublish a tutorial

Event Operations (5)

  1. strapi_create_event - Create a new event

  2. strapi_list_events - List events with filtering

  3. strapi_get_event - Get a specific event by document ID

  4. strapi_update_event - Update an existing event

  5. 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:

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 tools
strapi_create_blog_postC

Create a new blog post in Strapi CMS with markdown content

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesBlog post title
contentYesBlog post content in MARKDOWN format
descriptionNoShort description/excerpt
author_idYesAuthor ID (use strapi_list_authors to find)
category_idNoCategory ID (use strapi_list_categories)
tag_idsNoArray of tag IDs (use strapi_list_tags)
publishedAtNoPublication date (ISO 8601) or null for draft

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesEvent title
descriptionYesEvent description in MARKDOWN
event_typeYesType of event
start_dateYesEvent start date/time (ISO 8601)
end_dateNoEvent end date/time (ISO 8601)
locationNoPhysical location or virtual platform
registration_urlNoRegistration/signup URL
max_attendeesNoMaximum number of attendees
publishedAtNoPublication date (ISO 8601) or null for draft

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTutorial title
contentYesTutorial content in MARKDOWN format
descriptionNoShort description
difficultyNoDifficulty level
durationNoEstimated duration in minutes
author_idYesAuthor ID
category_idNoCategory ID
tag_idsNoArray of tag IDs
publishedAtNoPublication date (ISO 8601) or null for draft

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesBlog post document ID

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesEvent document ID

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesTutorial document ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
pageSizeNoResults per page
statusNoFilter by statusall
category_idNoFilter by category ID
author_idNoFilter by author ID
tag_idNoFilter by tag ID
sortNoSort field and direction (e.g., "publishedAt:desc", "title:asc")createdAt:desc
searchNoSearch in title and content

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
pageSizeNoResults per page
statusNoFilter by statusall
event_typeNoFilter by event type
upcomingNoShow only upcoming events
sortNoSort field and directionstart_date:asc

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/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 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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
pageSizeNoResults per page
statusNoFilter by statusall
difficultyNoFilter by difficulty
category_idNoFilter by category ID
sortNoSort field and directioncreatedAt:desc

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/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 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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesBlog post document ID
publishNotrue to publish, false to unpublish

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesEvent document ID
publishNotrue to publish, false to unpublish

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesTutorial document ID
publishNotrue to publish, false to unpublish

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesBlog post document ID
titleNoNew title
contentNoNew content in MARKDOWN
descriptionNoNew description
category_idNoNew category ID
tag_idsNoNew tag IDs

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesEvent document ID
titleNoNew title
descriptionNoNew description
start_dateNoNew start date/time
end_dateNoNew end date/time
locationNoNew location
registration_urlNoNew registration URL

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesTutorial document ID
titleNoNew title
contentNoNew content in MARKDOWN
descriptionNoNew description
difficultyNoNew difficulty
durationNoNew duration in minutes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivitySlowing
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables 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
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides 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

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