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:
- Apresentando o servidor MCP para AIStor
- Funções administrativas do servidor MCP para AIStor
- Servidor MCP para AIStor: Como funciona
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
-
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.
-
Certifique-se de ter Docker ou Podman instalado e pronto para uso em seu desktop/laptop.
-
Obtenha suas credenciais de armazenamento de objetos AIStor (ou MinIO) (
MINIO_ACCESS_KEYeMINIO_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
-
Baixe e instale um cliente LLM que suporte MCP e StreamableHTTP. Por exemplo, você pode usar Cherry Studio.
-
Certifique-se de ter Docker ou Podman instalado e pronto para uso em seu desktop/laptop.
-
Obtenha suas credenciais de armazenamento de objetos AIStor (ou MinIO) (
MINIO_ACCESS_KEYeMINIO_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.