Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Estrutura de Configuração

Nota: Campos não mencionados especificamente como obrigatórios são opcionais.

version

  • obrigatório
KeyTypeDescriptionExample
versionStringEspecifica a versão do arquivo de configuração.version: 1.3.13

cache

KeyTypeDescriptionExample
cacheBooleanAtiva ou desativa o cache. Defina como `true` para habilitar o cache (padrão).cache: true

skillSync

KeyTypeDescriptionExample
skillSyncObjectConfigura o espelhamento de Skill externo. Na v1.3.13, o GitHub Skill Sync é suportado.

veja: Estrutura do Objeto Skill Sync

messageFilter

KeyTypeDescriptionExample
messageFilterObjectConfigura filtros de mensagem no lado do servidor. Na v1.3.13, `messageFilter.pii` pode rejeitar textos enviados com formato de credenciais antes das chamadas de modelo e persistência.

veja: Estrutura do Objeto de Filtro de Mensagens

fileStrategy

  • Opções: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
KeyTypeDescriptionExample
fileStrategyStringDetermina onde salvar arquivos enviados/gerados pelo usuário. O padrão é `"local"` se omitido.fileStrategy: "firebase"
  • Notas:
    • "cloudfront" armazena arquivos no S3 e retorna URLs do CloudFront para entrega estável de mídia, cookies assinados e downloads assinados.
    • "firebase" serve arquivos através do Firebase Storage e locais de borda (edge locations) do Firebase Hosting.
    • O S3 serve arquivos via presigned URLs (tokens assinados temporários) que expiram. Uma vez expirados, qualquer imagem ou avatar que referencie essa URL aparecerá como quebrado na interface. Isso torna o S3 inadequado como estratégia principal para ativos visuais. Veja a discussão relacionada para mais detalhes.
    • Para obter o melhor desempenho de imagens e avatares, use "cloudfront" ou "firebase", ou configure fileStrategies para rotear avatar e image para uma estratégia baseada em CDN.
    • Consulte a documentação de File Storage & CDN para detalhes de configuração

fileStrategies

Permite controle granular sobre estratégias de armazenamento de arquivos para diferentes tipos de arquivo.

  • Estratégias Disponíveis: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
KeyTypeDescriptionExample
fileStrategiesObjectConfigura diferentes estratégias de armazenamento para diferentes tipos de arquivo. Mais flexível que a opção única fileStrategy.

Sub-chaves:

KeyTypeDescriptionExample
defaultStringEstratégia de armazenamento de fallback quando um tipo específico não está definido. O padrão é "local".
avatarStringEstratégia de armazenamento para imagens de avatar de usuários e agentes. É recomendado usar uma estratégia com suporte de CDN (`"cloudfront"` ou `"firebase"`) para obter o melhor desempenho.
imageStringEstratégia de armazenamento para imagens enviadas em chats. Recomendado usar uma estratégia com suporte a CDN (`"cloudfront"` ou `"firebase"`) para melhor desempenho.
documentStringEstratégia de armazenamento para uploads de documentos (PDFs, arquivos de texto, etc.).
skillsStringEstratégia de armazenamento para arquivos agrupados com Skills.
  • Notas:
    • Esta configuração tem precedência sobre a opção única fileStrategy
    • Se um tipo de arquivo específico não estiver configurado, ele recorre a default, depois a fileStrategy e, finalmente, a "local".
    • Imagens e avatares precisam de URLs persistentes e estáveis para serem renderizados corretamente em toda a UI. URLs pré-assinadas do S3 expiram (limite da AWS: 7 dias para usuários IAM, horas para credenciais baseadas em STS/funções), causando imagens quebradas no seletor de modelos e na UI de chat. Veja a discussão relacionada para o contexto completo. Use "cloudfront" ou "firebase" para avatar e image para evitar isso.
    • O S3 e o Azure Blob Storage são adequados para armazenamento de document, onde URLs de download pré-assinadas de curta duração são apropriadas.
    • Consulte a documentação de File Storage & CDN para detalhes de configuração de cada provedor de armazenamento.

Exemplos:

