プロジェクト概要

Tiny Chatは、QdrantをバックエンドとしたRAG(検索拡張生成)アプリケーションです。このアプリケーションは、ブラウザベースのWeb UI、OpenAI互換のChat API、そしてLLMクライアントと連携するためのMCP(Model Context Protocol)サーバーなど、複数のインターフェースを提供します。

ここに記述するMCPサーバーは、そのコンポーネントの一つであり、LLMが外部の知識源(Qdrantデータベースに格納された文書)にアクセスするための機能を提供します。

主要な機能

  • データベース検索のツール化: Qdrantデータベースに登録された各コレクションに対し、LLMクライアントが呼び出し可能な検索ツールを動的に登録します。
  • RAG連携: LLMが検索ツールを呼び出すことで、関連性の高い文書チャンクを取得し、生成応答のコンテキストとして活用できます。
  • 設定連携: データベース接続情報(ファイルパス、サーバーURL、APIキー)や検索パラメータ(top_k、スコアしきい値)は、設定ファイルを通じてMCPサーバーとその他のコンポーネント間で共有されます。
  • プロトコルサポート: MCPクライアントとの通信には、標準入出力(stdio)およびSSE(Server-Sent Events)転送プロトコルをサポートします。

インストール手順

Python 3.10以上の環境が必要です。

  1. Python環境をセットアップします(例: venvを使用)。

  2. 以下のコマンドを実行して、Tiny Chatパッケージをビルドしてインストールします。

    # build と install を実行
    pip install build
    python -m build
    pip install dist/*.whl

    (開発目的の場合は、リポジトリのルートディレクトリで 'pip install -r requirements.txt' を実行することでも必要な依存関係をインストールできます。)

サーバー設定 (MCPクライアント用)

MCPサーバーは通常、LLMクライアント(例: Claude Desktop, Visual Studio Codeの対応拡張機能など)から起動および管理されます。MCPクライアントの設定ファイル(通常はJSON形式)に、本MCPサーバーの起動方法と設定を記述します。

以下は、一般的なMCPクライアントの設定例です。

{
  "mcpServers": {
    "tiny-chat-search": { // LLMクライアント内で表示される任意のサーバー名
      "command": "/path/to/your/python_env/bin/tiny-chat-mcp", // インストールされた tiny-chat-mcp コマンドへの絶対パスを指定します
      "env": { // 環境変数を通じてデータベース設定ファイルを指定します
        "DB_CONFIG": "/path/to/your/tiny_chat/database_config.json" // サーバーが使用するデータベース設定ファイル(データベースの場所、設定など)への絶対パスを指定します
      },
      "args": ["--mode", "stdio"] // MCPクライアントとの通信モードを指定します。通常は stdio です。リモート接続の場合は --mode remote --host 0.0.0.0 --port 8000 のように指定します。
    }
  }
}
  • 'command': インストールされた'tiny-chat-mcp'実行可能ファイルへの絶対パスを指定してください。Python仮想環境を使用している場合は、その環境内のパスになります。
  • 'env.DB_CONFIG': MCPサーバーが使用するデータベース設定ファイル('database_config.json')への絶対パスを指定してください。このファイルには、Qdrantデータベースの接続情報(ローカルファイルパスまたはリモートURL/APIキー)などが記述されます。このファイルは別途作成・編集が必要です(Web UIの「設定」タブで生成・編集可能です)。
  • 'args': '--mode stdio' を指定すると、MCPクライアントは標準入出力を通じてサーバーと通信します。これはローカル実行の標準的な方法です。リモートモードを使用する場合は '--mode remote --host <ホスト名> --port <ポート番号>' のように指定します。

基本使用方法

  1. 上記の「サーバー設定」に従って、お使いのMCPクライアントに設定を記述します。
  2. MCPクライアントを起動すると、設定された'tiny-chat-mcp'サーバープロセスが自動的に起動されます。
  3. サーバーは'DB_CONFIG'で指定された設定ファイルを読み込み、Qdrantデータベースに接続します。
  4. データベース内の利用可能なコレクション('collection_descriptions'コレクションに登録され、MCP公開が許可されているもの)が自動的にMCPツールとしてLLMクライアントに登録されます(例: 'search-default', 'search-my_collection')。
  5. LLMクライアントは、これらのツールを使用してデータベース検索を実行できるようになります。LLMとのチャット中に、LLMが適切な判断で検索ツールを呼び出し、その結果をコンテキストとして回答生成に利用します。

注意:

  • 'DB_CONFIG'で指定されたデータベースファイルまたはQdrantサーバー(リモートの場合)は、'tiny-chat-mcp'が実行される環境からアクセス可能である必要があります。
  • 初回起動時や設定変更時には、データベースの初期化やモデルのダウンロードに時間がかかる場合があります。

信息

分类

AI与计算