Skip to main content
Glama
VivekKumarNeu

mcp-lucene-server

MCP Lucene Сервер

Описание

MCP Lucene Server — это Java-реализация Model Context Protocol (MCP), разработанная для предоставления эффективных возможностей поиска и извлечения с использованием Apache Lucene. Этот сервер позволяет управлять документами и запрашивать их, используя мощные функции индексации и поиска Lucene. Он создан с использованием Spring Boot для легкой настройки и развертывания.

Related MCP server: Mercado Livre MCP Server

Функции

  • Соответствие MCP: реализует основной протокол контекста модели.

  • Lucene-Powered: использует Apache Lucene для полнотекстового поиска и индексации.

  • RESTful API: предоставляет RESTful API для взаимодействия с сервером.

  • Управление документами:

    • Upsert: добавление или обновление документов в индексе Lucene.

    • Удалить: удалить документы из индекса Lucene.

    • Список: Извлечь список документов из индекса.

  • Запрос:

    • Поддерживает сложные запросы с использованием синтаксиса запросов Lucene.

    • Фильтрация: Фильтрация запросов на основе метаданных документа.

  • Статус: Проверьте статус сервера.

  • Spring Boot: создан на основе Spring Boot для легкой настройки и развертывания.

  • Dockerization: содержит инструкции по контейнеризации приложения с использованием Docker.

Оглавление

Начиная

Предпосылки

  • Java: Java 11 или выше.

  • Maven: Maven 3.6.0 или выше.

  • Docker: установите 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

Запуск сервера

Без Докера

  1. Запустите приложение Spring Boot:

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

    (Точное имя файла .jar может немного отличаться в зависимости от версии вашего проекта.)

  2. По умолчанию сервер запустится на порту 8080 .

С Докером

  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

    • Вставляет (вставляет или обновляет) один или несколько документов.

    • Текст запроса:

      {
        "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. Здесь хранятся индексированные данные. Если не задано, используется местоположение по умолчанию. Настоятельно рекомендуется настроить его на постоянное место хранения.

Эти свойства можно задать в файле application.properties или application.yml в каталоге src/main/resources или с помощью переменных среды.

Пример

server.port=8080 lucene.index.path=/путь/к/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