
Directus MCP
STDIOHTTP-SSEDirectus MCP Server for AI tools to interact with Directus content management system.
Directus MCP Server for AI tools to interact with Directus content management system.
The Model Context Protocol (MCP) is a standard for helping AI tools and LLMs talk to applications and services like Directus.
The Directus Content MCP Server extension allows any MCP client to connect to your Directus instance. Some good use cases are:
It intentionally limits destructive actions that would result in really bad outcomes like data loss from deleting fields or deleting collections.
Note: This extension is derived from the official Directus MCP implementation and has been adapted to work as a Directus extension with HTTP streaming support, eliminating the need for separate server setup and environment variable configuration.
If you don't have an existing Directus project, you can get started with a free trial on Directus Cloud at https://directus.cloud/register
OR
You can spin up a sample Directus instance locally with the following terminal command.
npx directus-template-cli@latest init
You can use email and password or generate a static token to connect the MCP to your Directus instance.
To get a static access token:
If your Claude Desktop supports remote MCP connections, you can connect directly:
Open Claude Desktop and navigate to Settings.
Under the Developer tab, click Edit Config to open the configuration file.
Add the following configuration:
{ "mcpServers": { "directus": { "url": "https://YOUR_DIRECTUS_URL/directus-extension-mcp/mcp?access_token=YOUR_ACCESS_TOKEN" } } }
Make sure you replace YOUR_DIRECTUS_URL
with your Directus instance URL and YOUR_ACCESS_TOKEN
with your access token.
Save the configuration file and restart Claude desktop.
From the new chat screen, you should see the Directus MCP server appear.
If your MCP client doesn't support remote connections natively, you can use mcp-remote
as a bridge:
Configure your MCP client to use mcp-remote:
For Claude Desktop:
{ "mcpServers": { "directus": { "command": "npx", "args": [ "mcp-remote", "https://YOUR_DIRECTUS_URL/directus-extension-mcp/mcp?access_token=YOUR_ACCESS_TOKEN" ] } } }
For Cursor:
{ "mcpServers": { "directus": { "command": "npx", "args": [ "mcp-remote", "https://YOUR_DIRECTUS_URL/directus-extension-mcp/mcp?access_token=YOUR_ACCESS_TOKEN" ] } } }
Make sure you replace YOUR_DIRECTUS_URL
with your Directus instance URL and YOUR_ACCESS_TOKEN
with your access token.
Save the configuration file and restart your MCP client.
The server should now be connected and available for use.
The MCP Server provides the following tools to interact with your Directus instance:
Tool | Description | Use Cases |
---|---|---|
system-prompt | Provides context to the LLM assistant about its role | Start of a session to understand the system context |
users-me | Get current user information | Understanding permissions, personalizing responses |
read-collections | Retrieve the schema of all collections | Exploring database structure, understanding relationships |
read-items | Fetch items from any collection | Retrieving content, searching for data, displaying information |
create-item | Create new items in collections | Adding new content, records, or entries |
update-item | Modify existing items | Editing content, updating statuses, correcting information |
delete-item | Remove items from collections | Cleaning up outdated content |
read-files | Access file metadata or raw content | Finding images, documents, or media assets |
import-file | Import files from URLs | Adding external media to your Directus instance |
update-files | Update file metadata | Organizing media, adding descriptions, tagging |
read-fields | Get field definitions for collections | Understanding data structure, field types and validation |
read-field | Get specific field information | Detailed field configuration |
create-field | Add new fields to collections | Extending data models |
update-field | Modify existing fields | Changing field configuration, interface options |
read-flows | List available automation flows | Finding automation opportunities |
trigger-flow | Execute automation flows | Bulk operations, publishing, status changes |
read-comments | View comments on items | Retrieving feedback, viewing discussion threads |
upsert-comment | Add or update comments | Providing feedback, documenting decisions |
markdown-tool | Convert between markdown and HTML | Content formatting for WYSIWYG fields |
get-prompts | List available prompts | Discovering pre-configured prompt templates |
get-prompt | Execute a stored prompt | Using prompt templates for consistent AI interactions |
The MCP server comes with a system prompt that helps encourage the right tool use and provides guiderails for the LLM.
You can overwrite the default system prompt by setting the MCP_SYSTEM_PROMPT
environment variable in your Directus server configuration (.env file or similar).
You can also disable the system prompt entirely if desired.
Just set MCP_SYSTEM_PROMPT_ENABLED
to false
in your Directus server environment variables.
The MCP server supports dynamic prompts stored in a Directus collection. Prompts are not widely supported across MCP Clients, but Claude Desktop does have support for them.
You can configure the following environment variables in your Directus server configuration:
DIRECTUS_PROMPTS_COLLECTION_ENABLED
: Set to "true" to enable prompt functionalityDIRECTUS_PROMPTS_COLLECTION
: The name of the collection containing promptsDIRECTUS_PROMPTS_NAME_FIELD
: Field name for the prompt name (default: "name")DIRECTUS_PROMPTS_DESCRIPTION_FIELD
: Field name for the prompt description (default: "description")DIRECTUS_PROMPTS_SYSTEM_PROMPT_FIELD
: Field name for the system prompt text (default: "system_prompt")DIRECTUS_PROMPTS_MESSAGES_FIELD
: Field name for the messages array (default: "messages")Both system prompts and message content support mustache templating using the {{ variable_name }}
syntax:
Hello, {{ name }}!
arguments
parameterMIT