mcpField
U
Universal Context Pipeline

Universal Context Pipeline

ローカル
github.com/akshay2211データ・分析419 週間前に更新

Universal Context Pipeline について

Universal Context Pipelineは、個人ファイルや過去のClaude会話をインデックス化するローカル優先のMCPサーバーです。単一のツールでハイブリッド検索と引用を提供し、オフラインでインデックス作成と検索を実行できます。

主な機能

  1. 01BM25とベクトルのハイブリッド検索
  2. 02コード構造を考慮した分割
  3. 03過去のClaude会話のインデックス化
  4. 04デフォルトの個人情報マスキング
  5. 05フォルダー変更の監視
  6. 06検索結果への引用付与

活用シーン

  1. 01ノート、コード、PDFの検索
  2. 02過去のClaude会話からの情報取得
  3. 03ローカルのプライベートファイルに基づく回答
  4. 04オフライン環境でのファイル検索

MCP 対応

MCP stdio経由で互換クライアントに`search_local_context`ツールを公開し、引用付きの検索結果を返します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

UCP — Universal Context Pipeline

crates.io docs.rs

LLM をお使いのファイルに基づかせる、ローカルファーストの MCP サーバーです。

UCP はお使いのマシン上のフォルダー(メモ、コード、会話のエクスポートなど)をインデックス化し、MCP 対応クライアント(Claude Desktop、Cursor、LM Studio、その他のローカルエージェント実行環境)から、単一のツール search_local_context として利用できるようにします。ハイブリッド検索(BM25 + ベクトル)、tree-sitter を活用したコードのチャンク分割、完全な引用、コンテンツハッシュによる埋め込みキャッシュを備えています。単一バイナリです。テレメトリーなし。クラウドなし。

LM Studio のローカルモデル(または ucp-local ask 経由の Ollama)と組み合わせると、インデックス化、埋め込み、検索、チャットモデルを含むスタック全体が完全オフラインで動作します。飛行機内、ネットワークから隔離された施設、あるいはクラウド LLM を利用できない場所でも使えます。

デモ

会話メモリ — 過去の Claude とのチャットをすべて、今後の各セッションから検索できるようにします。

会話メモリのデモ

エアギャップ RAG — ローカル Ollama + ローカルインデックスで、ネットワーク通信はゼロです。

エアギャップ RAG のデモ

クイックスタート — インストール、インデックス化、質問まで、1 分以内です。

クイックスタートのデモ

対象ユーザー

該当する方…UCP でできること…
Claude / Cursor / LM Studio のヘビーユーザー過去の AI との会話をすべて検索可能なアーカイブにし、今後のどのセッションからも search_local_context ツールとして呼び出せます。
ソフトウェアエンジニアコード、非公開ドキュメント、関連リポジトリ、過去の Claude とのチャットを 1 つの MCP ツールにまとめ、Cursor や Claude Code 内で、それぞれに組み込まれたインデクサーと併用できます。
研究者、ライター、学術関係者PDF とメモのコーパスを対象に、行単位の引用付きで根拠に基づく質問ができます。データがマシンの外に出ることはありません。
プライバシー規制のあるワークフロー(法律、医療、防衛、NDA の対象となる知的財産)に携わる方テレメトリーもクラウドも一切ない、単一の Rust バイナリを利用できます。LM Studio と組み合わせれば、完全オフラインのエンドツーエンド RAG スタックを構築できます。
個人事業主やコンサルタントfolder_filter によってフォルダーごとにクライアントを分離でき、クライアント A のコンテキストがクライアント B のセッションに漏れる心配がありません。

対象ユーザーの詳細な分析、競合比較、そして UCP が明確に強みを発揮する 2 つの領域については、POSITIONING.md をご覧ください。

ステータス

v0.1、ヘッドレスです。ROADMAP.md で対応範囲を確認してください。

提供機能:

  • ハイブリッド検索:SQLite FTS5(BM25)⨉ sqlite-vec(ANN)を逆順位融合で統合します。
  • Rust、Python、TypeScript/JavaScript の tree-sitter によるチャンク分割。見出しを考慮した Markdown 分割。文境界で区切るプレーンテキストのフォールバック。
  • 会話メモリ:Claude の conversations.json エクスポートを取り込み、過去のチャットを横断検索できます。
  • デフォルトで PII をマスキングします — メールアドレス、OpenAI の sk-、AWS キー、GitHub PAT、JWT。
  • コンテンツハッシュによる埋め込みキャッシュ:変更のないコンテンツを再インデックス化しても、Ollama の呼び出しは発生しません。
  • ファイルシステムウォッチャー:ファイルを編集すると、インデックスが約 500ms で更新されます。

