mcpField
K
Knowledge MCP Server

Knowledge MCP Server

ローカル
github.com/scitara-ctoメモリ・ナレッジ075 週間前に更新

Knowledge MCP Server について

Knowledge MCP Serverは、ベクトルデータベースを使ってナレッジベースを管理・検索するMCPサーバーです。文書の取り込みに加え、ユーザー単位でナレッジソースへのアクセスや共有を制御できます。

主な機能

  1. 01文書の分割とベクトル化
  2. 02ベクトルによる意味検索
  3. 03ナレッジソースのアクセス・共有管理
  4. 04ナレッジツールの動的登録
  5. 05OneDriveファイルの取り込み

活用シーン

  1. 01OneDrive文書をナレッジソースに取り込む
  2. 02ナレッジソースを意味検索する
  3. 03ナレッジソース内の文書を更新する
  4. 04ナレッジソースを他のユーザーと共有する

MCP 対応

MCPクライアントに、ナレッジの追加、検索、利用、更新のツールを提供します。ツール登録と共有はdynamic-mcp-serverを通じて管理されます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

ナレッジ MCP サーバー

ベクトルデータベースを通じてナレッジベースを管理、検索するための Model Context Protocol(MCP)サーバーです。dynamic-mcp-server (DMS) フレームワークを基盤としています。

概要

Knowledge MCP Server は、dynamic-mcp-server(DMS)をコアとして活用し、安全でユーザーを認識し、動的に拡張できる AI ツールサーバーの堅牢なプラットフォームを提供します。ユーザー、ツール、データベースの管理はすべて DMS が担い、プロジェクト固有のロジック(ナレッジソースや Microsoft 認証など)向けに拡張ポイントを備えています。

アーキテクチャ

  • コア統合: 認証、ユーザー管理、ツール登録、MongoDB/Mongoose 接続管理のすべてに DMS を使用します。
  • データベース接続の一元化: すべてのモデルとリポジトリで、DMS が提供する共有 MongoDB 接続を使用します。
  • ユーザーとツールの管理: ユーザーおよびツールのモデルは DMS に準拠しており、サブクラス化によってプロジェクト固有の拡張を行います(AppUserRepository を参照)。
  • カスタム HTTP ルート: すべてのカスタムルート(OAuth、ヘルスチェックなど)は、DMS の API(addAuthHttpRoute など)を使用して、DMS がエクスポートする Express サーバーに登録します。
  • 拡張性: ユーザーモデルやリポジトリの拡張、新しいツールやルートの追加は、サブクラス化するか DMS の拡張ポイントを使用して行います。

機能

  • 埋め込みの保存と検索に対応するベクトルデータベース統合
  • コンテンツ取り込み用のドキュメント処理パイプライン
  • テキストのチャンク分割と埋め込みの生成
  • 動的なツールの登録と管理(DMS API 経由)
  • ナレッジソースへの安全なアクセス制御と共有
  • ウェブサイトのクロールとコンテンツ抽出に対応
  • メタデータとベクトル保存のための MongoDB 統合

前提条件

  • Node.js 18 以降
  • MongoDB Atlas M10 以上のインスタンス(ベクトル検索機能に必要)
  • OpenAI API キー

インストール

  1. リポジトリをクローンします。

    git clone https://github.com/your-org/knowledge-mcp-server.git
    cd knowledge-mcp-server
    
  2. 依存関係をインストールします。

    npm install
    

設定

プロジェクトのルートに .env ファイルを作成し、次の変数を設定します。

# Server Configuration
PORT=4001
HOST=localhost

# MongoDB Configuration
MONGODB_URI=your_mongodb_connection_string

# OpenAI Configuration
OPENAI_API_KEY=your_openai_api_key

# Admin Bootstrapping (required by DMS)
[email protected]

サーバーの起動

開発モードでサーバーを起動します。

npm run dev

または、本番モードで起動します。

npm start

注意: サーバーは DMS 経由で起動し、カスタムルートはすべて DMS がエクスポートする Express サーバーに登録されます。ローカルで Express サーバーを起動する処理はありません。

ツールの登録と共有

  • ツールの登録と共有はすべて DMS API(addTool、共有エンドポイントなど)で管理します。
  • 従来のツール登録ロジックは削除されています。
  • 動的な拡張に対応するため、必要に応じてユーザー/セッションごとにツールを登録します。

