mcpField
D
drupal-module-finder

drupal-module-finder

github.com/ivanboring開発1392 回インストール18 週間前に更新
リポジトリ

drupal-module-finder について

drupal-module-finderは、Drupalプロジェクトの管理者が拡張モジュールを調べるためのCLIスキルです。まずコアとダウンロード済みモジュールを確認し、その後、意味検索や詳細情報、Composerのインストールコマンドを提示します。

主な機能

  1. 01コアと取得済みモジュールを先に確認
  2. 02要件の説明から候補を検索
  3. 03保守状況とバージョン対応を確認
  4. 04リリース情報とComposerコマンドを取得
  5. 05ドキュメント、README、構成を参照

活用シーン

  1. 01特定機能に合うDrupalモジュールの検索
  2. 02既存モジュールで要件を満たせるか確認
  3. 03保守状況とセキュリティ対応の評価
  4. 04導入用Composerコマンドの取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ivanboring/drupal-module-finder --skill drupal-module-finder

インストール後、Claude Code で/drupal-module-finderを入力して読み込まれたか確認します。

同梱ファイルdrupal-module-finder

詳細

Drupal モジュールファインダー

drupal-module-finder CLI を使って、ニーズに合った Drupal のコントリビュートモジュールを探し、詳細を確認し、インストール用の Composer コマンドを取得します。