v0.1 に含まれない機能:

  • デスクトップ UI / トレイ(延期 — 当初の仕様にはありましたが、現在は ROADMAP の Tier 2 以降に移動しています)。
  • OS ホットキーインジェクターと HTTP プロキシインターセプター(当初の仕様から削除しました)。
  • OpenAI / Anthropic の埋め込みプロバイダー(現時点では Ollama のみ)。
  • Cursor と ChatGPT のエクスポート形式(Claude のみ。その他は後日対応予定)。

前提条件

UCP の利用には、マシン上に 3 つのものが必要です。Rust(ビルド用)、Ollama(埋め込み用および任意でチャット用)、Poppler(高精度な PDF テキスト抽出用。推奨)。

macOS
brew install ollama poppler
ollama serve &              # or use the menu-bar app
ollama pull nomic-embed-text
# Optional, for `ucp-local ask`:  ollama pull llama3.2
Linux(Debian/Ubuntu)
sudo apt install poppler-utils
curl -fsSL https://ollama.com/install.sh | sh
ollama pull nomic-embed-text
# Optional, for `ucp-local ask`:  ollama pull llama3.2
Linux(Fedora/RHEL)
sudo dnf install poppler-utils
curl -fsSL https://ollama.com/install.sh | sh
ollama pull nomic-embed-text
Windows
choco install poppler ollama   # or install each manually
ollama pull nomic-embed-text

ソースからビルドする場合に限り、Rust(stable、edition 2024)が必要です。ビルド済みの UCP バイナリをインストールする場合は、Rust のインストールを省略してください。

Poppler は任意ですが、推奨します。 Poppler がない場合、UCP は PDF の処理に同梱の pdf-extract だけを使用します。この方法は、本文フォントに ToUnicode CMap がない PDF の処理が苦手です(見出しは抽出されても、本文が欠落することがあります)。Poppler の pdftotext が PATH にあれば、UCP は自動的にそれを代わりに使用します。

インストール

名前に関する注意。 crates.io ではクレートが ucp-local として公開されています。ucp という名前はすでに使用されていたためです。PATH 上のバイナリ名も ucp-local(コマンドラインで入力する名前)で、ライブラリは use ucp_local::... としてインポートします。

crates.io から
cargo install ucp-local
# Puts the `ucp-local` binary on your PATH
ソースから
git clone <repo-url> ucp-local
cd ucp-local
cargo build --release
# Binary at target/release/ucp-local
cargo install --path .   # optional, to put `ucp-local` on your PATH

使い方

# Index one folder
ucp-local index ~/Documents/notes

# Index multiple folders into the same store
ucp-local index ~/Documents/notes ~/code/my-project ~/research

# Watch a folder and re-index on changes (initial pass runs first)
ucp-local watch ~/code/my-project

# Clear the index — soft (keeps the embedding cache so re-index is fast)
ucp-local clear

# Clear only one folder's chunks
ucp-local clear ~/Documents/notes

# Hard reset — also wipes the embedding cache, forces re-embed on next index
ucp-local clear --hard --yes

# Ingest a Claude conversations.json export
ucp-local ingest-conversations ~/Downloads/claude-export/conversations.json

# Show config + index status
ucp-local status

# Run the MCP server over stdio (this is what MCP clients launch)
ucp-local serve

# Search the index from the terminal (no LLM) — best for debugging "did indexing actually capture this?"
ucp-local search "your query here"
ucp-local search "rate limiting" --folder ~/code/my-project --limit 10

# Ask a question — runs search internally, then a local chat model answers with citations
ucp-local ask "what does the rate limiter do when a token bucket runs out?"
ucp-local ask "summarize my Q3 plan" --model qwen2.5
MCP クライアントの接続

UCP は stdio 経由で MCP を使用するため、MCP サーバーを起動するクライアントであれば利用できます。serve コマンドは共通で、クライアントごとに設定ファイルが異なります。

Claude Desktop

macOS では ~/Library/Application Support/Claude/claude_desktop_config.json(Windows では %APPDATA%\Claude\claude_desktop_config.json)に追加します。

