AIStor

Um servidor MCP para interagir com armazenamentos de objetos AIStor e MinIO.

Documentação

Servidor MCP AIStor

Este é um servidor Model Context Protocol (MCP) para interagir com armazenamentos de objetos AIStor.

Mais informações sobre MCP podem ser encontradas em seu site oficial.

Mais informações sobre o servidor MCP AIStor podem ser encontradas em nossas postagens de blog:

Atualizações

  • 2025-05-28
    • Adicionado suporte para a versão MCP 2025-03-26
    • Adicionado suporte para o protocolo StreamableHTTP
    • Adicionada a ferramenta text_to_object

Recursos

Operações de leitura

  • Listar buckets
  • Listar objetos no bucket
  • Obter metadados e tags de um objeto
  • Criar uma URL pré-assinada com expiração para um objeto

Operações de IA

  • Descrever o conteúdo do objeto usando a ferramenta ask_object

Operações de escrita

Estas operações devem ser habilitadas usando o sinalizador --allow-write na configuração.

  • Criar um bucket
  • Enviar um objeto para o bucket
  • Adicionar tags ao objeto

Operações de exclusão

Estas operações devem ser habilitadas usando o sinalizador --allow-delete na configuração.

  • Excluir um objeto
  • Excluir um bucket

Operações administrativas

Estas operações devem ser habilitadas usando o sinalizador --allow-admin na configuração.

  • Obter informações do cluster (configuração, status de saúde, espaço disponível) em formato legível por humanos

Configuração para Claude for Desktop

Este servidor MCP funciona com outros clientes habilitados para MCP, mas vamos começar com Claude. Ele usa o transporte STDIO para interagir com o servidor. Consulte a próxima seção para instruções sobre como configurar o servidor com o transporte StreamableHTTP.

Pré-requisitos

  1. Baixe e instale o aplicativo Claude for Desktop em Claude. Este servidor MCP funciona com outros clientes habilitados para MCP, mas vamos começar com Claude.

  2. Certifique-se de ter Docker ou Podman instalado e pronto para uso em seu desktop/laptop.

  3. Obtenha suas credenciais de armazenamento de objetos AIStor (ou MinIO) (MINIO_ACCESS_KEY e MINIO_SECRET_KEY) e o local do endpoint. Se você não tiver um servidor AIStor ou MinIO disponível, sinta-se à vontade para usar os valores do servidor MinIO Playground.

Arquivo de configuração

Abra o arquivo de configuração do Claude for Desktop com seu editor de texto favorito. Para encontrar o arquivo de configuração em seu sistema, siga as instruções de início rápido do site Model Context Protocol. Sua localização padrão é:

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

Adicione as seguintes linhas ao arquivo de configuração, substituindo as credenciais, o endpoint e YOUR_USERNAME pelos valores reais. Este exemplo usa Podman, mas se você usar Docker, substitua podman no campo command: por docker. Se você tiver outros servidores MCP configurados, basta inserir a configuração do AIStor na lista.

Tenha cuidado ao adicionar os sinalizadores --allow-*. Por padrão, sem nenhum sinalizador, o servidor será executado em modo somente leitura. Adicione os sinalizadores --allow-write e --allow-delete a esta configuração somente quando precisar deles. O sinalizador --allow-admin habilita funções administrativas que coletam informações sobre o cluster.

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

Por padrão, o número de objetos ou buckets que o servidor lista e envia para o LLM é limitado a 1000 objetos. Isso é feito para evitar atingir o limite da janela de contexto do modelo em tokens. Se o seu modelo permitir uma janela de contexto mais ampla, você pode aumentar esse número adicionando o parâmetro --max-keys ao arquivo de configuração. Tenha em mente que cada registro de objeto contém várias dezenas de tokens.

Configuração para StreamableHTTP

Este servidor MCP funciona com outros clientes habilitados para MCP que suportam o transporte StreamableHTTP.

Pré-requisitos

  1. Baixe e instale um cliente LLM que suporte MCP e StreamableHTTP. Por exemplo, você pode usar Cherry Studio.

  2. Certifique-se de ter Docker ou Podman instalado e pronto para uso em seu desktop/laptop.

  3. Obtenha suas credenciais de armazenamento de objetos AIStor (ou MinIO) (MINIO_ACCESS_KEY e MINIO_SECRET_KEY) e o local do endpoint. Se você não tiver um servidor AIStor ou MinIO disponível, sinta-se à vontade para usar os valores do servidor MinIO Playground.

Executar o servidor

Execute o seguinte comando para iniciar o servidor. Substitua os valores de MINIO_ENDPOINT, MINIO_ACCESS_KEY e MINIO_SECRET_KEY pelos seus valores reais. Substitua 8090 (em três lugares!) pelo número da porta disponível em seu 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 o cliente

