MCP Lucene サーバー
説明
MCP Luceneサーバーは、Apache Luceneを用いた効率的な検索・取得機能を提供するために設計された、モデルコンテキストプロトコル(MCP)のJavaベースの実装です。このサーバーでは、Luceneの強力なインデックス作成機能と検索機能を活用し、ドキュメントの管理とクエリを実行できます。Spring Bootを使用して構築されているため、セットアップとデプロイが簡単です。
特徴
**MCP コンプライアンス:**コア モデル コンテキスト プロトコルを実装します。
**Lucene 搭載:**フルテキスト検索とインデックス作成に Apache Lucene を活用します。
**RESTful API:**サーバーと対話するための RESTful API を提供します。
ドキュメント管理:
Upsert: Lucene インデックス内のドキュメントを追加または更新します。
削除: Lucene インデックスからドキュメントを削除します。
**リスト:**インデックスからドキュメントのリストを取得します。
クエリ:
Lucene クエリ構文を使用した複雑なクエリをサポートします。
フィルタリング: ドキュメントのメタデータに基づいてクエリをフィルタリングします。
**ステータス:**サーバーのステータスを確認します。
Spring Boot: Spring Boot を使用して構築されているため、セットアップとデプロイメントが簡単です。
Docker 化: Docker を使用してアプリケーションをコンテナー化する手順が含まれています。
目次
はじめる
前提条件
Java: Java 11 以上。
Maven: Maven 3.6.0 以上。
Docker: Docker イメージを使用する予定の場合は、 Docker をインストールします。
インストール
リポジトリをクローンします。
git clone [https://github.com/your-username/mcp-lucene-server.git](https://github.com/your-username/mcp-lucene-server.git) cd mcp-lucene-server(
your-username
を GitHub ユーザー名に置き換えてください)Maven を使用してプロジェクトをビルドします。
mvn clean install
サーバーの実行
Dockerなし
Spring Boot アプリケーションを実行します。
java -jar target/mcp-lucene-server-0.0.1-SNAPSHOT.jar(
.jar
ファイルの正確な名前は、プロジェクトのバージョンによって若干異なる場合があります。)デフォルトでは、サーバーはポート
8080
で起動します。
Dockerを使用
**Docker がインストールされていることを確認します。**公式 Docker ウェブサイトの指示に従ってください: https://docs.docker.com/get-docker/
**Docker イメージをビルドします。**ターミナルでプロジェクトのルート ディレクトリに移動し、次のコマンドを実行します。
docker build -t mcp-lucene-server .Docker コンテナを実行します。
docker run -p 8080:8080 mcp-lucene-serverこれにより、ホスト マシン上のポート
8080
コンテナー内のポート8080
にマップされます。
使用法
APIエンドポイント
サーバーは次の API エンドポイントを提供します。
GET /mcp/v1/status
サーバーのステータスを返します。
POST /mcp/v1/upsert
1 つ以上のドキュメントをアップサート (挿入または更新) します。
リクエスト本文:
{ "documents": [ { "id": "doc1", "text": "This is the text of document 1.", "metadata": { "category": "example", "language": "english" } }, { "id": "doc2", "text": "This is document 2's text.", "metadata": { "category": "sample", "language": "spanish" } } ] }
POST /mcp/v1/query
Lucene インデックスを照会します。
リクエスト本文:
{ "queries": [ { "query": "document", "top_k": 10, "filter": { "language": "english" } }, { "query": "text search", "filter": { "category": "example" } } ] }query
: Lucene クエリ文字列。top_k
: (オプション) 返される結果の最大数 (デフォルト: 10)。filter
: (オプション) フィルタリングするメタデータ フィールドと値のマップ。
POST /mcp/v1/delete
Lucene インデックスからドキュメントを削除します。
リクエスト本文:
{ "ids": ["doc1", "doc2"] }
GET /mcp/v1/list
Lucene インデックスからドキュメントを一覧表示します。
リクエスト本文:
{ "ids": ["doc1", "doc2"] }
例
サーバーステータスを取得します:
ドキュメントのアップサート:
クエリドキュメント:
ドキュメントを削除します:
ドキュメントの一覧:
構成
サーバーはSpring Bootのアプリケーションプロパティを使用して設定できます。主なプロパティは次のとおりです。
server.port
: サーバーがリッスンするポート (デフォルト: 8080)。lucene.index.path
: Lucene インデックスディレクトリへのパス。インデックスデータが保存される場所です。設定されていない場合はデフォルトの場所が使用されます。永続的な保存場所に設定することを強くお勧めします。
これらのプロパティはsrc/main/resources
ディレクトリのapplication.properties
またはapplication.yml
ファイルで設定するか、環境変数を使用して設定できます。
例の
server.port=8080 lucene.index.path=/path/to/lucene/index
ライセンス
このプロジェクトは、Apache 2.0 ライセンスに基づいてライセンスされます。
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-lucene-server
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that provides LLMs access to other LLMsLast updated -1667MIT License
- MIT License
- AGPL 3.0
- Apache 2.0