Directus MCP Server
The Directus MCP Server enables AI clients to interact with a Directus CMS through the Model Context Protocol (MCP), allowing for content management and administrative tasks.
Collections and Items: Retrieve, create, update, or delete items and collections; get schemas, fields, and relations
Files: Upload and retrieve files from Directus
Users and Permissions: Manage users, roles, and permissions; login to obtain access tokens; get current user information
System: Access health information, activity logs, and configuration details
Enables interaction with Directus CMS API, providing tools for managing collections and items, handling files, user authentication, permissions management, and accessing system information through the Directus platform.
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., "@Directus MCP Servershow me the 5 most recent blog posts"
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.
Directus MCP Server
A Node.js server implementing Model Context Protocol (MCP) for Directus CMS. Enable AI Clients to interact with the Directus API through the Model Context Protocol (MCP).
ℹ Prerequisites
Related MCP server: Node Omnibus MCP Server
▶️ Quick start
Get your Directus API credentials
Go to your Directus instance
Create a static access token or get your email and password
Keep these credentials secure
Add to your AI editor
{ "mcpServers": { "directus": { "command": "npx", "args": ["-y", "@pixelsock/directus-mcp@latest"], "env": { "DIRECTUS_URL": "https://your-directus-instance.com", "DIRECTUS_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN" } } } }Alternatively, you can use email/password authentication:
{ "mcpServers": { "directus": { "command": "npx", "args": ["-y", "@pixelsock/directus-mcp@latest"], "env": { "DIRECTUS_URL": "https://your-directus-instance.com", "DIRECTUS_EMAIL": "your-email@example.com", "DIRECTUS_PASSWORD": "your-password" } } } }For Cursor:
Go to Settings → Cursor Settings → MCP
Click
+ Add New Global MCP ServerPaste configuration
Replace placeholder values with your Directus credentials
Save and restart Cursor
For Claude Desktop:
Open Settings → Developer
Click
Edit ConfigOpen
claude_desktop_config.jsonin a code editor and paste configurationReplace placeholder values with your Directus credentials
Save and restart Claude
❓ Troubleshooting
If you are having issues starting the server in your MCP client e.g. Cursor or Claude Desktop, please try the following.
Ensure you have valid Directus credentials
Verify that your Directus URL is correct and accessible
Check that your access token or email/password credentials are valid
Replace the credentials in your MCP client configuration
Save and restart your MCP client
Ensure you have Node and NPM installed
Run the following commands to confirm you have Node and NPM installed:
node -v
npm -vClear your NPM cache
Sometimes clearing your NPM cache can resolve issues with npx.
npm cache clean --force🛠️ Available tools
Collections and Items
getItems // Get items from a collection
getItem // Get a single item from a collection by ID
createItem // Create a new item in a collection
updateItem // Update an existing item in a collection
deleteItem // Delete an item from a collection
getCollections // Get all collection schemas
getFields // Get fields for a collection
getRelations // Get relations for a collectionFiles
getFiles // Get files from Directus
uploadFile // Upload a file to DirectusUsers and Permissions
login // Login to Directus and get an access token
getUsers // Get users from Directus
getCurrentUser // Get the current user info
getRoles // Get roles from Directus
getPermissions // Get permissions from DirectusSystem
getSystemInfo // Get system information from Directus
getActivity // Get activity logs from Directus
getConfig // Get current configuration information🚧 Development mode
If you want to run the server in development mode:
Clone and install:
git clone https://github.com/pixelsock/directus-mcp.git cd directus-mcp npm installAdd your credentials to
.env:# .env DIRECTUS_URL=https://your-directus-instance.com DIRECTUS_ACCESS_TOKEN=your_token_here # Or use email/password DIRECTUS_EMAIL=your-email@example.com DIRECTUS_PASSWORD=your-passwordStart development server:
npm run dev
🌐 HTTP transport (multi-user / remote deployments)
By default the server uses the stdio transport, which is ideal for single-user local AI editors (Cursor, Claude Desktop, etc.).
For multi-user or remote environments you can switch to the Streamable HTTP transport by setting the MCP_TRANSPORT environment variable.
Configuration
Environment variable | Default | Description |
|
| Transport mode: |
|
| TCP port the HTTP server listens on |
|
| Host/interface to bind. Use |
You can also pass --transport=http as a CLI argument instead of setting the environment variable.
Running the HTTP server
# Via environment variable
MCP_TRANSPORT=http MCP_PORT=3000 MCP_HOST=0.0.0.0 node dist/index.js
# Via CLI argument
node dist/index.js --transport=httpDocker example
docker run -p 3000:3000 \
-e DIRECTUS_URL=https://your-directus-instance.com \
-e DIRECTUS_ACCESS_TOKEN=your_token_here \
-e MCP_TRANSPORT=http \
-e MCP_HOST=0.0.0.0 \
ghcr.io/pixelsock/directus-mcpConnecting an MCP client to the HTTP server
Once the server is running, configure your MCP client to connect to:
http://<host>:<port>/mcpFor example with a client that supports the Streamable HTTP transport:
{
"mcpServers": {
"directus": {
"url": "http://localhost:3000/mcp"
}
}
}📄 Directus Developer resources
Available Tools
18 toolscreateItemC
Create a new item in a collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| data | Yes | Item data | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Create') but doesn't cover critical aspects like required permissions, whether the operation is idempotent, error handling, or what happens on success (e.g., returns the created item). This leaves significant gaps 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?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a creation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error conditions, or behavioral nuances like validation rules. For a mutation operation, this lack of detail makes it incomplete for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters thoroughly. The description adds no additional meaning beyond implying that 'collection' and 'data' are required, which is already clear from the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('new item in a collection'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'updateItem' or 'uploadFile' beyond the basic action, missing specific distinctions about 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?
The description provides no guidance on when to use this tool versus alternatives like 'updateItem' or 'uploadFile'. It lacks context about prerequisites, such as needing an existing collection or authentication, and doesn't mention any exclusions or specific scenarios for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteItemC
Delete an item from a collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| id | Yes | Item ID | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Delete' implies a destructive mutation, the description doesn't specify whether this operation is reversible, what permissions are required, or any rate limits. It also doesn't describe the response format or error handling, which is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Delete an item from a collection.' It is front-loaded with the core action and resource, with zero wasted words. Every part of the sentence earns its place by conveying the essential purpose without redundancy or fluff.
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 that this is a destructive mutation tool with no annotations and no output schema, the description is incomplete. It fails to address critical aspects like authentication needs, side effects, error conditions, or return values. For a tool with 4 parameters and significant behavioral implications, the description should provide more context to ensure safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters (collection, id, token, url) with clear descriptions. The description adds no additional meaning beyond what the schema provides, such as examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
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 item from a collection' clearly states the verb ('Delete') and resource ('an item from a collection'), which is adequate. However, it doesn't distinguish this tool from its sibling 'updateItem' or 'createItem' in terms of destructive nature, nor does it specify what type of 'item' or 'collection' this refers to (e.g., database records). This makes it somewhat vague compared to more specific alternatives.
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 'updateItem' or 'createItem', nor does it mention prerequisites such as authentication or specific contexts. It lacks explicit when/when-not instructions or references to sibling tools, leaving usage unclear beyond the basic action stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getActivityC
Get activity logs from Directus
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Query parameters like filter, sort, limit, etc. (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
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. It states 'Get activity logs' which implies a read operation, but doesn't disclose behavioral traits like authentication requirements (though hinted in schema), rate limits, pagination, or what the logs contain. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of retrieving activity logs (which may involve filtering, sorting, etc.), no annotations, and no output schema, the description is incomplete. It doesn't explain what the activity logs contain, how to interpret them, or any constraints, 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?
The description adds no parameter semantics beyond what the input schema provides. With 100% schema description coverage, the baseline is 3, as the schema already documents the three parameters (query, token, url) adequately, and the description doesn't enhance this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'activity logs from Directus', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'getCollections', 'getUsers', or 'getItems' that also retrieve data from Directus, so it's not fully specific to sibling 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. With sibling tools like 'getCollections' and 'getUsers', there's no indication that this tool is for activity logs specifically or any context for its application, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCollectionsC
Get all collection schemas from Directus
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It states what the tool does but doesn't describe return format, pagination, error conditions, authentication requirements, rate limits, or whether this is a read-only operation. The agent must infer behavior from the tool name alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the core purpose immediately.
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 no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'collection schemas' include, the response format, or how this differs from other metadata retrieval tools. The agent lacks necessary context to use this tool effectively alongside its 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 description coverage is 100%, with both parameters ('token' and 'url') well-documented in the schema. The description adds no additional parameter context beyond what the schema provides, so it meets the baseline for adequate but unenriched parameter 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 ('Get') and target resource ('all collection schemas from Directus'), providing specific verb+resource pairing. However, it doesn't explicitly differentiate from sibling tools like 'getFields' or 'getRelations' that also retrieve metadata, leaving some ambiguity about scope boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like authentication), compare with similar tools (e.g., 'getFields' for field-level metadata), or indicate appropriate contexts for retrieving collection schemas versus other data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getConfigB
Get current configuration information (without secrets)
| 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. It discloses that the tool retrieves configuration 'without secrets', which is a useful behavioral trait regarding data sensitivity. However, it lacks other critical details like whether this is a read-only operation, authentication requirements, rate limits, or response format, leaving significant gaps in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the core purpose and includes a clarifying detail ('without secrets'). There is no wasted verbiage, and every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what is retrieved and excludes secrets, but without annotations or output schema, it doesn't cover behavioral aspects like safety, authentication, or response details, making it minimally viable but incomplete for full agent guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, and the baseline for this scenario is 4, as it avoids unnecessary information while being complete for a parameterless tool.
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 purpose with a specific verb ('Get') and resource ('current configuration information'), and distinguishes it by specifying what is excluded ('without secrets'). However, it doesn't explicitly differentiate from sibling tools like 'getSystemInfo' or 'getFields', which might also retrieve configuration-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for usage, or comparisons to sibling tools such as 'getSystemInfo' or 'getFields', leaving the agent without explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCurrentUserC
Get the current user info
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets' information (implying read-only), but doesn't mention authentication requirements (despite the token parameter), rate limits, error conditions, or what specific user info is returned. This leaves significant gaps for a tool that likely requires authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words, front-loading the core purpose with zero wasted words. Every element earns its place in this minimal but complete statement of 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?
For a tool with no annotations, no output schema, and authentication parameters, the description is insufficient. It doesn't explain what user information is returned, authentication requirements, or how this differs from other user-related tools. The context signals indicate this is incomplete for proper agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, both parameters are already documented in the schema. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline but doesn't enhance understanding of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('current user info'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'getUsers' or 'getItem' which could also retrieve user information, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'getUsers' or 'getItem'. There's no mention of prerequisites, context, or distinctions from sibling tools that also retrieve user data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFieldsC
Get fields for a collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, the description doesn't address authentication requirements (despite a token parameter), rate limits, pagination, error conditions, or what 'fields' actually means in this context. It provides minimal behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single 5-word sentence that gets straight to the point. There's zero wasted language or unnecessary elaboration. While it may be too brief for complete understanding, it's perfectly efficient in terms of word economy.
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 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'fields' means in this context, what format the response takes, or how this differs from similar data retrieval tools. The combination of sparse description and missing structured metadata creates significant gaps for an agent trying to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema. It doesn't explain relationships between parameters or provide usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('fields for a collection'), making the purpose understandable. However, it doesn't distinguish this tool from similar siblings like 'getCollections' or 'getItems' - it's unclear if this retrieves metadata about fields versus actual field data. The description is specific but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'getCollections', 'getItems', and 'getRelations', there's no indication whether this tool is for metadata retrieval, schema inspection, or something else. No prerequisites, exclusions, or comparison to similar tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFilesC
Get files from Directus
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Query parameters like filter, sort, limit, etc. (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention if this is read-only, pagination behavior, error handling, rate limits, or authentication needs beyond the token parameter. Significant gaps exist for a tool with potential complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, front-loaded and zero waste. Every word earns its place, though this brevity contributes to gaps in other dimensions.
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 annotations, no output schema, and a tool that likely returns complex data (files with metadata), the description is incomplete. It doesn't explain return values, error cases, or how it interacts with the Directus system, leaving the agent with insufficient 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 already documents all parameters. The description adds no additional meaning about parameters beyond what the schema provides, such as explaining query structure or default behavior. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get files from Directus' states the basic action (get) and resource (files from Directus), but it's vague about scope and doesn't distinguish from siblings like getItems or getItem. It lacks specificity about what 'files' means in this 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 like getItems (which might handle files too) or uploadFile. The description doesn't mention prerequisites, context, or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getItemC
Get a single item from a collection by ID
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| id | Yes | Item ID | |
| query | No | Query parameters (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves an item by ID but omits critical details like authentication requirements (implied by the 'token' parameter), rate limits, error handling, or response format. This is inadequate for a tool with multiple parameters and no output 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?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.
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, no annotations, no output schema), the description is insufficient. It fails to explain the optional 'query' parameter's purpose, authentication needs, or what the tool returns, leaving significant gaps for an AI agent to understand and invoke it 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?
The schema description coverage is 100%, so the schema already documents all parameters (collection, id, query, token, url). The description adds no additional meaning beyond implying ID-based retrieval, which is inherent in the schema. This meets the baseline score when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('a single item from a collection'), making the purpose understandable. However, it doesn't explicitly distinguish this tool from its sibling 'getItems' (which likely retrieves multiple items), leaving room for ambiguity in sibling differentiation.
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 'getItems' for multiple items or 'getCollections' for collection metadata. It lacks context about prerequisites (e.g., authentication needs) or exclusions, offering minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getItemsC
Get items from a collection in Directus
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| query | No | Query parameters like filter, sort, limit, etc. (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'Get items' but doesn't explain whether this is a read-only operation, if it requires authentication, what happens on errors, or if there are rate limits. For a tool with 4 parameters and no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return format (e.g., list of items, pagination), error conditions, or authentication requirements, leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters well. The description adds no additional parameter semantics beyond implying 'collection' is the target and 'items' are retrieved, which is redundant with the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'items from a collection in Directus', making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'getItem' (singular), which appears to retrieve a single item rather than multiple items from a collection.
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 'getItem' (for single items) or 'getCollections' (for collection metadata). It mentions the context 'in Directus' but offers no explicit when/when-not instructions or comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPermissionsC
Get permissions from Directus
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Query parameters like filter, sort, limit, etc. (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action. It doesn't mention whether this is a read-only operation, what authentication is required beyond the optional token parameter, potential rate limits, or what format the permissions data returns. For a tool with 3 parameters and no annotation coverage, this 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 a single, efficient sentence with zero wasted words. It's appropriately sized for a simple retrieval tool and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what permissions are in the Directus context, what data structure to expect, or how the query parameter should be structured despite its complexity (object type). The description fails to compensate for the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema (query parameters, authentication token, API URL). This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('permissions from Directus'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'getRoles' or 'getUsers' that also retrieve different types of Directus data, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'getRoles' and 'getUsers' that retrieve related data, there's no indication of what distinguishes permissions from these other entities or when an agent should choose one over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRelationsC
Get relations for a collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | No | Collection name (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic operation. It doesn't disclose whether this is a read-only operation (implied by 'get'), what authentication is needed (though the token parameter hints at it), rate limits, pagination behavior, or what format the relations are returned in. Significant behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized for a simple tool and front-loads the core purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (retrieving metadata-like relations), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'relations' are in the Directus context (e.g., database relationships, API links), what the output looks like, or error conditions. More context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (collection, token, url). The description doesn't add any meaning beyond what the schema provides—it doesn't explain what 'relations' are or how the collection parameter affects the output. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get relations for a collection' states the basic action (get) and target (relations), but is vague about what 'relations' means in this context and doesn't distinguish this tool from similar siblings like getFields or getCollections. It provides minimal but functional purpose information.
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 getFields (which might return related field metadata) or getCollections (which might list collections themselves). The description implies it's for retrieving relationship data but offers no context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRolesC
Get roles from Directus
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Query parameters like filter, sort, limit, etc. (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only states what the tool does, not how it behaves. It doesn't mention whether this is a read-only operation, what authentication is required, whether there are rate limits, what format the roles are returned in, or any other behavioral characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, front-loading the essential information with zero wasted words. Every element ('Get', 'roles', 'from Directus') earns its place by specifying the action, resource, and system context.
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 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'roles' are in the Directus context, what data they contain, how results are structured, or provide any behavioral context that would help an agent understand the operation's implications and results.
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?
With 100% schema description coverage, the input schema already documents all three parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline of 3 but doesn't provide extra value through examples, format details, or usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('roles from Directus'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'getUsers', 'getCollections', or 'getPermissions' which follow the same pattern for different resources, missing the opportunity to clarify this is specifically for role data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'getUsers', 'getPermissions', and 'getCollections' that retrieve different types of data from the same system, there's no indication of when roles specifically are needed versus other entity types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSystemInfoC
Get system information from Directus
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | System endpoint (e.g. 'health', 'info', 'activity') | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
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 states it 'Get system information' but doesn't clarify if this is a read-only operation, requires authentication, has rate limits, or what the output format is. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's front-loaded and appropriately sized for a simple retrieval tool, 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 complexity of retrieving system information with multiple endpoints, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'system information' entails, how endpoints differ, or what the return values look like, leaving the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear explanations for each parameter (e.g., 'endpoint' as system endpoint like 'health', 'info', 'activity'). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'system information from Directus', making the purpose evident. However, it doesn't differentiate from sibling tools like 'getConfig' or 'getActivity', which also retrieve system-related data, so it's not fully specific about what distinguishes this tool.
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. With siblings like 'getConfig' and 'getActivity' that might overlap in retrieving system information, the description lacks context on usage scenarios, exclusions, or prerequisites, leaving the agent to infer based on parameter names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUsersC
Get users from Directus
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Query parameters like filter, sort, limit, etc. (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Get users' but doesn't clarify if this is a read-only operation, what permissions are required, whether it supports pagination or filtering beyond the 'query' parameter, or what the output format is. This leaves significant gaps for an AI agent to understand how to invoke it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence ('Get users from Directus'), which is front-loaded and wastes no words. It efficiently communicates the core purpose without unnecessary elaboration, earning the highest score for brevity and clarity.
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 retrieving users from a system like Directus, with no annotations and no output schema, the description is incomplete. It doesn't explain what data is returned, how to handle authentication (though hinted in schema), or differentiate from sibling tools. This makes it inadequate for an AI agent to use the tool confidently without additional 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?
The input schema has 100% description coverage, clearly documenting all three parameters (query, token, url) with their types and optional status. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline score of 3 for high schema coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('users from Directus'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar sibling tools like 'getCurrentUser' or 'getItems', which might also retrieve user-related data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'getCurrentUser' (for the logged-in user) or 'getItems' (which might retrieve users as items). There's no mention of prerequisites, such as authentication needs, or context for choosing this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginC
Login to Directus and get an access token
| Name | Required | Description | Default |
|---|---|---|---|
| No | User email (default from config) | ||
| password | No | User password (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool logs in and retrieves a token, implying a write operation that changes state (authentication). However, it doesn't disclose critical behaviors like token expiration, required permissions, error conditions, or rate limits, which are essential for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence that directly states the tool's purpose without any fluff. It is front-loaded and wastes no words, making it easy for an agent to parse quickly. Every part of the sentence earns its place by 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 complexity of an authentication tool with no annotations and no output schema, the description is insufficient. It doesn't explain the return value (e.g., token format, expiration), error handling, or dependencies on other tools. For a critical operation like login, more context is needed to ensure proper integration and usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all three parameters ('email', 'password', 'url') well-documented in the input schema. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or default behavior details. This meets the baseline for high schema coverage but doesn't enhance 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 clearly states the action ('Login to Directus') and the outcome ('get an access token'), which is specific and actionable. It distinguishes itself from sibling tools like 'getCurrentUser' or 'getUsers' by focusing on authentication rather than data retrieval. However, it doesn't explicitly contrast with other tools, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or prerequisites for its use. It doesn't mention if this is required before other operations, if tokens expire, or if there are other authentication methods available. This lack of context leaves the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateItemC
Update an existing item in a collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| data | Yes | Updated item data | |
| id | Yes | Item ID | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it's an update operation. It doesn't disclose behavioral traits like authentication needs (implied by 'token' param but not explained), mutation effects, error handling, or rate limits, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, front-loading the core action. It's appropriately sized for the tool's complexity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 5 parameters, no annotations, no output schema), the description is inadequate. It doesn't cover return values, error cases, or behavioral context, leaving the agent with insufficient information to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no meaning beyond the schema, as it doesn't explain parameter interactions or provide examples. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('existing item in a collection'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'createItem' or 'deleteItem' beyond the obvious verb difference, missing specific scope distinctions.
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 'createItem' for new items or 'getItem' for reading. It lacks context about prerequisites, such as needing an existing item ID, or exclusions, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uploadFileC
Upload a file to Directus
| Name | Required | Description | Default |
|---|---|---|---|
| fileData | No | Base64 encoded file data (either fileUrl or fileData must be provided) | |
| fileName | Yes | Name of the file | |
| fileUrl | No | URL of the file to upload (either fileUrl or fileData must be provided) | |
| mimeType | No | MIME type of the file | |
| storage | No | Storage location (optional) | |
| title | No | File title (optional) | |
| token | No | Authentication token (default from config) | |
| url | No | Directus API URL (default from config) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Upload') but doesn't mention whether this is a safe operation, what permissions are required, whether it's idempotent, or what happens on failure. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently communicates the core purpose without unnecessary words. It's front-loaded with the essential action and target, making it easy for an agent to parse quickly. Every word earns its place in this concise statement.
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 file upload tool with 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after upload (e.g., returns a file ID), error conditions, authentication requirements, or how it differs from sibling tools. The context signals indicate high complexity that the description doesn't adequately address.
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 provides no parameter information beyond what's already in the schema, which has 100% coverage. Parameters like 'fileData', 'fileUrl', and their mutual exclusivity are documented in the schema descriptions, so the description adds no additional semantic value. The baseline score of 3 reflects adequate schema coverage without description enhancement.
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 ('Upload') and target resource ('a file to Directus'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'createItem' or 'updateItem' which might also handle file creation, leaving some ambiguity about when this specific upload tool should be used versus those alternatives.
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 'createItem' or 'updateItem', which could potentially handle file operations. The description lacks context about prerequisites, such as authentication needs or when file uploads are appropriate in the Directus workflow, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Every tool has a clearly distinct purpose targeting specific resources and actions in the Directus ecosystem. There is no overlap between tools like getItem (single item retrieval), getItems (multiple items), and getCollections (schema information), making misselection unlikely.
All tools follow a consistent verb_noun naming pattern (e.g., createItem, getItem, updateItem, deleteItem). The pattern is maintained across all 18 tools with no deviations in style or convention.
With 18 tools, the count is slightly high but reasonable for a comprehensive CMS/backend server like Directus. It covers core operations without being overwhelming, though it borders on the upper limit of ideal scope.
The tool set provides complete CRUD coverage for items (create, get, update, delete), along with essential administrative functions (users, roles, permissions, files, activity, config). No obvious gaps exist for the Directus domain, enabling full agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A Model Context Protocol server for Wix AI tools
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables AI assistants to interact with Strapi CMS instances through a standardized interface, supporting content types and REST API operations.58075MIT
- AlicenseBqualityFmaintenanceA comprehensive Model Context Protocol server that provides advanced Node.js development tooling for automating project creation, component generation, package management, and documentation with AI-powered assistance.79MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows AI tools to connect to and interact with your Directus API, enabling automated access to collections, items, and user data.2227MIT
- AlicenseNot gradedqualityDmaintenanceAn extension that implements the Model Context Protocol for Directus, enabling AI tools and LLMs to interact with Directus content through natural language for content editing, data analysis, and asset management.128MIT
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/pixelsock/directus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server