AIStor

Un servidor MCP para interactuar con almacenes de objetos AIStor y MinIO.

Documentación

Servidor MCP de AIStor

Este es un servidor del Model Context Protocol (MCP) para interactuar con almacenes de objetos AIStor.

Puede encontrar más información sobre MCP en su sitio oficial.

Puede encontrar más información sobre el servidor MCP de AIStor en nuestras publicaciones de blog:

Actualizaciones

  • 2025-05-28
    • Se añadió soporte para la versión de MCP 2025-03-26
    • Se añadió soporte para el protocolo StreamableHTTP
    • Se añadió la herramienta text_to_object

Funciones

Operaciones de lectura

  • Listar buckets
  • Listar objetos en el bucket
  • Obtener metadatos y etiquetas de un objeto
  • Crear una URL prefirmada con expiración para un objeto

Operaciones de IA

  • Describir el contenido del objeto mediante la herramienta ask_object

Operaciones de escritura

Estas operaciones deben habilitarse usando la bandera --allow-write en la configuración.

  • Crear un bucket
  • Subir un objeto al bucket
  • Añadir etiquetas al objeto

Operaciones de eliminación

Estas operaciones deben habilitarse usando la bandera --allow-delete en la configuración.

  • Eliminar un objeto
  • Eliminar un bucket

Operaciones administrativas

Estas operaciones deben habilitarse usando la bandera --allow-admin en la configuración.

  • Obtener información del clúster (configuración, estado de salud, espacio disponible) en formato legible para humanos

Configuración para Claude for Desktop

Este servidor MCP funciona con otros clientes compatibles con MCP, pero empecemos con Claude. Utiliza el transporte STDIO para interactuar con el servidor. Consulte la siguiente sección para obtener instrucciones sobre cómo configurar el servidor con el transporte StreamableHTTP.

Requisitos previos

  1. Descargue e instale la aplicación Claude for Desktop desde Claude. Este servidor MCP funciona con otros clientes compatibles con MCP, pero empecemos con Claude.

  2. Asegúrese de tener Docker o Podman instalados y listos para usar en su escritorio/portátil.

  3. Obtenga sus credenciales del almacén de objetos AIStor (o MinIO) (MINIO_ACCESS_KEY y MINIO_SECRET_KEY) y la ubicación de su endpoint. Si no dispone de un servidor AIStor o MinIO, no dude en utilizar los valores del servidor de pruebas MinIO Playground.

Archivo de configuración

Abra el archivo de configuración de Claude for Desktop con su editor de texto favorito. Para encontrar el archivo de configuración en su sistema, siga las instrucciones de inicio rápido del sitio del Model Context Protocol. Su ubicación predeterminada es:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Añada las siguientes líneas al archivo de configuración, reemplazando las credenciales, el endpoint y YOUR_USERNAME con sus valores reales. Este ejemplo utiliza Podman, pero si usa Docker, reemplace podman en el campo command: por docker. Si tiene otros servidores MCP configurados, simplemente inserte la configuración de AIStor en la lista.

Tenga cuidado al añadir las banderas --allow-*. De forma predeterminada, sin banderas, el servidor se ejecutará en modo de solo lectura. Añada las banderas --allow-write y --allow-delete a esta configuración solo cuando las necesite. La bandera --allow-admin habilita las funciones administrativas que recopilan información sobre el clúster.

{
  "mcpServers": {
    "aistor": {
      "command": "podman",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/Users/YOUR_USERNAME/Downloads:/Downloads",
        "-e",
        "MINIO_ENDPOINT=REPLACE_WITH_ENDPOINT",
        "-e",
        "MINIO_ACCESS_KEY=REPLACE_WITH_ACCESS_KEY",
        "-e",
        "MINIO_SECRET_KEY=REPLACE_WITH_SECRET_KEY",
        "-e",
        "MINIO_USE_SSL=true",
        "quay.io/minio/aistor/mcp-server-aistor:latest",
        "--allowed-directories",
        "/Downloads",
        "--allow-write",
        "--allow-delete",
        "--allow-admin"
      ]
    }
  }
}

De forma predeterminada, el número de objetos o buckets que el servidor lista y envía al LLM está limitado a 1000 objetos. Esto se hace para evitar alcanzar el límite de la ventana de contexto del modelo en tokens. Si su modelo permite una ventana de contexto más amplia, puede aumentar este número añadiendo el parámetro --max-keys al archivo de configuración. Tenga en cuenta que cada registro de objeto contiene varias decenas de tokens.

Configuración para StreamableHTTP

Este servidor MCP funciona con otros clientes compatibles con MCP que admiten el transporte StreamableHTTP.

Requisitos previos

  1. Descargue e instale un cliente LLM que admita MCP y StreamableHTTP. Por ejemplo, puede usar Cherry Studio.

  2. Asegúrese de tener Docker o Podman instalados y listos para usar en su escritorio/portátil.

  3. Obtenga sus credenciales del almacén de objetos AIStor (o MinIO) (MINIO_ACCESS_KEY y MINIO_SECRET_KEY) y la ubicación de su endpoint. Si no dispone de un servidor AIStor o MinIO, no dude en utilizar los valores del servidor de pruebas MinIO Playground.

Ejecutar el servidor

Ejecute el siguiente comando para iniciar el servidor. Reemplace los valores de MINIO_ENDPOINT, MINIO_ACCESS_KEY y MINIO_SECRET_KEY con sus valores reales. Reemplace 8090 (¡en tres lugares!) con el número de puerto disponible en su sistema.

