プロジェクト概要
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以上の環境が必要です。
-
Python環境をセットアップします(例: venvを使用)。
-
以下のコマンドを実行して、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 <ポート番号>' のように指定します。
基本使用方法
- 上記の「サーバー設定」に従って、お使いのMCPクライアントに設定を記述します。
- MCPクライアントを起動すると、設定された'tiny-chat-mcp'サーバープロセスが自動的に起動されます。
- サーバーは'DB_CONFIG'で指定された設定ファイルを読み込み、Qdrantデータベースに接続します。
- データベース内の利用可能なコレクション('collection_descriptions'コレクションに登録され、MCP公開が許可されているもの)が自動的にMCPツールとしてLLMクライアントに登録されます(例: 'search-default', 'search-my_collection')。
- LLMクライアントは、これらのツールを使用してデータベース検索を実行できるようになります。LLMとのチャット中に、LLMが適切な判断で検索ツールを呼び出し、その結果をコンテキストとして回答生成に利用します。
注意:
- 'DB_CONFIG'で指定されたデータベースファイルまたはQdrantサーバー(リモートの場合)は、'tiny-chat-mcp'が実行される環境からアクセス可能である必要があります。
- 初回起動時や設定変更時には、データベースの初期化やモデルのダウンロードに時間がかかる場合があります。
信息
分类
AI与计算