# Use a single strategy for all file types
fileStrategies:
  default: 's3'
# Route images and avatars to CDN, keep documents in object storage
fileStrategies:
  avatar: 'cloudfront' # CDN delivery for avatars
  image: 'cloudfront' # CDN delivery for generated/uploaded images
  document: 's3' # Object storage for documents
# Only configure specific types, others use default
fileStrategies:
  default: 'local'
  avatar: 'firebase' # Only avatars use Firebase CDN, everything else is local

cloudfront

Chave:

KeyTypeDescriptionExample
cloudfrontObjectConfigura a entrega via CloudFront para arquivos armazenados no S3.

Subchaves:

KeyTypeDescriptionExample
domainStringDomínio da distribuição CloudFront ou CNAME. Obrigatório quando qualquer estratégia de arquivo utiliza `"cloudfront"`.domain: "https://cdn.example.com"
distributionIdStringID da distribuição CloudFront. Obrigatório quando `invalidateOnDelete` for true.distributionId: "E1234ABCD"
invalidateOnDeleteBooleanCria uma invalidação do CloudFront para arquivos excluídos. Padrão: false.invalidateOnDelete: false
imageSigningStringControla o acesso a imagens/avatares inline. Opções: `"none"` ou `"cookies"`. `"url"` é reservado e não implementado para imagens.imageSigning: "cookies"
cookieDomainStringDomínio de cookie pai compartilhado necessário para cookies assinados. Deve começar com um ponto.cookieDomain: ".example.com"
cookieExpiryNumberTempo de vida do cookie assinado em segundos. Padrão: 1800, máximo: 604800.cookieExpiry: 1800
urlExpiryNumberTempo de vida da URL de download assinada do CloudFront em segundos. Padrão: 3600.urlExpiry: 3600
storageRegionStringRótulo de região opcional usado em chaves de objeto geradas quando caminhos de região estão habilitados.storageRegion: "us-east-2"
includeRegionInPathBooleanInclui a região de armazenamento nas chaves de objeto recém-geradas. Padrão: false.includeRegionInPath: false
requireSignedAccessBooleanRecusa a inicialização quando o acesso por cookie assinado do CloudFront não pode ser inicializado. Padrão: false.requireSignedAccess: true

veja: Estrutura de Objeto do CloudFront e CloudFront com S3

filteredTools

KeyTypeDescriptionExample
filteredToolsArray of StringsFiltra ferramentas específicas dos endpoints de Plugins e OpenAI Assistants.filteredTools: ["scholarai", "calculator"]
  • Notas:
    • Se includedTools e filteredTools forem ambos especificados, apenas includedTools será reconhecido.
    • Afeta ambos os endpoints gptPlugins e assistants
    • Você pode encontrar os nomes das ferramentas para filtrar em api/app/clients/tools/manifest.json
      • Use o valor de pluginKey
    • Além disso, qualquer um listado no diretório ".well-known" api/app/clients/tools/.well-known
      • Use o valor de name_for_model

includedTools

KeyTypeDescriptionExample
includedToolsArray of StringsInclui ferramentas específicas dos endpoints de Plugins e OpenAI Assistants.includedTools: ["calculator"]
  • Notas:
    • Se includedTools e filteredTools forem ambos especificados, apenas includedTools será reconhecido.
    • Afeta ambos os endpoints gptPlugins e assistants
    • Você pode encontrar os nomes das ferramentas para filtrar em api/app/clients/tools/manifest.json
      • Use o valor de pluginKey
    • Além disso, qualquer um listado no diretório ".well-known" api/app/clients/tools/.well-known
      • Use o valor de name_for_model
KeyTypeDescriptionExample
secureImageLinksBooleanDefine se o acesso a links de imagem hospedados localmente pelo aplicativo deve ou não ser protegido. Padrão: false.secureImageLinks: true

imageOutputType

  • Nota: Diferencia maiúsculas de minúsculas. O endpoint Google suporta apenas os tipos de saída "jpeg" e "png".
  • Opções: "png" | "webp" | "jpeg"
