mcpField
D
Directus Content MCP

Directus Content MCP

ローカル
github.com/directusビジネス・マーケティング8776 週間前に更新

Directus Content MCP について

Directus Content MCP は、Directus ユーザーが LLM からプロジェクトのデータを扱えるようにする MCP サーバーです。コンテンツ編集者やデータアナリストを対象とし、フィールドやコレクションの削除などの破壊的な操作を意図的に制限しています。

主な機能

  1. 01Directus コレクションのアイテムの読み取りと書き込み
  2. 02コレクションのスキーマとフィールド定義の参照
  3. 03ファイルのメタデータ管理と URL からのインポート
  4. 04自動化フローの実行とコメントの管理
  5. 05フィールドやコレクションの削除など高リスクな操作の制限

活用シーン

  1. 01LLM を使ったブログ記事の下書きとコンテンツ更新
  2. 02コレクションのクエリとレポート生成
  3. 03説明やタグを付けたメディアアセットの整理

MCP 対応

本プロジェクトは MCP サーバーとして、アイテム、ファイル、フィールド、フロー、コメントに関する Directus のツールと、プロンプトの取得やシステムプロンプトを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"directus-2": {
"command": "npx",
"args": [
"-y",
"@directus/content-mcp"
],
"env": {
"DIRECTUS_URL": "<DIRECTUS_URL>",
"DIRECTUS_TOKEN": "<DIRECTUS_TOKEN>"
}
}
}
}
起動コマンドnpx -y @directus/content-mcp
設定が必要な環境変数
DIRECTUS_URL
DIRECTUS_TOKENシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@directus/content-mcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Directus Content MCP Server

Model Context Protocol(MCP)は、AI ツールや LLM が Directus のようなアプリケーションやサービスとやり取りするための標準です。

Directus Content MCP Server は、Directus ユーザーが LLM 内で自身のデータを操作するためのインターフェースです。次のような用途に適しています。

  • コンテンツ編集者:Directus プロジェクト内でカスタムページを作成したり、ブログ記事を執筆したり、コンテンツを更新したり、アセットを整理したりできます。
  • データアナリスト:自然言語を使ってコレクションを検索し、レポートを作成し、傾向を分析し、Directus のデータから知見を抽出できます。

フィールドやコレクションの削除によるデータ損失など、深刻な結果につながる破壊的な操作は意図的に制限しています。

今後のリリースでは、ローカル/開発環境の Directus プロジェクトを扱う開発者向けのツールをさらに提供する予定です。また、データ損失をさらに防止するため、別パッケージとして提供する可能性もあります。

インストール

前提条件
  • 既存の Directus プロジェクト

既存の Directus プロジェクトがない場合は、Directus Cloud で無料トライアルを開始できます:https://directus.cloud/register

または

以下のターミナルコマンドを使って、サンプルの Directus インスタンスをローカルで起動できます。

npx directus-template-cli@latest init
ステップ 1. Directus の認証情報を取得する

メールアドレスとパスワードを使うか、静的トークンを生成して、MCP を Directus インスタンスに接続できます。

静的アクセストークンを取得するには:

  1. Directus インスタンスにログインします
  2. ユーザーディレクトリに移動し、自分のユーザープロフィールを選択します
  3. Token フィールドまでスクロールします
  4. トークンを生成してコピーします
  5. ユーザーを保存します(保存し忘れると、無効なトークンを示すエラーが表示されるので注意してください!)
ステップ 2. AI ツールで MCP を設定する
Claude Desktop
  1. Claude Desktop を開き、設定に移動します。

  2. Developer タブで Edit Config をクリックし、設定ファイルを開きます。

  3. 次の設定を追加します。

    {
    	"mcpServers": {
    		"directus": {
    			"command": "npx",
    			"args": ["@directus/content-mcp@latest"],
    			"env": {
    				"DIRECTUS_URL": "https://your-directus-url.com",
    				"DIRECTUS_TOKEN": "your-directus-token>"
    			}
    		}
    	}
    }
    

    メールアドレスとパスワードを使う場合は、こちらを使用してください

    {
    	"mcpServers": {
    		"directus": {
    			"command": "npx",
    			"args": ["@directus/content-mcp@latest"],
    			"env": {
    				"DIRECTUS_URL": "https://your-directus-url.com",
    				"DIRECTUS_USER_EMAIL": "[email protected]",
    				"DIRECTUS_USER_PASSWORD": "your-password"
    			}
    		}
    	}
    }
    

    プレースホルダーの値を URL と認証情報に置き換えてください。

  4. 設定ファイルを保存し、Claude desktop を再起動します。

  5. 新しいチャット画面に、Directus MCP server のアイコンが表示されます。

