Directus MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NODE_ENV | No | Environment mode (development/production) | |
| DIRECTUS_URL | Yes | Your Directus instance URL (e.g., http://localhost:8065) | |
| DIRECTUS_TOKEN | Yes | Static API token with appropriate permissions | |
| DIRECTUS_RESOURCES_ENABLED | No | Enable resources feature (true/false) | |
| DIRECTUS_PROMPTS_COLLECTION | No | Collection name for AI prompts | ai_prompts |
| DIRECTUS_RESOURCES_EXCLUDE_SYSTEM | No | Exclude system collections from resources (true/false) | |
| DIRECTUS_PROMPTS_COLLECTION_ENABLED | No | Enable AI prompts collection (true/false) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_collectionsA | List all collections in the Directus instance |
| get_collection_schemaB | Get the schema for a specific collection |
| get_collection_itemsA | Get items from a collection with optional filtering and pagination |
| create_collectionA | Create a new collection with optional fields. Creates a real table with an auto-increment |
| delete_collectionB | Delete a collection (requires confirmation) |
| create_itemB | Create a new item in a collection |
| update_itemA | Update an existing item in a collection. In versioned collections the published item is read-only — target a draft version instead. |
| delete_itemsA | Delete items from a collection, either by explicit IDs or by a query. Providing neither deletes nothing. |
| create_fieldB | Create a new field in a collection |
| update_fieldB | Update an existing field in a collection |
| delete_fieldA | Delete a field from a collection (requires confirmation) |
| bulk_operationsB | Execute bulk create, update, and delete operations |
| analyze_collection_schemaB | Analyze collection schema with relationship mapping and validation |
| analyze_relationshipsC | Analyze relationships across collections |
| create_relationshipC | Create relationships between collections (O2O, O2M, M2O, M2M, M2A) |
| validate_collection_schemaC | Validate collection schema and relationships |
| diagnose_collection_accessB | Diagnose collection access issues and permissions |
| refresh_collection_cacheA | Refresh Directus collection cache and verify access |
| validate_collection_creationA | Validate that a newly created collection is properly accessible |
| get_usersA | Get all users with optional filtering and pagination |
| get_userA | Get a specific user by ID |
| get_filesB | Get files with optional filtering and pagination |
| get_flowsB | Get flows with optional filtering and pagination |
| get_flowA | Get a specific flow by ID with optional operations |
| create_flowB | Create a new automation flow |
| update_flowC | Update an existing flow |
| delete_flowA | Delete a flow and all its operations (requires confirmation) |
| trigger_flowC | Manually trigger a flow execution |
| get_operationsC | Get flow operations with optional filtering by flow |
| get_schema_snapshotA | Read a snapshot of the data model (collections, fields, relations). Pass include_collections or exclude_collections for a partial snapshot. |
| diff_schemaA | Compare a schema snapshot against the current data model and report what applying it would change. Read-only — nothing is modified. |
| apply_schemaA | Apply a schema diff produced by diff_schema. Changes the live data model and can drop collections and fields. |
| import_dataA | Import rows from a CSV or JSON file into one collection, or into several related collections at once using a flat multi-collection file. Subject to the Directus IMPORT_MAX_FILE_SIZE limit (50mb by default). Single-collection: pass |
| search_toolsA | Find the tools on this server that match a task description, and return their full definitions so they can be called directly. Use this first when unsure which tool to use. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
Many tools are clearly separated by resource and action, but several clusters overlap: bulk_operations partially duplicates create_item/update_item/delete_items, and analyze_collection_schema/validate_collection_schema/diagnose_collection_access/refresh_collection_cache all deal with schema health and permissions. The descriptions help, but an agent could still misroute requests.
Most tools follow a consistent snake_case verb_noun pattern such as get_collection_items, create_field, update_item, and delete_flow. The few exceptions like bulk_operations and the overlapping schema-related phrases keep it from being perfectly consistent.
At 34 tools, the surface is heavy and includes several narrowly scoped helpers like refresh_collection_cache, validate_collection_creation, and analyze_relationships that could be consolidated. The broad Directus domain justifies some breadth, but this still exceeds the comfortable tool count range.
Core collection, field, item, schema, and flow operations are covered, but there are notable gaps: no single-item getter, no update_collection, no relationship update/delete, no user/file write operations, and flow operations cannot be independently created or updated. Agents can work around some gaps but not all.