Silica Core について
Silica Coreは、コードや調査資料をローカルで検索するツールで、エージェントや各種ハーネスを対象としています。フォルダーをインデックス化し、MCPまたはコマンドラインから該当箇所、ソースコードのシンボル、検索根拠を返します。
主な機能
- 01Markdown・コード・PDF・オフィス文書をインデックス化
- 02語彙検索と任意の密ベクトル検索で順位付け
- 03ファイルの見出しや行範囲を読み取り
- 04ソースファイルのASTコンテキストパックを生成
- 05検証付きで構造化ノートを作成
活用シーン
- 01調査フォルダーから関連箇所を探す
- 02質問に関係するコードファイルやシンボルを特定
- 03検索後に指定の節やページを読む
- 04インデックス資料から構造化ノートを作成
MCP 対応
フォルダー一覧、検索、読み取り、コードパック、ノート作成のツールをMCPクライアントに公開します。同じ操作はJSONを返すコマンドラインからも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | ページあたりの最大項目数 |
| cursor | string | いいえ | 前のページで返された `next_cursor` |
| folder | string | いいえ | 一覧表示するルート相対フォルダー。空の場合はルート全体 |
| status | string | いいえ | 次のステータスのみ:indexed、changed、excluded、failed、unconverted |
詳細
コードとリサーチのための軽量なローカル証拠検索ツール
Silica は、あなたやエージェントが必要とするソース、シンボル、ページ、または一節を見つけます。最大限のシグナルを、最小限の仕組みで実現します。
Silica は、1 つのルート配下にある Markdown、コード、PDF、オフィスファイルをインデックス化し、Claude Code、Cursor、Hermes、Codex、OpenCode、その他の主要なハーネスに、MCP ツールまたは同じ JSON を出力するシェルコマンドとして提供します。検索結果には、パス、セクション、行、テキストの範囲、および評価に使える数値が含まれます。ループはハーネスが担います。
コマンドを 3 つ実行すれば、あとはいつもと同じように質問するだけです。ハーネスが silica_search を呼び出し、回答には該当するファイル、ページ、行が含まれます。
インストール
Claude Code では、代わりにプラグインをインストールしてください。高密度検索機能も含め、独自のサーバーが付属しています。
uv tool install 'silica-core[mcp]' # BM25 over documents and their sections (faster, lighter)
uv tool install 'silica-core[mcp,dense]' # in addition the dense leg: numpy, a static model (still fast, more precise)
2 行目を実行すると、高密度検索機能が追加されます。numpy と静的な model2vec モデルを使用し、torch も GPU も必要ありません。モデルを指定してセクションを埋め込むまでは無効のままです。これはクイックスタートの最後の手順です。質問がテキスト中の語句と共通の単語を持たない言い換えの場合に利用してください。正確な用語や識別子なら、いずれの場合も語彙検索機能が回答し、terms_absent を報告するのも語彙検索機能だけです。
pipx でも同じように使えます。パッケージ名とコマンド名は silica-core、ツール名は silica_* です。
0.9 以前からアップグレードする場合:0.10.0 以降、silica コマンドは silica-core です(silica は silica-harness のコマンドです)。以前の silica setup で登録したクライアントは、引き続き silica mcp を起動しますが、uvx が 0.10.0 を取得すると起動できなくなります。silica-core setup <client> を一度実行すると、そのエントリーが書き換えられます。
クイックスタート
Markdown、コード、PDF、またはオフィスファイルのある任意のフォルダーで:
silica-core init # adopt the folder: ignore file, vault.yaml, first index; the MCP server serves adopted folders only
silica-core search "leveled compaction" -k 5 # the best located passages
silica-core setup claude # register the MCP server, write the guidance block into ~/.claude/CLAUDE.md
# optional, with the [dense] extra: the dense leg, a static model, nothing leaves the machine
export SILICA_EMBEDDING_MODEL=model2vec/minishlab/potion-retrieval-32M
silica-core index --embed
9 件の arXiv 論文を 2.1 秒でインデックス化しました。検索結果にはファイル、ページ、該当箇所が表示され、横に表示されたページで内容を確認できます。
ツール
| ツール | シェル | 返される内容 |
|---|---|---|
silica_files | silica-core files | 各ファイルの一覧と、インデックスが各ファイルに対して行った処理:indexed、changed、excluded、failed、unconverted |
silica_search | silica-core search | ランク付けされた抜粋:パス、セクション、行、BM25、一致した用語、coverage、コーパスに存在しないクエリ用語 |
silica_read | silica-core read | 行または見出し(PDFの場合はページ)で指定した範囲、アウトライン、および引き継ぎ用のversion |
silica_code_pack | silica-core code-pack | 文字数の上限内で、1つのソースファイルのASTコンテキストパック |
silica_write_note | silica-core write-note | 構造と未解決のウィキリンクをチェックした、単一のアトミックな書き込み |
ソースツリーでは、各関数、メソッド、クラス、定数がそれぞれ独立した単位です。
検索結果のsectionはシンボル、spanはその行範囲を表し、
silica_read(path, section=…)で本文を取得します。シンボル名が分かっている場合は
grepが適しています。名前を指定しない質問では、まず検索してください:
ツールの説明と、silica-core setup claudeが書き込むブロックにそのように記されています。
仕様、応答形式、受け入れチェックについては
TOOLS.mdを参照してください。APIキーもネットワークも必要ありません。
検索が「見つからない」と伝える方法
コーパスに答えがない場合でも、ランク付けされたリストには必ず最上位の結果があります。結果がどの程度有用かを示すフィールドは3つです。
coverage:一致した用語が、クエリのidf質量のうち占める割合です。1に近い場合は希少な用語がすべて一致し、0に近い場合は一般的な語だけが一致しています。terms_absent:コーパスのどこにも出現しないクエリ用語です。matched_terms:この検索結果に実際に含まれる語です。
同じ9本の論文に対するraft consensus log replicationの検索では、raftと
consensusはどの論文にも出現しないため、coverageは0.19に下がり、最上位の検索結果はデータレプリケーションに関するものです。254本の論文では、コーパスに回答がある質問の最上位の検索結果は0.69〜1.00ですが、コーパスで扱われていない質問では0.44です。Silicaはこうしたシグナルを提示し、停止するか、読み進めるか、質問を言い換えるかはハーネスが判断します。
ベンチマーク
BEIR SciFact · NFCorpus における nDCG@10です。すべての方式で同じ文書とクエリを使用しています。BEIR が公開している BM25 のベースラインは 0.665 · 0.325 です。Silica の語彙インデックスにはモデルが不要です。他の方式は、埋め込みも保持するインデックスから語彙検索を行います。
| モード | Silica | zvec-grep 0.2.2 | ck 0.7.11 |
|---|---|---|---|
| 語彙検索 | 0.662 · 0.311 | 0.649 · 0.297 | 0.630 · 0.289 |
ハイブリッド、同じ potion-retrieval-32M 埋め込みモデル | 0.675 · 0.328 | 0.672 · 0.330 |
コード検索では、zvec-grep が独自のベンチマークで公開している 20 件の SWE-QA 質問を使用しています。同じ埋め込みモデルを使い、k = 10 として、参照回答の根拠となるファイルとシンボルで評価しています。
| 方式 | ファイル hit@5 · @10 | ファイル MRR | シンボル hit@10 | シンボル再現率 | 返された文字数 |
|---|---|---|---|---|---|
| Silica、ハイブリッド | 0.85 · 0.90 | 0.68 | 0.75 | 0.24 | 8,266 |
| Silica、ベクトル | 0.80 · 0.85 | 0.67 | 0.65 | 0.21 | 6,225 |
| Silica、語彙検索 | 0.65 · 0.75 | 0.47 | 0.45 | 0.14 | 8,194 |
| zvec-grep 0.2.2、ハイブリッド | 0.65 · 0.75 | 0.54 | 0.55 | 0.17 | 7,326 |
| zvec-grep 0.2.2、ベクトル | 0.60 · 0.80 | 0.61 | 0.55 | 0.18 | 6,821 |
| zvec-grep 0.2.2、FTS | 0.45 · 0.60 | 0.36 | 0.45 | 0.11 | 6,690 |
BEIR では、2 つのハイブリッド方式は 95% 信頼区間で同等です。同じベクトルが同じ順位を付けており、デーモンもベクトルストアも必要ありません。コード検索では、Silica のハイブリッド方式のファイル MRR は、zvec-grep のハイブリッド方式を +0.135 上回ります(95% 信頼区間は +0.01~+0.27)。質問ごとに対応を取った比較です。また、この融合方式は Silica の語彙検索方式に対して MRR が +0.21、シンボル hit が +0.30 向上しています。リランカーやグラフ拡張は使用していません。
今回測定した範囲では、Silica はコンパクトなローカル検索システムであり、最先端水準と競争できる性能を備えています。BEIR では zvec-grep と同等で、同じ埋め込みモデルを使用した対応付き SWE-QA コードローカライゼーションの再現実験では上回っています。
検索の価値は、エージェントが答えの質を損なわずに作業量を減らせる場合にのみ生まれます。以下は個別の実験であり、結果をまとめていません。
| ワークロードと方式 | 実行回数 | 品質 | 検索の使用 | ターン数 | ツール呼び出し数 | 秒数 | ウォーム時のコスト |
|---|---|---|---|---|---|---|---|
| リポジトリ、検索優先の契約 | 20 | Judge 59.7 | 17/20 | 4.7 | — | 24 | $0.197 |
| リポジトリ、契約なしで同じプラグインを使用 | 20 | Judge 50.6 | 0/20 | 6.5 | — | 28 | $0.180 |
| 文書、常駐する Silica ツール | 12 タスク | 12/12 正解 | 12/12 | 3.9 | 2.9 | — | $0.20 |
| 文書、プラグインなし | 12 タスク | 12/12 正解 | — | 5.0 | 4.0 | — | $0.22 |
リポジトリの結果は 1 回の反復によるものです。ターン数は 1.75 改善しています(95% 信頼区間では 0.55~3.05 回減少)が、Judge とコストについては結論が出ていません。文書の結果は、12 件の質問と 5.5M トークンのコーパスを対象にした 144 回の実行調査によるものです。このワークロードで作業量が減ることを示すものであり、エージェント全般に当てはまる主張ではありません。
コーパス、信頼区間、タスクごとの例外、再現用コマンドについては、ベンチマークを参照してください。
ハーネス
silica-core setup <client> は、クライアント独自の設定に登録情報を書き込み、既存の設定をバックアップします。claude の場合は、grep の前に検索するタイミングを記したガイダンスブロックも ~/.claude/CLAUDE.md に追加します。silica-core setup --list には、claude、codex、cursor、windsurf、zed、cline、roo、continue、goose、opencode、openhands、gemini、antigravity、dsh、hermes、openclaw、agent-zero、claude-desktop、lmstudio、anythingllm、librechat のクライアント名が表示されます。その他のクライアント向けには、shell、python、generic が設定例を出力します。サーバーはクライアントが開いたフォルダーを提供します。--vault DIR または SILICA_VAULT でルートを固定できます。
すべての書き込み済みブロックと Claude Code プラグインは、silica-core mcp --retrieval local-hybrid を実行します。サーバープロセス内で potion-retrieval-32M を使い、起動時にインデックスとベクトルをバックグラウンドで構築します。構築が完了するまでは、検索は字句検索で、dense: warming と表示されます。マシンの外に送信されるものはありません。ダウンロードはモデルの一度きりです。npx skills add kiycoh/silica-core はスキル(エージェントがいつツールを使うべきかを示すものと、インデックス化されたドキュメントから説明、要約、比較、図式化、図解を行う5つ)だけをインストールします。シェル用の設定例、Docker、REPL については、public/harnesses.md をご覧ください。
Claude Code プラグインの仕組み
Claude Code では、プラグインだけで十分です。プラグインには独自のサーバーとスキルが含まれています。上記の インストール セクションと silica-core setup claude は、その他のクライアント向けです。両方を使うと、2つのサーバーが同じフォルダーを提供します。
インストール
サーバーを起動するため、PATH 上に uv が必要です。
claude plugin install silica-core --marketplace kiycoh/silica-core
この手順は Claude Code 2.1.275 以降で機能します。また、セッション中に /plugin install silica-core --marketplace kiycoh/silica-core を実行しても同じです。古いクライアントでは、先にマーケットプレイスを追加します。
claude plugin marketplace add kiycoh/silica-core を実行し、次に
claude plugin install silica-core@silica-core を実行してください。
初回起動
- 検索したいフォルダーで Claude Code を起動します。
- 初回起動が完了するまで待ちます。uv がパッケージをインストールし、サーバーがモデルを一度だけダウンロードするため、次回以降より時間がかかります。
- プロンプトの上にある インデックス を押すか、
/silica-initと入力します。実行するまでは何もインデックス化されません。 - フォルダーについて質問します。Claude は
silica_searchを使って検索します。ベクトルの構築が完了するまでは検索は字句検索で、返信にはdense: warmingと表示されます。
更新
マーケットプレイスを更新してから、プラグインを更新します。新しいバージョンは次のセッションで読み込まれます。
claude plugin marketplace update silica-core
claude plugin update silica-core@silica-core
実行、読み取り、ダウンロードするもの
このプラグインは、MCP サーバーと hooks/ 内の小さな mod で構成されています。どちらもファイル、プロンプト、会話を外部に送信しません。
- サーバー。
uv run --frozen --project <plugin folder>で起動します。 プラグインフォルダーは~/.claude/plugins/cache/silica-core/silica-core/<version>で、バージョンはclaude plugin listに表示されます。初回起動時、uv は PyPI からuv.lockに固定されたパッケージをインストールし(マシンに Python 3.11 以降がない場合は Python のビルドも行います)、サーバーは Hugging Face からpotion-retrieval-32Mモデルをダウンロードします。それ以外は何も ダウンロードされません。 - インデックス作成。 まだインデックスが作成されていないフォルダーでは、mod が
プロンプトの上に Index ボタンを表示します。
/silica-initも同じ処理を行います。どちらもそのフォルダーでuv run --frozen --project <plugin folder> --extra mcp --extra dense silica-core initを実行し、そこにvault.yaml(コードリポジトリでは.silicaignoreも)を書き込み、~/.silicaの下にインデックスを作成します。Not here を選ぶと、そのフォルダーではボタンが非表示になります。依頼するまで、インデックスは 作成されません。 - 検索ヒント。 インデックスが作成されたフォルダーで、ファイル名やシンボル名を
指定せずに質問すると、mod は Claude に grep の前に
silica_searchを試すよう 促す一行を追加します。また、CLAUDE.mdにすでに記載されていない場合は、検索の ガイダンスをシステムプロンプトにも追加します。mod はCLAUDE_CONFIG_DIR、HOME、USERPROFILEの3つの環境変数を読み取り、そのCLAUDE.mdを探すことと、 ホームフォルダーを除外することだけに使用します。 - ドキュメントのメンテナンス。
docs/フォルダーがあるインデックス済みの フォルダーでは、mod は Claude がコードに合わせてドキュメントを更新できるよう サポートします。確認を促すだけで、判断するのは Claude です。書き込みが拒否されることは ありません。- 記録に値する書き込み(新しいファイル、マニフェスト、1ターンで変更された30行、
またはADRに記載されたファイル)の後、Claude に一度だけリマインダーが届きます。
docs/を最新の状態にするか、記録するものがないと伝えるよう促します。 docs/内に書き込みを行ったターンが終わると、mod はそのファイルをチェックし、 リンクやコードパスのリンク切れ、同じ番号のADRが2つあること、承認済みADRの Decision が変更されていることを確認します。Claude は、問題だと判断したものを修正するか、 問題ではない理由を説明します。このチェックは1ターンにつき最大2回です。- 対話セッションの開始時に、
docs/adr/とdocs/specs/を読み取り、gitを実行してから、存在しないものを参照している記録の数と、以降にファイルが 変更された記録の数をプロンプトの上に表示します。/silica-docsで一覧を確認できます。 - フロントマターに
implementation:(implemented、partial、pending、draft、dropped、n/a)がある記録は、その値に従う必要があります。implementedとpartialはimplemented_inにコミットまたはパスを指定し、pendingとdraftは何も指定しません。partialとdroppedにはimplementation_noteが必要です。
- 記録に値する書き込み(新しいファイル、マニフェスト、1ターンで変更された30行、
またはADRに記載されたファイル)の後、Claude に一度だけリマインダーが届きます。
古いバージョンの Claude Code の場合
Index ボタン、/silica-init、検索ヒント、ドキュメントのメンテナンスはmodが
提供する機能であり、Claude Code 2.1.293以降が必要です。古いクライアントでもサーバーと
スキルは実行できます。代わりに、対象フォルダーで開いたターミナルからインデックスを
作成してください。
uv run --frozen --project <plugin folder> --extra mcp --extra dense silica-core init
動作しない場合
-
silica のツールが表示されない、または Claude Code に
plugin:silica-core:silica-coreに接続できなかったと表示される。 サーバーが 起動していません。/mcpで状態を確認できます。よくある原因は、uv がPATHに 見つからないことと、初回インストールの失敗です。エラーを確認するには、フォルダー内で サーバーを手動で起動します。uv run --frozen --project <plugin folder> --extra mcp --extra dense silica-core mcp --retrieval local-hybrid正常な場合は
serving 5 tools on stdio, waiting for a clientと表示されます。 Ctrl+C で終了します。 -
Index ボタンが表示されない。 ホームフォルダーや
/では、フォルダー全体の インデックスを作成するには大きすぎるため、表示されません。Not here を選んだ後は、 そのフォルダーで非表示のままですが、/silica-initを使えば引き続きインデックスを 作成できます。2.1.293より古いクライアントの場合は、上記を参照してください。 -
このマシンで読み取れる内容。
silica-core doctorでインストールと フォルダーをチェックできます。uv run --frozen --project <plugin folder> --extra mcp --extra dense silica-core doctor
アンインストール
claude plugin uninstall silica-core@silica-core
プラグインを削除しても、次の2つが残ります。
- インデックスを作成した各フォルダー内の、コードリポジトリにある
vault.yamlと.silicaignore。 ~/.silica/index/内の各インデックスフォルダー。
手動で削除してください。プラグインがインストールされたままインデックスを削除すると、そのフォルダーを次に検索したときに再構築されます。
注意事項
- 読み込み対象: Markdown、
.txt、.rst、およびテキストレイヤーのあるPDFは直接読み込み、PDFは1ページごとにセクションとして扱います。DOCX、EPUB、FB2、RTF、XLS、ODFは追加のツールなしで変換します。スキャンPDF、画像、PPTX、XLSXはMinerUを使ってsilica-core importで処理します。音声と動画はffmpegとSILICA_STT_BASE_URLを使って処理します。CSVは行単位で読み込めますが、検索対象からは除外されます。ソースツリーでは、コードレーンにソースファイルと、そのjson、yaml、toml、cfg、iniファイルも追加されます。silica-core doctorで、このマシンが利用できるレーンを確認できます。 - 密ベクトル検索: 回答と珍しい単語を共有しない言い換えも見つけられる、セクション埋め込みです。
uv tool installでは、silica-core index --embedを実行するまで字句検索のみが使われます。埋め込みには[dense]エクストラのローカルモデル、またはOpenAI互換の/v1/embeddingsエンドポイントを使用できます。テキストがマシンの外部に送信されるのはリモートエンドポイントを使う場合のみで、silica-core index --embed --allow-remoteによってそのホストへの接続を一度許可した後に限られます。変数と応答状態についてはTOOLS.md、Ollamaの設定例についてはpublic/harnesses.mdを参照してください。 - その他の接続方法:
silica-core mcp --extendedでwikilinkツールを追加できます。追加機能[connect]のsilica-core connectは、Obsidianプラグインが接続するブリッジをホストします。アプリが開いている間は、Vault APIを通じて書き込みが反映されます。silica-core replは、同じツール群を使う小規模なリファレンスエージェントを実行します。モデルが必要なのはこの接続方法のみです(SILICA_MODEL)。 - コアに含まれないもの: メモリレーン、プロンプトインジェクション、要約、取り消しジャーナルはありません。取り消しにはGitを使います。
ライセンス
MITです。LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。