mcp-lucene-server

Apache 2.0
  • Linux
  • Apple

Integrations

  • Utilizes Apache Lucene for full-text search and indexing capabilities, enabling efficient document management, complex querying with Lucene query syntax, and document filtering based on metadata.

  • Supports containerization of the application using Docker, with instructions for building and running the server as a Docker container.

  • Built with Spring Boot for application setup and deployment, providing RESTful API endpoints for document management operations including upsert, delete, list, and query functionalities.

MCP Lucene Сервер

Описание

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

Функции

  • Соответствие 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 или с помощью переменных среды.

Пример application.properties :

server.port=8080 lucene.index.path=/путь/к/lucene/index

Лицензия

Данный проект лицензирован под лицензией Apache 2.0 .

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol (MCP) server that provides search and crawl functionality using Search1API.
    Last updated -
    5
    206
    111
    TypeScript
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    An MCP server implementation that integrates the Tavily Search API, providing optimized search capabilities for LLMs.
    Last updated -
    1
    TypeScript
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    Provides an MCP protocol interface for interacting with Elasticsearch 7.x databases, supporting comprehensive search functionality including aggregations, highlighting, and sorting.
    Last updated -
    3
    1
    Python
    Apache 2.0
  • -
    security
    F
    license
    -
    quality
    An MCP server that integrates with SerpApi to retrieve search results from multiple search engines including Google, Bing, Yahoo, and others, enabling fast access to both live and archived search data.
    Last updated -
    Python

View all related MCP servers

ID: 2dlbo0wmkw