dimo storage

armazenamento em nuvem rápido e barato de até 100GB.

Servidor MCP hospedado

npx add-mcp 'https://dimosoftwares.ir/storage/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Configuração

Existem duas formas de conexão. Se o seu cliente suporta "login", a primeira opção é mais simples e segura.

  1. Login (OAuth)

Para claude.ai, Claude Desktop, app mobile Claude, Cursor, VS Code e Claude Code. Basta inserir o endereço do servidor; a página de login do dimo storage será aberta e, após clicar em "Permitir", a conexão estará estabelecida. Não é necessário token.

  1. Token pessoal

Para clientes que aceitam apenas cabeçalhos (Hermes, scripts, curl) ou quando você não quer que o navegador seja aberto. Crie o token na próxima seção e envie-o no cabeçalho Authorization.

  1. Adicione o endereço do servidor no cliente.
    O tipo de conexão é HTTP (Streamable HTTP). Exemplos de cada cliente estão na seção "Configuração de clientes".
  2. Faça login ou insira o token.
    Com OAuth, clique no botão Connect/Authenticate do cliente. Com token, coloque-o no cabeçalho.
  3. Teste a conexão.
    Peça ao assistente para executar storage_status; ele deve mostrar seu espaço usado e disponível.

Seu token pessoal

Necessário apenas para conexão com token (segunda opção). Este token é separado do token do Imagin: cada um pode ser revogado de forma independente. O token é como uma senha — não o coloque em código ou repositórios públicos.

Para criar um token pessoal, acesse sua conta.

Configuração de clientes

Nos exemplos com token, substitua DIMO_STORAGE_TOKEN pelo seu token (se você acabou de criar um token, ele já foi substituído automaticamente). Para conexão via login, remova a seção headers.

Não é necessário token. No claude.ai, vá para Settings → Connectors → Add custom connector, insira o endereço abaixo e clique em "Connect" após "Add". A página de login do dimo storage será aberta; clique em "Permitir".

https://dimosoftwares.ir/storage/mcp

Deixe a seção "Advanced settings" (Client ID / Secret) vazia. Claude Desktop e o app mobile também usam este mesmo conector. Storage e Imagin são dois conectores separados e você pode adicionar apenas um.

Autenticação

Cada requisição HTTP deve conter o token no cabeçalho. O token não é aceito no endereço (query string), pois URLs são registradas em logs. Clientes que suportam login encontram automaticamente o caminho OAuth pelo cabeçalho da resposta 401.

Authorization: Bearer dimo_smcp_…    # توکن شخصی استوریج
Authorization: Bearer dimo_oat_…     # صادرشده با OAuth (claude.ai، Cursor)

# یا به‌جای آن:
X-Dimo-Key: dimo_smcp_…

401 Unauthorized

Token não enviado, expirado ou revogado. A resposta inclui o cabeçalho WWW-Authenticate para que clientes iniciem o login OAuth automaticamente.

Separado do Imagin

O token do Storage (dimo_smcp_) e o token do Imagin (dimo_mcp_) são coisas diferentes e não funcionam em outro servidor. Tokens OAuth também têm escopos (scopes) separados.

Tokens OAuth

O token de acesso tem validade de uma hora e o cliente o renova automaticamente; se não for usado por 60 dias, será necessário fazer login novamente.

Agentes do dimo storage

Cada agente tem seu próprio token (dimo_smcpa_…) e não depende do seu token pessoal. Desativar o acesso a arquivos ou excluir o agente interrompe o acesso dele.

Troca de token

Com "Criar novo token", o token anterior é invalidado imediatamente; atualize os clientes.

Armazenamento

O dimo storage armazena apenas o hash dos tokens; por isso, não é possível exibir novamente o token pessoal.

Ferramentas

O cliente obtém a lista de ferramentas automaticamente. Obtenha os IDs dos arquivos (file_id) com list_files. As ferramentas dos grupos "Leitura" e "Conta" não alteram nada; trash_item é reversível e delete_file exclui permanentemente.

list_filesLeitura

Lista ou busca arquivos e pastas; retorna os IDs dos arquivos para as demais ferramentas.

folder, search, kind, sort, limit, offset

list_foldersLeitura

Árvore completa de pastas em formato plano, com a profundidade de cada linha.

—

