fsext-mcp-server-java

Un servidor MCP completo y seguro para operaciones locales del sistema de archivos, con herramientas integradas de procesamiento de imágenes, OCR y multimedia.

Documentación

FsExt-MCP-Server (Java)

Resumen

Un servidor de Protocolo de Contexto de Modelo (MCP) de alto rendimiento y seguro, construido con Quarkus para operaciones locales del sistema de archivos, equipado con procesamiento de imágenes nativo, OCR Tesseract y herramientas de utilidades multimedia. Totalmente compatible con la especificación oficial de MCP, ofreciendo esquemas de solicitud/respuesta estandarizados, E/S de streaming para archivos grandes, despliegue remoto multi-transporte y flujos de trabajo robustos de búsqueda y reemplazo de texto para la integración con agentes LLM.

Características Principales

  • Gestión Completa de Archivos y Directorios: Soporta creación, eliminación, copia, movimiento, inspección de metadatos y validación de existencia de archivos; copia/movimiento recursivo de árboles de directorios completos con protecciones de seguridad contra sobrescritura.
  • Pipeline de Lectura y Escritura de Archivos en Streaming: Carga completa de texto, streaming de texto segmentado línea por línea, E/S binaria por fragmentos, y lógica de sobrescritura/adjuntado de texto y binario diseñada para evitar cargar archivos grandes completos en la memoria heap de la JVM.
  • Búsqueda Avanzada y Reemplazo In Situ: Escaneo recursivo de contenido en todo el directorio, coincidencia contextual multi-archivo con líneas de contexto previo/posterior configurables, soporte de expresiones regulares, coincidencia sin distinción de mayúsculas/minúsculas, y reemplazo atómico de texto in situ con estadísticas de conteo de coincidencias.
  • Kit de Herramientas de Procesamiento de Imágenes Nativo: Utilidades de imagen de alta velocidad impulsadas por Tess4J, incluyendo redimensionamiento con bloqueo de relación de aspecto y relleno de lienzo, recorte rectangular preciso, y rotación arbitraria en sentido horario.
  • Extracción de Texto con OCR Tesseract: Reconocimiento de texto fiable desde imágenes rasterizadas respaldado por binarios locales de Tesseract. Sin implementaciones de respaldo WASM; la configuración de ruta de binario vacía no activará motores OCR alternativos basados en JS. Soporte multi-idioma de tessdata con directorios de binarios y datos configurables.
  • Validación Estricta de Entrada y Esquema de Respuesta Unificado: Cada herramienta aplica una validación estricta de esquema JSON additionalProperties: false para bloquear campos de entrada no reconocidos y mitigar riesgos de inyección. Todas las operaciones devuelven un payload de éxito/error envuelto y consistente para un análisis uniforme en el lado del cliente.
  • Compatibilidad Multi-Transporte: Implementa todos los transportes estándar oficiales de MCP:
    • stdio: Integración nativa para clientes MCP de escritorio locales (Claude Desktop, Cursor, etc.)
    • sse: Transporte de streaming de eventos remoto ligero heredado
    • http: Transporte remoto bidireccional de streaming HTTP moderno y transmisible
  • Aislamiento de Sandbox de Seguridad del Espacio de Trabajo: La bandera --lock-root restringe todas las operaciones del sistema de archivos exclusivamente al árbol de directorios especificado, eliminando vulnerabilidades de escape de rutas y acceso no autorizado entre carpetas.
  • Asignación Dinámica de Puertos: Detecta automáticamente la ocupación del puerto predeterminado 8000 y asigna un puerto TCP libre por encima de 1024 cuando no se proporciona un valor personalizado de --port.
  • Optimizaciones de Runtime Nativo de Quarkus: Baja latencia de arranque, huella de memoria mínima, soporte CORS integrado para despliegues remotos HTTP/SSE, y lógica de cierre de conexión elegante para sesiones de clientes remotos de larga duración.

Inicio Rápido

Requisitos Previos

  • Java 17+
  • Gradle (wrapper incluido en el repositorio, no se requiere instalación global)
  • Binario Tesseract (opcional, solo requerido para las funciones de herramienta OCR)

1. Compilar el Uber Jar Ejecutable

Utilice el wrapper de Gradle incluido para compilar y empaquetar un jar ejecutable autocontenido:

# Windows
./gradlew.bat clean buildRunJar

# macOS / Linux
./gradlew clean buildRunJar

Ruta del artefacto de salida: build/fsext-mcp-server-<version>.jar

2. Iniciar el Servidor desde el Jar Empaquetado

Reemplace <x.y.z> con su cadena de versión de compilación real.

# Default stdio mode, unrestricted full filesystem access
java -jar build/fsext-mcp-server-x.y.z.jar

# Secure locked workspace mode (recommended for production agent usage)
java -jar build/fsext-mcp-server-x.y.z.jar --lock-root /my/workspace

# Remote SSE streaming service
java -jar build/fsext-mcp-server-x.y.z.jar --transport sse --host 0.0.0.0 --port 8000 --lock-root /my/workspace

# Modern Streamable HTTP remote service
java -jar build/fsext-mcp-server-x.y.z.jar --transport http --host 127.0.0.1 --port 8080 --lock-root /my/workspace

3. Integrar con Clientes MCP de Escritorio (Claude Desktop / Cursor)

Ejemplo de configuración JSON de cliente para integración local con transporte stdio:

{
  "mcpServers": {
    "fsext-java": {
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/fsext-mcp-server-x.y.z.jar",
        "--lock-root",
        "/my/workspace"
      ]
    }
  }
}

Configuración de Desarrollo Local con Repositorio de Código Fuente

# Clone official source repository
git clone https://github.com/kurtzhi/fsext-mcp-server-java
cd fsext-mcp-server-java

# Build full executable uber jar
./gradlew clean buildRunJar

Tabla de Referencia de Parámetros de Inicio CLI

ParámetroValor PredeterminadoDescripción
--transportstdioImplementación de transporte MCP: stdio / sse / http
--host127.0.0.1Dirección de enlace de red; ignorada por completo bajo transporte stdio
--port8000Puerto TCP de escucha del servicio. Si el puerto predeterminado 8000 está ocupado y no se proporciona un puerto personalizado, selecciona automáticamente un puerto libre ≥1024; ignorado bajo transporte stdio
--origin*Lista separada por comas de orígenes CORS permitidos para transportes remotos HTTP/SSE
--lock-rootVacíoRestringe todas las operaciones del sistema de archivos a este directorio raíz; acceso completo sin restricciones al sistema operativo si se omite

Ejemplos de Inicio de Despliegue en Producción

1. Modo Stdio Local (Clientes MCP de Escritorio)

java -jar build/fsext-mcp-server-x.y.z.jar --lock-root /my/workspace

2. Modo de Transporte SSE Remoto

java -jar build/fsext-mcp-server-x.y.z.jar --transport sse --host 0.0.0.0 --port 8000 --lock-root /my/workspace

Endpoints SSE

  1. Canal de suscripción de streaming SSE de larga duración (empuje de eventos del servidor): http://<host>:<port>/sse
  2. Canal de envío de solicitudes de cliente JSON-RPC: http://<host>:<port>/messages

Configuración de Conexión del Inspector MCP

  • Tipo de Transporte: SSE
  • Dirección de Conexión: http://127.0.0.1:8000/sse

3. Transporte Remoto HTTP Transmisible (Estándar Moderno Oficial)

java -jar build/fsext-mcp-server-x.y.z.jar --transport http --host 0.0.0.0 --port 8000 --lock-root /my/workspace

Endpoint Bidireccional Unificado

Punto de entrada único compartido que maneja todas las solicitudes de clientes y el tráfico de streaming del servidor: http://<host>:<port>/mcp

Configuración de Conexión del Inspector MCP

  • Tipo de Transporte: HTTP Transmisible
  • Dirección de Conexión: http://127.0.0.1:8000/mcp

4. Comparación de Transportes SSE vs HTTP Transmisible

CaracterísticaTransporte SSE de Doble EndpointTransporte HTTP Transmisible de Endpoint Único
Arquitectura de EndpointsDos endpoints separados: suscripción de streaming GET + envío de mensajes POSTURL única unificada para todo el tráfico bidireccional
Patrón de ComunicaciónSolo empuje unidireccional de eventos servidor a clienteComunicación híbrida bidireccional completa de solicitud/streaming
Fiabilidad de ConexiónPropenso a caídas de sesión, sincronización de estado compleja entre endpointsRecuperación automática de sesión, optimizado para despliegues remotos de alta concurrencia
Estado de la EspecificaciónImplementación de compatibilidad heredada; no recomendado para nuevos desplieguesEstándar MCP oficial actual para todas las integraciones de red remotas

Conjuntos de Caracteres de Archivos de Texto Soportados

Todos los identificadores de conjuntos de caracteres no distinguen entre mayúsculas y minúsculas; valores válidos para operaciones de lectura/escritura de texto:

  • utf-8 / UTF_8
  • iso-8859-1 / ISO_8859_1
  • utf-16 / UTF_16
  • utf-16be / UTF_16BE
  • utf-16le / UTF_16LE
  • ascii / US_ASCII

Especificación de Respuesta Global Unificada

Todas las herramientas MCP comparten una estructura JSON envuelta de nivel superior idéntica tanto para la ejecución exitosa como para los estados de fallo en tiempo de ejecución. Los payloads de negocio de cada herramienta están anidados dentro del sub-objeto info bajo el campo raíz res.

Definición del Esquema Principal

{
  "res": {
    "success": boolean,
    "info": object
  }
}
  • success: Bandera de estado global de la operación
    • true: La lógica de la herramienta se completó sin excepciones; info contiene los datos de retorno específicos de la herramienta
    • false: La operación falló (bloqueo de escape del espacio de trabajo, archivo faltante, error de E/S, esquema de entrada inválido, permiso denegado, etc.)
  • Comportamiento dual de info:
    1. Estado de éxito (success: true): Payload personalizado estructurado único para cada herramienta
    2. Estado de fallo (success: false): Objeto de error estandarizado con código de error legible por máquina y explicación legible por humanos
      "info": {
        "code": "ERROR_CODE_IDENTIFIER",
        "message": "Detailed human-readable failure description"
      }
      

Ejemplos de Payloads de Respuesta

1. Respuesta Exitosa de Listado de Directorio

{
  "res": {
    "success": true,
    "info": {
      "paths": [
        "/workspace/demo/Main.java",
        "/workspace/demo/util/FileTool.java"
      ]
    }
  }
}

2. Respuesta de Fallo por Bloqueo de Seguridad de Escape del Espacio de Trabajo

{
  "res": {
    "success": false,
    "info": {
      "code": "WORKSPACE_ESCAPE_FORBIDDEN",
      "message": "Access restricted: Path `/etc/passwd` is outside allowed workspace `/my/workspace`"
    }
  }
}

Referencia Completa de Herramientas MCP

Todos los esquemas de entrada de herramientas aplican validación estricta additionalProperties: false para rechazar parámetros no reconocidos y mitigar vectores de ataque de inyección de rutas maliciosas.

1. Herramientas de Operación de Directorios

fs_list_directory

Escanea el directorio objetivo (superficial o recursivo) y devuelve rutas de archivo absolutas filtradas con soporte de filtrado por tipo y extensión. Parámetros

  • source_dir (cadena, obligatorio): Directorio raíz para escanear
  • recursive (booleano, obligatorio): Habilita el recorrido recursivo completo de todos los subdirectorios
  • only_files (booleano, obligatorio): Filtra los resultados para devolver solo archivos regulares, excluye directorios
  • file_extension (cadena, opcional, predeterminado=""): Filtra la salida por extensión de sufijo de archivo objetivo

fs_copy_directory

Copia recursivamente un árbol de directorios completo con comportamiento de sobrescritura configurable para directorios de destino en conflicto. Parámetros

  • source_dir (cadena, obligatorio): Ruta del árbol de directorio fuente
  • copy_dest_dir (cadena, obligatorio): Ruta del directorio de salida objetivo
  • overwrite (booleano, opcional, predeterminado=false): Limpia y sobrescribe el contenido del directorio de destino preexistente

fs_move_directory

Reubica atómicamente un árbol de directorios completo a una nueva ruta objetivo. Falla inmediatamente si el destino existe a menos que la sobrescritura esté explícitamente habilitada para prevenir la pérdida accidental de datos. Parámetros

  • source_dir (cadena, obligatorio): Ruta del directorio fuente
  • dest_dir (cadena, obligatorio): Ruta del directorio objetivo
  • overwrite (booleano, opcional, predeterminado=false): Permite sobrescribir directorios de destino en conflicto

2. Herramientas de Operación Básica de Archivos Individuales

fs_create_file

Crea un nuevo archivo de texto, genera automáticamente los directorios padre faltantes, con contenido de texto inicial y codificación de conjunto de caracteres configurables. Parámetros

  • file_path (cadena, obligatorio): Ruta de archivo absoluta objetivo
  • content (cadena, opcional, predeterminado=""): Contenido de texto inicial para escribir en el nuevo archivo
  • charset (cadena, opcional, predeterminado="utf-8"): Identificador de conjunto de caracteres soportado (ver lista de conjuntos de caracteres arriba)

fs_delete_file

Elimina permanentemente un solo archivo regular únicamente; rechaza entradas de ruta de directorio para bloquear riesgos de eliminación recursiva masiva. Parámetros

  • file_path (cadena, obligatorio): Ruta absoluta del archivo regular objetivo

fs_copy_file

Copia un solo archivo conservando los metadatos originales del sistema de archivos, con sobrescritura configurable para archivos objetivo en conflicto. Parámetros

  • source_file_path (cadena, obligatorio): Ruta absoluta del archivo fuente
  • dest_file_path (cadena, obligatorio): Ruta absoluta del archivo de salida objetivo
  • overwrite (booleano, opcional, predeterminado=false): Sobrescribe el archivo de destino preexistente

fs_move_file

Mueve atómicamente un solo archivo a una nueva ruta absoluta, con lógica de sobrescritura configurable para archivos de destino en conflicto. Parámetros

  • source_file_path (cadena, obligatorio): Ruta absoluta del archivo fuente
  • dest_file_path (cadena, obligatorio): Ruta absoluta del archivo objetivo
  • overwrite (booleano, opcional, predeterminado=false): Permite sobrescribir archivos de destino en conflicto

fs_get_file_info

Recupera metadatos completos de archivos o directorios, con cálculo opcional de digest criptográfico SHA-256 para validación de integridad. Parámetros

  • file_path (cadena, obligatorio): Ruta absoluta de la entrada del sistema de archivos objetivo
  • calc_digest (booleano, opcional, predeterminado=false): Calcula el hash SHA-256 del contenido del archivo

fs_is_file_exists

Verificación ligera de existencia para cualquier entrada del sistema de archivos (archivo o directorio) sin cargar metadatos completos. Parámetros

  • file_path (cadena, obligatorio): Ruta absoluta para verificar existencia

3. Herramientas de Lectura y Escritura de Archivos

fs_read_full_text

Lee el contenido de texto completo de un archivo objetivo con codificación de texto especificada por el usuario. Parámetros

  • file_path (cadena, obligatorio): Ruta absoluta del archivo de texto objetivo
  • charset (cadena, opcional, predeterminado="utf-8"): Identificador de conjunto de caracteres soportado

fs_read_text_range

Transmisión de texto segmentada por líneas, optimizada para archivos grandes; omite líneas iniciales y limita el número total de líneas leídas para evitar una asignación excesiva de memoria en el heap. Parámetros

  • file_path (string, obligatorio): Ruta absoluta del archivo de texto objetivo
  • lines_to_skip (entero, obligatorio, mín=0): Número de líneas iniciales a omitir durante la lectura
  • max_lines_to_read (entero, obligatorio, mín=0): Número máximo total de líneas a extraer del archivo
  • line_separator (string, opcional, predeterminado="\n"): Carácter delimitador de salto de línea
  • charset (string, opcional, predeterminado="utf-8"): Identificador de conjunto de caracteres admitido

fs_read_binary_chunk

Lectura de transmisión por fragmentos para archivos binarios; devuelve cargas útiles de bytes codificados en Base64 para una transmisión segura por red JSON-RPC con detección del marcador de fin de flujo. Parámetros

  • file_path (string, obligatorio): Ruta absoluta del archivo binario objetivo
  • bytes_to_skip (entero, obligatorio, mín=0): Desplazamiento de bytes inicial a omitir antes de leer el fragmento
  • max_bytes_to_read (entero, obligatorio, mín=0): Longitud máxima de bytes a leer en un solo fragmento

fs_write_text

Escribe contenido de texto codificado en el archivo objetivo, con soporte para sobrescritura completa o modos de escritura de solo anexar. Parámetros

  • file_path (string, obligatorio): Ruta absoluta del archivo de salida objetivo
  • text (string, obligatorio, longMin=1): Contenido de texto sin procesar a persistir
  • append (booleano, opcional, predeterminado=false): Alternancia de modo de anexar (false = sobrescritura completa del archivo)
  • charset (string, opcional, predeterminado="utf-8"): Identificador de conjunto de caracteres admitido

fs_write_binary

Decodifica una carga útil binaria en Base64 y escribe bytes sin procesar en el archivo objetivo; admite modo de anexar para flujos de trabajo de carga binaria de múltiples fragmentos. Parámetros

  • file_path (string, obligatorio): Ruta absoluta del archivo de salida objetivo
  • base64_data (string, obligatorio, longMin=1): Carga útil de bytes binarios sin procesar codificada en Base64
  • append (booleano, opcional, predeterminado=false): Anexar datos binarios al final del archivo (false = sobrescritura completa)

