Directus MCP预设扩展
Directus扩展,用于添加 presets 工具连接到MCP(模型上下文协议)接口,允许AI代理创建、读取、更新和删除集合的预设。
特性
- 创建 用户特定、角色特定或全局预设
- 阅读 按集合、角色或用户过滤的预设
- 更新 现有预设配置
- 删除 预设
- 与Directus权限和问责制完全集成
- 支持书签、布局选项、过滤器等
先决条件
此扩展需要 directus-extension-mcp-customization 要安装和启用的扩展。
安装
通过npm安装:
npm install directus-extension-mcp-presets或手动:
- 安装依赖项:
npm install- 构建扩展:
npm run build- 服务器启动时,Directus将自动加载扩展。
用法
这 presets 该工具支持四种操作:
创建预设
为文章草稿创建个人书签:
{
"action": "create",
"collection": "articles",
"bookmark": "My Drafts",
"layout": "tabular",
"filter": {
"status": { "_eq": "draft" },
"user_created": { "_eq": "$CURRENT_USER" }
},
"icon": "bookmark",
"color": "#6366F1"
}创建特定于角色的默认布局:
{
"action": "create",
"collection": "articles",
"role": "role-uuid-here",
"layout": "cards",
"layout_options": {
"size": "large"
}
}读取预设值
读取集合的所有预设:
{
"action": "read",
"collection": "articles",
"limit": 20
}按用户特定预设筛选:
{
"action": "read",
"collection": "articles",
"user": "user-uuid-here"
}更新预设
{
"action": "update",
"id": 123,
"bookmark": "Updated Name",
"filter": {
"status": { "_eq": "published" }
}
}删除预设
{
"action": "delete",
"id": 123
}什么是预设?
Directus中的预设定义了集合的布局和筛选选项。它们可以是:
- 用户预置:针对特定用户
- 角色预设:在具有特定角色的所有用户之间共享
- 全局预设:可供所有用户使用(需要管理员权限)
预设可以包括:
- 书签(出现在侧边栏导航中)
- 布局配置(表格、卡片、日历等)
- 过滤规则
- 搜索查询
- 自定义图标和颜色
预设范围
这 role 和 user 字段控制预设范围:
- 两者均为空:全局预设(需要管理员权限)
- 用户设置:针对该特定用户的个人预设
- 角色集:为具有该角色的所有用户共享预设
技术细节
建筑
此扩展使用Directus挂钩系统来:
- 注册
presets通过MCP工具列表中的工具mcp.tools.list过滤器 - 通过以下方式处理工具执行
presets.mcp.tools.call过滤型事件 - 从以下方面接受用户责任
meta自定义扩展传递的参数 - 使用
PresetsService对具有权限意识的操作进行适当的问责
筛选器事件处理程序
emitter.onFilter("presets.mcp.tools.call", async (toolCall, meta) => {
// Extract accountability from meta parameter
const { accountability } = meta;
// Get input arguments from toolCall
const input = presetInputSchema.parse(toolCall.arguments);
// Create service with accountability for proper permissions
const presetsService = new PresetsService({
schema: await getSchema(),
accountability, // Ensures user context and permissions
});
// Perform operations with permission enforcement
// ...
});发展
开发观察模式:
npm run dev验证扩展名:
npm run validate相关扩展
directus-extension-mcp-customization-自定义MCP工具的核心框架(必需)directus-extension-mcp-comments-向Directus MCP添加用于管理评论的工具directus-extension-mcp-hello-world-自定义MCP工具示例
许可证
麻省理工学院
