Skip to content

JoshTheDerf/directus-extension-mcp-comments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Directus MCP Comments Extension

A Directus extension that adds a comments tool to the MCP (Model Context Protocol) interface, allowing AI agents to create, read, update, and delete comments on Directus items.

Features

  • Create comments on any item in any collection
  • Read comments with filtering by collection and item
  • Update existing comments
  • Delete comments
  • Full integration with Directus user system and permissions
  • Automatic timestamp tracking

Prerequisites

This extension requires the directus-extension-mcp-customization extension to be installed and enabled.

Installation

Install via npm:

npm install directus-extension-mcp-comments

Or manually:

  1. Install dependencies:
npm install
  1. Build the extension:
npm run build
  1. The extension will be automatically loaded by Directus when the server starts.

Usage

The comments tool supports four operations:

Create a Comment

{
  "action": "create",
  "collection": "posts",
  "item": "abc-123",
  "comment": "This is a great post!"
}

Read Comments

Read all comments for a collection:

{
  "action": "read",
  "collection": "posts",
  "limit": 10
}

Read comments for a specific item:

{
  "action": "read",
  "collection": "posts",
  "item": "abc-123",
  "limit": 10
}

Update a Comment

{
  "action": "update",
  "id": "comment-id-123",
  "comment": "Updated comment text"
}

Delete a Comment

{
  "action": "delete",
  "id": "comment-id-123"
}

Technical Details

Architecture

This extension uses the Directus hook system to:

  1. Register the comments tool in the MCP tools list via the mcp.tools.list filter
  2. Handle tool execution via the comments.mcp.tools.call filter event
  3. Receive user accountability from the meta parameter passed by the customization extension
  4. Use CommentsService with proper accountability for permission-aware operations

Filter Event Handler

emitter.onFilter("comments.mcp.tools.call", async (toolCall, meta) => {
  // Extract accountability from meta parameter
  const { accountability } = meta;

  // Get input arguments from toolCall
  const input = commentInputSchema.parse(toolCall.arguments);

  // Create service with accountability for proper permissions
  const commentsService = new CommentsService({
    schema: await getSchema(),
    accountability,  // Ensures user context and permissions
  });

  // Perform operations with permission enforcement
  // ...
});

Development

Watch mode for development:

npm run dev

Validate the extension:

npm run validate

License

MIT

About

Extends the built-in Directus MCP with a tool for managing comments on Directus items

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors