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.

Servidor MCP Lucene

Descripción

El servidor MCP Lucene es una implementación basada en Java del Protocolo de Contexto de Modelo (MCP), diseñado para proporcionar funciones eficientes de búsqueda y recuperación mediante Apache Lucene. Este servidor permite gestionar y consultar documentos, aprovechando las potentes funciones de indexación y búsqueda de Lucene. Está desarrollado con Spring Boot para facilitar su configuración e implementación.

Características

  • Cumplimiento de MCP: implementa el protocolo de contexto de modelo principal.
  • Impulsado por Lucene: utiliza Apache Lucene para búsqueda e indexación de texto completo.
  • API RESTful: proporciona una API RESTful para interactuar con el servidor.
  • Gestión de documentos:
    • Upsert: agrega o actualiza documentos en el índice de Lucene.
    • Eliminar: elimina documentos del índice de Lucene.
    • Lista: recupera una lista de documentos del índice.
  • Consultando:
    • Admite consultas complejas utilizando la sintaxis de consulta de Lucene.
    • Filtrado: Filtrar consultas en función de los metadatos del documento.
  • Estado: Verifique el estado del servidor.
  • Spring Boot: desarrollado con Spring Boot para una fácil configuración e implementación.
  • Dockerización: incluye instrucciones para contenerizar la aplicación usando Docker.

Tabla de contenido

Empezando

Prerrequisitos

  • Java: Java 11 o superior.
  • Maven: Maven 3.6.0 o superior.
  • Docker: instale Docker si planea utilizar la imagen de Docker.

Instalación

  1. Clonar el repositorio:
    git clone [https://github.com/your-username/mcp-lucene-server.git](https://github.com/your-username/mcp-lucene-server.git) cd mcp-lucene-server
    (Reemplace your-username con su nombre de usuario de GitHub)
  2. Construya el proyecto usando Maven:
    mvn clean install

Ejecución del servidor

Sin Docker
  1. Ejecute la aplicación Spring Boot:
    java -jar target/mcp-lucene-server-0.0.1-SNAPSHOT.jar
    (El nombre exacto del archivo .jar puede variar levemente dependiendo de la versión de su proyecto).
  2. El servidor se iniciará en el puerto 8080 de forma predeterminada.
Con Docker
  1. Asegúrese de tener Docker instalado: siga las instrucciones en el sitio web oficial de Docker: https://docs.docker.com/get-docker/
  2. Construya la imagen de Docker: navegue al directorio raíz de su proyecto en su terminal y ejecute:
    docker build -t mcp-lucene-server .
  3. Ejecute el contenedor Docker:
    docker run -p 8080:8080 mcp-lucene-server
    Esto asignará el puerto 8080 en su máquina host al puerto 8080 dentro del contenedor.

Uso

Puntos finales de API

El servidor proporciona los siguientes puntos finales de API:

  • GET /mcp/v1/status
    • Devuelve el estado del servidor.
  • POST /mcp/v1/upsert
    • Upserts (inserta o actualiza) uno o más documentos.
    • Cuerpo de la solicitud:
      { "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
    • Consulta el índice de Lucene.
    • Cuerpo de la solicitud:
      { "queries": [ { "query": "document", "top_k": 10, "filter": { "language": "english" } }, { "query": "text search", "filter": { "category": "example" } } ] }
    • query : La cadena de consulta de Lucene.
    • top_k : (opcional) El número máximo de resultados a devolver (predeterminado: 10).
    • filter : (opcional) Un mapa de campos de metadatos y valores para filtrar.
  • POST /mcp/v1/delete
    • Elimina documentos del índice de Lucene.
    • Cuerpo de la solicitud:
      { "ids": ["doc1", "doc2"] }
  • GET /mcp/v1/list
    • Enumera documentos del índice de Lucene.
    • Cuerpo de la solicitud:
      { "ids": ["doc1", "doc2"] }

Ejemplos

Obtener el estado del servidor:

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

Insertar documentos:

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

Consulta de documentos:

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

Eliminar documentos:

curl -X POST http://localhost:8080/mcp/v1/delete -H 'Content-Type: application/json' -d '{ "ids": ["doc1"] }'

Lista de documentos:

curl -X POST http://localhost:8080/mcp/v1/list -H 'Content-Type: application/json' -d '{ "ids": ["doc1", "doc2"] }'

Configuración

El servidor se puede configurar mediante las propiedades de la aplicación Spring Boot. Estas son algunas de las propiedades clave:

  • server.port : el puerto en el que escucha el servidor (predeterminado: 8080).
  • lucene.index.path : La ruta al directorio de índice de Lucene. Aquí se almacenan los datos indexados. Si no se configura, se utiliza una ubicación predeterminada. Se recomienda configurarla como una ubicación de almacenamiento persistente.

Puede configurar estas propiedades en un archivo application.properties o application.yml en su directorio src/main/resources , o mediante variables de entorno.

Ejemplo application.properties :

servidor.puerto=8080 lucene.index.path=/ruta/a/lucene/index

Licencia

Este proyecto está licenciado bajo la licencia 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