Cursor
  1. Cursor を開き、まだ存在しない場合はプロジェクトの ルートに .cursor ディレクトリを作成します。

  2. まだ存在しない場合は .cursor/mcp.json ファイルを作成して開きます。

  3. 次の設定を追加します。

    {
    	"mcpServers": {
    		"directus": {
    			"command": "npx",
    			"args": ["@directus/content-mcp@latest"],
    			"env": {
    				"DIRECTUS_URL": "https://your-directus-url.com",
    				"DIRECTUS_TOKEN": "your-directus-token>"
    			}
    		}
    	}
    }
    

    メールアドレスとパスワードを使う場合は、こちらを使用してください

    {
    	"mcpServers": {
    		"directus": {
    			"command": "npx",
    			"args": ["@directus/content-mcp@latest"],
    			"env": {
    				"DIRECTUS_URL": "https://your-directus-url.com",
    				"DIRECTUS_USER_EMAIL": "[email protected]",
    				"DIRECTUS_USER_PASSWORD": "your-password"
    			}
    		}
    	}
    }
    

    プレースホルダーの値を URL と認証情報に置き換えてください。

  4. 設定ファイルを保存します。

  5. Cursor を開き、Settings/MCP に移動します。サーバーへの接続に成功すると、緑色の有効ステータスが表示されます。

ツール

MCP サーバーは、Directus インスタンスとやり取りするために以下のツールを提供します。

ツール説明使用例
system-promptLLM アシスタントに役割に関するコンテキストを提供しますセッション開始時にシステムのコンテキストを理解する
users-me現在のユーザー情報を取得します権限の確認、応答のパーソナライズ
read-collectionsすべてのコレクションのスキーマを取得しますデータベース構造の確認、リレーションの把握
read-items任意のコレクションからアイテムを取得しますコンテンツの取得、データの検索、情報の表示
create-itemコレクションに新しいアイテムを作成します新しいコンテンツ、レコード、エントリーの追加
update-item既存のアイテムを変更しますコンテンツの編集、ステータスの更新、情報の修正
delete-itemコレクションからアイテムを削除します古くなったコンテンツの整理
read-filesファイルのメタデータまたは生のコンテンツにアクセスします画像、ドキュメント、メディアアセットの検索
import-fileURL からファイルをインポートしますDirectus インスタンスへの外部メディアの追加
update-filesファイルのメタデータを更新しますメディアの整理、説明の追加、タグ付け
read-fieldsコレクションのフィールド定義を取得しますデータ構造、フィールドの型、検証の理解
read-field特定のフィールド情報を取得しますフィールド設定の詳細確認
create-fieldコレクションに新しいフィールドを追加しますデータモデルの拡張
update-field既存のフィールドを変更しますフィールド設定、インターフェースオプションの変更
read-flows利用可能な自動化フローを一覧表示します自動化の機会の発見
trigger-flow自動化フローを実行します一括操作、公開、ステータスの変更
read-commentsアイテムのコメントを表示しますフィードバックの取得、ディスカッションスレッドの表示
upsert-commentコメントを追加または更新しますフィードバックの提供、決定事項の記録
markdown-toolMarkdown と HTML を相互に変換しますWYSIWYG フィールド用のコンテンツの書式設定
get-prompts利用可能なプロンプトを一覧表示します事前設定されたプロンプトテンプレートの確認
get-prompt保存済みのプロンプトを実行します一貫性のある AI とのやり取りに向けたプロンプトテンプレートの使用
システムプロンプト

MCP サーバーには、適切なツールの使用を促し、LLM のためのガイドラインを提供するシステムプロンプトが用意されています。 MCP_SYSTEM_PROMPT 変数を設定することで、環境設定内のデフォルトのシステムプロンプトを上書きできます。

必要に応じて、システムプロンプトを完全に無効にすることもできます。

MCP_SYSTEM_PROMPT_ENABLED を false に設定してください。

プロンプトの設定

MCP サーバーは、Directus コレクションに保存された動的なプロンプトをサポートしています。プロンプトは MCP クライアントで広くサポートされていませんが、Claude Desktop ではサポートされています。

以下を設定できます。

  • DIRECTUS_PROMPTS_COLLECTION_ENABLED:「true」に設定すると、プロンプト機能が有効になります
  • DIRECTUS_PROMPTS_COLLECTION:プロンプトを含むコレクションの名前
  • DIRECTUS_PROMPTS_NAME_FIELD:プロンプト名のフィールド名(デフォルト:「name」)
  • DIRECTUS_PROMPTS_DESCRIPTION_FIELD:プロンプトの説明のフィールド名(デフォルト:「description」)
  • DIRECTUS_PROMPTS_SYSTEM_PROMPT_FIELD:システムプロンプトのテキストのフィールド名(デフォルト:「system_prompt」)
  • DIRECTUS_PROMPTS_MESSAGES_FIELD:メッセージ配列のフィールド名(デフォルト:「messages」)