4. Herramientas de búsqueda de contenido y reemplazo en el lugar

fs_search_files_by_content

Escanea recursivamente árboles de directorios y devuelve las rutas absolutas de todos los archivos que contienen patrones de texto coincidentes; admite expresiones regulares, insensibilidad a mayúsculas/minúsculas y filtrado por extensión de archivo. Parámetros

  • dir_path (string, obligatorio): Directorio raíz para el escaneo de contenido recursivo
  • recursive (booleano, obligatorio): Habilitar recursión completa en subdirectorios
  • search_term (string, obligatorio): Palabra clave de texto plano o patrón de expresión regular
  • is_regex (booleano, opcional, predeterminado=false): Tratar search_term como patrón de expresión regular
  • ignore_case (booleano, opcional, predeterminado=true): Alternancia de coincidencia sin distinguir mayúsculas/minúsculas
  • file_extension (string, opcional, predeterminado=""): Filtrar archivos escaneados por sufijo de extensión
  • charset (string, opcional, predeterminado="utf-8"): Conjunto de caracteres utilizado para analizar archivos objetivo

fs_search_in_files_by_content

Coincidencia de contenido masivo en múltiples directorios; devuelve resultados de coincidencia estructurados con líneas de contexto pre/post configurables alrededor del contenido coincidente, además de límites máximos globales de conteo de resultados. Parámetros

  • dir_path (string, obligatorio): Ruta absoluta del directorio raíz de escaneo
  • recursive (booleano, obligatorio): Habilitar recorrido recursivo completo de subdirectorios
  • search_term (string, obligatorio): Palabra clave de búsqueda o patrón de expresión regular
  • limit (entero, obligatorio): Límite máximo estricto del total de entradas coincidentes devueltas
  • is_regex (booleano, opcional, predeterminado=false): Habilitar lógica de coincidencia con expresiones regulares
  • ignore_case (booleano, opcional, predeterminado=true): Deshabilitar coincidencia sensible a mayúsculas/minúsculas
  • lines_before (entero, opcional, predeterminado=0): Número de líneas de contexto anteriores a cada línea coincidente
  • lines_after (entero, opcional, predeterminado=0): Número de líneas de contexto posteriores a cada línea coincidente
  • file_extension (string, opcional, predeterminado=""): Filtrar archivos escaneados por sufijo de extensión
  • charset (string, opcional, predeterminado="utf-8"): Conjunto de caracteres utilizado para analizar archivos objetivo

fs_search_in_file_by_content

Búsqueda de contenido precisa en un solo archivo; devuelve segmentos coincidentes estructurados con líneas de contexto pre/post configurables para flujos de trabajo de inspección de código y documentos. Parámetros

  • file_path (string, obligatorio): Ruta absoluta del archivo único objetivo
  • search_term (string, obligatorio): Palabra clave de búsqueda o patrón de expresión regular
  • is_regex (booleano, opcional, predeterminado=false): Habilitar lógica de coincidencia con expresiones regulares
  • ignore_case (booleano, opcional, predeterminado=true): Alternancia de coincidencia sin distinguir mayúsculas/minúsculas
  • lines_before (entero, opcional, predeterminado=0): Líneas de contexto anteriores para cada coincidencia
  • lines_after (entero, opcional, predeterminado=0): Líneas de contexto posteriores para cada coincidencia
  • charset (string, opcional, predeterminado="utf-8"): Conjunto de caracteres utilizado para analizar el archivo objetivo

fs_file_replace

Ejecuta reemplazo de texto global en el lugar dentro de un solo archivo objetivo; devuelve el número total de segmentos de texto coincidentes y reemplazados después de completar la operación de escritura. Parámetros

  • file_path (string, obligatorio): Ruta absoluta del archivo editable objetivo
  • search_term (string, obligatorio): Subcadena de texto a localizar y reemplazar
  • replacement (string, obligatorio): Nueva carga útil de texto de reemplazo
  • line_separator (string, opcional, predeterminado="\n"): Delimitador de salto de línea para el análisis del archivo

5. Herramientas de procesamiento de imágenes

fs_image_resize