KeyTypeDescriptionExample
imageOutputTypeStringO tipo de saída de imagem para respostas de imagem. O padrão é "png" se omitido.imageOutputType: "webp"

ocr

Chave:

KeyTypeDescriptionExample
ocrObjectConfigura as definições de Reconhecimento Óptico de Caracteres (OCR) para extrair texto de imagens.

Subchaves:

KeyTypeDescriptionExample
apiKeyStringA chave de API para o serviço de OCR.
baseURLStringA URL base para a API do serviço de OCR.
strategyStringA estratégia de OCR a ser utilizada. As opções são "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser" ou "custom_ocr".
mistralModelStringO modelo Mistral a ser usado para processamento de OCR.

veja: Estrutura do Objeto de Configuração de OCR

webSearch

Chave:

KeyTypeDescriptionExample
webSearchObjectConfigura a funcionalidade de pesquisa na web, incluindo provedores de pesquisa, scrapers de conteúdo e rerankers de resultados.

Subchaves:

KeyTypeDescriptionExample
serperApiKeyStringNome da variável de ambiente para a chave de API do Serper. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.
searxngInstanceUrlStringNome da variável de ambiente para a URL da instância do SearXNG. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.
searxngApiKeyStringNome da variável de ambiente para a chave de API do SearXNG. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.
tavilyApiKeyStringNome da variável de ambiente para a chave de API do Tavily. Usada tanto para pesquisa quanto para scraper. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.
tavilySearchUrlStringNome da variável de ambiente para uma URL personalizada da API Tavily Search. Opcional; o padrão é a busca hospedada pelo Tavily quando não definida.
tavilyExtractUrlStringNome da variável de ambiente para uma URL personalizada da API Tavily Extract. Opcional; o padrão é o extract hospedado pela Tavily quando não definido.
firecrawlApiKeyStringNome da variável de ambiente para a chave de API do Firecrawl. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.
firecrawlApiUrlStringNome da variável de ambiente para a URL da API do Firecrawl. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.
jinaApiKeyStringNome da variável de ambiente para a chave de API da Jina. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.
cohereApiKeyStringNome da variável de ambiente para a chave de API da Cohere. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.
searchProviderStringEspecifica qual provedor de busca utilizar. Opções: "serper", "searxng", "tavily".
scraperProviderStringEspecifica qual serviço de scraper utilizar. Opções: "firecrawl", "serper", "tavily".
firecrawlVersionStringEspecifica a versão da API do Firecrawl (v0 ou v1).
rerankerTypeStringEspecifica qual serviço de reranker usar. Defina como "none" para pular o reranking. Opções: "jina", "cohere", "none".
scraperTimeoutIntegerTempo limite em milissegundos para solicitações do scraper. Deve ser um número inteiro não negativo.
safeSearchNumberNível de filtragem de pesquisa segura. 0 = DESATIVADO, 1 = MODERADO (padrão), 2 = ESTRITO.

veja: Estrutura do Objeto de Pesquisa na Web

fileConfig

Chave:

KeyTypeDescriptionExample
fileConfigObjectConfigura as definições de manipulação de arquivos para a aplicação, incluindo limites de tamanho e restrições de tipo MIME.

Subchaves:

KeyTypeDescriptionExample
endpointsRecord/ObjectEspecifica as configurações de manipulação de arquivos para endpoints individuais, permitindo a personalização por endpoint.
serverFileSizeLimitNumberO tamanho máximo de arquivo (em MB) que o servidor aceitará. Aplica-se globalmente a todos os endpoint, a menos que seja substituído por configurações específicas de endpoint.
avatarSizeLimitNumberTamanho máximo (em MB) para imagens de avatar do usuário.
clientImageResizeObjectConfigura o redimensionamento de imagens no lado do cliente para otimizar uploads de arquivos e evitar erros de upload devido a tamanhos de imagem grandes.
ocrObjectConfigurações para processamento de arquivos com Reconhecimento Óptico de Caracteres (OCR).
textObjectConfigurações para análise direta de arquivos de texto.
sttObjectConfigurações para processamento de arquivos de áudio de Speech-to-Text (STT).
fileTokenLimitNumberNúmero máximo de tokens de arquivos de texto a serem incluídos nos prompts antes do truncamento.fileTokenLimit: 100000

