用途
该服务器是一个面向 Directus v12 的 Model Context Protocol(MCP)服务器,用于把 Directus 这一无头 CMS 的各类管理能力暴露给 AI 助手(如 Claude),使 AI 客户端能够读取和写入 Directus 中的条目、管理集合与字段、上传文件、触发流程、管理用户并检查数据结构。项目使用 TypeScript 编写,并贯穿类型定义。
主要能力
根据官方说明,它提供以下工具与能力:
- 完整身份验证:基于令牌的 Directus 身份验证。
- 集合管理(Collection Management):集合与条目的 CRUD 操作。
- 文件操作(File Operations):上传、下载和管理文件。
- 流程管理(Flow Management):创建、更新、触发和管理 Directus Flows。
- 用户管理(User Management):用户的 CRUD 与角色管理。
- 架构工具(Schema Tools):分析和验证集合架构。
- 诊断(Diagnostics):集合访问诊断与故障排查。
工具安全注解
每个工具都带有 MCP 注解,使客户端在调用前即可区分读取与写入操作:其中 17 个为 readOnlyHint: true,6 个显式设置 destructiveHint: false(增量为创建类操作),11 个为 destructiveHint: true(删除、覆盖式更新、apply_schema、import_data、trigger_flow)。说明指出,MCP 规范中 destructiveHint 默认为 true,因此增量类工具需要显式设为 false,而不是省略该字段。
使用方式
安装
推荐通过 npm 安装。配置时需要设置环境变量。若 Directus 实例使用私有 CA 或需要客户端证书,可设置 TLS / 客户端证书相关变量:CA、CERT、KEY、PFX 各自接受文件路径或 PEM/DER 内容本身。
该服务器使用静态 Directus 访问令牌(DIRECTUS_TOKEN),并运行在 stdio 传输之上,设计上不需要 OAuth:MCP 规范仅为基于 HTTP 的传输定义 OAuth 2.1 授权;对于 stdio 服务器,规范建议实现“不应该”(SHOULD NOT)使用它,而应从环境获取凭据,这正是该服务器的做法。Directus 12 完全支持静态访问令牌。令牌可在 Directus 的 User Settings → Token 中生成,生产环境建议使用具有最小权限角色的专用用户。
与 Claude 订阅(Max/Pro)配合
MCP 服务器本身不消耗 Anthropic API 令牌;只有 AI 客户端的模型调用才会。在 Claude Code 或 Claude Desktop 配合 Claude Max(或 Pro)订阅使用时,模型用量由订阅覆盖,无需 Anthropic API 密钥。只有在通过 Claude API 以编程方式驱动 Claude(例如远程 MCP 连接器)时才需要 API 密钥。
客户端配置
- Cursor:打开 Cursor 设置(macOS 为
Cmd+,,Windows/Linux 为Ctrl+,),搜索 “MCP” 或进入 Features → MCP Servers,点击 “Edit in settings.json”,添加配置后保存并重启 Cursor。 - Windsurf:打开设置(
Cmd+,/Ctrl+,),搜索 “MCP Servers”,完全退出 Windsurf(Cmd+Q/Ctrl+Q),重新打开并等待约 10 秒让 MCP 初始化。 - Claude Desktop:配置文件位置为 macOS
~/Library/Application Support/Claude/claude_desktop_config.json,Windows%APPDATA%\Claude\claude_desktop_config.json,Linux~/.config/Claude/claude_desktop_config.json;创建或编辑该配置文件后重启 Claude Desktop。 - Claude.ai(Web with MCP):进入 Claude.ai 设置,找到 MCP 配置部分,添加新的 MCP 服务器。说明提到 Claude.ai 的 MCP 支持可能需要 Pro 订阅和特定浏览器扩展。
安全删除条目
自 Directus 12.3.0 起,delete_items 不会回退为删除所有内容:
ids: [...]删除指定条目。query: {...}删除查询匹配的所有条目。- 同时传入两者会被拒绝。
- 两者都不传则不删除任何内容,也不发出请求。
要删除集合中的所有条目,需显式要求。自 Directus 12.4.0 起,查询会在令牌的读取权限下解析目标:需要主键的读取权限,且仅删除令牌可读取的条目;能删除但无法读取的令牌不会删除任何内容。
适用场景
配置完成后,用户可以通过 AI 助手与 Directus 交互,例如:读取或写入内容条目、创建集合与字段、上传文件、触发流程、管理用户与角色,以及分析集合架构。适合需要让 AI 助手直接操作 Directus 无头 CMS 的开发与内容管理场景。
限制与注意事项
- 连接问题排查:确认 Directus 已在配置的 URL 上运行;检查令牌权限是否覆盖所需操作;更改 MCP 配置后完全重启 IDE;查看 IDE 开发者控制台中的 MCP 相关错误。
- 权限错误:确保 Directus 令牌具备所需权限——管理员令牌拥有完整访问权限,或为需要访问的集合配置特定角色权限。
- 连接超时:若使用远程 Directus 实例,验证 URL 正确且可访问,检查防火墙/网络设置,并确保 Directus 上正确配置了 CORS。
- 该项目包含单元、集成与端到端测试套件(vitest),并强制执行覆盖率阈值(语句/行/函数/分支均为 95%),低于阈值测试运行失败;另有面向真实实例的手动验证脚本
tests/live/demo.mjs,不属于npm test范围。
其他信息
项目采用 MIT 许可证,作者为 Jorge Domingues Nunes。官方资料未提供具体定价与收费信息。