Redimensiona la imagen de origen a las dimensiones de píxel especificadas, con preservación nativa de la relación de aspecto y relleno de lienzo transparente para alcanzar las dimensiones exactas de la resolución objetivo. Parámetros

  • source_path (string, obligatorio): Ruta absoluta de la imagen de entrada de origen
  • dest_path (string, obligatorio): Ruta absoluta de la imagen de salida redimensionada
  • width (entero, obligatorio, >0): Ancho en píxeles de la dimensión objetivo
  • height (entero, obligatorio, >0): Alto en píxeles de la dimensión objetivo
  • keep_aspect_ratio (booleano, opcional, predeterminado=true): Fijar la relación de aspecto original de la imagen durante el escalado
  • pad_to_target (booleano, opcional, predeterminado=true): Agregar relleno transparente para cubrir el ancho/alto exacto objetivo cuando la relación de aspecto está fijada

fs_image_crop

Extrae una región rectangular de píxeles de la imagen de origen y la exporta como archivo de imagen de salida independiente. Parámetros

  • source_path (string, obligatorio): Ruta absoluta de la imagen de entrada de origen
  • dest_path (string, obligatorio): Ruta absoluta de la imagen de salida recortada
  • x (entero, obligatorio, ≥0): Coordenada de píxel izquierda del origen de la región de recorte
  • y (entero, obligatorio, ≥0): Coordenada de píxel superior del origen de la región de recorte
  • width (entero, obligatorio, >0): Ancho en píxeles de la región rectangular recortada
  • height (entero, obligatorio, >0): Alto en píxeles de la región rectangular recortada

fs_image_rotate

Rota la imagen de origen en el sentido de las agujas del reloj según valores de grados de coma flotante arbitrarios; expande automáticamente las dimensiones del lienzo de salida para conservar todo el contenido de la imagen sin recortes en los bordes. Parámetros

  • source_path (string, obligatorio): Ruta absoluta de la imagen de entrada de origen
  • dest_path (string, obligatorio): Ruta absoluta de la imagen de salida rotada
  • degrees (número, obligatorio): Ángulo de rotación en el sentido de las agujas del reloj, en grados

6. Herramienta de extracción de texto OCR

fs_ocr_extract_text

Extrae texto legible por humanos de archivos de imagen rasterizada mediante la instalación local del binario Tesseract OCR. No existe implementación alternativa de respaldo en JavaScript WASM; un tesseract_bin_path vacío no inicializará motores OCR alternativos basados en web. Parámetros

  • image_path (string, obligatorio): Ruta absoluta de la imagen de entrada para el reconocimiento de texto
  • tesseract_bin_path (string, opcional, predeterminado=""): Ruta absoluta al binario ejecutable local de Tesseract; un valor vacío usa solo la búsqueda en PATH del sistema
  • tessdata_path (string, opcional, predeterminado=""): Ruta de directorio absoluta que contiene los archivos de datos de entrenamiento de idiomas de Tesseract
  • lang (string, opcional, predeterminado="eng"): Prefijo de código de idioma que coincide con los archivos de entrenamiento tessdata disponibles

Dependencias básicas del entorno de ejecución

  • io.quarkus:quarkus-bom:3.37.1: BOM de alineación de versiones de Quarkus
  • io.quarkus:quarkus-arc: Contenedor de inyección de dependencias CDI de Quarkus
  • io.quarkus:quarkus-reactive-routes: Núcleo de enrutado HTTP reactivo
  • io.quarkiverse.mcp:quarkus-mcp-server-http:1.13.1: Implementación de transporte MCP HTTP y SSE transmisible
  • io.quarkiverse.mcp:quarkus-mcp-server-stdio:1.13.1: Implementación de transporte MCP Stdio
  • net.sourceforge.tess4j:tess4j:5.18.0: Biblioteca de enlace Java Tesseract OCR

Tareas de Gradle para compilación y desarrollo del proyecto

# Clean all compiled build artifacts and temporary directories
./gradlew clean

# Full clean + compile + package self-contained uber jar
./gradlew clean buildRunJar

Licencia

Este proyecto se publica bajo la Licencia Apache 2.0. Consulte el archivo LICENSE en el nivel raíz para conocer los términos y condiciones legales completos de la licencia.

Avisos de software de terceros

Este software incluye múltiples bibliotecas de dependencia de código abierto. Todos los componentes de terceros conservan sus titulares de derechos de autor originales y sus respectivos acuerdos de licencia de código abierto. Un desglose completo de todas las bibliotecas de terceros, versiones y licencias está disponible en el archivo THIRD-PARTY-NOTICES en el nivel raíz y se incluye dentro del artefacto JAR en /META-INF/THIRD-PARTY-NOTICES.

Repositorio y seguimiento de problemas