No cliente, adicione a seguinte configuração:

  • Nome do servidor MCP: aistor
  • Tipo: StreamableHTTP
  • URL: http://localhost:8090/mcp

Testar a conexão

Verifique se você consegue listar as ferramentas disponíveis no servidor. Use a aba "Ferramentas" no cliente.

Parar o servidor

podman stop aistor-mcp-server

Uso

Aqui estão alguns exemplos do que você pode fazer:

Operações básicas

  • "Liste todos os buckets no meu servidor AIStor"
  • "Liste o conteúdo do bucket test"

Operações de arquivo

  • "Baixe o arquivo example.pdf para meu diretório Downloads"
  • "Crie um bucket my-bucket"
  • "Envie document.pdf de Downloads para o bucket my-bucket"

Operações de metadados

  • "Obtenha os metadados de file.pdf no bucket my-bucket"
  • "Liste todas as tags do objeto config.json"

Operações administrativas

  • "Mostre o status de saúde do servidor"
  • "Obtenha estatísticas de uso de armazenamento"

Cada comando retornará respostas legíveis por humanos com informações relevantes.

Ferramentas disponíveis

Normalmente, o Large Language Model (LLM) será capaz de descobrir qual ferramenta usar para sua solicitação. Às vezes, você pode querer dizer explicitamente ao modelo qual ferramenta usar. Para esses casos e também para informar o que mais é possível com este servidor MCP, aqui está a lista de ferramentas disponíveis nesta versão.

Você sempre pode obter esta lista clicando no ícone de martelo no seu aplicativo Claude for Desktop.

ask_object : Faça perguntas sobre o conteúdo de um objeto usando IA, suportando vários formatos de arquivo e retornando respostas contextuais

copy_object : Copie um objeto de um bucket para outro preservando metadados e opcionalmente modificando propriedades. Você também pode especificar um ID de versão para copiar uma versão específica do objeto.

create_bucket : Crie um novo bucket com configurações especificadas e configurações opcionais de versionamento

delete_bucket : Exclua um bucket e opcionalmente force a remoção de todos os objetos contidos

delete_object : Exclua um objeto ou versão específico de um bucket, com suporte opcional a exclusão suave. Você também pode especificar um ID de versão para excluir uma versão específica do objeto.

download_object : Baixe um objeto de um bucket especificado para o sistema de arquivos local, preservando metadados. Você também pode especificar um ID de versão para baixar uma versão específica do objeto.

get_admin_info : Obtenha informações técnicas abrangentes sobre o armazenamento de objetos AIStor, incluindo status, métricas de desempenho e configuração

get_bucket_lifecycle : Obtenha o ciclo de vida, também conhecido como regras de ciclo de vida, também conhecido como configuração ILM de um bucket especificado

get_bucket_replication : Obtenha a configuração de replicação de um bucket especificado

get_bucket_tags : Obtenha as tags de um bucket especificado

get_bucket_versioning : Obtenha o status de versionamento e a configuração de um bucket especificado

get_data_usage_info : Obtenha informações de uso de dados para o armazenamento de objetos AIStor, incluindo dados totais armazenados, número de objetos e uso por cada bucket

get_object_metadata : Obtenha metadados detalhados de um objeto, incluindo tipo de conteúdo, tamanho, cabeçalhos personalizados e propriedades do sistema

get_object_presigned_url : Obtenha uma URL pré-assinada para um objeto em um bucket, com tempo de expiração opcional. O padrão é 7 dias.

get_object_tags : Obtenha todas as tags associadas a um objeto específico em um bucket

get_object_versions : Obtenha todas as versões de um objeto em um bucket

list_allowed_directories : Liste todos os diretórios permitidos para operações com o servidor

list_bucket_contents : Liste todos os objetos em um bucket especificado, incluindo seus tamanhos e datas de última modificação. Você também pode especificar um prefixo para filtrar os objetos e se deseja listar versões.

list_buckets : Liste todos os buckets no armazenamento de objetos AIStor com suas informações básicas

list_local_files : Liste todos os arquivos e diretórios em um caminho de diretório local especificado com seus atributos

move_object : Mova um objeto entre buckets copiando para o destino e removendo da origem. Você também pode especificar um ID de versão para mover uma versão específica do objeto.

set_bucket_tags : Defina as tags para um bucket especificado

set_bucket_versioning : Configure as configurações de versionamento para um bucket com privilégios administrativos

set_object_tags : Defina ou atualize tags para um objeto existente em um bucket, suportando múltiplos pares chave-valor. Você também pode especificar um ID de versão para definir tags para uma versão específica do objeto.

text_to_object : Converta texto em um objeto em um bucket, com suporte para diferentes tipos de conteúdo.

upload_object : Envie um arquivo do sistema de arquivos local para um bucket especificado.