ユーザーとアクセスモデル

  • ナレッジソースへのユーザーアクセスは、ユーザーレコードの applicationAuthorization.knowledge.owned および applicationAuthorization.knowledge.shared フィールドで管理します。
  • 共有は DMS の共有モデルと API を通じて処理され、「読み取り」および「書き込み」のアクセスレベルに対応します。
  • ユーザーリポジトリは AppUserRepository として拡張し、プロジェクト固有のロジック(カスタムの共有/アクセスメソッドなど)を実装します。

ナレッジソースの管理

現在、サーバーは次の種類のナレッジソースに対応しています。

  1. Microsoft OneDrive
    • OneDrive のファイルとフォルダーを取り込みます。
    • さまざまなドキュメント形式(PDF、DOCX など)に対応します。
    • Microsoft Graph API の統合が必要です。

注意: ウェブサイトのナレッジソース(ウェブクロール、HTML 抽出など)にはまだ対応していませんが、今後のリリースで対応を予定しています。

サーバーの拡張

  • ユーザーモデルの拡張: AppUserRepository をサブクラス化して、プロジェクト固有のユーザーロジックやフィールドを追加します。
  • カスタム HTTP ルート: DMS API(addAuthHttpRoute など)を使用して新しいルートを登録します。
  • ツールの登録: DMS の addTool および関連 API を使用して、新しいツールを追加します。
  • モデル/リポジトリの拡張: カスタムロジックには、DMS リポジトリのサブクラス化またはラップを推奨します。

利用可能なツール

サーバーでは、次のツールを提供します。

1. ナレッジの追加
  • ツール名: add-knowledge
  • 目的: 新しいドキュメントをナレッジソースに取り込み、処理します
  • 機能: ドキュメントのソース(URL、テキスト、ファイルのアップロード)を受け取り、コンテンツをスクレイピング/処理し、チャンクに分割してベクトルデータベースに埋め込み、ナレッジソースに関連付けます
2. 検索
  • ツール名: search
  • 目的: 特定のナレッジソースを検索し、関連情報を取得します
  • 機能: ベクトルデータベースを対象にセマンティック検索を行い、メタデータ付きの関連ドキュメント断片を返します。フィルタリング/ランキングにも対応しています
3. ナレッジソースの使用
  • ツール名: use-knowledge-source
  • 目的: 特定のナレッジソースとやり取りするための新しいツールを作成します
  • 機能: 新しいツール定義を生成し、パラメーター/制約を設定して、動的なツール登録を可能にします
4. ナレッジソースの更新
  • ツール名: refresh-knowledge-source
  • 目的: コンテンツを再取り込みして、ナレッジソースを更新します
  • 機能: ステータスを更新し、ベクトルストアをクリアして、ソースを再処理し、ステータスを更新します

アクセス制御と共有

  • 所有権: ユーザーは自身が作成したナレッジソースを所有し、完全なアクセス権を持ちます。
  • 共有: ナレッジソースは他のユーザーと共有でき(「読み取り」または「書き込み」アクセス)、applicationAuthorization.knowledge.shared で追跡されます。

依存関係

このプロジェクトでは、以下の主要な依存関係を使用しています。

{
  "@llm-tools/embedjs": "latest",
  "@llm-tools/embedjs-mongodb": "latest",
  "@llm-tools/embedjs-openai": "latest",
  "@llm-tools/embedjs-loader-web": "latest",
  "mongodb": "latest",
  "dynamic-mcp-server": "github:scitara-cto/dynamic-mcp-server"
}

テスト

  • テストスイートを実行します:
    npm test
    
  • ウォッチモードでテストを実行します:
    npm run test:watch
    
  • 型チェック:
    npm run typecheck
    
  • モック: DMS ドキュメントで推奨されているモック戦略とテストパターンを使用してください。テストでは拡張リポジトリ(例:AppUserRepository)を使用してください。

移行状況

  • ドキュメントを除き、すべての移行およびリファクタリングの手順が完了しています。
  • すべてのテストとビルドが成功します。
  • コードベースは新しい DMS アーキテクチャとリポジトリモデルに完全に準拠しています。

ライセンス

[Your License Here]

コメント

MCP は初めてですか?

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

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