Semantic Search MCP
Semantic Search
Markdownファイルに対するセマンティック検索。キーワードだけでなく、意味で関連するノートを見つけます。新しいノートを作成する前に重複を検出します。
2つのサーバー転送方式をサポートしています:
stdio MCP — Claude Code統合用(セッションごとに1プロセス)
HTTP — 1つのポートでMCP-over-HTTPとRESTを統合。すべてのクライアントで共有される1つのウォームプロセス
機能
sentence-transformersを使用したセマンティック検索
重複/類似ノートの検出
ファイル監視による自動インデックス更新
マルチディレクトリ対応
インラインタグ抽出 (
#tag-name)
インストール
CPUのみのインストール — macOS(すべてのMac、Apple SiliconまたはIntel)およびNVIDIA GPUを搭載していないLinux/Windowsに推奨。約5GBのCUDAバイナリを節約します。macOSでは、Apple GPU (MPS) がPyTorchの組み込みMPSバックエンドを介して自動的に検出・使用されます。「CPU」というラベルはCUDAが存在しないことのみを指しており、実行時の計算デバイスを指すものではありません。
uv tool install --index https://download.pytorch.org/whl/cpu \
git+https://github.com/bborbe/semantic-searchCUDAインストール — 専用のNVIDIA GPUを搭載したLinux/Windows専用。macOSには適用されません(MacではNVIDIA CUDAはサポートされていません)。
uv tool install git+https://github.com/bborbe/semantic-searchアップグレード
uv tool upgrade semantic-searchサーバーモード
stdio MCP (セッションごとのClaude Code)
Claude Codeセッションごとに1つのプロセスを生成します。シンプルですが、各セッションが約400MB〜1GBのモデルコピーを個別に読み込みます。
claude mcp add -s project semantic-search \
--env CONTENT_PATH=/path/to/vault \
-- \
uvx --from git+https://github.com/bborbe/semantic-search semantic-search-mcp利用可能なツール:
search_related(query, top_k=5)— 意味的に関連するノートを検索check_duplicates(file_path)— 重複/類似ノートを検出
HTTP (すべてのクライアントで共有)
単一の長時間実行プロセスが、/mcp でMCP-over-HTTPを、/search、/duplicates、/health、/reindex でRESTを提供します。すべてのClaude CodeセッションとRESTクライアントが1つのウォームインデクサーを共有します。
CONTENT_PATH=/path/to/vault semantic-search-http --host 127.0.0.1 --port 8321MCP設定を介してClaude Codeから接続します:
{
"mcpServers": {
"semantic-search": {
"type": "http",
"url": "http://127.0.0.1:8321/mcp"
}
}
}RESTエンドポイント:
エンドポイント | メソッド | 説明 |
| POST | MCP-over-HTTP (Claude Code) |
| GET | セマンティック検索 |
| GET | 重複ノートの検索 |
| GET | インデックス統計を含むヘルスチェック |
| GET/POST | インデックスの強制再構築 |
クエリ例:
# Search
curl 'http://127.0.0.1:8321/search?q=kubernetes+deployment'
# Find duplicates
curl 'http://127.0.0.1:8321/duplicates?file=notes/my-note.md'
# Health check
curl 'http://127.0.0.1:8321/health'バックグラウンド実行
本番環境のような用途では、semantic-search-http をバックグラウンドサービスとして実行し、すべてのClaude Codeセッション(およびRESTクライアント)が1つのウォームプロセスを共有できるようにします。
プラットフォーム | ガイド |
macOS (launchd) | |
Linux (systemd) |
クイック例 (macOS):
launchctl load ~/Library/LaunchAgents/com.github.bborbe.semantic-search-http.plistクイック例 (Linux):
systemctl --user enable --now semantic-search-http.serviceCLIコマンド
サーバーを実行しないワンショットコマンド:
# Search
CONTENT_PATH=/path/to/vault semantic-search search "kubernetes deployment"
# Find duplicates
CONTENT_PATH=/path/to/vault semantic-search duplicates path/to/note.mdバイナリ
バイナリ | 目的 |
| 統合HTTPサーバー — |
| stdio MCPサーバー — Claude Codeセッションごとに1つ。HTTPサービスが設定されていない場合に使用。 |
| CLIのみ — |
設定
環境変数
変数 | 説明 | デフォルト |
| インデックス対象ディレクトリ(複数指定はカンマ区切り) |
|
| ログレベル (DEBUG, INFO, WARNING, ERROR) |
|
複数ディレクトリ
パスをカンマで区切ることで、複数のディレクトリをインデックス化できます:
CONTENT_PATH=/path/to/vault1,/path/to/vault2,/path/to/docsすべてのディレクトリは一緒にインデックス化され、1つの統合インデックスとして検索されます。
仕組み
初回実行時に小さな埋め込みモデル(約90MB)をダウンロードし、Markdownファイルをインデックス化します(一般的なボルトで1秒未満)。ファイルシステム監視により、ファイル変更時にインデックスが自動更新されます。
インデックス化されるコンテンツ
各Markdownファイルは、重み付けされたコンポーネントでインデックス化されます:
コンポーネント | 重み | メモ |
ファイル名 | 3x | |
フロントマター | 3x | |
フロントマター | 2x | インラインタグとマージ |
フロントマター | 2x | |
インラインタグ ( | 2x | 本文から抽出 |
最初のH1見出し | 2x | |
本文コンテンツ | 1x | 最初の500単語 |
開発
# Clone
git clone https://github.com/bborbe/semantic-search
cd semantic-search
# Install dev dependencies
make install
# Run checks
make check
# Run tests
make testライセンス
BSD 2-Clause License — LICENSE を参照。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bborbe/semantic-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server