mcpField
M
material-retrieve

material-retrieve

github.com/simonwongクリエイティブ・メディア963 回インストール1 日前に更新
リポジトリ

material-retrieve について

ローカルの素材ライブラリを、キーワード、タグ、種類、感情、再利用度で検索するスキルです。結果を順位付けし、最大 10 件の全文を読み込みます。

主な機能

  1. 01複数条件を組み合わせた検索
  2. 02キーワードとタグのあいまい一致
  3. 03関連度と再利用度による順位付け
  4. 04一致した素材の全文読み込み
  5. 05最大 10 件の結果表示

活用シーン

  1. 01テーマに沿った執筆素材の検索
  2. 02種類や感情による素材の絞り込み
  3. 03再利用度の高い素材の検索
  4. 04素材ライブラリ内の関連項目の確認

インストール

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

$npx skills add https://github.com/simonwong/skills --skill material-retrieve

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

詳細

素材検索

素材ライブラリから条件に合う素材を検索します。

データパス

素材ライブラリは ./writing-workspace/materials/ にあります:

  • index.jsonl — 素材インデックス(JSONL 形式。各行に {id, summary, tags, type, source_title, reusability} を含みます)
  • entries/{id}.json — 素材の全内容

実行フロー

1. インデックスを読み込む

./writing-workspace/materials/index.jsonl を読み込みます。

  • ファイルが存在しない、または空の場合:ユーザーに「素材ライブラリはまだ空です。material-ingest スキルを使って、記事をいくつか登録できます。」と伝えて終了します。
  • 内容がある場合:検索を続行します。
2. ユーザーのクエリを解析する

ユーザーの入力から検索条件を抽出します。以下の各項目を任意に組み合わせて指定できます。

項目例
キーワード「起業に関する素材」→ キーワード「起業」
タグ「タグがAIのもの」→ タグ「AI」に一致
種類「事例をいくつか探して」→ type=case
感情「鋭い意見はありますか」→ sentiment=provocative
再利用度「そのまま使えるものを探して」→ reusability=high

ユーザーがテーマの単語だけを指定した場合は、キーワードとタグの両方で照合します。

3. 複数の項目で照合する

index.jsonl 内のすべての項目を調べ、以下のロジックで照合します。

キーワード照合(あいまい):

  • summary と tags に、検索語またはその類義語が含まれているかを確認します。
  • 「起業」は「スタートアップ企業」「起業家」「startup」にも一致します。
  • 「AI」は「人工知能」「大規模言語モデル」「LLM」にも一致します。

タグ照合(完全一致+あいまい一致):

  • 完全一致を優先します。
  • 同義語のタグも一致とみなします(上記の例を参照)。

種類/感情/再利用度の照合(完全一致):

  • フィールドの値を直接比較します。
4. 並べ替える

照合結果を以下の優先順位で並べ替えます。

  1. 関連度(一致する項目が多いほど上位)
  2. 再利用度(high > medium > low)
  3. 時間(新しいものを優先)
5. 全内容を読み込む

並べ替えた結果の上位 10 件について、entries/{id}.json を読み込み、content 全体を取得します。

6. 結果を表示する
## 素材检索结果

查询:关于"创业"的素材
匹配:共 X 条

| # | ID | 类型 | 摘要 | 标签 | 复用度 |
|---|-----|------|------|------|--------|
| 1 | mat_xxx | viewpoint | ... | 创业, AI | high |
| 2 | mat_xxx | case | ... | 初创公司 | medium |

---

### 详细内容

**1. mat_xxx** [viewpoint] — 来自《原文标题》
> 完整内容...

**2. mat_xxx** [case] — 来自《原文标题》
> 完整内容...

照合結果がない場合は、ユーザーに「関連する素材が見つかりませんでした」と伝え、検索範囲を広げるか、記事を追加で登録するよう提案します。

注意事項

  • 結果は 10 件以内にします。照合結果が多すぎる場合は、関連度の高い上位 10 件のみを表示し、総件数をユーザーに伝えます。
  • 全内容を表示する際は、原文の表現を保ち、書き換えないでください。
  • ユーザーのクエリが曖昧すぎる場合(「素材を探して」のような場合)は、具体的なテーマや方向性を尋ねてください。

コメント