clientImageResize

Chave:

KeyTypeDescriptionExample
clientImageResizeObjectConfigura o redimensionamento de imagens no lado do cliente para otimizar uploads de arquivos e evitar erros de upload devido a tamanhos de imagem grandes.

Subchaves:

KeyTypeDescriptionExample
enabledBooleanAtiva ou desativa a funcionalidade de redimensionamento de imagem no lado do cliente. Padrão: false.enabled: true
maxWidthNumberLargura máxima em pixels para imagens redimensionadas. Imagens mais largas que isso serão redimensionadas. Padrão: 1920.maxWidth: 1024
maxHeightNumberAltura máxima em pixels para imagens redimensionadas. Imagens mais altas que isso serão redimensionadas. Padrão: 1080.maxHeight: 768
qualityNumberQualidade de compressão JPEG (0.1 a 1.0). Valores mais altos significam melhor qualidade, porém arquivos maiores. Padrão: 0.8.quality: 0.9
compressFormatStringFormato de saída para imagens compactadas. Opções: "jpeg", "webp". Padrão: "jpeg".compressFormat: "webp"

Descrição:

A configuração clientImageResize permite o redimensionamento automático de imagens no lado do cliente antes do upload. Este recurso ajuda a:

  • Evite falhas de upload devido a arquivos de imagem grandes que excedem os limites do servidor
  • Reduza o uso de largura de banda comprimindo imagens antes da transmissão
  • Melhore o desempenho de upload com tamanhos de arquivo menores
  • Mantenha a qualidade da imagem enquanto otimiza o tamanho do arquivo

Quando ativado, imagens que excedem as dimensões maxWidth ou maxHeight especificadas são redimensionadas automaticamente no lado do cliente antes de serem enviadas para o servidor. O redimensionamento mantém a proporção original, garantindo que a imagem se ajuste aos limites especificados.

Exemplo:

fileConfig:
  clientImageResize:
    enabled: true
    maxWidth: 1920
    maxHeight: 1080
    quality: 0.8
    compressFormat: 'jpeg'

Notas:

  • Aplica-se apenas a arquivos de imagem (JPEG, PNG, WebP, etc.)
  • O redimensionamento ocorre automaticamente quando as imagens excedem as dimensões especificadas
  • A proporção original é preservada durante o redimensionamento
  • O recurso funciona com todos os endpoints de upload de imagem suportados
  • A configuração de qualidade aplica-se apenas aos formatos JPEG e WebP
  • Definir a qualidade muito baixa (< 0.5) pode resultar em uma degradação perceptível da imagem

veja: Estrutura do Objeto de Configuração de Arquivo

rateLimits

Chave:

KeyTypeDescriptionExample
rateLimitsObjectDefine políticas de limite de taxa para evitar abusos, limitando o número de solicitações.

Subchaves:

KeyTypeDescriptionExample
fileUploadsObjectConfigura limites de taxa especificamente para operações de upload de arquivos.
conversationsImportObjectConfigura limites de taxa especificamente para operações de importação de conversas.
sttObjectConfigura limites de taxa especificamente para solicitações de conversão de fala em texto (stt)
ttsObjectConfigura limites de taxa especificamente para solicitações de conversão de texto em fala (tts)

Subchaves de fileUploads:

KeyTypeDescriptionExample
ipMaxNumberNúmero máximo de uploads permitidos por endereço IP por janela.
ipWindowInMinutesNumberJanela de tempo em minutos para o limite de upload baseado em IP.
userMaxNumberNúmero máximo de uploads permitidos por usuário por janela.
userWindowInMinutesNumberJanela de tempo em minutos para o limite de upload baseado no usuário.

Subchaves de conversationsImport:

KeyTypeDescriptionExample
ipMaxNumberNúmero máximo de importações permitidas por endereço IP por janela.
ipWindowInMinutesNumberJanela de tempo em minutos para o limite de importações baseado em IP.
userMaxNumberNúmero máximo de importações por usuário por janela.
userWindowInMinutesNumberJanela de tempo em minutos para o limite de importações baseado no usuário.

Subchaves tts:

KeyTypeDescriptionExample
ipMaxNumberNúmero máximo de solicitações permitidas por endereço IP por janela.
ipWindowInMinutesNumberJanela de tempo em minutos para o limite de requisições baseado em IP.
userMaxNumberNúmero máximo de solicitações por usuário por janela.
userWindowInMinutesNumberJanela de tempo em minutos para o limite de solicitações baseado no usuário.

Subchaves stt:

KeyTypeDescriptionExample
ipMaxNumberNúmero máximo de solicitações permitidas por endereço IP por janela.
ipWindowInMinutesNumberJanela de tempo em minutos para o limite de requisições baseado em IP.
userMaxNumberNúmero máximo de solicitações por usuário por janela.
userWindowInMinutesNumberJanela de tempo em minutos para o limite de solicitações baseado no usuário.
  • Exemplo:
rateLimits:
  fileUploads:
    ipMax: 100
    ipWindowInMinutes: 60
    userMax: 50
    userWindowInMinutes: 60
  conversationsImport:
    ipMax: 100
    ipWindowInMinutes: 60
    userMax: 50
    userWindowInMinutes: 60
  stt:
    ipMax: 100
    ipWindowInMinutes: 1
    userMax: 50
    userWindowInMinutes: 1
  tts:
    ipMax: 100
    ipWindowInMinutes: 1
    userMax: 50
    userWindowInMinutes: 1

registration

Chave:

KeyTypeDescriptionExample
registrationObjectConfigura as definições relacionadas ao registro para a aplicação.

Subchaves:

KeyTypeDescriptionExample
socialLoginsConfigurações de login social.
allowedDomainsEspecifica os domínios permitidos para registro.

veja também:

memory

Chave:

KeyTypeDescriptionExample
memoryObjectConfigura a memória de conversação e os recursos de personalização para a aplicação.

Subchaves:

KeyTypeDescriptionExample
disabledBooleanDesativa a funcionalidade de memória quando definido como true.
validKeysArray of StringsEspecifica quais chaves são válidas para o armazenamento de memória.
tokenLimitNumberDefine o número máximo de tokens para armazenamento e processamento de memória.
charLimitNumberDefine o número máximo de caracteres para o armazenamento de memória. Padrão: 10000.
maxInputTokensNumberLimita os tokens de chat recente enviados ao agente de memória automática antes da extração. Padrão: 12000.
personalizeBooleanAtiva ou desativa recursos de personalização.
messageWindowSizeNumberEspecifica o número de mensagens recentes a serem incluídas no contexto da memória.
agentObject | UnionConfigura o agente responsável pelo processamento de memória.

veja: Estrutura do Objeto de Memória

summarization

Chave:

KeyTypeDescriptionExample
summarizationObjectConfigura o resumo de conversas e a poda de contexto. Substitui os campos `summarize` e `summaryModel` por endpoint.

Subchaves:

KeyTypeDescriptionExample
providerStringProvedor de LLM para chamadas de resumo. O padrão é o próprio provedor do agente.
modelStringModelo para chamadas de resumo. O padrão é o próprio modelo do agente.
parametersObjectParâmetros adicionais de LLM para solicitações de resumo.
promptStringPrompt personalizado para sumarização inicial.
updatePromptStringPrompt personalizado para recompactação quando um resumo anterior existe.
triggerObjectDefine quando a sumarização é acionada (por proporção de tokens, tokens restantes ou contagem de mensagens).
maxSummaryTokensNumberMáximo de tokens de saída para a resposta do modelo de sumarização.
reserveRatioNumberFração do orçamento de tokens reservada como margem (0–1). Padrão: 0.05.
contextPruningObjectConfigura a degradação de resultados de ferramentas baseada em posição para mensagens mais antigas.

veja: Estrutura do Objeto de Resumo

actions

Chave:

KeyTypeDescriptionExample
actionsObjectConfigura as definições relacionadas a ações, usadas por Agents e Assistants