Mustache テンプレート

システムプロンプトとメッセージの内容の両方で、{{ variable_name }} 構文を使った Mustache テンプレートを使用できます。

  1. 二重の波括弧を使って、プロンプト内に変数を定義します:Hello, {{ name }}!
  2. プロンプトを呼び出す際に、arguments パラメーターで変数の値を指定します
  3. MCP サーバーが、すべての変数を指定された値に自動的に置き換えます

ローカル/開発環境へのインストール

  1. リポジトリをクローンします
  2. pnpm install && pnpm build を実行してサーバーをビルドします
  3. 上記と同様に Claude Desktop または Cursor を設定します。ただし、代わりに dist ファイルを指定します。
  4. pnpm dev を使って変更を監視し、サーバーを再ビルドします
{
	"mcpServers": {
		"directus": {
			"command": "node",
			"args": ["/path/to/directus-mcp-server/dist/index.js"]
		}
	}
}

すべての設定を含む、ローカル開発用の Claude Desktop 設定例

{
	"mcpServers": {
		"directus": {
			"command": "node",
			"args": [
				"/path/to/directus-mcp-server/dist/index.js"
			],
			"env": {
				"DIRECTUS_URL": "DIRECTUS_URL",
				"DIRECTUS_TOKEN": "DIRECTUS_TOKEN",
				"MCP_SYSTEM_PROMPT_ENABLED": "true",
				"MCP_SYSTEM_PROMPT": "You're a content editor working at Directus.\nYou're a master at copywriting and creating messaging that resonates with technical audiences.\nYou'll be given details about a Directus instance and the schema within it. You'll be asked to update content and other helpful tasks. **Rules** \n - If you're updating HTML / WYSWIG fields inside the CMS - DO NOT ADD extra styling, classes, or markup outside the standard HTML elements. If you're not 95% sure what values should go into a certain field, stop and ask the user. Before deleting anything, confirm with the user and prompt them for an explicit DELETE confirmation via text.",
				"DIRECTUS_PROMPTS_COLLECTION_ENABLED": "true",
				"DIRECTUS_PROMPTS_COLLECTION": "ai_prompts"
			}
		}
	}
}
設定例
トークンを使った基本設定
{
	"mcpServers": {
		"directus": {
			"command": "npx",
			"args": ["@directus/content-mcp@latest"],
			"env": {
				"DIRECTUS_URL": "https://your-directus-instance.com",
				"DIRECTUS_TOKEN": "your_directus_token"
			}
		}
	}
}
メールアドレス/パスワード認証を使った設定
{
	"mcpServers": {
		"directus": {
			"command": "npx",
			"args": ["@directus/content-mcp@latest"],
			"env": {
				"DIRECTUS_URL": "https://your-directus-instance.com",
				"DIRECTUS_USER_EMAIL": "[email protected]",
				"DIRECTUS_USER_PASSWORD": "your_password"
			}
		}
	}
}
カスタムシステムプロンプトとツール制限を使った高度な設定
{
	"mcpServers": {
		"directus": {
			"command": "npx",
			"args": ["@directus/content-mcp@latest"],
			"env": {
				"DIRECTUS_URL": "https://your-directus-instance.com",
				"DIRECTUS_TOKEN": "your_directus_token",
				"DISABLE_TOOLS": ["delete-item", "update-field"],
				"MCP_SYSTEM_PROMPT_ENABLED": "true",
				"MCP_SYSTEM_PROMPT": "You are an assistant specialized in managing content for our marketing website.",
				"DIRECTUS_PROMPTS_COLLECTION_ENABLED": "true",
				"DIRECTUS_PROMPTS_COLLECTION": "ai_prompts",
				"DIRECTUS_PROMPTS_NAME_FIELD": "name",
				"DIRECTUS_PROMPTS_DESCRIPTION_FIELD": "description",
				"DIRECTUS_PROMPTS_SYSTEM_PROMPT_FIELD": "system_prompt",
				"DIRECTUS_PROMPTS_MESSAGES_FIELD": "messages"
			}
		}
	}
}

❤️ コントリビューション

コミュニティからのコントリビューションを歓迎します。PR を提出する前に、提案する変更について話し合うため、まず issue を作成してください。

🙏 謝辞

これは、あのすごい伝説の @rijkvanzanten による実験として始まりました 🙌

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。