podman run -d --name aistor-mcp-server \
  -v /Users/YOUR_USERNAME/Downloads:/Downloads \
  -e MINIO_ENDPOINT=REPLACE_WITH_ENDPOINT \
  -e MINIO_ACCESS_KEY=REPLACE_WITH_ACCESS_KEY \
  -e MINIO_SECRET_KEY=REPLACE_WITH_SECRET_KEY \
  -e MINIO_USE_SSL=true \
  -p 8090:8090 \
  quay.io/minio/aistor/mcp-server-aistor:latest \
  --allowed-directories /Downloads \
  --allow-admin \
  --allow-delete \
  --allow-write \
  --http \
  --http-port 8090

Configurar el cliente

En el cliente, añada la siguiente configuración:

  • Nombre del servidor MCP: aistor
  • Tipo: StreamableHTTP
  • URL: http://localhost:8090/mcp

Probar la conexión

Compruebe si puede listar las herramientas disponibles en el servidor. Use la pestaña "Herramientas" en el cliente.

Detener el servidor

podman stop aistor-mcp-server

Uso

Aquí hay algunos ejemplos de lo que puede hacer:

Operaciones básicas

  • "Lista todos los buckets en mi servidor AIStor"
  • "Lista el contenido del bucket test"

Operaciones con archivos

  • "Descarga el archivo example.pdf a mi directorio de Descargas"
  • "Crea un bucket my-bucket"
  • "Sube document.pdf desde Descargas al bucket my-bucket"

Operaciones con metadatos

  • "Obtén los metadatos de file.pdf en el bucket my-bucket"
  • "Lista todas las etiquetas del objeto config.json"

Operaciones administrativas

  • "Muestra el estado de salud del servidor"
  • "Obtén las estadísticas de uso de almacenamiento"

Cada comando devolverá respuestas legibles para humanos con información relevante.

Herramientas disponibles

Normalmente, el Modelo de Lenguaje Grande (LLM) podrá determinar qué herramienta usar para su solicitud. A veces, es posible que desee indicar explícitamente al modelo qué herramienta usar. Para esos casos y también para que sepa qué más es posible con este servidor MCP, aquí está la lista de herramientas disponibles en esta versión.

Siempre puede obtener esta lista haciendo clic en el icono de martillo en su aplicación Claude for Desktop.

ask_object : Haga preguntas sobre el contenido de un objeto usando IA, con soporte para varios formatos de archivo y devolviendo respuestas contextuales

copy_object : Copie un objeto de un bucket a otro conservando los metadatos y modificando opcionalmente las propiedades. También puede especificar un ID de versión para copiar una versión específica del objeto.

create_bucket : Cree un nuevo bucket con configuraciones especificadas y ajustes opcionales de versionado

delete_bucket : Elimine un bucket y opcionalmente fuerce la eliminación de todos los objetos contenidos

delete_object : Elimine un objeto o versión específico de un bucket, con soporte opcional de eliminación suave. También puede especificar un ID de versión para eliminar una versión específica del objeto.

download_object : Descargue un objeto de un bucket especificado al sistema de archivos local, conservando los metadatos. También puede especificar un ID de versión para descargar una versión específica del objeto.

get_admin_info : Obtenga información técnica completa sobre el almacén de objetos AIStor, incluidos estado, métricas de rendimiento y configuración

get_bucket_lifecycle : Obtenga el ciclo de vida, también conocido como reglas de ciclo de vida o configuración ILM, de un bucket especificado

get_bucket_replication : Obtenga la configuración de replicación de un bucket especificado

get_bucket_tags : Obtenga las etiquetas de un bucket especificado

get_bucket_versioning : Obtenga el estado y la configuración de versionado de un bucket especificado

get_data_usage_info : Obtenga información de uso de datos del almacén de objetos AIStor, incluidos los datos totales almacenados, el número de objetos y el uso por cada bucket

get_object_metadata : Obtenga metadatos detallados de un objeto, incluidos tipo de contenido, tamaño, encabezados personalizados y propiedades del sistema

get_object_presigned_url : Obtenga una URL prefirmada para un objeto en un bucket, con un tiempo de expiración opcional. El valor predeterminado es 7 días.

get_object_tags : Obtenga todas las etiquetas asociadas con un objeto específico en un bucket

get_object_versions : Obtenga todas las versiones de un objeto en un bucket

list_allowed_directories : Liste todos los directorios permitidos para operaciones con el servidor

list_bucket_contents : Liste todos los objetos en un bucket especificado, incluidos sus tamaños y fechas de última modificación. También puede especificar un prefijo para filtrar los objetos y si desea listar versiones.

list_buckets : Liste todos los buckets en el almacén de objetos AIStor con su información básica

list_local_files : Liste todos los archivos y directorios en una ruta de directorio local especificada con sus atributos

move_object : Mueva un objeto entre buckets copiándolo al destino y eliminándolo del origen. También puede especificar un ID de versión para mover una versión específica del objeto.

set_bucket_tags : Establezca las etiquetas de un bucket especificado

set_bucket_versioning : Configure los ajustes de versionado para un bucket con privilegios administrativos

set_object_tags : Establezca o actualice etiquetas para un objeto existente en un bucket, con soporte para múltiples pares clave-valor. También puede especificar un ID de versión para establecer etiquetas para una versión específica del objeto.

text_to_object : Convierta texto en un objeto en un bucket, con soporte para diferentes tipos de contenido.

upload_object : Suba un archivo desde el sistema de archivos local a un bucket especificado.