Semantic Context Mcp について
Semantic Context Mcpは、コードをローカルのベクトルデータベースに索引化し、開発者向けに意味検索を提供します。ファイル変更を増分追跡し、MCP経由で索引作成や検索を実行できます。
主な機能
- 01複数言語のAST解析
- 02Merkle Treeによる変更検出
- 03バックグラウンドでの増分索引化
- 04自然言語によるコードの意味検索
- 05ローカルのChromaDB保存
活用シーン
- 01機能の説明からコードを検索
- 02コード変更後の索引更新
MCP 対応
MCPクライアントに `full_index`、`status`、`query` ツールを公開し、コードベースの索引化と検索を可能にします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
中文
🚀 概要
Semantic Context MCP Server は、ベクトルデータベースを活用して、コードベース全体のインデックス作成とセマンティック検索を効率的に行う Model Context Protocol(MCP)サーバーです。
コードを関数やクラスなどの構造ブロックにインテリジェントに解析し、ベクトル埋め込みに変換して、ローカルのベクトルデータベースに保存します。これにより、キーワードの照合だけでなく、自然言語のクエリを使って意味的に関連するコードスニペットを見つけられます。
サーバーはバックグラウンドで実行され、ファイルの変更を自動的に追跡してインデックスを段階的に更新するため、コードのコンテキストを常に最新の状態に保てます。
✨ 機能
- インクリメンタルインデックス作成:Merkle Tree を使用してファイルの変更を検出し、変更されたファイルのみを再インデックス化するため、非常に効率的です。
- マルチ言語対応:AST(抽象構文木)解析を使用して、Python、Java、C++、JavaScript、TypeScript、Go など、幅広い言語に対応します。
- セマンティックコード検索:キーワードだけでなく、意味やコンテキストに基づいてコードを検索できます。
- バックグラウンド自動化:最初に全件のインデックスを自動作成し、その後は5分ごとにインクリメンタル更新を実行します。
- シンプルな MCP インターフェース:他のシステムと連携するための使いやすいツール(
full_index、status、query)を提供します。 - ローカル優先:すべてのデータ(ベクトルデータベース、インデックスのメタデータ)は、ユーザーのホームディレクトリ(
~/.chromadb)にローカル保存されます。
🛠️ 仕組み
- 変更の検出:ファイルの内容のハッシュから Merkle Tree を構築し、追加、変更、削除されたファイルをすばやく特定します。
- コードの解析:変更されたファイルを AST パーサーで解析し、意味のあるコードブロック(関数、クラスなど)を抽出します。
- 埋め込みの生成:抽出したコードブロックを、埋め込みモデル(Jina、OpenAI など)を使用して数値表現(ベクトル埋め込み)に変換します。
- ベクトル DB への保存:これらの埋め込みと関連するメタデータを、ローカルの ChromaDB インスタンスに保存します。
- クエリ:クエリを受信すると、埋め込みに変換し、ベクトルデータベース内で最も類似したコードブロックを検索します。
📂 プロジェクト構成
.
├── vector_search/
│ ├── ast_parser.py # Smart AST parser for multiple languages
│ ├── code_change_tracker.py # Detects file changes using a Merkle Tree
│ ├── code_indexer.py # Main logic for incremental and full indexing
│ ├── fast_mcp_server.py # The MCP server exposing the tools
│ └── vector_db.py # Vector database manager (ChromaDB wrapper)
├── LICENSE
├── README_zh.md
└── README.md
⚙️ 前提条件
- Python 3.8+
- 埋め込みを生成するための OpenAI 互換 API。次の環境変数を設定する必要があります:
export OPENAI_API_KEY="your_api_key" export OPENAI_BASE_URL="your_api_base_url" export OPENAI_MODEL_NAME="your_embedding_model_name"
📦 インストール
- リポジトリをクローンします:
git clone https://github.com/zishengwu/semantic-context-mcp cd semantic-context-mcp
🚀 使い方
- IDE で
MCP JSON fileを設定します:
{
"mcpServers": {
"Semantic Context MCP Server": {
"command": "fastmcp",
"args": [
"run",
"your_code_base/semantic-context-mcp/vector_search/fast_mcp_server.py:mcp"
],
"env": {
"OPENAI_API_KEY": "your_api_key",
"OPENAI_BASE_URL": "your_api_base_url",
"OPENAI_MODEL_NAME": "your_embedding_model_name"
}
}
}
}
ぜひお試しください!👏
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。