local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Uses the Hugging Face Inference API to generate embeddings for the knowledge base content, with optional model selection through environment variables.
Uses LangChain's MarkdownTextSplitter to split file content into chunks for the knowledge base.
ナレッジベースMCPサーバー
この MCP サーバーは、さまざまなナレッジ ベースからコンテンツを一覧表示および取得するためのツールを提供します。
セットアップ手順
これらの手順では、システムに Node.js と npm がインストールされていることを前提としています。
前提条件
- リポジトリをクローンします。Copy
- 依存関係をインストールします:Copy
- 環境変数を設定します。
- サーバーでは、
HUGGINGFACE_API_KEY
環境変数を設定する必要があります。これは、知識ベースコンテンツの埋め込みを生成するために使用されるHugging Face推論APIのAPIキーです。Hugging Faceのウェブサイト( https://huggingface.co/ )から無料のAPIキーを入手できます。 - サーバーでは、
KNOWLEDGE_BASES_ROOT_DIR
環境変数を設定する必要があります。この変数は、ナレッジベースのサブディレクトリが配置されているディレクトリを指定します。この変数を設定しない場合、デフォルトで$HOME/knowledge_bases
が使用されます。ここで、$HOME
は現在のユーザーのホームディレクトリです。 - サーバーは、FAISSインデックスへのパスを指定するための
FAISS_INDEX_PATH
環境変数をサポートしています。設定されていない場合は、デフォルトで$HOME/knowledge_bases/.faiss
が使用されます。 - サーバーは、埋め込み生成に使用するHugging Faceモデルを指定するための
HUGGINGFACE_MODEL_NAME
環境変数をサポートしています。設定されていない場合は、デフォルトでsentence-transformers/all-MiniLM-L6-v2
が使用されます。 - これらの環境変数は、
.bashrc
または.zshrc
ファイルで設定することも、MCP 設定で直接設定することもできます。
- サーバーでは、
- サーバーを構築します。Copy
- サーバーを MCP 設定に追加します。
/home/jean/.vscode-server/data/User/globalStorage/saoudrizwan.claude-dev/settings/
にあるcline_mcp_settings.json
ファイルを編集します。mcpServers
オブジェクトに次の構成を追加します。
Copy/path/to/knowledge-base-mcp-server
サーバー ディレクトリへの実際のパスに置き換えます。/path/to/knowledge_bases
ナレッジ ベース ディレクトリへの実際のパスに置き換えます。
- ナレッジ ベース ディレクトリを作成します。
- 各ナレッジ ベース (例:
company
、it_support
、onboarding
) のKNOWLEDGE_BASES_ROOT_DIR
内にサブディレクトリを作成します。 - これらのサブディレクトリ内に、ナレッジ ベースのコンテンツを含むテキスト ファイル (例:
.txt
、.md
) を配置します。
- 各ナレッジ ベース (例:
- サーバーは、指定されたナレッジ ベースのサブディレクトリ内のすべてのテキスト ファイル (例:
.txt
、.md
) を再帰的に読み取ります。 - サーバーは隠しファイルとディレクトリ (
.
で始まるもの) をスキップします。 - サーバーは各ファイルについてSHA256ハッシュを計算し、隠しサブディレクトリ
.index
内の同名のファイルに保存します。このハッシュは、前回のインデックス作成以降にファイルが変更されたかどうかを判断するために使用されます。 - ファイルの内容は、
langchain/text_splitter
のMarkdownTextSplitter
を使用してチャンクに分割されます。 - 各チャンクの内容は、類似性検索に使用される FAISS インデックスに追加されます。
- FAISSインデックスは、サーバーの起動時に自動的に初期化されます。ナレッジベースファイルの変更をチェックし、それに応じてインデックスを更新します。
使用法
サーバーは 2 つのツールを公開します。
list_knowledge_bases
: 利用可能なナレッジベースを一覧表示します。- クエリに基づいてナレッジベースから類似のチャンクを取得し
retrieve_knowledge
。オプションでナレッジベースを指定した場合は、そのナレッジベースのみが検索されます。指定しない場合は、利用可能なすべてのナレッジベースが対象となります。デフォルトでは、スコアがしきい値2未満のドキュメントチャンクが最大10個返されます。thresholdthreshold
を使用して、異なるしきい値を指定することもできます。
これらのツールは、MCP インターフェースを通じて使用できます。
retrieve_knowledge
ツールは、FAISSインデックスを使用してセマンティック検索を実行します。インデックスは、サーバーの起動時またはナレッジベース内のファイルが変更されたときに自動的に更新されます。
retrieve_knowledge
ツールの出力は、次の構造を持つマークダウン形式の文字列です。
各結果には、最も類似したチャンクのコンテンツ、ソース ファイル、および類似度スコアが含まれます。
You must be authenticated.
セマンティック検索機能を使用して、さまざまなナレッジ ベースからコンテンツを一覧表示および取得するためのツールを提供します。