{
  "mcpServers": {
    "ucp-local": {
      "command": "/full/path/to/ucp-local",
      "args": ["serve"]
    }
  }
}

Claude Desktop を再起動します。search_local_context ツールが利用可能になります。インデックス化したファイルに基づいて質問すると、回答内に引用が表示されます。

Cursor

Cursor は MCP サーバーを ~/.cursor/mcp.json(またはプロジェクトごとの .cursor/mcp.json)から読み込みます。

{
  "mcpServers": {
    "ucp-local": {
      "command": "/full/path/to/ucp-local",
      "args": ["serve"]
    }
  }
}

Cursor を再読み込みします。チャットのサイドバーに search_local_context がツールとして表示されます。これは、Cursor 自身の @codebase インデクサーでは参照できないリポジトリやドキュメント(プライベートなメモ、会話履歴、隣接するリポジトリなど)をエージェントが参照するのに便利です。

LM Studio(完全オフライン)

LM Studio 0.3.17 以降は MCP に対応しています。チャット設定を開き、MCP servers セクションを見つけて、次の内容を追加します。

{
  "mcpServers": {
    "ucp-local": {
      "command": "/full/path/to/ucp-local",
      "args": ["serve"]
    }
  }
}

UCP を、LM Studio にダウンロード済みの任意のローカルモデル(Llama、Qwen、Mistral など)と組み合わせます。これで、インデックス化、埋め込み、検索、チャットモデルのすべてが同じマシン上で動作します。クラウドもネットワークも不要で、LLM は引き続き search_local_context を呼び出して、回答の根拠としてファイルを参照できます。

その他の MCP クライアント

MCP 仕様に準拠したクライアント(Zed、Continue.dev、Goose、カスタム Agent SDK アプリなど)であれば、同じ command と args の形式を使用できます。クライアントが JSON-RPC stdio サーバーを必要とする場合は、ucp-local serve を指定するだけで使えます。

設定

~/.config/ucp/config.toml(またはプラットフォームに応じたパス。解決されたパスは ucp-local status で表示されます)。すべてのフィールドは省略可能です。デフォルト値は次のとおりです。

[ollama]
host = "http://localhost:11434"
embedding_model = "nomic-embed-text"

[chunking]
max_tokens = 512
overlap_sentences = 1

インデックス化の対象

拡張子で判定します:md、markdown、txt、rs、py、ts、tsx、js、jsx、mjs、go、pdf。

PDF: テキストは pdf-extract で抽出され、散文としてチャンク化されます。デジタル生成された PDF(論文、ドキュメント、エクスポートしたメモなど)では良好に動作します。スキャンされた画像のみの PDF には対応できません。その場合は OCR が必要です(v0.2 以降)。引用の行番号は PDF のページ番号ではなく、抽出したプレーンテキストを参照します。ページを考慮した引用は v0.2 の予定リストにあります。

スキップされるディレクトリ:.git、.idea、.vscode、target、node_modules、__pycache__、.venv、venv、dist、build、.next、.nuxt、coverage、.pytest_cache、.mypy_cache。ドットファイルはスキップされます。

アーキテクチャ

モジュール役割
ingestionマスキング+形式ごとのチャンク化(散文/Markdown/tree-sitter によるコード)+ディスパッチャー
storagerusqlite+sqlite-vec+FTS5。RRF によるハイブリッド検索
embeddingsOllamaClient+EmbeddingCache::hash によるコンテンツハッシュキャッシュ
indexer走査+読み込み+チャンク化+埋め込み+挿入。単一ファイルと一括チャンクの処理経路
watchernotify ベースのデバウンス付き再インデックス化
mcpJSON-RPC 2.0 stdio サーバー。ツールは search_local_context の 1 つ

開発者向けのアーキテクチャ概要は CLAUDE.md を、元の(現在は対象範囲がより狭くなっている)設計ドキュメントは Universal Context Pipeline Specification.md を参照してください。

開発

cargo test                    # full test suite
cargo test --lib ingestion    # one module
cargo run -- index <path>     # iterate against the dev build
RUST_LOG=ucp_local=info cargo run -- watch <path>   # verbose

変更履歴

リリース履歴と注記はCHANGELOG.mdに記載されています。現在公開されているバージョンは0.1.0(crates.io)です。

ライセンス

Apache-2.0 の下で提供されています。

コメント

MCP は初めてですか?

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

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