loci について
lociは、ノートや文書の検索・質問と、AIツール間での長期的なコンテキスト共有に使えるローカル優先のナレッジベースです。ベクトル検索とBM25を組み合わせ、出典付きで回答し、MCP、コマンドライン、Webコンソールから利用できます。
主な機能
- 01ベクトル検索とBM25のハイブリッド検索
- 02ファイル名とセクション付きの回答
- 03ノートや複数形式の文書をインデックス
- 04長期メモリの保存と取り消し
- 05Webコンソールでの閲覧と管理
活用シーン
- 01ノート群からプロジェクトの決定事項を検索
- 02質問への回答に付いた根拠を確認
- 03AIツール間で永続的なコンテキストを共有
- 04エージェントの記憶を確認・更新
MCP 対応
MCPサーバーは、検索、Q&A、メモリ、リンク、グラフ、wiki、harness、統計、取り込みのツールに加え、ノートのリソースとプロンプトを公開します。複数のMCPクライアントは同じLOCI_HOMEを指定して同一インスタンスを共有できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| k | integer | いいえ | 返すヒット数、1~20(デフォルトは 5) |
| in | string | いいえ | ソースパスにこの部分文字列を含む結果のみ。例:'docs/en' または 'projects' |
| tag | string | いいえ | frontmatter のタグにこの値を含む結果のみ。例:'rag' または 'memory'。 |
| query | string | はい | 検索する内容。任意の言語で指定できます |
詳細
散在するメモ、プロジェクト文書、エージェントの記憶を、検索して質問できるナレッジベースに変えましょう。MCP サーバーとして、ターミナルから、またはブラウザーから利用できます。
loci はベクトル検索と BM25 を組み合わせ、file > section 形式の引用付きで回答を返します。ファイルとインデックスはお使いのマシンに保管されます。埋め込みとチャットのリクエストは、設定したプロバイダーに送信されます。ローカルエンドポイントを使えば、ワークフロー全体をオフラインにできます。
主役は MCP です。 loci-mcp を Claude Desktop、Cursor、Cline、その他の MCP ホストにマウントすると、アシスタントはナレッジベース全体をツールとして利用できます。コンソールとデスクトップシェルは、同じインデックスを使う別のフロントエンドにすぎないため、使う必要はありません。
クイックスタート · MCP の設定 · Web コンソール · 利用ガイド · 中文说明

架空のデモデータを使った実際のコンソール UI です。個人のナレッジベース、アカウント、API キーには接続していません。件数は参考値です。
ダークテーマのプレビュー

できること
| ニーズ | loci の機能 |
|---|---|
| メモに埋もれた決定事項を見つける | ディレクトリを横断するハイブリッド検索。タグ、パス、日付で絞り込み可能 |
| 質問して根拠を確認する | 回答に出典のセクションを引用。主張ごとの検証も任意で利用可能 |
| AI ツール間でコンテキストを引き継ぐ | MCP ツールは同じインスタンスを共有。永続的な記憶は Markdown ファイルとして保存 |
| 各コーディングエージェントが覚えている内容を確認する | ハーネスの検出、ファイルの閲覧、ツールごとの統計、ダイジェストメモ |
| ナレッジベースを視覚的に管理する | 検索、Q&A、記憶、インデックス作成、監査に対応した組み込み Web コンソール |
Markdown、テキスト、HTML、org-mode、チャットのエクスポートは、そのまま利用できます。オプションの追加機能で PDF、Word、OCR にも対応します。使い慣れたメモエディターや Obsidian の保管庫も、そのまま使い続けられます。
クイックスタート
まずは設定なしで試す
pip install loci-rag
loci demo
loci demo は、架空のメモを6件 ./loci-demo-notes にコピーしてチャンクに分割し、3つの質問に回答します。回答には file > section 形式の引用が付きます。config.toml、API キー、ネットワークは必要ありません。キーワードのみを使います(BM25。ハイブリッド検索がベクトル検索の結果と組み合わせる、同じランキング方式です)。API キーを設定する前に動かせることが、まさにこの機能のポイントです。後から [embed] を追加すれば、同じインデックスでハイブリッド検索を使えます。

