mcpField
D
Directus MCP Server

Directus MCP Server

Local
github.com/pixelsockBusiness & Marketing24Updated 27w ago

About Directus MCP Server

Directus MCP Server is a Node.js MCP server for the Directus CMS that lets AI clients call the Directus API. It suits users who want to manage Directus content and settings from AI editors, and it supports both local stdio and HTTP transports for shared deployments.

Key features

  1. 01Tools for creating, reading, updating and deleting items
  2. 02File listing and upload tools
  3. 03User, role and permission queries
  4. 04System information, activity logs and config queries
  5. 05Stdio and Streamable HTTP transport options

Use cases

  1. 01Querying Directus collections from Cursor or Claude Desktop
  2. 02Creating or updating items through an AI client
  3. 03Deploying the server over HTTP for remote or multi-user setups

MCP support

This project is an MCP server that exposes Directus collection, file, user, permission and system operations as tools to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"directus": {
"command": "npx",
"args": [
"-y",
"@pixelsock/directus-mcp"
],
"env": {
"DIRECTUS_URL": "<DIRECTUS_URL>",
"DIRECTUS_ACCESS_TOKEN": "<DIRECTUS_ACCESS_TOKEN>"
}
}
}
}
Run commandnpx -y @pixelsock/directus-mcp
Environment variables to set
DIRECTUS_URL
DIRECTUS_ACCESS_TOKENSecret

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@pixelsock/directus-mcp

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

smithery badge

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).

Directus Server MCP server

ℹ Prerequisites

▶️ Quick start

  1. 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
  2. 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": "[email protected]",
            "DIRECTUS_PASSWORD": "your-password"
          }
        }
      }
    }
    

    For Cursor:

    1. Go to Settings → Cursor Settings → MCP
    2. Click + Add New Global MCP Server
    3. Paste configuration
    4. Replace placeholder values with your Directus credentials
    5. Save and restart Cursor

    For Claude Desktop:

    1. Open Settings → Developer
    2. Click Edit Config
    3. Open claude_desktop_config.json in a code editor and paste configuration
    4. Replace placeholder values with your Directus credentials
    5. 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
  1. Verify that your Directus URL is correct and accessible
  2. Check that your access token or email/password credentials are valid
  3. Replace the credentials in your MCP client configuration
  4. 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 -v
Clear 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 collection
Files
getFiles                // Get files from Directus
uploadFile              // Upload a file to Directus
Users 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 Directus
System
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:

  1. Clone and install:

    git clone https://github.com/pixelsock/directus-mcp.git
    cd directus-mcp
    npm install
    
  2. Add your credentials to .env:

    # .env
    DIRECTUS_URL=https://your-directus-instance.com
    DIRECTUS_ACCESS_TOKEN=your_token_here
    # Or use email/password
    [email protected]
    DIRECTUS_PASSWORD=your-password
    
  3. Start 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 variableDefaultDescription
MCP_TRANSPORTstdioTransport mode: stdio or http / streamable-http
MCP_PORT3000TCP port the HTTP server listens on
MCP_HOST127.0.0.1Host/interface to bind. Use 0.0.0.0 to bind all interfaces

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=http
Docker 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-mcp
Connecting an MCP client to the HTTP server

Once the server is running, configure your MCP client to connect to:

http://<host>:<port>/mcp

For example with a client that supports the Streamable HTTP transport:

{
  "mcpServers": {
    "directus": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

📄 Directus Developer resources

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.