mcpField
S
Semantic Context Mcp

Semantic Context Mcp

ローカル
github.com/zishengwuメモリ・ナレッジ760 週間前に更新

Semantic Context Mcp について

Semantic Context Mcpは、コードをローカルのベクトルデータベースに索引化し、開発者向けに意味検索を提供します。ファイル変更を増分追跡し、MCP経由で索引作成や検索を実行できます。

主な機能

  1. 01複数言語のAST解析
  2. 02Merkle Treeによる変更検出
  3. 03バックグラウンドでの増分索引化
  4. 04自然言語によるコードの意味検索
  5. 05ローカルのChromaDB保存

活用シーン

  1. 01機能の説明からコードを検索
  2. 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)にローカル保存されます。

🛠️ 仕組み

  1. 変更の検出:ファイルの内容のハッシュから Merkle Tree を構築し、追加、変更、削除されたファイルをすばやく特定します。
  2. コードの解析:変更されたファイルを AST パーサーで解析し、意味のあるコードブロック(関数、クラスなど)を抽出します。
  3. 埋め込みの生成:抽出したコードブロックを、埋め込みモデル(Jina、OpenAI など)を使用して数値表現(ベクトル埋め込み)に変換します。
  4. ベクトル DB への保存:これらの埋め込みと関連するメタデータを、ローカルの ChromaDB インスタンスに保存します。
  5. クエリ:クエリを受信すると、埋め込みに変換し、ベクトルデータベース内で最も類似したコードブロックを検索します。

📂 プロジェクト構成

.
├── 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"
    

📦 インストール

  1. リポジトリをクローンします:
    git clone https://github.com/zishengwu/semantic-context-mcp
    cd semantic-context-mcp
    

🚀 使い方

  1. 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"
      }
    }
  }
}

ぜひお試しください!👏

コメント

MCP は初めてですか?

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

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