Subchaves:

KeyTypeDescriptionExample
allowedDomainsArray of StringsLista de permissões estrita de domínios para ações. Quando definida, apenas os domínios listados podem ser acessados.
allowedAddressesArray of StringsLista de exceção SSRF (apenas espaço de IP privado). Permite serviços host:porta privados específicos sem restringir destinos públicos quando `allowedDomains` não está configurado.

veja também:

interface

Chave:

KeyTypeDescriptionExample
interfaceObjectConfigura elementos da interface do usuário dentro da aplicação, permitindo a personalização da visibilidade e do comportamento de vários componentes.

Subchaves:

KeyTypeDescriptionExample
privacyPolicyObjectContém configurações relacionadas ao link da política de privacidade fornecido.
termsOfServiceObjectContém configurações relacionadas ao link dos termos de serviço fornecido.
modelSelectBooleanDetermina se o recurso de seleção de modelo está disponível.
parametersBooleanAlterna a visibilidade das opções de configuração de parâmetros, também conhecidas como configurações de conversa.
presetsBooleanAtiva ou desativa o menu de predefinições
promptsBoolean or ObjectAtiva ou desativa todos os recursos relacionados a prompts para todos os usuários
bookmarksBooleanAtiva ou desativa todos os recursos relacionados a favoritos para todos os usuários
memoriesBooleanAtiva ou desativa o recurso de memórias para todos os usuários
multiConvoBooleanAtiva ou desativa todos os recursos relacionados a "multi convo", também conhecidos como streaming de múltiplas respostas, para todos os usuários
agentsBoolean or ObjectAtiva ou desativa todos os recursos de agentes para todos os usuários
temporaryChatBooleanAtiva ou desativa o recurso de chat temporário
temporaryChatRetentionNumberConfigura o período de retenção para chats temporários em horas. Mín: 1, Máx: 8760. Padrão: 720 (30 dias).
autoSubmitFromUrlBooleanControla se `/c/new?prompt=…&submit=true` envia automaticamente para o modelo. Quando `false`, o prompt é pré-preenchido, mas não enviado.
mcpServersObjectContém configurações relacionadas à seleção de servidor MCP e controle de acesso.
customWelcomeStringMensagem de boas-vindas personalizada exibida na interface de chat.
runCodeBooleanAtiva ou desativa o botão "Run Code" para blocos de código Markdown
webSearchBooleanHabilita ou desabilita o botão de pesquisa na web na interface de chat
fileSearchBooleanAtiva ou desativa o botão de pesquisa de arquivos na interface de chat
fileCitationsBooleanHabilita ou desabilita globalmente as citações de arquivos para todos os usuários
peoplePickerObjectConfigura quais tipos de principal estão disponíveis como controles na interface de seleção de pessoas
marketplaceObjectHabilita ou desabilita o acesso ao Agent Marketplace

veja: Estrutura do Objeto de Interface

modelSpecs

Chave:

KeyTypeDescriptionExample
modelSpecsObjectConfigura as Model Specs, permitindo a configuração detalhada e a personalização de modelos de IA e seus comportamentos dentro da aplicação.

Subchaves:

KeyTypeDescriptionExample
enforceBooleanDetermina se as Model Specs devem substituir estritamente outras configurações.
prioritizeBooleanEspecifica se as Model Specs devem ter prioridade sobre a configuração padrão quando ambas forem aplicáveis.
listArray of ObjectsContém uma lista de especificações de modelos individuais detalhando várias configurações e comportamentos.

veja: Estrutura do Objeto Model Specs

endpoints

Chave:

KeyTypeDescriptionExample
endpointsObjectDefine endpoints de API personalizados para a aplicação.

Subchaves:

KeyTypeDescriptionExample
customArray of ObjectsCada objeto no array representa uma configuração de endpoint única.
azureOpenAIObjectConfiguração específica do endpoint Azure OpenAI
assistantsObjectConfiguração específica do endpoint Assistants.
azureAssistantsObjectConfiguração específica do endpoint Azure Assistants.
agentsObjectConfiguração específica do endpoint de Agents.
allObjectConfigurações globais de endpoint que se aplicam a todos os endpoints. Consulte Shared Endpoint Settings.
allowedAddressesArray of StringsLista de exceção SSRF (apenas espaço de IP privado). Permite que baseURLs fornecidas pelo usuário apontem para serviços específicos de host:porta privados (por exemplo, Ollama auto-hospedado) sem desativar a proteção SSRF para todo o resto.

Nota: Os endpoints suportam Shared Endpoint Settings como streamRate, headers, titleModel, titleMethod, titlePrompt, titlePromptTemplate, titleEndpoint e maxToolResultChars. Estes podem ser configurados individualmente por endpoint ou globalmente usando a chave all. Os headers são mesclados, com os valores de nível de endpoint prevalecendo em caso de conflitos de chave. A chave all não aceita baseURL.

Nota: endpoints.allowedAddresses aplica-se a valores de baseURL fornecidos pelo usuário (quando um administrador configura um endpoint personalizado com apiKey: 'user_provided' e baseURL: 'user_provided'). Cada baseURL fornecida pelo usuário é validada contra o bloqueio de SSRF no momento da solicitação; as entradas listadas aqui estão isentas. Consulte mcpSettings.allowedAddresses para a semântica do campo — as mesmas regras se aplicam (apenas espaço de IP privado, porta obrigatória, sem URLs/caminhos/CIDR/hosts simples/literais de IP público).

mcpSettings

Chave:

KeyTypeDescriptionExample
mcpSettingsObjectDefine as configurações globais para servidores do Model Context Protocol (MCP)

Subchaves:

KeyTypeDescriptionExample
allowedDomainsArray of StringsLista de permissões estrita de domínios para conexões de servidor MCP. Quando definida, apenas as entradas listadas podem ser acessadas.
allowedAddressesArray of StringsLista de exceções SSRF (apenas espaço de IP privado). Permite serviços host:porta privados específicos sem alternar `allowedDomains` para o modo de lista de permissões estrita.
  • Notas:
    • Este é um recurso de segurança para proteger contra abuso / uso indevido de endereços internos via servidores MCP
    • Por padrão, o LibreChat restringe a conexão de servidores MCP a endereços de rede internos, locais ou privados.
    • Servidores MCP que utilizam endereços IP locais ou domínios podem ser adicionados à lista de permissões estrita allowedDomains (que então se torna o único conjunto acessível) ou — para manter destinos públicos acessíveis — isentos como serviços host:port exatos via allowedAddresses
    • Como em todas as alterações de configuração yaml, uma reinicialização do LibreChat é necessária para que entrem em vigor.
    • Suporta domínios, subdomínios curinga (*.example.com), domínios Docker e endereços IP

Exemplo:

mcpSettings:
  # Strict whitelist mode:
  # allowedDomains:
  #   - "example.com"           # Specific domain
  #   - "*.example.com"         # All subdomains
  #   - "http://mcp-server:3000" # Internal service, explicitly whitelisted

  # Default SSRF mode with private service exemptions:
  allowedAddresses:
    - 'host.docker.internal:8080' # Permit one private host on one port
    - '10.0.0.5:8000' # Permit one private IP on one port

veja: Estrutura do Objeto MCP Settings

mcpServers

Chave:

KeyTypeDescriptionExample
mcpServersObjectDefine a configuração para servidores do Model Context Protocol (MCP), permitindo a integração dinâmica de servidores MCP dentro da aplicação.

Subchaves:

