Directus MCP服务

一个实现模型上下文协议(MCP)的Node.js服务器,用于Directus CMS,使AI客户端能够通过MCP与Directus API交互。

  • by pixelsock
  • TypeScript
  • 混合部署
  • 24 星标
  • 更新于
在 GitHub 查看 pixelsock/directus-mcp

使用说明

Directus MCP服务器

一个为Directus CMS实现模型上下文协议(MCP)的Node.js服务器。使AI客户端能够与 API指导 通过模型上下文协议(MCP)。

ℹ 先决条件

▶️ 快速开始

  1. 获取您的Directus API证书

    • 转到您的Directus实例
    • 创建静态访问令牌或获取您的电子邮件和密码
    • 确保这些凭据的安全
  2. 添加到您的AI编辑器

    {
      "mcpServers": {
        "directus": {
          "command": "npx",
          "args": ["-y", "@pixelsock/directus-mcp@latest"],
          "env": {
            "DIRECTUS_URL": "https://your-directus-instance.com",
            "DIRECTUS_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN"
          }
        }
      }
    }
    

    或者,您可以使用电子邮件/密码身份验证:

    {
      "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"
          }
        }
      }
    }
    

    对于光标:

    1. 前往设置→ 光标设置→ MCP
    2. 点击 + Add New Global MCP Server
    3. 粘贴配置
    4. 用Directus凭据替换占位符值
    5. 保存和 重新启动 光标

    对于Claude Desktop:

    1. 打开设置→ 开发者
    2. 点击 Edit Config
    3. 打开 claude_desktop_config.json 在代码编辑器中粘贴配置
    4. 用Directus凭据替换占位符值
    5. 保存和 重新启动 克劳德

❓ 故障排除

如果您在MCP客户端(如Cursor或Claude Desktop)中启动服务器时遇到问题,请尝试以下操作。

确保您拥有有效的Directus凭据

  1. 验证您的Directus URL是否正确且可访问
  2. 检查您的访问令牌或电子邮件/密码凭据是否有效
  3. 替换MCP客户端配置中的凭据
  4. 保存和 重新启动 您的MCP客户端

确保已安装Node和NPM

运行以下命令以确认已安装Node和NPM:

node -v
npm -v

清除你的NPM缓存

有时清理你的 NPM缓存 可以解决以下问题 npx.

npm cache clean --force

🛠️ 可用工具

藏品和物品

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

文件

getFiles                // Get files from Directus
uploadFile              // Upload a file to Directus

用户与权限

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

系统

getSystemInfo           // Get system information from Directus
getActivity             // Get activity logs from Directus
getConfig               // Get current configuration information

🚧 开发模式

如果要在开发模式下运行服务器:

  1. 克隆并安装:

    git clone https://github.com/pixelsock/directus-mcp.git
    cd directus-mcp
    npm install
    
  2. 将您的凭据添加到 .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-password
    
  3. 启动开发服务器:

    npm run dev
    

🌐 HTTP传输(多用户/远程部署)

默认情况下,服务器使用 stdio 传输,非常适合单用户本地AI编辑器(Cursor、Claude Desktop等)。

对于 多用户的 或 远程 您可以切换到的环境 可流式HTTP传输 通过设置 MCP_TRANSPORT 环境变量。

配置

环境变量 默认值 描述
MCP_TRANSPORT stdio 运输方式: stdio 或 http / streamable-http
MCP_PORT 3000 HTTP服务器监听的TCP端口
MCP_HOST 127.0.0.1 要绑定的主机/接口。使用 0.0.0.0 绑定所有接口

你也可以通过 --transport=http 作为CLI参数,而不是设置环境变量。

运行HTTP服务器

# 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示例

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

将MCP客户端连接到HTTP服务器

服务器运行后,配置MCP客户端以连接到:

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

例如,对于支持Streamable HTTP传输的客户端:

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

📄 Directus开发人员资源