get_fileLeitura

Detalhes de um arquivo com link de visualização e download (para enviar a você mesmo).

file_id

read_fileLeitura

Lê o conteúdo do arquivo: texto como texto, imagem como pré-visualização, demais como base64.

file_id, as_text, max_bytes

list_trashLeitura

Arquivos na lixeira (recuperáveis por até 30 dias).

limit

storage_statusConta

Espaço usado, disponível e total, além do número de arquivos.

resync

upload_fileEscrita

Salva um arquivo novo; pastas com nome desconhecido são criadas e nomes duplicados nunca são sobrescritos.

filename, text | data_base64, folder, content_type

create_folderEscrita

Cria uma pasta, inclusive dentro de outra pasta, se necessário.

name, parent

rename_itemEscrita

Renomeia um arquivo ou uma pasta.

new_name, file_id | folder_id

move_fileEscrita

Move um arquivo para outra pasta (ou para a raiz do armazenamento).

file_id, folder

trash_itemExclusão

Envia um arquivo ou uma pasta inteira para a lixeira — reversível por até 30 dias.

file_id | folder_id

restore_fileExclusão

Restaura um arquivo da lixeira.

file_id

delete_fileExclusão

Exclusão permanente e liberação de espaço; requer confirm=true e é irreversível.

file_id, confirm

share_fileCompartilhamento

Cria um link público para um arquivo ou revoga um link existente.

file_id | revoke_token, expires_days

Exemplos de solicitações

Não é necessário saber os nomes das ferramentas; basta pedir em linguagem natural.

Encontrar

"Procure contratos no meu armazenamento e liste-os."

Ler

"Leia o arquivo notes.md e resuma-o."

Criar

"Salve esta tabela como CSV na pasta Documentos."

Organizar

"Mova todas as imagens da raiz do armazenamento para a pasta Imagens."

Compartilhar

"Crie um link público de sete dias para o relatório trimestral."

Espaço

"Quanto do meu espaço está ocupado e quais são meus maiores arquivos?"

Com o Imagin

"Crie um pôster e salve-o junto aos arquivos da campanha." (O Imagin cria, o Storage move.)

Dicas

Mesmo espaço

Este é o mesmo espaço que você vê em "Meus arquivos" — não é uma cópia. Qualquer alteração feita pelo assistente aparece imediatamente na página web.

Exclusão em duas etapas

trash_item envia o arquivo para a lixeira, onde pode ser recuperado por até 30 dias. delete_file é permanente e, para evitar erros, exige confirm=true.

Nunca sobrescreve

Nomes duplicados são convertidos para "Nome (2)"; nenhuma ferramenta substitui o conteúdo de um arquivo existente.

Cota

Os uploads consomem o espaço adquirido. Se não houver espaço, a ferramenta retorna um erro claro.

Tamanho

Cada upload via MCP tem até 64 MB, e a leitura de arquivos binários até 8 MB; para arquivos maiores, use a página de upload.

Pasta de agentes

Quando o agente não especifica uma pasta, a saída é salva em "Arquivos de agentes" para não poluir a raiz do seu espaço.

Link de compartilhamento

O link público abre sem necessidade de conta. Quando quiser, revogue-o com share_file(revoke_token=…) ou pela página "Compartilhados".

Solução de problemas

claude.ai não conecta

Insira o endereço exatamente como acima, sem / no final, e deixe a seção Advanced settings vazia. Se não voltar ao claude.ai após clicar em "Permitir", clique no botão "Voltar ao aplicativo".

401 com token

Token revogado ou alterado, prefixo Bearer esquecido, ou você enviou o token do Imagin para este servidor. Crie um token do Storage e substitua.

"Espaço insuficiente"

Sua cota está cheia. Esvazie a lixeira ou adicione espaço pelos pacotes de recursos.

Arquivo não encontrado

Talvez esteja na lixeira; clique em list_trash. A busca list_files(search=…) percorre todo o espaço, não apenas a pasta atual.

"Esta extensão não é permitida"

O servidor de Storage não aceita scripts do lado do servidor (php, sh, py etc.). Altere a extensão ou coloque o arquivo em um arquivo compactado.

Ferramentas não aparecem

Após alterar a configuração, reinicie o cliente ou clique em Refresh na lista de servidores MCP.