同梱のサンプルメモを使った実際の loci demo 出力です。パスは短縮しており、所要時間は環境によって異なります。
自分のメモをインデックス化する
Python 3.11+ が必要です。サンプル設定を利用できるよう、ソースから開始します。
git clone https://github.com/IvenKooLab/loci.git
cd loci
python -m pip install -e .
cp config.example.toml config.toml
config.toml を編集し、[llm] と [embed] に値を入力して、[[sources]].path をメモのディレクトリに変更します。埋め込みエンドポイントは /embeddings をサポートしている必要があります。チャットと埋め込みには、異なるプロバイダーを使用できます。
loci ingest
loci search "deployment decisions"
loci ask "What did we decide about deployment, and why?"
すでに設定がある場合は、python -m pip install loci-rag でパッケージをインストールし、LOCI_HOME にインスタンスディレクトリを設定します。ドキュメントを扱う場合は、オプションで python -m pip install 'loci-rag[pdf,docx]' を使用してください。
API キーは
BRAIN_LLM_API_KEYとBRAIN_EMBED_API_KEYで指定できます。埋め込みモデルを変更した後は、loci ingest --forceで再構築してください。
Web コンソール
loci serve-http
127.0.0.1:8765/ui を開くと、ハーネスのメモの閲覧、検索、質問、共有メモの編集、インデックス作成の状況確認ができます。検索結果をクリックすると、引用元の文章を表示するエビデンスペインが開きます。file > section の引用元は、コンソールを離れずに確認できます。コンソールには中国語/英語とライト/ダークの切り替え機能があります。フロントエンドのビルドは不要です。
デフォルトでは、匿名のループバッククライアントに管理者アクセスが許可されます。リバースプロキシや SSH トンネル経由で利用する場合は、[http] local_admin = false を設定し、ロールベースのトークンを構成してください。詳しくはアクセス制御を参照してください。
DeepSeek Harness では、loci-dsh を使うと、同じ HTTP バックエンドを介して、Harness ワークベンチに検索、Q&A、メモの取り込み機能を追加できます。
AI ツールを接続する
各 MCP クライアントの接続先を同じ LOCI_HOME に設定すると、同一の設定、インデックス、メモファイルを共有できます。
{
"mcpServers": {
"loci": {
"command": "loci-mcp",
"env": { "LOCI_HOME": "/absolute/path/to/your/loci-instance" }
}
}
}
クライアントから loci-mcp が見つからない場合は、実行ファイルの絶対パスを指定してください。インスタンスディレクトリには config.toml が必要です。
| MCP ツール | 用途 |
|---|---|
brain_search · brain_ask | 抜粋を取得するか、引用付きの回答を得ます |
brain_remember · brain_forget | 長期保存するメモを登録または撤回します |
brain_links · brain_graph | メモのリンクと抽出された関係を探索します |
brain_wiki · brain_harness | 知識を整理し、エージェントのメモを確認します |
brain_stats · brain_ingest | インデックスを確認して更新します |
サーバーは、メモのリソースに加えて、ブリーフィング、学習計画、矛盾チェック用のプロンプトも公開します。詳しくはMCP ガイドを参照してください。

実際の loci-mcp の出力です。実バイナリでの initialize、tools/list、prompts/list を示しています。
ネイティブビルド(Rust)
同じ検索パイプラインと MCP 機能を、Python ランタイムのインストールなしで利用できます。バイナリは 1 つで、インデックスはデータベースディレクトリではなく、単一の SQLite ファイルになります。
cargo build --release -p loci-cli # in native/
./target/release/loci-mcp --config ~/.loci/config.toml
状況:コア機能と MCP は完了しており、パッケージングとデスクトップシェルは開発中です。移植済みの内容と、互換性を確認するテスト(チャンク分割、固定された default トークナイザー、CJK のバイグラムによるデコイケース、RRF、増分取り込み)については、native/ を参照してください。2 つのビルドでは別々のインデックスを使用します。ネイティブ版から ChromaDB インスタンスを読み込むことはできません。移行コマンドは今後の課題です。
毎日の小さなワークフロー
loci watch # keep changed documents indexed
loci remember "Use staging for demos" --title "Demo environment"
loci search "demo environment" --tag memory
loci ask "How should I prepare a demo?" --verify
loci harness # inspect detected agent memories
インデックスは増分更新されます。メモは引き続き Markdown として読みやすい状態に保たれます。複数のマシンで使う場合は、ソースファイルとメモを同期してから、各マシンのローカルインデックスを再構築してください。認証情報はリポジトリに含めないでください。
## ドキュメント| ガイド | 内容 |
|---|---|
| 利用ガイド / 中文指南 | コマンド、フィルター、ハーネスの設定、アクセス制御、ローカルモデル |
| 設定例 | プロバイダーの設定、ソースディレクトリ、実行時オプション |
| アーキテクチャ | モジュールと検索パイプライン |
| 変更履歴 · ロードマップ | リリース済みの変更と今後の作業 |
| コントリビューション | 開発規約とオフラインテスト |
loci は OpenAI 互換 SDK と ChromaDB を使用し、LangChain や LlamaIndex には依存しません。BM25、ローダー、MCP トランスポートはプロジェクト内に実装されています。
python -m pip install -e '.[dev,pdf]'
pytest # offline tests; no API keys required
loci は Glama、ModelScope、awesome-mcp-servers でご覧いただけます。ソースコード:GitHub · Gitee。MIT ライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