このスキルのディレクトリには、コマンドのコピーが含まれています。このディレクトリから ./drupal-module-finder として実行するか、PATH に含まれている場合は drupal-module-finder として実行してください。出力はすべて未加工の Markdown です。--host=<url> を使うと別のサイトを対象にできます(デフォルト:http://module-finder.ddev.site)。

まず、すでに利用できるものを必ず確認してください

新しいモジュールをダウンロードするために検索したり、推奨したりする前に、プロジェクトですでに利用できるものを優先してください。

  1. Drupal コアモジュール — コアがすでに機能を提供している場合は、コントリビュートモジュールをインストールするのではなく、コアモジュールを有効化することを推奨してください。
  2. すでにダウンロードされているモジュール — コードベース(例:web/modules/contrib、web/modules/custom 内、またはプロジェクトの composer.json に記載)に存在しているものの、まだ有効化されていないモジュールです。新しい依存関係を追加する前に、それらの有効化を推奨してください。

Drupal コアにも、すでにダウンロードされているモジュールにもニーズを満たすものがない場合にのみ、以下の検索ワークフローに進んでください。

ワークフロー

1. 問題を説明して検索する

解決したい問題を説明してください。クエリに「module」という単語を入れないでください。検索対象に含まれることが前提です。

drupal-module-finder semantic-search "send private messages between users"

検索ごとにニーズをひとつに絞ってください。 各検索では、ひとつの機能だけを対象にします。製品全体や大まかな目標を検索してはいけません。「Facebook を作りたい」のような大きな要望の場合は、個別のニーズに分けて、それぞれ一度にひとつずつ検索してください。

drupal-module-finder semantic-search "send private messages between users"
drupal-module-finder semantic-search "poke or react to other people's profiles"
drupal-module-finder semantic-search "news feed of friends' activity"

これらは順番に(リクエストを一度にひとつずつ)実行し、各検索結果を個別に評価してください。複数の機能を含む広範なクエリでは適切な結果が得られません。ニーズをひとつに絞った具体的な検索では、良い結果が得られます。

  • 意味的な関連性の高い順に、候補モジュールを最大 10 件返します。
  • 各候補には、タイトルとデータ名(括弧内)、概要、関連性スコア、メタデータ(データ名、プロジェクト URL、開発状況、セキュリティ対応、スター数、プロジェクトの使用状況、最新リリース、エージェントスキル、Drupal のバージョン対応状況)が表示されます。
  • --chunk=true を追加すると、候補ごとに最も一致するテキストの抜粋も表示されます。
  • 該当するものがない場合は、問題を言い換えて再検索してください。
2. 候補を調べる

有望な候補については、そのデータ名(括弧内の値。例:Privatemsg (privatemsg) -> privatemsg)を使って詳細を取得します。

drupal-module-finder module-info privatemsg

すべてのフィールドを表示するには --all を追加します。いくつかのフィールドに絞るには --fields=stars,project_usage を追加します。

3. インストール/Composer コマンドを取得する

適切なモジュールが見つかったら、リリース情報と Composer コマンドを取得します。

drupal-module-finder release-info privatemsg

次に、Composer コマンドをユーザーに提示します(例:composer require 'drupal/privatemsg:^4.0')。

すべてのコマンド

コマンド内容
semantic-search "<problem>" [--chunk=true]説明されたニーズに合う候補モジュールを、順位付きで表示します。ここから始めてください。キャッシュされません。
module-info <data_name> [--all] [--fields=...]モジュールの概要とメタデータを表示します。--all = すべてのフィールド、--fields= = 指定したフィールドのみ(field_ の接頭辞を省略します。例:stars、module_categories。title も指定できます)。
release-info <data_name>リリースと、それぞれの Composer コマンドを表示します。インストール時に使用してください。
documentation-info <data_name>モジュールの外部ドキュメントへのリンクを表示します(または「No documentation found」)。
readme <data_name>モジュールの README を表示します(または「No readme found」)。
file-structure <data_name>モジュールのファイル/フォルダー構成を表示します。

フィールド

module-info <data_name> --fields=... では、以下の名前を指定できます(カンマ区切りで、field_ プレフィックスは不要です)。出力にも同じ名前がラベルとして表示されます。

フィールドラベル備考
titleモジュール名ノードのタイトルです。
data_nameデータ名Drupal.org のマシン名です(すべてのコマンドで使用します)。
module_summaryモジュールの概要簡潔な概要です。
module_descriptionモジュールの説明より詳しい説明です。
module_readme_textモジュールの README テキストREADME 全文です(readme も参照)。
documentationドキュメントドキュメントのテキストです。
external_information外部情報外部ドキュメントへのリンクです(documentation-info も参照)。
link_to_moduleモジュールへのリンクプロジェクトの URL です。
module_categoriesモジュールのカテゴリ例:アクセス制御、AI、自動化。
module_development_statusモジュールの開発状況例:積極的にメンテナンス中、サポート対象外。
development_status開発状況例:積極的に開発中、廃止。
security_coveredセキュリティ対応対応済み/未対応。
drupal_version_coverage対応する Drupal バージョン例:Drupal 10、Drupal 11。
has_agentic_skillsエージェントスキルの有無モジュールにエージェントスキルが含まれているかどうかです。
starsスター数スターの数です。
project_usageプロジェクトの利用状況利用を報告しているサイトの数です。
latest_release_date最新リリース日最新リリースの日付です。
latest_update最終更新日最終更新の日付です。
latest_module_releasesモジュールの最新リリースリリースのタイトルです(詳しくは release-info を参照)。
module_maintainersモジュールのメンテナーメンテナーの名前です。
supporting_organizations支援組織支援している組織です。
module_affordancesモジュールでできることモジュールで可能になる操作です。
file_structureファイル構成ファイル/フォルダーの構成です(file-structure も参照)。
full_vector_search全ベクトル検索セマンティック検索に使われる集約テキストです(大容量)。

例:

drupal-module-finder module-info privatemsg --fields=stars,project_usage,security_covered,drupal_version_coverage

--all を使うと、すべてのフィールドを一度に出力できます(リリース情報は詳細表示されます)。

評価に役立つ情報
  • semantic-search は、自然言語による説明から候補を素早く絞り込みます。
  • module-info は、メンテナンス状況とセキュリティ対応状況、Drupal の対応バージョンに加えて、信頼性の指標となる利用状況とスター数を確認できます。
  • release-info では、正確な composer コマンドとバージョン制約を確認できます。
  • readme と documentation-info では、セットアップと設定について確認できます。
  • file-structure では、サブモジュールとパッケージに含まれる内容を確認できます。

オプション

  • --host=<url> — 別の Module Finder サイトを指定します。
  • --chunk=true — (semantic-search)最も一致する抜粋を含めます。
  • --all、--fields= — (module-info)表示するフィールドを指定します。

シェル補完(bash)

サブコマンド、オプション、--fields= の値、--agent= の値、キャッシュ済みのモジュールデータ名について、TAB 補完を有効にします。

source <(drupal-module-finder completion bash)

この行を ~/.bashrc に追加すると、永続的に有効になります。補完は PATH 上の drupal-module-finder という名前に対して登録されます。./drupal-module-finder として実行した場合、自動補完は行われません。

ヒント

  • 検索には必ず問題の説明を使ってください。モジュール名や「module」という単語は使わないでください。
  • 検索結果の データ名 を、その後のすべてのコマンドで使用してください。
  • 積極的にメンテナンスされ、セキュリティ対応済みで、ユーザーの Drupal バージョンに対応するモジュールを優先してください。

コメント