MCPサーバーの埋め込み
txtai を搭載したモデル コンテキスト プロトコル (MCP) サーバー実装。標準化されたインターフェースを通じて、セマンティック検索、ナレッジ グラフ機能、AI 駆動型テキスト処理を提供します。
txtaiのパワー:オールインワン埋め込みデータベース
このプロジェクトでは、セマンティック検索、ナレッジグラフ構築、言語モデルワークフローを活用する RAG 用のオールインワン埋め込みデータベースであるtxtaiを活用します。txtai にはいくつかの重要な利点があります。
- 統合ベクトルデータベース:ベクトルインデックス、グラフネットワーク、リレーショナルデータベースを単一のプラットフォームに統合します。
- セマンティック検索: キーワードだけでなく意味に基づいて情報を検索します
- ナレッジグラフ統合: データからナレッジグラフを自動的に構築し、クエリを実行します。
- ポータブルナレッジベース: ナレッジベース全体を圧縮アーカイブ (.tar.gz) として保存し、簡単に共有したりロードしたりできます。
- 拡張可能なパイプラインシステム: 統合された API を通じてテキスト、ドキュメント、オーディオ、画像、ビデオを処理します。
- ローカルファーストアーキテクチャ: 外部サービスにデータを送信せずにすべてをローカルで実行します
仕組み
このプロジェクトには、ナレッジベース構築ツールとMCPサーバーが含まれています。ナレッジベース構築ツールは、ナレッジベースを作成および管理するためのコマンドラインインターフェースです。MCPサーバーは、ナレッジベースにアクセスするための標準化されたインターフェースを提供します。
ナレッジベース構築にナレッジベースビルダーツールを使用する必要はありません。txtaiのプログラミングインターフェースを使えば、Pythonスクリプトを書いたり、Jupyter Notebookを使ったりすることで、いつでもナレッジベースを構築できます。txtaiで構築されたナレッジベースであれば、MCPサーバーに読み込むことができます。さらに、ナレッジベースはファイルシステム上のフォルダやエクスポートされた.tar.gzファイルでも構いません。MCPサーバーに渡すだけで読み込まれます。
1. kb_builderでナレッジベースを構築する
kb_builder
モジュールは、ナレッジベースを作成および管理するためのコマンドライン インターフェイスを提供します。
- さまざまなソース(ファイル、ディレクトリ、JSON)からのドキュメントを処理する
- テキストを抽出して埋め込みを作成する
- ナレッジグラフを自動的に構築
- ポータブルなナレッジベースをエクスポートする
ただし、機能が制限される可能性があり、現在は利便性のためにのみ提供されていることに注意してください。
2. MCPサーバーを起動する
MCP サーバーは、ナレッジ ベースにアクセスするための標準化されたインターフェイスを提供します。
- セマンティック検索機能
- ナレッジグラフのクエリと視覚化
- テキスト処理パイプライン(要約、抽出など)
- モデルコンテキストプロトコルに完全準拠
インストール
推奨: Python 3.10 以降で uv を使用する
最適なエクスペリエンスを得るには、Python 3.10以降でuvを使用することをお勧めします。これにより、依存関係の管理が改善され、動作の一貫性が確保されます。
注:バージョン4.50.0以降で表示される
transformers.agents.tools
に関する非推奨警告を回避するため、Transformersはバージョン4.49.0に固定されています。これより新しいバージョンのTransformersをご利用の場合、これらの警告が表示される場合がありますが、機能には影響しません。
condaの使用
ソースから
uv の使用(より高速な代替手段)
uvxの使用(インストール不要)
uvx を使用すると、パッケージをインストールせずに PyPI から直接実行できます。
コマンドラインの使用
ナレッジベースの構築
PyPI からインストールされたコマンドライン ツール、Python モジュールを直接使用することも、便利なシェル スクリプトを使用することもできます。
PyPIインストールコマンドの使用
uvxの使用(インストール不要)
Pythonモジュールの使用
便利なスクリプトの使用
リポジトリには、ナレッジベースの構築と検索を容易にする便利なラッパー スクリプトが含まれています。
詳細なオプションについては、 ./scripts/kb_build.sh --help
または./scripts/kb_search.sh --help
を実行してください。
MCPサーバーの起動
PyPI��ンストールコマンドの使用
uvxの使用(インストール不要)
Pythonモジュールの使用
MCP サーバーの構成
MCPサーバーは、YAMLファイルではなく、環境変数またはコマンドライン引数を使用して設定されます。YAMLファイルは、ナレッジベースの構築時にtxtaiコンポーネントを設定するためにのみ使用されます。
MCP サーバーを構成する方法は次のとおりです。
一般的な構成オプション:
--embeddings
: ナレッジベースへのパス(必須)--host
: バインドするホストアドレス (デフォルト: localhost)--port
: リッスンするポート (デフォルト: 8000)--transport
: 使用するトランスポート。'sse' または 'stdio' のいずれか (デフォルト: stdio)--enable-causal-boost
: 関連性スコアリングを強化するために因果ブースト機能を有効にする--causal-config
: カスタム causal boost 構成 YAML ファイルへのパス
MCP サーバーを使用するための LLM クライアントの構成
LLMクライアントをMCPサーバーを使用するように設定するには、MCP設定ファイルを作成する必要があります。以下にmcp_config.json
例を示します。
サーバーを直接使用する
仮想Python環境を使用してサーバーをインストールする場合は、次の構成を使用できます。仮想環境を使用すると、ClaudeなどのMCPホストはサーバーに接続できないことに注意してください。たとえば、「pip install」または「uv pip install」を実行した仮想環境のPython実行ファイルへの絶対パスを使用する必要があります。
システムデフォルトのPythonを使用する
システムのデフォルトの Python を使用する場合は、次の構成を使用できます。
あるいは、uvx を使用している場合は、"brew install uvx" などで uvx がシステムにインストールされているか、または uvx をインストールして次のようにグローバルにアクセスできるようにしていると仮定します。
これにより、ユーザー固有のインストールからシステム全体の場所へのシンボリックリンクが作成されます。Claude DesktopなどのmacOSアプリケーションの場合、launchd設定ファイルを作成または編集することで、システム全体のPATHを変更できます。
このコンテンツを追加します:
次にそれをロードします:
ただし、これを有効にするにはコンピューターを再起動する必要があります。
この設定ファイルをLLMクライアントがアクセスできる場所に配置し、クライアントがそれを使用するように設定します。具体的な設定手順は、LLMクライアントによって異なります。
高度なナレッジベースの構成
txtai でナレッジベースを構築するには、埋め込みプロセスのさまざまな側面を制御する YAML 設定ファイルが必要です。この設定は、MCP サーバー自体ではなく、 kb_builder
ツールによって使用されます。
セグメンテーション/チャンク化戦略、埋め込みモデル、スコアリング方法を調整したり、グラフ構築、因果ブースティング、ハイブリッド検索の重みなどを設定したりする必要があるかもしれません。
幸いなことに、txtaiはコーディングを必要としない強力なYAML設定システムを提供しています。以下は、ナレッジベース構築のための包括的な設定例です。
設定例
src/kb_builder/configs
ディレクトリには、さまざまなユースケースとストレージ バックエンドの構成テンプレートが含まれています。
ストレージとバックエンドの構成
memory.yml
: メモリ内ベクター(開発には最速、永続性なし)sqlite-faiss.yml
: コンテンツ用の SQLite + ベクトル用の FAISS (ローカル ファイルベースの永続化)postgres-pgvector.yml
: PostgreSQL + pgvector (完全な永続性を備えた本番環境対応)
ドメイン固有の構成
base.yml
: 基本設定テンプレートcode_repositories.yml
: コードリポジトリ用に最適化data_science.yml
: データサイエンスドキュメント用に構成されていますgeneral_knowledge.yml
: 汎用ナレッジベースresearch_papers.yml
: 学術論文向けに最適化technical_docs.yml
: 技術ドキュメント用に構成されています
これらを独自の構成の開始点として使用できます。
高度な機能
ナレッジグラフ機能
MCP サーバーは、txtai の組み込みグラフ機能を活用して、強力なナレッジ グラフ機能を提供します。
- 自動グラフ構築: ドキュメントからナレッジグラフを自動的に構築します
- グラフトラバーサル: 関連する概念やドキュメントをナビゲートします
- パス検索:さまざまな情報間のつながりを発見する
- コミュニティ検出: 関連情報のクラスターを識別する
因果ブースティングメカニズム
MCP サーバーには、因果関係を識別して優先順位を付けることで検索の関連性を高める、洗練された因果ブースティング メカニズムが含まれています。
- パターン認識: クエリとドキュメントの両方で因果関係のある言語パターンを検出します
- 多言語サポート: 検出されたクエリ言語に基づいて適切なパターンを自動的に適用します
- 設定可能なブースト乗数: さまざまなタイプの因果マッチにカスタマイズ可能なブースト係数が適用されます
- 関連性の向上:因果関係を説明する結果が検索結果で優先されます
このメカニズムは、概念間の関係性を説明するコンテンツを表示することで、「なぜ」や「どのように」といった質問への回答を大幅に改善します。因果ブースティングの設定はYAMLファイルを通じて高度にカスタマイズ可能で、様々な分野や言語への適応が可能です。
ライセンス
MITライセンス - 詳細はLICENSEファイルを参照
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
MCPサーバーは、txtaiの「オールインワン」埋め込みデータベースのセマンティック/グラフベースの検索をサポートするために、ポータブルでローカル、簡単かつ便利であることを目指しています。tar.gz形式のtxtai埋め込みデータベースはすべてロードできます。
- txtaiのパワー:オールインワン埋め込みデータベース
- 仕組み
- インストール
- コマンドラインの使用
- MCP サーバーの構成
- MCP サーバーを使用するための LLM クライアントの構成
- 高度なナレッジベースの構成
- 高度な機能
- ライセンス
Related Resources
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol (MCP) server that enables semantic search and retrieval of documentation using a vector database (Qdrant). This server allows you to add documentation from URLs or local files and then search through them using natural language queries.Last updated -1474JavaScriptApache 2.0
- -securityAlicense-qualitytxtai is an all-in-one embeddings database for semantic search, LLM orchestration and language model workflows. All functionality can be served via it's API and the API supports MCP. Docs: https://neuml.github.io/txtai/api/mcp/Last updated -11,070PythonApache 2.0
- -securityAlicense-qualityAn MCP server implementing memory solutions for data-rich applications using HippoRAG for efficient knowledge graph capabilities, enabling search across multiple sources including uploaded files.Last updated -PythonMIT License
- -securityFlicense-qualityAn MCP server that enables interaction with Markdown knowledge bases, allowing users to search and retrieve content by tags, text, URL, or date range from their local markdown files.Last updated -3Python