contentful-mcp
The Contentful MCP server enables comprehensive content management through Contentful's Management API, allowing you to:
Content Management: Perform CRUD operations on entries, including publishing/unpublishing
Asset Management: Upload, update, delete, and publish/unpublish assets
Content Type Management: Create, update, delete, and publish content types
Space and Environment Management: List, create, and delete spaces and environments
Bulk Operations: Execute publishing, unpublishing, and validation across multiple entries/assets
Search and Pagination: Search entries and list items with pagination support
Localization: Support for multiple locales in content management
Error Handling: Handle authentication, rate limits, and API-specific issues
Transport Modes: Support for stdio and StreamableHTTP transport for MCP client integration
Integrates with Contentful's Content Management API, providing comprehensive content management capabilities including entry and asset management, space management, content type management, localization support, and publishing workflow control.
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., "@contentful-mcpsearch for entries with content type 'blogPost'"
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.
Contentful MCP Server
Notice
This is a community driven server! Contentful has released an official server which you can find here
An MCP server implementation that integrates with Contentful's Content Management API, providing comprehensive content management capabilities.
Please note *; if you are not interested in the code, and just want to use this MCP in Claude Desktop (or any other tool that is able to use MCP servers) you don't have to clone this repo, you can just set it up in Claude desktop, refer to the section "Usage with Claude Desktop" for instructions on how to install it.
Related MCP server: Storyblok MCP Server
Features
Content Management: Full CRUD operations for entries and assets
Comment Management: Create, retrieve, and manage comments on entries with support for both plain-text and rich-text formats, including threaded conversations
Space Management: Create, update, and manage spaces and environments
Content Types: Manage content type definitions
Localization: Support for multiple locales
Publishing: Control content publishing workflow
Bulk Operations: Execute bulk publishing, unpublishing, and validation across multiple entries and assets
Smart Pagination: List operations return maximum 3 items per request to prevent context window overflow, with built-in pagination support
Pagination
To prevent context window overflow in LLMs, list operations (like search_entries and list_assets) are limited to 3 items per request. Each response includes:
Total number of available items
Current page of items (max 3)
Number of remaining items
Skip value for the next page
Message prompting the LLM to offer retrieving more items
This pagination system allows the LLM to efficiently handle large datasets while maintaining context window limits.
Bulk Operations
The bulk operations feature provides efficient management of multiple content items simultaneously:
Asynchronous Processing: Operations run asynchronously and provide status updates
Efficient Content Management: Process multiple entries or assets in a single API call
Status Tracking: Monitor progress with success and failure counts
Resource Optimization: Reduce API calls and improve performance for batch operations
These bulk operation tools are ideal for content migrations, mass updates, or batch publishing workflows.
Tools
Entry Management
search_entries: Search for entries using query parameters
create_entry: Create new entries
get_entry: Retrieve existing entries
update_entry: Update entry fields
delete_entry: Remove entries
publish_entry: Publish entries
unpublish_entry: Unpublish entries
Comment Management
get_comments: Retrieve comments for an entry with filtering by status (active, resolved, all)
create_comment: Create new comments on entries with support for both plain-text and rich-text formats. Supports threaded conversations by providing a parent comment ID to reply to existing comments
get_single_comment: Retrieve a specific comment by its ID for an entry
delete_comment: Delete a specific comment from an entry
update_comment: Update existing comments with new body content or status changes
Threaded Comments
Comments support threading functionality to enable structured conversations and work around the 512-character limit:
Reply to Comments: Use the
parentparameter increate_commentto reply to an existing commentThreaded Conversations: Build conversation trees by replying to specific comments
Extended Discussions: Work around the 512-character limit by creating threaded replies to continue longer messages
Conversation Context: Maintain context in discussions by organizing related comments in threads
Example usage:
Create a main comment:
create_commentwithentryId,body, andstatusReply to that comment:
create_commentwithentryId,body,status, andparent(the ID of the comment you're replying to)Continue the thread: Reply to any comment in the thread by using its ID as the
parent
Bulk Operations
bulk_publish: Publish multiple entries and assets in a single operation. Accepts an array of entities (entries and assets) and processes their publication as a batch.
bulk_unpublish: Unpublish multiple entries and assets in a single operation. Similar to bulk_publish but removes content from the delivery API.
bulk_validate: Validate multiple entries for content consistency, references, and required fields. Returns validation results without modifying content.
Asset Management
list_assets: List assets with pagination (3 items per page)
upload_asset: Upload new assets with metadata
get_asset: Retrieve asset details and information
update_asset: Update asset metadata and files
delete_asset: Remove assets from space
publish_asset: Publish assets to delivery API
unpublish_asset: Unpublish assets from delivery API
Space & Environment Management
list_spaces: List available spaces
get_space: Get space details
list_environments: List environments in a space
create_environment: Create new environment
delete_environment: Remove environment
Content Type Management
list_content_types: List available content types
get_content_type: Get content type details
create_content_type: Create new content type
update_content_type: Update content type
delete_content_type: Remove content type
publish_content_type: Publish a content type
Development Tools
MCP Inspector
The project includes an MCP Inspector tool that helps with development and debugging:
Inspect Mode: Run
npm run inspectto start the inspector, you can open the inspector by going to http://localhost:5173Watch Mode: Use
npm run inspect:watchto automatically restart the inspector when files changeVisual Interface: The inspector provides a web interface to test and debug MCP tools
Real-time Testing: Try out tools and see their responses immediately
Bulk Operations Testing: Test and monitor bulk operations with visual feedback on progress and results
The project also contains a npm run dev command which rebuilds and reloads the MCP server on every change.
Configuration
Prerequisites
Create a Contentful account at Contentful
Generate a Content Management API token from your account settings
Environment Variables
These variables can also be set as arguments
CONTENTFUL_HOST/--host: Contentful Management API Endpoint (defaults to https://api.contentful.com)CONTENTFUL_MANAGEMENT_ACCESS_TOKEN/--management-token: Your Content Management API tokenENABLE_HTTP_SERVER/--http: Set to "true" to enable HTTP/SSE modeHTTP_PORT/--port: Port for HTTP server (default: 3000)HTTP_HOST/--http-host: Host for HTTP server (default: localhost)DISABLE_AI_ACTIONS: Set to "true" to disable fetching AI Actions on startup (useful if you don't have access to this feature)
Space and Environment Scoping
You can scope the spaceId and EnvironmentId to ensure the LLM will only do operations on the defined space/env ID's.
This is mainly to support agents that are to operate within specific spaces. If both SPACE_ID and ENVIRONMENT_ID env-vars are set
the tools will not report needing these values and the handlers will use the environment vars to do CMA operations.
You will also loose access to the tools in the space-handler, since these tools are across spaces.
You can also add the SPACE_ID and ENVIRONMENT_ID by using arguments --space-id and --environment-id
Using App Identity
Instead of providing a Management token you can also leverage App Identity for handling authentication. You would have to setup and install a Contentful App and set the following parameters when calling the MCP-server:
--app-id= the app Id which is providing the Apptoken--private-key= the private key you created in the user-interface with your app, tied toapp_id--space-id= the spaceId in which the app is installed--environment-id= the environmentId (within the space) in which the app is installed.
With these values the MCP server will request a temporary AppToken to do content operation in the defined space/environment-id. This especially useful when using this MCP server in backend systems that act as MCP-client (like chat-agents)
Usage with Claude Desktop
You do not need to clone this repo to use this MCP, you can simply add it to
your claude_desktop_config.json:
Add or edit ~/Library/Application Support/Claude/claude_desktop_config.json
and add the following lines:
{
"mcpServers": {
"contentful": {
"command": "npx",
"args": ["-y", "@ivotoby/contentful-management-mcp-server"],
"env": {
"CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "<Your CMA token>"
}
}
}
}If your MCPClient does not support setting environment variables you can also set the management token using an argument like this:
{
"mcpServers": {
"contentful": {
"command": "npx",
"args": [
"-y",
"@ivotoby/contentful-management-mcp-server",
"--management-token",
"<your token>",
"--host",
"http://api.contentful.com"
]
}
}
}Installing via Smithery
To install Contentful Management Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ivotoby/contentful-management-mcp-server --client claudeDeveloping and using Claude desktop
If you want to contribute and test what Claude does with your contributions;
run
npm run dev, this will start the watcher that rebuilds the MCP server on every changeupdate
claude_desktop_config.jsonto reference the project directly, ie;
{
"mcpServers": {
"contentful": {
"command": "node",
"args": ["/Users/ivo/workspace/contentful-mcp/bin/mcp-server.js"],
"env": {
"CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "<Your CMA Token>"
}
}
}
}This will allow you to test any modification in the MCP server with Claude directly, however; if you add new tools/resources you will need to restart Claude Desktop
Transport Modes
The MCP server supports two transport modes:
stdio Transport
The default transport mode uses standard input/output streams for communication. This is ideal for integration with MCP clients that support stdio transport, like Claude Desktop.
To use stdio mode, simply run the server without the --http flag:
npx -y contentful-mcp --management-token YOUR_TOKEN
# or alternatively
npx -y @ivotoby/contentful-management-mcp-server --management-token YOUR_TOKENStreamableHTTP Transport
The server also supports the StreamableHTTP transport as defined in the MCP protocol. This mode is useful for web-based integrations or when running the server as a standalone service.
To use StreamableHTTP mode, run with the --http flag:
npx -y contentful-mcp --management-token YOUR_TOKEN --http --port 3000
# or alternatively
npx -y @ivotoby/contentful-management-mcp-server --management-token YOUR_TOKEN --http --port 3000StreamableHTTP Details
Uses the official MCP StreamableHTTP transport
Supports standard MCP protocol operations
Includes session management for maintaining state
Properly handles initialize/notify patterns
Compatible with standard MCP clients
Replaces the deprecated SSE transport with the modern approach
The implementation follows the standard MCP protocol specification, allowing any MCP client to connect to the server without special handling.
Error Handling
The server implements comprehensive error handling for:
Authentication failures
Rate limiting
Invalid requests
Network issues
API-specific errors
License
MIT License
Fine print
This MCP Server enables Claude (or other agents that can consume MCP resources) to update, delete content, spaces and content-models. So be sure what you allow Claude to do with your Contentful spaces!
This MCP-server is not officially supported by Contentful (yet)
Available Tools
40 toolsbulk_validateC
Validate multiple entries at once
| Name | Required | Description | Default |
|---|---|---|---|
| entryIds | Yes | Array of entry IDs to validate | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It fails to indicate if validation is read-only or mutating, what side effects occur, or any permission requirements. This is a critical 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 short sentence, which is concise but under-specified. It is not verbose, but it sacrifices necessary detail for brevity.
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 must provide substantial context. It only states the basic action, missing return format, error handling, and behavioral semantics for a tool with 3 required parameters.
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?
Input schema covers all parameters with descriptions (100% coverage). The description adds no additional parameter context beyond the schema, so 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 (validate) and resource (multiple entries), distinguishing it from entry mutation or retrieval tools. However, it does not specify what validation entails, leaving some ambiguity about its function.
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 (e.g., search_entries, get_entry). There is no mention of prerequisites or complementary tools, forcing the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ai_actionC
Create a new AI Action
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the AI Action | |
| description | Yes | The description of the AI Action | |
| instruction | Yes | The instruction object containing the template and variables | |
| configuration | Yes | The model configuration | |
| testCases | No | Optional array of test cases for the AI Action | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavioral traits. It does not: no mention of idempotency, side effects, authentication, validation, or response behavior. The single sentence is insufficient.
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 very concise (one sentence) but lacks substantive content. While it is not verbose, it sacrifices informativeness for brevity, making it only adequate.
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 complexity (7 parameters, nested objects, no output schema), the description is incomplete. It does not explain the return value, creation flow, or how to handle the response, leaving critical 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 input schema has 100% description coverage, providing clear meaning for each parameter. The description adds no value beyond this, which meets the baseline expectation.
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 states 'Create a new AI Action,' which clearly identifies the action and resource, but it is a near-tautology of the tool name and does not provide additional context to distinguish it from sibling tools like update_ai_action.
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 usage guidance is provided. The description does not specify when to use this tool versus alternatives such as update_ai_action or publish_ai_action, nor does it mention prerequisites or restrictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_commentA
Create a new comment on an entry. The comment will be created with the specified body and status. To create a threaded conversation (reply to an existing comment), provide the parent comment ID. This allows you to work around the 512-character limit by creating threaded replies.
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | The unique identifier of the entry to comment on | |
| body | Yes | The content of the comment (max 512 characters) | |
| status | No | The status of the comment | active |
| parent | No | Optional ID of the parent comment to reply to. Use this to create threaded conversations or to continue longer messages by replying to your own comments. | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the comment will be created with body and status, and mentions threading via parent. However, with no annotations, it does not disclose potential side effects, permissions needed, or return value behavior. This is adequate but lacks deeper 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?
Three sentences with no wasted words. The first sentence states the purpose directly. The second and third sentences add essential usage guidance and parameter context 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?
The description covers the creation action and parameter details well. However, it does not mention what the tool returns (e.g., the created comment object), which is a gap given no output schema. Error cases also not mentioned.
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 coverage is 100% (baseline 3). The description adds meaningful context beyond the schema: explains the parent parameter's role for threading and char limit workaround, notes body's max length, and clarifies that spaceId must be the ID not name, and environmentId defaults to 'master'.
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 'Create a new comment on an entry', specifying the verb ('create') and resource ('comment'). It also mentions threaded replies via parent ID, distinguishing it from update/delete/get comments.
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 explains when to use the parent parameter (to create threaded conversations or work around the 512-character limit), providing clear usage context. It does not explicitly list when not to use the tool, but the purpose is well defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_content_typeD
Create a new content type
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| fields | Yes | Array of field definitions for the content type | |
| description | No | ||
| displayField | No | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits (e.g., whether creation is idempotent, required permissions, or side effects). The agent has no information beyond the fact that it creates.
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 short sentence, which is concise but omits essential information. It does not earn its place by being informative.
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 (6 parameters including nested field arrays) and sibling tools, the description is grossly inadequate. It provides no context about return values, error conditions, or the content type creation process.
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 50%, but the tool description adds no explanations for the three undocumented parameters (name, description, displayField). It fails to compensate for the 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?
Description restates the tool name ('Create a new content type' is a direct paraphrase of 'create_content_type'), providing no additional specificity or distinction from siblings. It is a tautology.
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 vs. alternatives like update_content_type or create_entry. No context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_entryA
Create a new entry in Contentful. Before executing this function, you need to know the contentTypeId (not the content type NAME) and the fields of that contentType. You can get the fields definition by using the GET_CONTENT_TYPE tool. IMPORTANT: All field values MUST include a locale key (e.g., 'en-US') for each value, like: { title: { 'en-US': 'My Title' } }. Every field in Contentful requires a locale even for single-language content.
| Name | Required | Description | Default |
|---|---|---|---|
| contentTypeId | Yes | The ID of the content type for the new entry | |
| fields | Yes | The fields of the entry with localized values. Example: { title: { 'en-US': 'My Title' }, description: { 'en-US': 'My Description' } } | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers the critical locale behavior and the need for content type knowledge. However, it does not disclose potential side effects (e.g., whether the entry is automatically published) or error conditions, leaving some 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 concise yet comprehensive, with each sentence contributing necessary information. It is front-loaded with the main purpose and logically structured with prerequisites and key instructions.
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?
Despite lacking an output schema and annotations, the description covers prerequisites, locale format, and parameter semantics well. It is slightly incomplete regarding the return value or confirmation of creation, which may be inferred but not explicitly stated.
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?
All parameters have schema descriptions, and the tool description adds valuable clarifications: contentTypeId must be the ID not name, and fields require locale keys with a concrete example. This significantly enhances understanding beyond the schema.
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 'Create a new entry in Contentful', providing a specific verb and resource. It includes unique details like the locale requirement, distinguishing it from update and publish operations among siblings.
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?
Explicitly states the prerequisite (knowing contentTypeId and fields) and directs the agent to the GET_CONTENT_TYPE tool for field definitions. Also emphasizes the locale requirement, guiding correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_environmentD
Create a new environment
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes | ||
| environmentId | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'Create a new environment' only implies mutation, but lacks any behavioral details such as side effects, idempotency, permission requirements, or handling of duplicate environment IDs. Since no annotations are provided, the description carries the full burden and fails.
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 short but fails to be informative. It is under-specified rather than concise, and provides no structural cues to aid 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?
With no annotations, no output schema, and a bare-minimum description, the tool definition is completely inadequate. The agent cannot determine the purpose of parameters, the return value, or the context of 'environment' (workspace scope, uniqueness constraints, etc.).
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 3 required parameters (spaceId, environmentId, name) with 0% description coverage. The description does not explain what these parameters represent, their format, or constraints, leaving the agent with no semantic information.
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 'Create a new environment' is a tautology that restates the tool name. It does not specify what kind of environment or differentiate from siblings like delete_environment or list_environments.
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. There is no mention of prerequisites, dependencies, or conditions for creating an environment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_ai_actionB
Delete an AI Action
| Name | Required | Description | Default |
|---|---|---|---|
| aiActionId | Yes | The ID of the AI Action to delete | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states 'Delete an AI Action' without disclosing behavioral traits such as irreversibility, permissions needed, or side effects. A destructive operation should disclose more.
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?
Extremely concise (one sentence), no wasted words. However, it is almost too terse, missing opportunity to add value without being verbose.
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 destructive tool with 3 required parameters and no annotations or output schema, the description is incomplete. It does not explain return values, errors, or usage context.
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 itself documents the parameters adequately. The description adds no extra semantics beyond that.
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 'Delete an AI Action' clearly uses a specific verb and resource, and distinguishes from sibling tools like create_ai_action, update_ai_action, get_ai_action, etc.
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 or any prerequisites. Sibling tools provide no context on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_assetC
Delete an asset
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. The description only says 'Delete an asset' without disclosing behavioral traits such as irreversibility, required permissions, or side effects on dependent resources. This is insufficient for safe invocation.
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 brief (4 words), but conciseness should not come at the cost of completeness. It fails to provide necessary context, making it under-specified rather than efficiently concise.
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 no output schema, no annotations, and a simple tool with 3 required parameters, the description is too minimal. Important context such as whether deletion is permanent, whether the asset must be unpublished, or any confirmation steps are 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 67% (2 of 3 parameters documented). The description adds no additional meaning to the parameters, and the undocumented 'assetId' parameter relies solely on its name. The description does not compensate for the missing schema documentation.
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 ('Delete') and resource ('asset'), but does not differentiate from sibling delete tools like delete_entry or delete_comment. While the purpose is unambiguous, the lack of distinction from similar tools in the server reduces clarity.
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 (e.g., when an asset should be unpublished first), or any prerequisites for deletion. The description provides no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_commentC
Delete a specific comment from an entry.
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | The unique identifier of the entry | |
| commentId | Yes | The unique identifier of the comment to delete | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'delete' with no details about side effects (e.g., irreversibility, cascade effects) or required permissions.
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?
A single, focused sentence with no fluff; however, it could benefit from contextual placement (e.g., explain it's for Contentful).
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?
Adequate for a simple delete operation given schema details, but lacks mention of return value or confirmation, and no output schema provided.
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 descriptions cover all 4 parameters with adequate detail (e.g., spaceId notes to ask for ID), but the description adds no extra meaning beyond the schema.
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 (delete) and the resource (specific comment), distinguishing it from sibling tools like update_comment, but lacks context about the entry or space.
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 compared to siblings like update_comment or create_comment, and no mention of prerequisites (e.g., comment existence, permissions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_content_typeC
Delete a content type
| Name | Required | Description | Default |
|---|---|---|---|
| contentTypeId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'delete', implying irreversibility, but does not disclose any behavioral traits such as cascading effects, permission requirements, or safety measures. No annotations are provided to supplement this information.
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 sentence, which is concise, but it may be too brief for a deletion operation. It lacks structure and does not efficiently convey important information that the schema does not cover.
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 insufficiently complete. It does not specify what happens after deletion (e.g., confirmation, impact on entries), nor does it provide any usage context beyond the basic action.
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 3 parameters with 67% description coverage (spaceId and environmentId have descriptions, contentTypeId does not). The tool description does not add any meaning beyond the schema; it does not explain the purpose of each parameter or how to form valid values.
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 'Delete a content type' clearly states the action and resource. It distinguishes from siblings like create_content_type and get_content_type, providing a clear purpose. However, it lacks any extra context such as scope or constraints.
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. There is no mention of prerequisites, side effects, or when not to delete. The sibling tools include other delete operations, but no differentiation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entryC
Delete an entry
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits. It only states 'delete', implying destruction, but lacks details on permanence, cascading effects, or required permissions.
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 short, which is concise, but it omits critical information that would help an agent, such as prerequisites or post-conditions.
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 no output schema and a context with many sibling tools, the description is incomplete. It lacks explanation of behavior like what happens after deletion or how to handle errors.
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 description adds no meaning beyond the input schema. With 67% schema description coverage, the tool description does not compensate for the undocumented 'entryId' parameter or clarify parameter usage.
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 'Delete an entry' clearly states the action and resource, but it is essentially a restatement of the tool name and does not differentiate from sibling delete operations like 'delete_asset' or 'delete_comment'.
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 vs alternatives (e.g., 'unpublish_entry' or other delete tools), nor any preconditions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_environmentC
Delete an environment
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes | ||
| environmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral disclosure beyond the minimal action. There are no annotations, so the description should inform about irreversibility, cascading effects, or required permissions. It fails to do so, leaving the agent in the dark about consequences.
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?
While the description is extremely short (one sentence), it is under-specified to the point of being unhelpful. Conciseness without substance does not benefit the agent, and the structure provides no front-loaded key information beyond the basic 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?
Given the lack of annotations and output schema, the description should provide robust context. It does not mention return value, error conditions, or irreversible nature, making it insufficient for safe and correct 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?
The description does not explain the parameters 'spaceId' and 'environmentId' beyond their names. Schema description coverage is 0%, and the description adds no semantic value, such as format hints or where to obtain these IDs.
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 'Delete' and the resource 'an environment', making the action unambiguous. It distinguishes from sibling tools like 'create_environment' and 'list_environments' by specifying the delete operation, though it adds no further context.
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 (e.g., when an environment is safe to delete, prerequisites like no active dependencies). The agent receives no contextual hints about appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ai_actionB
Get a specific AI Action by ID
| Name | Required | Description | Default |
|---|---|---|---|
| aiActionId | Yes | The ID of the AI Action to retrieve | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It implies a read operation but does not disclose error handling, permissions, or consequences of not found ID. Minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy. Efficiently conveys core purpose without excess.
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?
No output schema, no annotations. Description covers basic intent but lacks details on return value, error states, or required context like authentication. Adequate for a simple get but incomplete for complex scenarios.
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?
Input schema has 100% description coverage on all three parameters, providing clear meaning. Description adds no extra value beyond schema, so 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?
Description clearly states the verb 'Get' and resource 'AI Action by ID'. It distinguishes from sibling tools like list_ai_actions (list) and get_ai_action_invocation (invocation). However, it could be more explicit about being a singular retrieval operation.
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 vs alternatives like list_ai_actions or get_ai_action_invocation. Does not mention prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ai_action_invocationB
Get the result of a previous AI Action invocation
| Name | Required | Description | Default |
|---|---|---|---|
| aiActionId | Yes | The ID of the AI Action | |
| invocationId | Yes | The ID of the specific invocation to retrieve | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits. It doesn't indicate that the operation is read-only, nor does it mention any required permissions, rate limits, or side effects. The description adds no behavioral context beyond the basic purpose.
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 sentence that directly states the tool's purpose. It is front-loaded with the action 'Get'. While concise, it sacrifices some helpful context like what an invocation result entails.
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 4 required parameters and no output schema, the description provides minimal context. It tells what the tool does but not what the result contains or any prerequisites (e.g., invocation must exist). Adequate but with 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 input schema has 100% description coverage, so the schema already explains each parameter's meaning. The description does not add any additional semantics or relationships between parameters. Baseline 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 tool gets the result of a previous AI Action invocation. It distinguishes from siblings like invoke_ai_action (which starts an invocation) and get_ai_action (which retrieves the action definition) by specifying 'result' and 'previous invocation'.
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 vs alternatives. For example, it doesn't mention that this should be used after invoking an AI action, or that to get the action definition one should use get_ai_action. No when-not-to-use or prerequisite info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetC
Retrieve an asset
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description is merely 'Retrieve an asset,' which conveys no behavioral details beyond the verb. It fails to disclose outcome characteristics like read-only nature, error conditions (e.g., missing asset), or side effects, leaving agents uninformed.
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 four words, which is efficient but comes at the cost of useful content. It is front-loaded with the core action, but lacks structure to convey necessary details, making it minimally adequate.
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 output schema and annotations, plus three required parameters, the description is severely incomplete. It does not explain the return value, potential errors, or how to obtain assetId. Sibling tools like list_assets are available but not mentioned for context.
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?
Although schema coverage for parameters is 67% (spaceId and environmentId have descriptions), the tool description adds no additional meaning. assetId lacks a description in both schema and description, leaving its format or source ambiguous.
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 'Retrieve an asset' clearly specifies the action (retrieve) and resource (asset), indicating a read operation. However, it does not differentiate from siblings like get_entry or get_content_type, which have similar purposes for different resource types. A more specific phrasing could improve clarity.
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 offers no guidance on when to use this tool versus alternatives like list_assets or search_entries. It does not mention prerequisites, such as needing the asset ID, or exclusions. Without context, an agent may misuse the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commentsB
Retrieve comments for an entry with pagination support. Returns comments with their status and body content.
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | The unique identifier of the entry to get comments for | |
| bodyFormat | No | Format for the comment body content | plain-text |
| status | No | Filter comments by status | active |
| limit | No | Maximum number of comments to return (1-100, default: 10) | |
| skip | No | Number of comments to skip for pagination (default: 0) | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, and description only states basic functionality. Lacks details on behavior like how pagination works (e.g., total count, next page), authentication requirements, or rate limits.
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?
Two concise sentences front-loaded with purpose and key outputs. No redundant 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?
With 7 parameters, pagination, filters, and no output schema, the description is incomplete. Missing information on return structure (e.g., pagination metadata), error handling, or output format.
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?
Input schema has 100% coverage with descriptions for all 7 parameters. Description adds little beyond mentioning status and body content, so meets minimum but provides no 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?
Description clearly states the tool retrieves comments for an entry with pagination, returning status and body content. Differentiates from sibling get_single_comment by indicating multiple comments per entry.
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 like get_single_comment or search. Pagination support is mentioned but not elaborated on how to use it effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_content_typeB
Get details of a specific content type
| Name | Required | Description | Default |
|---|---|---|---|
| contentTypeId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description correctly implies a read-only, non-destructive action (get details). Since no annotations are present, it carries the burden, but it does not disclose any side effects, authentication needs, or constraints. It is accurate but minimal.
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?
A single sentence with no wasted words. It is front-loaded and efficiently communicates 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?
For a simple getter tool with no output schema, the description is minimally adequate. It explains what the tool does, but lacks details about the returned information or any limitations. Given the simplicity, a 3 is appropriate.
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 67%, so baseline is 3. The description adds no extra information beyond the schema; it does not clarify the content type ID or how to obtain it. It neither harms nor significantly enhances parameter understanding.
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 uses a clear verb ('Get') and resource ('details of a specific content type'), indicating a read operation. It distinguishes itself from sibling tools like create_content_type or delete_content_type by implying retrieval. However, it does not explicitly differentiate from other get tools like get_entry.
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. There are no prerequisites, context, or exclusion criteria provided. Siblings include other getters, but no differentiation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entryC
Retrieve an existing entry
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Retrieve an existing entry' without disclosing behavior such as error responses, permissions, or what happens if the entry does not exist. The bare-minimum description does not compensate for missing annotations.
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?
Extremely brief at one sentence, but lacks necessary context. While not verbose, the conciseness sacrifices valuable information, making it under-specified for an agent.
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 tool with 3 required parameters, no output schema, and many siblings, the description is critically incomplete. It omits return format, error handling, prerequisites, and usage examples, leaving the agent without essential context.
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?
Input schema has 3 parameters with 67% description coverage. The description adds no meaning beyond the schema; it does not explain 'entryId' or how to obtain it. The tool's description fails to compensate for the undocumented parameter.
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?
Description uses specific verb 'Retrieve' and resource 'existing entry', clearly indicating the tool's purpose. However, it does not distinguish from sibling tools like get_asset or get_content_type, which have similar retrieval patterns.
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. Siblings like search_entries, get_comments, etc., suggest different use cases, but the description provides no differentiation or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_single_commentB
Retrieve a specific comment by its ID for an entry.
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | The unique identifier of the entry | |
| commentId | Yes | The unique identifier of the comment to retrieve | |
| bodyFormat | No | Format for the comment body content | plain-text |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits (e.g., read-only, permissions needed, side effects). It only states the operation, leaving the agent uninformed about safety or requirements.
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 one sentence, concise and front-loaded with the core action. However, it could be slightly expanded without losing efficiency. No wasted words.
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 5 parameters (4 required) and no output schema, the description lacks details like the significance of bodyFormat, spaceId, or environmentId. It also doesn't explain how the comment relates to an entry. Incomplete for the tool's complexity.
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 coverage is 100% with descriptions for all parameters. The description adds no new meaning beyond the schema (e.g., 'by its ID for an entry' merely restates entryId and commentId). Baseline 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 'Retrieve a specific comment by its ID for an entry,' which matches the tool name and distinguishes it from sibling tools like 'get_comments' and 'create_comment.' It uses a specific verb and resource.
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 explicit guidance on when to use this tool versus alternatives like 'get_comments'. The usage is implied (for a single comment), but no when-not-to or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spaceC
Get details of a space
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must bear full burden. It only says 'Get details' without specifying what details, side effects, or permissions needed.
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?
Single sentence, no redundancy. Concise but at the expense of necessary 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?
Given no output schema and no annotations, description should explain what details are returned. It fails to do so, leaving the agent uncertain about the response.
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?
Input schema has one parameter with no description. The tool description adds no meaning beyond the schema field name.
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?
Description states 'Get details of a space' which is a clear verb+resource. However, it does not differentiate from sibling getter tools like get_asset, get_entry, etc.
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 such as list_spaces or other getter tools. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoke_ai_actionC
Invoke an AI Action with variables
| Name | Required | Description | Default |
|---|---|---|---|
| aiActionId | Yes | The ID of the AI Action to invoke | |
| variables | No | Key-value pairs of variable IDs and their values | |
| rawVariables | No | Array of raw variable objects (for complex variable types like references) | |
| outputFormat | No | The format of the output content | Markdown |
| waitForCompletion | No | Whether to wait for the AI Action to complete before returning | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits such as whether the invocation blocks, alters state, or requires special permissions. No annotations are provided to supplement this, so the description carries the full burden but fails to deliver.
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 sentence and front-loaded, but it is too concise to convey sufficient meaning, bordering on under-specification.
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 (7 parameters, 3 required, nested objects) and no output schema, the description is incomplete. It fails to explain return values, error conditions, or the behavior of key parameters like waitForCompletion.
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 baseline is 3. The description adds minimal value beyond the schema, only mentioning 'variables' in a generic way.
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 'Invoke' and the resource 'AI Action with variables', distinguishing it from sibling tools like get_ai_action, list_ai_actions, etc. However, it lacks specificity on what invoking an AI Action entails.
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 such as get_ai_action or list_ai_actions. The description does not mention prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ai_actionsC
List all AI Actions in a space
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of AI Actions to return | |
| skip | No | Number of AI Actions to skip for pagination | |
| status | No | Filter AI Actions by status | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits such as read-only nature, pagination behavior, or any side effects. The description is minimal and fails to compensate for the absence of annotations.
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, concise sentence that is front-loaded and to the point. However, it omits important context, which slightly reduces effectiveness.
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 5 parameters, no output schema, and no annotations, the description is too sparse. It does not explain what AI Actions are or what the response entails, leaving significant gaps for an AI agent.
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?
Input schema covers all 5 parameters with descriptions (100% coverage). The description does not add additional meaning beyond the schema, but the schema itself is fairly complete, so a 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?
Description clearly states it lists AI Actions in a space, using a specific verb and resource. It differentiates from other list tools (e.g., list_assets) by specifying 'AI Actions', but could be more distinct from get_ai_action.
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 like get_ai_action or search tools. Lacks context on appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsA
List assets in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | Maximum number of items to return (max: 3) | |
| skip | Yes | Number of items to skip for pagination | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses critical behaviors: a maximum return of 3 items per request and pagination via the skip parameter. It does not mention the tool's read-only nature or authentication requirements, but the stated constraints add significant 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?
Two sentences with zero wasted words. The purpose is front-loaded, immediately stating the action and resource, followed by the key constraint and pagination guidance. Every sentence earns its place.
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 listing tool with 4 well-described parameters and no output schema, the description covers purpose, key constraints, and pagination. It could briefly mention the return structure (e.g., 'returns asset summaries'), but the existing information is sufficient for an AI agent to use the tool correctly.
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 coverage is 100% (all parameters described). The description adds narrative context beyond the schema, explaining how 'limit' and 'skip' work together for pagination. While the schema already defines max and default values, the description reinforces the pagination usage pattern.
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 assets in a space' provides a specific verb ('list') and resource ('assets'), clearly distinguishing the tool from siblings like get_asset (single asset) and other list tools. Adding the maximum 3 items and pagination notes further clarifies its purpose.
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 states 'Use skip parameter to paginate through results', giving explicit guidance on pagination. While it doesn't explicitly list when not to use it (e.g., for a single asset, use get_asset), the context is clear enough for an AI agent to differentiate from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_content_typesB
List content types in a space. Returns a maximum of 10 items per request. Use skip parameter to paginate through results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | Maximum number of items to return (max: 3) | |
| skip | Yes | Number of items to skip for pagination | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully explain behavior. It states a maximum of 10 items per request and pagination, but contradicts the input schema's limit description (max 3 vs max 20). It omits error handling, response format, and implications of the required limit parameter.
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 concise with two sentences front-loaded with the primary action and pagination. However, the contradiction reduces effectiveness.
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 no output schema, the description should clarify the return format (e.g., array of content types) and the unusual requirement of limit and skip as required parameters. It also fails to reconcile the limit discrepancy.
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 covers 100% of parameters with descriptions. The tool description adds pagination context but is undermined by conflicting limit constraints.
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 it lists content types in a space. However, the contradictory maximum limit (description says 10, schema description says max 3, schema property says max 20) causes slight confusion.
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 mentions pagination via skip parameter, implying iterative use. It does not compare to sibling tools like search_entries or get_content_type, nor provides when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_environmentsC
List all environments in a space
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'list all environments'. It does not disclose behavioral traits like authentication requirements, pagination, or ordering. No return format is specified.
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 sentence, but it is too minimal and lacks structure. It could include more information without being verbose.
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 simplicity (1 parameter, no output schema), the description is incomplete as it does not state the return value or any behavior. It is barely adequate.
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 coverage is 0% and the description does not explain the 'spaceId' parameter beyond the implied context. It adds no meaning beyond the schema itself.
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 tool lists all environments in a space, with a specific verb and resource. It distinguishes itself from sibling tools like create_environment and delete_environment.
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, such as when to list vs. get an environment. There is no mention of prerequisites or typical context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_spacesA
List all available spaces
| 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. It only states that it lists spaces, failing to mention return format, authorization needs, or potential limitations like pagination.
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, consisting of a single phrase with no wasted words. It is front-loaded and to the point.
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 (no parameters, no output schema), the description is adequate for listing all spaces. However, it lacks detail on the output format or any additional context that might be expected for a list 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?
The input schema has zero parameters, and schema coverage is 100%. The description adds no parameter information, but with no parameters, a baseline of 4 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 'List all available spaces' uses a specific verb and resource, clearly indicating the action and scope. It distinguishes from sibling tool 'get_space', which retrieves a single space.
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 obtaining a list of all spaces, but it does not explicitly state when to use it versus alternatives like 'get_space' for specific spaces, nor does it provide usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_ai_actionC
Publish an AI Action
| Name | Required | Description | Default |
|---|---|---|---|
| aiActionId | Yes | The ID of the AI Action to publish | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and a minimal description, the behavioral impact of 'publish' is undefined. The description does not disclose whether publishing is reversible, requires specific permissions, or triggers side effects, leaving the agent uninformed about the operation's effects.
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 brief—only four words—which borders on underspecification. While conciseness is valued, this brevity comes at the cost of missing crucial context, making it less helpful than a slightly longer but informative version.
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 tool with three required parameters and no output schema, the description is insufficient. It fails to explain the effect of publishing, success criteria, or any notable behaviors, leaving the agent without enough context to use the tool confidently.
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 provides complete descriptions for all three parameters (aiActionId, spaceId, environmentId), so the description need not add more. However, the description does not augment the schema with any additional insight, so it 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 'publish' and the resource 'AI Action', which matches the tool name and effectively communicates the primary action. However, it does not elaborate on what publishing entails or differentiate it from other publish tools, but the resource name provides sufficient distinction among siblings.
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 create, update, or unpublish. The description lacks any context about prerequisites, typical scenarios, or conditions for publishing an AI Action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_assetC
Publish an asset
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It only says 'Publish an asset' with no disclosure about permissions, side effects, or what happens if already published, so behavioral transparency is minimal.
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?
At just 3 words, the description is extremely brief but lacks structure and fails to provide useful information beyond the tool name.
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 3 required parameters, no output schema, and many sibling tools, this description is incomplete. It omits the effect of publishing, any post-publishing consequences, or integration context.
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 67% (spaceId and environmentId have descriptions, assetId does not). The description adds no extra parameter guidance beyond the schema, so it meets the baseline for this coverage level.
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 'Publish an asset' clearly states the verb and resource, but does not distinguish it from siblings like publish_content_type or publish_entry, which have similar purposes.
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 such as unpublish_asset or publish_entry, and no prerequisites or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_content_typeC
Publish a content type
| Name | Required | Description | Default |
|---|---|---|---|
| contentTypeId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits such as prerequisites (e.g., content type must exist), side effects (e.g., makes it visible), or idempotency. The agent has no insight into what 'publish' entails.
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 very brief but critically underspecified. It lacks essential context, making it insufficient for an agent to use correctly. Conciseness should not come at the expense of necessary 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?
With 3 required parameters, no output schema, and no annotations, the description is woefully incomplete. It does not explain the effect of publishing, possible errors, or any dependencies (e.g., environment existence), leaving the agent with significant ambiguity.
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 67%, with spaceId and environmentId having descriptions, but contentTypeId is undocumented. The tool description adds no parameter-level detail, failing to compensate for the missing schema description for contentTypeId.
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' and resource 'content type', making the basic action obvious. However, it does not differentiate from sibling tools like publish_entry or publish_asset, which share a similar 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 (e.g., create_content_type, update_content_type, or other publish tools). The agent is left to infer context 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.
publish_entryA
Publish an entry or multiple entries. Accepts either a single entryId (string) or an array of entryIds (up to 100 entries). For a single entry, it uses the standard publish operation. For multiple entries, it automatically uses bulk publishing.
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | ID of the entry to publish, or an array of entry IDs (max: 100) | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
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 discloses bulk publishing behavior but omits critical details like permissions required, reversibility, or what occurs on failure. A publish action is a mutation, and more transparency is warranted.
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?
Two concise sentences front-load the purpose and key behavior. No superfluous content; every sentence serves a clear function.
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?
With no output schema, the description should explain return values, but it does not. Error handling and edge cases are also missing. For a mutation tool, this is a notable gap, though the high schema coverage partially compensates.
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 coverage is 100%, with well-described parameters. The description reiterates the ability to accept an array (matching schema), adding minimal extra value beyond the schema itself. 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 tool publishes entries, distinguishing between single and bulk operations. It is specific to entries and distinct from sibling publish tools for assets, content types, and AI actions.
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 explains when to use single vs bulk publishing by specifying input format. However, it does not provide explicit guidance on when not to use this tool or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_entriesA
Search for entries using query parameters. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Query parameters for searching entries | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It states the tool returns up to 3 entries per request and supports pagination, but does not explicitly disclose that it is a read-only operation with no side effects. This partial disclosure is adequate but not comprehensive.
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?
Two sentences with no extraneous information. The first sentence clearly states the purpose, and the second provides the key behavioral constraint (max 3 items) and pagination mechanism. Efficient and front-loaded.
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 search tool with a complex nested input schema and no output schema, the description is somewhat minimal. It covers pagination but does not explain the structure of the 'query' parameter (though schema covers it), nor does it describe the return value format or content type filtering. Adequate but not fully comprehensive.
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 covers all parameters with descriptions (100% coverage), so the description adds limited new value. It reiterates the limit and skip behavior, which the schema already defines. The nested query object is well-documented in the schema, leaving little need for additional explanation.
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 it searches for entries using query parameters, which distinguishes it from sibling tools like get_entry that retrieve a single entry by ID. The verb 'Search' and resource 'entries' are specific and unambiguous.
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?
Provides explicit guidance on pagination: maximum 3 items per request and use of skip parameter. However, it does not compare with alternatives like get_entry for when to use search versus direct retrieval, though the name implies query-based filtering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpublish_ai_actionC
Unpublish an AI Action
| Name | Required | Description | Default |
|---|---|---|---|
| aiActionId | Yes | The ID of the AI Action to unpublish | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits such as side effects (e.g., changes visibility, affects invocations), reversibility, or required permissions. The tool's impact is entirely unclear.
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 (three words), which is efficient but omits essential context. It could include a brief behavioral note without sacrificing conciseness.
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?
Despite having only three parameters and a simple action, the description lacks important context such as what happens upon unpublishing (e.g., immediate effect, impact on invocations), error conditions, and return values.
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%, and each parameter has a clear explanation. The tool description adds no additional meaning beyond the schema, meeting the baseline but not exceeding it.
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 'unpublish' and resource 'AI Action', making the purpose evident. However, it does not differentiate from the sibling tool 'delete_ai_action', which could cause confusion about the difference between unpublishing and deleting.
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 usage guidance is provided. There is no indication of when to use this tool vs alternatives like 'publish_ai_action' or 'delete_ai_action', nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpublish_assetC
Unpublish an asset
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only says 'Unpublish', but does not explain side effects, reversibility, or permission requirements. Important for a mutation tool.
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?
Extremely concise at 4 words, front-loading the action. However, it sacrifices useful context; a slightly longer description could still be concise.
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 unpublishing (state change, potential dependencies) and no output schema, the description is insufficient. It does not explain the outcome or conditions.
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 coverage is 67% (spaceId and environmentId have descriptions, assetId does not). The description does not add any meaning beyond the schema; assetId remains undocumented here.
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 specific action 'Unpublish an asset', which is a distinct verb+resource combination. It differentiates from siblings like 'publish_asset' and 'delete_asset'.
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 such as 'delete_asset' or 'unpublish_entry'. Missing context on prerequisites like the asset needing to be published first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpublish_entryA
Unpublish an entry or multiple entries. Accepts either a single entryId (string) or an array of entryIds (up to 100 entries). For a single entry, it uses the standard unpublish operation. For multiple entries, it automatically uses bulk unpublishing.
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | ID of the entry to unpublish, or an array of entry IDs (max: 100) | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explains automatic bulk unpublishing for multiple entries and the 100-entry limit. However, it does not disclose side effects, permissions, or reversibility, which are important for a mutating tool.
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 concise with three sentences, each adding distinct value: action, parameter flexibility, and automatic behavior. No unnecessary words.
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?
The description covers input behavior well but lacks output details, error cases, or prerequisites. Given no output schema and the moderate complexity, it is adequate but not fully comprehensive.
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 coverage is 100%, so the description adds marginal value beyond the schema. It reiterates the entryId flexibility and mentions bulk behavior, but this is more behavioral than parameter-specific.
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 tool's function: 'Unpublish an entry or multiple entries.' It specifies the resource (entry/entries) and action (unpublish), distinguishing it from sibling tools like publish_entry (opposite) and unpublish_asset (different resource).
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 guidance on when to use single vs. multiple entries ('For a single entry, it uses the standard unpublish operation. For multiple entries, it automatically uses bulk unpublishing.'). However, it does not explicitly mention alternatives or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_ai_actionC
Update an existing AI Action
| Name | Required | Description | Default |
|---|---|---|---|
| aiActionId | Yes | The ID of the AI Action to update | |
| name | Yes | The name of the AI Action | |
| description | Yes | The description of the AI Action | |
| instruction | Yes | The instruction object containing the template and variables | |
| configuration | Yes | The model configuration | |
| testCases | No | Optional array of test cases for the AI Action | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only says 'Update', leaving unclear whether it's a partial or full update, or what side effects occur on omitted fields.
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 very short (one sentence), but it's too minimal to provide useful information beyond the function name.
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 params, nested objects, no output schema), the description omits crucial details like update behavior, error cases, or return value.
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 coverage is 100% and already provides detailed parameter descriptions. The tool description adds no additional semantic value beyond what the schema offers.
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 'Update' and resource 'existing AI Action', distinguishing it from create and delete siblings. However, it lacks additional context about the tool's specific role.
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 like create_ai_action or delete_ai_action. No prerequisites or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assetD
Update an asset
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | ||
| title | No | ||
| description | No | ||
| file | No | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only says 'Update', omitting any details about idempotency, overwrite vs merge behavior, required permissions, or side effects. This is insufficient for an AI agent.
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?
At three words, the description is under-specified rather than concise. It fails to provide essential information that an agent needs, making it inefficient for decision-making.
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?
With no output schema, no annotations, and low schema coverage, the description should compensate but does not. It omits return values, error cases, and constraints, leaving the agent blind to critical usage details.
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 only 33%. The description adds no parameter explanations or examples, leaving 4 parameters (title, description, file, assetId) completely undocumented. The nested file object lacks context on allowed formats or size limits.
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?
Description is a tautology: 'Update an asset' merely restates the tool name. It does not define what an asset is, what specific fields can be updated, or how it differs from sibling tools like update_entry or upload_asset.
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 update_asset vs alternatives such as upload_asset (for creating) or publish_asset (for publishing). The description lacks any context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_commentA
Update an existing comment on an entry. The handler will merge your updates with the existing comment data.
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | The unique identifier of the entry | |
| commentId | Yes | The unique identifier of the comment to update | |
| body | No | The updated content of the comment | |
| status | No | The updated status of the comment | |
| bodyFormat | No | Format for the comment body content | plain-text |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. States merge behavior which is useful, but lacks details on permissions, error handling, or idempotency.
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?
Two sentences, front-loaded with purpose and key behavior, no superfluous text.
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 7 params, no output schema, no annotations, description explains merge but missing return value info and error scenarios.
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 has 100% coverage, so baseline 3. Description adds 'merge' context but no further meaning beyond what schema provides.
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?
Clearly states verb 'Update' and resource 'existing comment', with additional behavioral detail 'merge your updates'. Distinguishes from create_comment and delete_comment.
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?
Implied usage (update existing comment) but no explicit when-to-use vs alternatives or prerequisites (e.g., comment must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_content_typeB
Update an existing content type. The handler will merge your field updates with existing content type data, so you only need to provide the fields and properties you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| contentTypeId | Yes | ||
| name | No | ||
| fields | Yes | ||
| description | No | ||
| displayField | No | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden for behavioral transparency. It reveals the merge behavior (partial update), which is valuable. However, it lacks information on side effects (e.g., what happens if content type is published), error handling, or required permissions, leaving 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 extremely concise, using two short sentences that are front-loaded with the action. Every word contributes meaning without redundancy, 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 has 7 parameters, no output schema, and no annotations, the description is incomplete. It omits critical context such as return values, error cases, required permissions, and how the merge handles conflicts. The low schema coverage further exacerbates this gap.
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 only 29% (two parameters have descriptions). The description does not compensate by explaining parameters like name, fields, or description. It merely mentions 'fields and properties' generically, so it adds little semantic value beyond the schema.
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 an existing content type' and implies it modifies rather than creates or deletes, distinguishing it from siblings like create_content_type and delete_content_type. However, it could be more specific about the context (Contentful) and the exact resource.
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 a usage hint by explaining that the handler merges updates, so users only need to include changed fields. However, it does not explicitly state when to use this tool versus alternatives (e.g., create for new, delete for removal), nor does it mention prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_entryA
Update an existing entry. The handler will merge your field updates with the existing entry fields, so you only need to provide the fields and locales you want to change. IMPORTANT: All field values MUST include a locale key (e.g., 'en-US') for each value, like: { title: { 'en-US': 'My Updated Title' } }. Every field in Contentful requires a locale even for single-language content.
| Name | Required | Description | Default |
|---|---|---|---|
| entryId | Yes | ||
| fields | Yes | The fields to update with localized values. Example: { title: { 'en-US': 'My Updated Title' } } | |
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses the merge behavior (non-destructive partial update) and emphasizes the locale key requirement, adding critical behavioral context beyond the schema.
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?
Three sentences front-load the purpose, then merge behavior, then a critical warning with example. No fluff, every sentence earns its place.
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?
Covers the key nuance (locale requirement) and merge behavior. Lacks description of return value or error conditions, but given moderate complexity and no output schema, it provides sufficient context for an agent to use the tool correctly.
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 has 75% coverage; the description adds value by detailing the locale structure for field values, reinforcing and extending the schema's localized example, which is essential for correct usage.
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 'Update an existing entry,' specifying the verb and resource. It distinguishes from siblings like create_entry, delete_entry, and get_entry by focusing on modification.
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 explains merge behavior ('you only need to provide the fields...you want to change'), implying partial updates. However, it does not explicitly mention when not to use or compare to alternatives, leaving guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_assetC
Upload a new asset
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| description | No | ||
| file | Yes | ||
| spaceId | Yes | The ID of the Contentful space. This must be the space's ID, not its name, ask for this ID if it's unclear. | |
| environmentId | Yes | The ID of the environment within the space, by default this will be called Master | master |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and a minimal description, the behavioral transparency is extremely poor. The description does not disclose that this tool creates a new asset, requires a file upload, or any side effects or permissions needed.
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 overly terse at one short sentence, lacking sufficient content to be useful. While concise, it fails to earn its place by not conveying 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?
Given the tool's complexity (5 parameters, nested file object, no output schema, no annotations), the description is wholly incomplete. It does not cover return values, side effects, or usage context among siblings.
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 coverage is low at 40%, and the description adds no parameter meaning beyond the schema. The description fails to explain the nested 'file' object with its required sub-properties, nor does it clarify 'title' or '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 'Upload a new asset' clearly identifies the action (upload) and resource (asset), distinguishing it from sibling tools like delete_asset, update_asset, and get_asset. However, it could be more specific about the file upload context.
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 update_asset, nor does it mention prerequisites such as space and environment IDs. There is no indication of 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
40 tool updates
v1.2.0- First observed
bulk_validate - First observed
create_ai_action - First observed
create_comment - First observed
create_content_type - First observed
create_entry - First observed
create_environment - First observed
delete_ai_action - First observed
delete_asset - First observed
delete_comment - First observed
delete_content_type - First observed
delete_entry - First observed
delete_environment - First observed
get_ai_action - First observed
get_ai_action_invocation - First observed
get_asset - First observed
get_comments - First observed
get_content_type - First observed
get_entry - First observed
get_single_comment - First observed
get_space - First observed
invoke_ai_action - First observed
list_ai_actions - First observed
list_assets - First observed
list_content_types - First observed
list_environments - First observed
list_spaces - First observed
publish_ai_action - First observed
publish_asset - First observed
publish_content_type - First observed
publish_entry - First observed
search_entries - First observed
unpublish_ai_action - First observed
unpublish_asset - First observed
unpublish_entry - First observed
update_ai_action - First observed
update_asset - First observed
update_comment - First observed
update_content_type - First observed
update_entry - First observed
upload_asset
TDQS
Each tool targets a distinct resource and action (e.g., create_entry vs. get_entry, publish_asset vs. unpublish_asset). There is no overlap in purpose, and descriptions clearly differentiate similar operations like get_ai_action vs. get_ai_action_invocation.
All tools follow a consistent verb_noun snake_case pattern (e.g., create_entry, list_assets, update_comment). No mixing of conventions like camelCase or different verb styles.
With 40 tools, the count exceeds the typical well-scoped range (3-15) and the '25+' threshold for too many. Even considering Contentful's complexity, the number feels heavy and may overwhelm agents.
The tool set covers full CRUD plus publish/unpublish, search, and validation for entries; CRUD plus upload for assets; lifecycle for comments, environments, AI actions; and space listing. No obvious gaps such as missing delete for content types or bulk operations.
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
Manage repositories, users, releases, and automate GitHub workflows
Generate images, videos and PDFs from templates. Manage templates, folders, uploads and fonts.
Manage your ClickUp workspace by creating, updating, and organizing tasks, lists, folders, and tag…
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server for interacting with Contentstack's Content Management API15162TypeScriptMIT
- 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-
- AlicenseAqualityDmaintenanceEnables efficient content retrieval from Contentful's Content Delivery API using GraphQL queries. Supports schema exploration, query generation, and flexible data fetching with read-only access.6211MIT
- AlicenseAqualityNot gradedmaintenanceEnables AI agents to manage Contentrain CMS content, models, and assets with automatic git branch synchronization across different environments. It provides standardized tools for performing CRUD operations on git-based headless CMS projects through natural language.14-
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/ivo-toby/contentful-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server