Skip to main content
Glama
VivekKumarNeu

mcp-lucene-server

MCP Lucene サーバー

説明

MCP Luceneサーバーは、Apache Luceneを用いた効率的な検索・取得機能を提供するために設計された、モデルコンテキストプロトコル(MCP)のJavaベースの実装です。このサーバーでは、Luceneの強力なインデックス作成機能と検索機能を活用し、ドキュメントの管理とクエリを実行できます。Spring Bootを使用して構築されているため、セットアップとデプロイが簡単です。

Related MCP server: Mercado Livre MCP Server

特徴

  • **MCP コンプライアンス:**コア モデル コンテキスト プロトコルを実装します。

  • **Lucene 搭載:**フルテキスト検索とインデックス作成に Apache Lucene を活用します。

  • **RESTful API:**サーバーと対話するための RESTful API を提供します。

  • ドキュメント管理:

    • Upsert: Lucene インデックス内のドキュメントを追加または更新します。

    • 削除: Lucene インデックスからドキュメントを削除します。

    • **リスト:**インデックスからドキュメントのリストを取得します。

  • クエリ:

    • Lucene クエリ構文を使用した複雑なクエリをサポートします。

    • フィルタリング: ドキュメントのメタデータに基づいてクエリをフィルタリングします。

  • **ステータス:**サーバーのステータスを確認します。

  • Spring Boot: Spring Boot を使用して構築されているため、セットアップとデプロイメントが簡単です。

  • Docker 化: Docker を使用してアプリケーションをコンテナー化する手順が含まれています。

目次

はじめる

前提条件

インストール

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

    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 ユーザー名に置き換えてください)

  2. Maven を使用してプロジェクトをビルドします。

    mvn clean install

サーバーの実行

Dockerなし

  1. Spring Boot アプリケーションを実行します。

    java -jar target/mcp-lucene-server-0.0.1-SNAPSHOT.jar

    ( .jarファイルの正確な名前は、プロジェクトのバージョンによって若干異なる場合があります。)

  2. デフォルトでは、サーバーはポート8080で起動します。

Dockerを使用

  1. **Docker がインストールされていることを確認します。**公式 Docker ウェブサイトの指示に従ってください: https://docs.docker.com/get-docker/

  2. **Docker イメージをビルドします。**ターミナルでプロジェクトのルート ディレクトリに移動し、次のコマンドを実行します。

    docker build -t mcp-lucene-server .
  3. 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"]
      }

サーバーステータスを取得します:

curl http://localhost:8080/mcp/v1/status

ドキュメントのアップサート:

curl -X POST 

http://localhost:8080/mcp/v1/upsert 

-H 'Content-Type: application/json' 

-d '{
"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"
}
}
]
}'

クエリドキュメント:

curl -X POST 

http://localhost:8080/mcp/v1/query 

-H 'Content-Type: application/json' 

-d '{
"queries": [
{
"query": "document text",
"top_k": 5,
"filter": {
"language": "english"
}
}
]
}'

ドキュメントを削除します:

curl -X POST 

http://localhost:8080/mcp/v1/delete 

-H 'Content-Type: application/json' 

-d '{
"ids": ["doc1"]
}'

ドキュメントの一覧:

curl -X POST 

http://localhost:8080/mcp/v1/list 

-H 'Content-Type: application/json' 

-d '{
"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 ライセンスに基づいてライセンスされます。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VivekKumarNeu/MCP-Lucene-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server