KeyTypeDescriptionExample
<serverName>ObjectCada chave em `mcpServers` representa uma configuração individual de servidor MCP, identificada por um nome único.
  • Notas:
    • A inicialização ocorre na inicialização, e o aplicativo deve ser reiniciado para que as alterações entrem em vigor.
    • O <serverName> é um identificador único para cada configuração de servidor MCP.
    • Cada servidor MCP pode ser configurado usando um dos quatro tipos de conexão:
      • stdio
      • websocket
      • sse
      • streamable-http
    • O campo type especifica o tipo de conexão com o servidor MCP.
    • Se type for omitido, ele assume um padrão com base na presença e no formato de url ou command:
      • Se url for especificado e começar com http ou https, type assume sse como padrão.
      • Se url for especificado e começar com ws ou wss, type assume websocket como padrão.
      • Se command for especificado, type assume stdio como padrão.
    • Opções de configuração adicionais incluem:
      • timeout: Timeout em milissegundos para requisições de servidor MCP. Determina quanto tempo aguardar por uma resposta para requisições de ferramentas.
      • initTimeout: Tempo limite em milissegundos para a inicialização do servidor MCP. Determina quanto tempo aguardar pela inicialização do servidor.
      • serverInstructions: Controla se as instruções do servidor são incluídas no contexto do agente. Pode ser true (usa as fornecidas pelo servidor), false (desativado) ou uma string personalizada (substitui as fornecidas pelo servidor).
      • customUserVars: (Opcional) Define variáveis personalizadas (por exemplo, chaves de API, URLs) que usuários individuais podem definir para um servidor MCP. Esses valores por usuário, fornecidos através da interface, podem então ser referenciados nas configurações de headers ou env do servidor usando a sintaxe {{VARIABLE_NAME}}. Isso permite autenticação ou personalização por usuário para ferramentas MCP.
    • veja: Estrutura do Objeto MCP Servers

Exemplo:

mcpServers:
  everything:
    # type: sse # type can optionally be omitted
    url: http://localhost:3001/sse
    timeout: 30000
    initTimeout: 10000
    serverInstructions: true # Use server-provided instructions
  puppeteer:
    type: stdio
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-puppeteer'
    timeout: 30000
    initTimeout: 10000
    serverInstructions: 'Do not access any local files or local/internal IP addresses'
  filesystem:
    # type: stdio
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-filesystem'
      - /home/user/LibreChat/
    iconPath: /home/user/LibreChat/client/public/assets/logo.svg
  mcp-obsidian:
    command: npx
    args:
      - -y
      - 'mcp-obsidian'
      - /path/to/obsidian/vault
  streamable-http-example:
    type: streamable-http
    url: https://example.com/mcp
    headers:
      Authorization: 'Bearer ${API_TOKEN}'
    timeout: 30000
  per-user-crendentials-example:
    type: sse
    url: 'https//some.mcp/sse'
    headers:
      X-Custom-Auth-Token: '{{USER_API_KEY}}' # Placeholder for the user-provided API key, defined in `customUserVars` below.
    customUserVars:
      USER_API_KEY:
        title: 'Service API Key'
        description: "Your personal API key for this service. You can get it <a href='https://example.com/api-keys' target='_blank'>here</a>."
    serverInstructions: true

veja: Estrutura do Objeto MCP Servers

speech

Chave:

KeyTypeDescriptionExample
speechObjectConfigura os provedores de Text-to-Speech (TTS) e Speech-to-Text (STT) para a aplicação.

Subchaves:

KeyTypeDescriptionExample
ttsObjectConfigurações de provedores de Text-to-Speech (OpenAI, Azure OpenAI, ElevenLabs, LocalAI).
sttObjectConfigurações de provedores de Speech-to-Text (OpenAI, Azure OpenAI).
speechTabObjectConfigurações de interface padrão para recursos de fala.

veja: Estrutura do Objeto Speech

turnstile

Chave:

KeyTypeDescriptionExample
turnstileObjectConfigura o Cloudflare Turnstile para proteção contra bots em formulários de registro e login.

Subchaves:

KeyTypeDescriptionExample
siteKeyStringSua chave de site do Cloudflare Turnstile (obrigatória).
optionsObjectOpções adicionais do widget Turnstile (opcional).

veja: Estrutura do Objeto Turnstile

transactions

Chave:

KeyTypeDescriptionExample
transactionsObjectControla os recursos de registro e visibilidade de transações.

Subchaves:

KeyTypeDescriptionExample
enabledBooleanAtiva ou desativa o registro de transações. Padrão: true.

veja: Estrutura do Objeto Transactions

Como está este guia?