mcpField
S
Silica Core

Silica Core

ローカル
github.com検索691 日前に更新

Silica Core について

Silica Coreは、コードや調査資料をローカルで検索するツールで、エージェントや各種ハーネスを対象としています。フォルダーをインデックス化し、MCPまたはコマンドラインから該当箇所、ソースコードのシンボル、検索根拠を返します。

主な機能

  1. 01Markdown・コード・PDF・オフィス文書をインデックス化
  2. 02語彙検索と任意の密ベクトル検索で順位付け
  3. 03ファイルの見出しや行範囲を読み取り
  4. 04ソースファイルのASTコンテキストパックを生成
  5. 05検証付きで構造化ノートを作成

活用シーン

  1. 01調査フォルダーから関連箇所を探す
  2. 02質問に関係するコードファイルやシンボルを特定
  3. 03検索後に指定の節やページを読む
  4. 04インデックス資料から構造化ノートを作成

MCP 対応

フォルダー一覧、検索、読み取り、コードパック、ノート作成のツールをMCPクライアントに公開します。同じ操作はJSONを返すコマンドラインからも利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"kiycoh-silica-core": {
"command": "uvx",
"args": [
"silica-core"
],
"env": {
"SILICA_VAULT": "<SILICA_VAULT>"
}
}
}
}
起動コマンドuvx silica-core
設定が必要な環境変数
SILICA_VAULTFolder to index and serve. Unset means the directory the client launched the server in.

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

パッケージ
pypisilica-core0.11.0

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
limitintegerいいえページあたりの最大項目数
cursorstringいいえ前のページで返された `next_cursor`
folderstringいいえ一覧表示するルート相対フォルダー。空の場合はルート全体
statusstringいいえ次のステータスのみ:indexed、changed、excluded、failed、unconverted

詳細

Silica Core

コードとリサーチのための軽量なローカル証拠検索ツール

Silica は、あなたやエージェントが必要とするソース、シンボル、ページ、または一節を見つけます。最大限のシグナルを、最小限の仕組みで実現します。

PyPI ライセンス

Silica は、1 つのルート配下にある Markdown、コード、PDF、オフィスファイルをインデックス化し、Claude Code、Cursor、Hermes、Codex、OpenCode、その他の主要なハーネスに、MCP ツールまたは同じ JSON を出力するシェルコマンドとして提供します。検索結果には、パス、セクション、行、テキストの範囲、および評価に使える数値が含まれます。ループはハーネスが担います。

クイックスタートを最初から最後まで記録:uv tool install、インデックス化された 9 件のドキュメントを報告する silica-core init、MCP サーバーを登録する silica-core setup claude、続いて Claude Code が silica-core を呼び出し、LSM コンパクション設計の選択肢についての質問に PDF のページと行を引用して回答

コマンドを 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 件の LSM 論文を対象にした silica-core search "leveled compaction":検索結果にはファイル、5 ページ目、該当箇所が表示され、その横には同じ箇所がハイライトされた状態で PDF の該当ページが開いている

9 件の arXiv 論文を 2.1 秒でインデックス化しました。検索結果にはファイル、ページ、該当箇所が表示され、横に表示されたページで内容を確認できます。

ツール

ツールシェル返される内容
silica_filessilica-core files各ファイルの一覧と、インデックスが各ファイルに対して行った処理:indexed、changed、excluded、failed、unconverted
silica_searchsilica-core searchランク付けされた抜粋:パス、セクション、行、BM25、一致した用語、coverage、コーパスに存在しないクエリ用語
silica_readsilica-core read行または見出し(PDFの場合はページ)で指定した範囲、アウトライン、および引き継ぎ用のversion
silica_code_packsilica-core code-pack文字数の上限内で、1つのソースファイルのASTコンテキストパック
silica_write_notesilica-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本の論文に対するsilica-coreの検索「raft consensus log replication」:terms_absentにはraftとconsensusが表示され、coverageは0.19に下がり、最上位の検索結果はRaftではなくデータレプリケーションに関する抜粋

同じ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 の語彙インデックスにはモデルが不要です。他の方式は、埋め込みも保持するインデックスから語彙検索を行います。

モードSilicazvec-grep 0.2.2ck 0.7.11
語彙検索0.662 · 0.3110.649 · 0.2970.630 · 0.289
ハイブリッド、同じ potion-retrieval-32M 埋め込みモデル0.675 · 0.3280.672 · 0.330

コード検索では、zvec-grep が独自のベンチマークで公開している 20 件の SWE-QA 質問を使用しています。同じ埋め込みモデルを使い、k = 10 として、参照回答の根拠となるファイルとシンボルで評価しています。

方式ファイル hit@5 · @10ファイル MRRシンボル hit@10シンボル再現率返された文字数
Silica、ハイブリッド0.85 · 0.900.680.750.248,266
Silica、ベクトル0.80 · 0.850.670.650.216,225
Silica、語彙検索0.65 · 0.750.470.450.148,194
zvec-grep 0.2.2、ハイブリッド0.65 · 0.750.540.550.177,326
zvec-grep 0.2.2、ベクトル0.60 · 0.800.610.550.186,821
zvec-grep 0.2.2、FTS0.45 · 0.600.360.450.116,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 コードローカライゼーションの再現実験では上回っています。

検索の価値は、エージェントが答えの質を損なわずに作業量を減らせる場合にのみ生まれます。以下は個別の実験であり、結果をまとめていません。

ワークロードと方式実行回数品質検索の使用ターン数ツール呼び出し数秒数ウォーム時のコスト
リポジトリ、検索優先の契約20Judge 59.717/204.7—24$0.197
リポジトリ、契約なしで同じプラグインを使用20Judge 50.60/206.5—28$0.180
文書、常駐する Silica ツール12 タスク12/12 正解12/123.92.9—$0.20
文書、プラグインなし12 タスク12/12 正解—5.04.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 を実行してください。

初回起動
  1. 検索したいフォルダーで Claude Code を起動します。
  2. 初回起動が完了するまで待ちます。uv がパッケージをインストールし、サーバーがモデルを一度だけダウンロードするため、次回以降より時間がかかります。
  3. プロンプトの上にある インデックス を押すか、/silica-init と入力します。実行するまでは何もインデックス化されません。
  4. フォルダーについて質問します。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 が必要です。
古いバージョンの 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を参照してください。

コメント

MCP は初めてですか?

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

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