Cada clave bajo `mcpServers` representa una configuración individual de servidor MCP, identificada por un nombre único. Este nombre se utiliza para hacer referencia a la configuración del servidor dentro de la aplicación.
(Opcional) Nombre para mostrar personalizado para el servidor MCP en la interfaz de usuario. Si no se especifica, se utiliza el nombre de la clave del servidor.
title: "My Custom Server"
description
String
(Opcional) Descripción del servidor MCP, que se muestra en la interfaz de usuario para ayudar a los usuarios a comprender su propósito.
description: "Provides file system access"
type
String
Especifica el tipo de conexión al servidor MCP. Las opciones válidas son `"stdio"`, `"websocket"`, `"streamable-http"` o `"sse"`. Si se omite, el valor predeterminado se basa en la presencia y el formato de `url` o `command`.
type: "stdio"
command
String
(Para el tipo `stdio`) El comando o ejecutable a ejecutar para iniciar el servidor MCP.
command: "npx"
args
Array of Strings
(Para el tipo `stdio`) Argumentos de línea de comandos para pasar al `command`.
(Para el tipo `websocket`, `streamable-http` o `sse`) La URL para conectarse al servidor MCP.
url: "http://localhost:3001/sse"
proxy
String
(Opcional, para tipos `sse` y `streamable-http`) URL del proxy de salida para este servidor MCP remoto. Admite URLs `http://`, `https://`, `socks://` y `socks5://`.
proxy: "${MCP_PROXY_URL}"
headers
Object
(Opcional, para los tipos `sse` y `streamable-http`) Encabezados personalizados para enviar con la solicitud. Admite la sustitución dinámica de campos de usuario con marcadores de posición `{{LIBRECHAT_USER_*}}` y variables de entorno con `${ENV_VAR}`.
(Opcional, para los tipos `sse` y `streamable-http`) Configuración de autenticación mediante clave API para el servidor MCP.
See apiKey section below
iconPath
String
(Opcional) Define el icono de visualización de la herramienta que se muestra en el diálogo de selección de herramientas.
iconPath: "/path/to/icon.svg"
chatMenu
Boolean
(Opcional) Cuando se establece en `false`, excluye al servidor MCP del menú desplegable del área de chat (MCPSelect) para un acceso rápido y sencillo. El valor predeterminado es `true`.
chatMenu: false
serverInstructions
Boolean or String
(Opcional) Controla cómo se inyectan las instrucciones del servidor MCP en el contexto del agente. Las instrucciones del servidor proporcionan una guía de uso de alto nivel para todo el servidor MCP, complementando las descripciones de las herramientas individuales.
serverInstructions: true
# or
serverInstructions: "Custom instructions"
timeout
Integer
(Opcional) Tiempo de espera en milisegundos para las solicitudes del servidor MCP. Debe ser un número entero no negativo.
timeout: 30000
initTimeout
Integer
(Opcional) Tiempo de espera en milisegundos para la inicialización del servidor MCP. Debe ser un número entero no negativo.
initTimeout: 10000
env
Object
(Opcional, solo tipo `stdio`) Variables de entorno a utilizar al iniciar el proceso.
env:
NODE_ENV: "production"
requiresOAuth
Boolean
(Opcional, transportes remotos: `sse`, `streamable-http`, `websocket`) Si este servidor requiere autenticación OAuth. Si no se especifica, se detectará automáticamente durante el inicio del servidor. Aunque es opcional, es mejor establecer este valor explícitamente si sabe si el servidor requiere OAuth o no. Establecer `requiresOAuth: false` es útil para servidores protegidos por un encabezado `Authorization` estático, para omitir la detección automática que de otro modo los clasificaría erróneamente como protegidos por OAuth.
requiresOAuth: false
stderr
String or Integer
(Opcional, solo tipo `stdio`) Cómo manejar `stderr` del proceso hijo. Opciones: `"pipe"`, `"ignore"`, `"inherit"`, o un entero no negativo (descriptor de archivo). El valor predeterminado es `"inherit"`.
stderr: "inherit"
customUserVars
Object
(Opcional) Define variables personalizadas que los usuarios pueden establecer para este servidor MCP, permitiendo credenciales o configuraciones por usuario (por ejemplo, claves API). Estas variables pueden ser referenciadas posteriormente en los campos `headers` o `env`.
customUserVars:
API_KEY:
title: "API Key"
description: "Your personal API key."
oauth
Object
(Opcional) Configuración de OAuth2 para autenticarse con el servidor MCP. Cuando se configura, se solicitará a los usuarios que se autentiquen mediante el flujo OAuth.
(Opcional) Mapa de nombres y valores de encabezado utilizados solo para solicitudes de flujo OAuth, como el registro dinámico de clientes o el intercambio de tokens.
(Opcional, para tipos `sse` y `streamable-http`) Configuración de intercambio de token On-Behalf-Of. Intercambia el token de acceso OpenID del usuario actual por un token delegado de nivel inferior y lo reenvía como un token Bearer.
Descripción: Nombre para mostrar personalizado para el servidor MCP en la interfaz de usuario. Si no se especifica, se utiliza el nombre de la clave del servidor.
Ejemplo:
my-server: title: 'File System Access' command: npx args: ['-y', '@modelcontextprotocol/server-filesystem']
Descripción: Descripción del servidor MCP, que se muestra en la interfaz de usuario para ayudar a los usuarios a comprender su propósito y capacidades.
Ejemplo:
my-server: title: 'File System Access' description: 'Provides read/write access to local files and directories' command: npx args: ['-y', '@modelcontextprotocol/server-filesystem']
Descripción: (Para el tipo websocket, streamable-http o sse) La URL para conectarse al servidor MCP. Admite marcadores de posición dinámicos para campos de usuario ({{LIBRECHAT_USER_*}}) y sustitución de variables de entorno (${ENV_VAR}).
Notas:
Para el tipo sse, la URL debe comenzar con http:// o https://.
Para el tipo streamable-http, la URL debe comenzar con http:// o https://.
Para el tipo websocket, la URL debe comenzar con ws:// o wss://.
Tipo: String (Opcional, para los tipos sse y streamable-http)
Descripción: URL del proxy de salida para este servidor MCP remoto. El valor puede hacer referencia a variables de entorno con ${ENV_VAR}.
Protocolos compatibles:http://, https://, socks:// y socks5://
Nota de seguridad:proxy está controlado por el administrador. Resuelve variables de entorno, pero no resuelve marcadores de posición controlados por el usuario como {{LIBRECHAT_USER_ID}} o customUserVars.
Tipo: Objeto (Opcional, para los tipos sse y streamable-http)
Descripción: Encabezados personalizados para enviar con la solicitud. Admite varios tipos de marcadores de posición para la sustitución dinámica de valores.
Soporte para marcadores de posición (Placeholder):
{{LIBRECHAT_USER_ID}}: Se reemplazará con el ID del usuario actual, permitiendo el soporte multiusuario.
{{LIBRECHAT_USER_*}}: Marcadores de posición dinámicos para campos de usuario. Reemplace * con la versión en MAYÚSCULAS de cualquier campo permitido.
{{LIBRECHAT_OPENID_*}}: Marcadores de posición de token/sesión de OpenID para servidores definidos en YAML.
{{LIBRECHAT_GRAPH_*}}: marcadores de posición de token de Microsoft Graph para servidores definidos en YAML.
{{LIBRECHAT_BODY_*}}: Marcadores de posición del cuerpo de la solicitud para servidores definidos en YAML, tales como el conversationId, parentMessageId o messageId actuales.
{{CUSTOM_VARIABLE_NAME}}: Reemplazado por el valor proporcionado por el usuario para una variable definida en customUserVars (por ejemplo, {{MY_API_KEY}}).
${ENV_VAR}: Se reemplazará con el valor de la variable de entorno {{ENV_VAR}}.
Marcadores de posición de campo de usuario disponibles:
Marcador de posición
Campo de usuario
Tipo
Descripción
{{LIBRECHAT_USER_NAME}}
name
String
Nombre visible del usuario
{{LIBRECHAT_USER_USERNAME}}
username
String
Nombre de usuario
{{LIBRECHAT_USER_EMAIL}}
email
String
Dirección de correo electrónico del usuario
{{LIBRECHAT_USER_PROVIDER}}
provider
String
Proveedor de autenticación (ej. "email", "google", "github")
{{LIBRECHAT_USER_ROLE}}
role
String
Rol del usuario (ej. "user", "admin")
{{LIBRECHAT_USER_GOOGLEID}}
googleId
String
ID de cuenta de Google
{{LIBRECHAT_USER_FACEBOOKID}}
facebookId
String
ID de cuenta de Facebook
{{LIBRECHAT_USER_OPENIDID}}
openidId
String
ID de cuenta de OpenID
{{LIBRECHAT_USER_SAMLID}}
samlId
String
ID de cuenta de SAML
{{LIBRECHAT_USER_LDAPID}}
ldapId
String
ID de cuenta de LDAP
{{LIBRECHAT_USER_GITHUBID}}
githubId
String
ID de cuenta de GitHub
{{LIBRECHAT_USER_DISCORDID}}
discordId
String
ID de cuenta de Discord
{{LIBRECHAT_USER_APPLEID}}
appleId
String
ID de cuenta de Apple
{{LIBRECHAT_USER_EMAILVERIFIED}}
emailVerified
Boolean → String
Estado de verificación de correo ("true" o "false")
{{LIBRECHAT_USER_TWOFACTORENABLED}}
twoFactorEnabled
Boolean → String
Estado de 2FA ("true" o "false")
{{LIBRECHAT_USER_TERMSACCEPTED}}
termsAccepted
Boolean → String
Estado de aceptación de términos ("true" o "false")
Nota: Los campos faltantes serán reemplazados por cadenas vacías.
Los marcadores de posición {{LIBRECHAT_BODY_*}} tienen un ámbito de solicitud (request-scoped). LibreChat crea la conexión MCP para la ejecución activa, la reutiliza en las llamadas a herramientas durante esa ejecución y la cierra cuando finaliza la solicitud. Los servidores con ámbito de solicitud se excluyen de la caché persistente de herramientas para que los encabezados y las URLs específicos de la solicitud no se reutilicen fuera de la ejecución activa. Los marcadores de posición {{LIBRECHAT_USER_*}}, {{LIBRECHAT_OPENID_*}} y {{LIBRECHAT_GRAPH_*}} siguen haciendo que el servidor tenga un ámbito de usuario, pero los transportes HTTP actualizan los encabezados resueltos antes de cada llamada a herramienta sin forzar una reconexión por sí mismos.
Tipo: Objeto (Opcional, para los tipos sse y streamable-http)
Descripción: Configuración de autenticación mediante clave API para el servidor MCP. Proporciona una forma estructurada de configurar la autenticación basada en claves API.
Sub-claves:
source: String - De dónde proviene la clave de API. Opciones:
"admin": La clave API está configurada por el administrador (en variables de entorno o configuración)
"user": La clave de API es proporcionada por el usuario a través de la interfaz de usuario
authorization_type: String - Cómo se envía la clave de API en las solicitudes. Opciones:
"bearer": Enviado como Authorization: Bearer <key>
"basic": Enviado como Authorization: Basic <key>
"custom": Enviado en un encabezado personalizado (requiere custom_header)
custom_header: String - (Requerido cuando authorization_type es "custom") El nombre del encabezado a utilizar para la clave de API
Ejemplo:
# Admin-provided API key with Bearer authmy-server: type: streamable-http url: https://api.example.com/mcp apiKey: source: 'admin' authorization_type: 'bearer'# User-provided API key with custom headeranother-server: type: sse url: https://api.example.com/sse apiKey: source: 'user' authorization_type: 'custom' custom_header: 'X-API-Key'
Descripción: Controla cómo se inyectan las instrucciones del servidor MCP en el contexto del agente. Las instrucciones del servidor proporcionan una guía de uso de alto nivel para todo el servidor MCP, complementando las descripciones de las herramientas individuales.
Opciones:
undefined (predeterminado): No se incluyen instrucciones
true: Utilizar las instrucciones proporcionadas por el servidor (si están disponibles); ideal para servidores bien documentados con una guía exhaustiva
false: Deshabilita explícitamente las instrucciones; útil para ahorrar tokens de contexto o cuando las herramientas son autoexplicativas
string: Utiliza instrucciones personalizadas (anulan las proporcionadas por el servidor); es ideal para flujos de trabajo específicos de la aplicación o cuando las instrucciones del servidor son insuficientes.
Valor predeterminado:undefined (no se incluyen instrucciones)
Notas:
Las instrucciones se inyectan automáticamente cuando serverInstructions está configurado y las herramientas del servidor están disponibles para el agente.
Varios servidores pueden contribuir cada uno con instrucciones al contexto del agente
Ejemplo:
# Use server-provided instructionsserverInstructions: true# Use custom instructionsserverInstructions: | When using this filesystem server: 1. Always use absolute paths for file operations 2. Check file permissions before attempting write operations# Explicitly disable instructionsserverInstructions: false
Descripción: Variables de entorno a utilizar al iniciar el proceso.
Soporte para marcadores de posición (Placeholder):
{{LIBRECHAT_USER_ID}}: Reemplazado con el ID del usuario actual.
{{LIBRECHAT_USER_*}}: Marcadores de posición dinámicos para campos de usuario (por ejemplo, {{LIBRECHAT_USER_EMAIL}}).
{{CUSTOM_VARIABLE_NAME}}: Reemplazado por el valor proporcionado por el usuario para una variable definida en customUserVars (por ejemplo, {{MY_API_KEY}}).
${ENV_VAR}: Reemplazado con el valor de la variable de entorno del lado del servidor {{ENV_VAR}}.
Tipo: Booleano (Opcional, solo para transportes remotos: sse, streamable-http, websocket)
Descripción: Si este servidor requiere autenticación OAuth. Si no se especifica, se detectará automáticamente durante el inicio del servidor. Aunque es opcional, es mejor establecer este valor explícitamente si sabe si el servidor requiere OAuth o no.
Valor predeterminado: Detectado automáticamente si no se especifica
Notas:
Aplicable a transportes remotos (basados en URL): sse, streamable-http y websocket. No tiene efecto en servidores stdio, los cuales no tienen una URL contra la cual autenticarse.
La detección automática ocurre durante el inicio del servidor, lo cual puede añadir tiempo de inicialización
La configuración explícita mejora el rendimiento de inicio al omitir la detección
Establezca requiresOAuth: false para servidores protegidos únicamente por un encabezado Authorization estático (por ejemplo, una clave API Bearer). La detección automática sondea el servidor sin sus encabezados configurados, por lo que un servidor que responde con un desafío 401 con WWW-Authenticate: Bearer puede ser clasificado erróneamente como protegido por OAuth; este indicador omite ese sondeo y permite que su encabezado estático autentique la conexión normalmente.
Funciona con las variables de entorno de OAuth para MCP (MCP_OAUTH_ON_AUTH_ERROR, MCP_OAUTH_DETECTION_TIMEOUT, MCP_OAUTH_HANDLING_TIMEOUT, MCP_OAUTH_FLOW_TTL) para una gestión de conexiones mejorada.
Descripción: Cómo manejar stderr del proceso hijo. Esto coincide con la semántica de child_process.spawn de Node. Valores de cadena válidos: "pipe", "ignore", "inherit". Alternativamente, se puede usar un número entero no negativo como descriptor de archivo.
Valor predeterminado:"inherit" (los mensajes a stderr se imprimirán en el stderr del proceso padre).
Descripción: Define variables personalizadas que los usuarios pueden configurar para este servidor MCP. Esto permite a los administradores especificar variables (por ejemplo, claves API, URLs) que cada usuario debe configurar individualmente. Estos valores proporcionados por el usuario pueden utilizarse posteriormente en la configuración de headers o env. Los servidores con customUserVars se excluyen automáticamente de las conexiones a nivel de aplicación, lo que garantiza que las credenciales por usuario se resuelvan siempre en tiempo de ejecución.
Estructura:
El objeto customUserVars contiene claves, donde cada clave representa un nombre de variable (por ejemplo, MY_API_KEY). Este nombre se utilizará en marcadores de posición como {{MY_API_KEY}}.
Cada nombre de variable es un objeto con las siguientes subclaves:
title: String (Requerido) - Un título fácil de usar para la variable, que se muestra en la interfaz de usuario de configuración.
description: String (Optional) - A description or instructions for the variable, also displayed in the UI to guide the user. HTML can be used in this field (e.g., to create a link: <a href="https://example.com" target="_blank">More info</a>).
sensitive: Booleano (Opcional) - Controla si el valor se trata como un secreto y se oculta en la UI. Por defecto, se oculta/trata como secreto cuando se omite; establézcalo en false para campos que no sean secretos, como IDs de proyecto o URLs base.
Uso en headers y env:
Una vez definidas bajo customUserVars, estas variables pueden ser referenciadas en las secciones headers (para los tipos sse y streamable-http) o env (para el tipo stdio) utilizando la sintaxis {{VARIABLE_NAME}}.
Los usuarios proporcionan estos valores a través de la interfaz de usuario. Se puede acceder a estos ajustes de dos maneras:
Desde la entrada de chat del asistente: Al seleccionar herramientas MCP para un asistente, aparecerá un icono de configuración junto a los servidores MCP configurables en el menú desplegable de selección de herramientas. Al hacer clic en este icono, se abre un cuadro de diálogo para gestionar las credenciales de ese servidor.
Desde el panel de configuración: Una sección dedicada de "MCP Settings" en el panel derecho enumera todos los servidores MCP con variables personalizadas definibles. Los usuarios pueden hacer clic en un servidor para abrir el cuadro de diálogo de configuración y establecer o actualizar sus credenciales para ese servidor MCP específico.
Estos valores proporcionados por el usuario se almacenan de forma segura, asociados con el usuario individual y el servidor MCP específico, y se sustituyen en tiempo de ejecución.
Ejemplo:
customUserVars: MY_SERVICE_API_KEY: title: 'My Service API Key' description: "Your personal API access key for My Service. Find it at <a href='https://myservice.example.com/settings/api' target='_blank'>My Service API Settings</a>." sensitive: true SOME_OTHER_VAR: title: 'Some Other Variable' description: 'The specific value for some other configuration (e.g., a specific path or identifier).' sensitive: false
Tipo: Objeto (Opcional, solo para los tipos sse y streamable-http)
Descripción: Configura el intercambio de tokens OAuth 2.0 On-Behalf-Of para un servidor MCP. LibreChat intercambia el token de acceso OpenID del usuario que ha iniciado sesión por un token delegado de nivel inferior con los alcances configurados, y luego reenvía ese token al servidor MCP como una cabecera Authorization: Bearer ....
Subclaves requeridas:
scopes: String - Scopes no vacíos solicitados para el intercambio de tokens descendente.
Validación:
obo solo es válido para servidores MCP de tipo sse y streamable-http.
obo es rechazado para servidores stdio y websocket.
Los usuarios necesitan el permiso de rol MCP_SERVERS.CONFIGURE_OBO para configurar este campo. Asígnelo con interface.mcpServers.configureObo o adminístrelo desde el panel de administración.
Requisitos previos:
La autenticación OpenID debe configurarse con tokens de acceso reutilizables.
Tu proveedor de identidad y la aplicación downstream deben permitir el ámbito delegado solicitado.
Descripción: Configuración de OAuth2 para la autenticación con el servidor MCP. Cuando se configura, se solicitará a los usuarios que se autentiquen mediante el flujo OAuth antes de que se pueda utilizar el servidor MCP. Si no se proporciona un client id ni un client secret, se utilizará el Registro Dinámico de Clientes (DCR).
Subclaves requeridas:
authorization_url: String - La URL del endpoint de autorización OAuth
token_url: String - La URL del endpoint de token OAuth
client_id: String - Identificador de cliente OAuth
client_secret: String - Secreto de cliente OAuth
redirect_uri: String - URI de redirección de OAuth (ej. http://localhost:3080/api/mcp/${serverName}/oauth/callback)
scope: String - Alcances de OAuth (separados por espacios)
Subclaves opcionales:
grant_types_supported: Matriz de Strings - Tipos de concesión admitidos (por defecto ["authorization_code", "refresh_token"])
token_endpoint_auth_methods_supported: Matriz de Strings - Métodos de autenticación del endpoint de token admitidos (por defecto ["client_secret_basic", "client_secret_post"])
token_exchange_method: String - Método de solicitud de intercambio de tokens. Utilice default_post para proveedores que esperan las credenciales de cliente OAuth en el cuerpo de la solicitud POST.
response_types_supported: Matriz de Strings - Tipos de respuesta admitidos (el valor predeterminado es ["code"])
code_challenge_methods_supported: Matriz de cadenas - Métodos de desafío de código PKCE admitidos (por defecto ["S256", "plain"])
skip_code_challenge_check: Booleano - Omite la verificación de si el proveedor de OAuth anuncia soporte para PKCE. Útil para proveedores como AWS Cognito que admiten S256 pero no lo anuncian en sus metadatos. (el valor predeterminado es false)
Variables de entorno: Los campos de URL de OAuth definidos en YAML, incluyendo authorization_url, token_url, redirect_uri y revocation_endpoint, pueden utilizar referencias ${ENV_VAR}. LibreChat resuelve el valor del entorno antes de la validación de la URL. Las URLs de endpoint de OAuth gestionadas por el usuario y enviadas a través de la interfaz de usuario deben ser URLs literales y rechazar los marcadores de posición ${ENV_VAR}.
Descripción: Encabezados utilizados específicamente para solicitudes de flujo OAuth. Estos encabezados se utilizan durante la autenticación OAuth, como el registro dinámico de clientes y el intercambio de tokens, y no se envían durante la comunicación regular del servidor MCP.
Casos de uso comunes:
Agregar autenticación a los endpoints de registro dinámico de clientes, como Authorization: Bearer ${DCR_API_KEY}
Incluyendo encabezados personalizados específicos del proveedor requeridos para flujos OAuth
Configuración de los encabezados necesarios para los endpoints de tokens OAuth
Diferencias clave con headers:
headers: Se envían con las solicitudes regulares del servidor MCP una vez que se completa la autenticación
oauth_headers: Enviado solo durante los flujos de autenticación OAuth
Descripción: Cuando se establece en false, este servidor MCP no se conectará al iniciar la aplicación. Esto es útil para servidores que requieren entrada o configuración del usuario antes de conectarse, o para casos en los que desea controlar cuándo se inicializa el servidor.
Si se especifica url y comienza con http:// o https://, type toma sse como valor predeterminado.
Si se especifica url y comienza con ws:// o wss://, type toma websocket como valor predeterminado.
Si se especifica command, type toma stdio como valor predeterminado.
Tipos de conexión:
stdio: Inicia un servidor MCP como un proceso hijo y se comunica a través de la entrada/salida estándar.
websocket: Se conecta a un servidor MCP externo a través de WebSocket.
sse: Se conecta a un servidor MCP externo a través de Server-Sent Events (SSE).
streamable-http: Se conecta a un servidor MCP externo a través de HTTP con soporte para respuestas en streaming.
Direcciones internas/locales:
Importante: Los servidores MCP que utilizan direcciones IP internas (p. ej., 172.24.1.165, 192.168.1.100) o dominios locales (p. ej., mcp-server, host.docker.internal) deben ser permitidos explícitamente. Utilice mcpSettings.allowedAddresses para servicios específicos de host:puerto privados cuando desee que los destinos públicos sigan siendo accesibles, o mcpSettings.allowedDomains cuando desee una lista blanca estricta.
Consulta MCP Settings para obtener detalles sobre la configuración.
Al usar servidores MCP internos/locales y no se necesite una lista blanca de dominios estricta, configure mcpSettings.allowedAddresses con el host y puerto exactos:
# MCP Settings - Required for internal/local addressesmcpSettings: allowedAddresses: - '172.24.1.165:8000' # Internal IP and port - 'mcp-prod:8001' # Docker container and port - 'host.docker.internal:8080' # Docker host and port# MCP Servers - Individual configurationsmcpServers: prod-mcp: type: streamable-http url: http://172.24.1.165:8000/mcp timeout: 120000 test-mcp: type: streamable-http url: http://mcp-prod:8001/mcp timeout: 120000
my-mcp-server: type: streamable-http url: 'https://api.example-service.com/api/' # Example URL headers: X-Auth-Token: '{{API_KEY}}' # Uses the API_KEY defined below customUserVars: API_KEY: # This key will be used as {{API_KEY}} in headers/url title: 'API Key' # This is the label shown above the input field description: "Get your API key <a href='https://example.com/api-keys' target='_blank'>here</a>." # This description appears below the input
NOTA: Consulta MCP Server Initialization para obtener más información sobre la inicialización de servidores basada en la interfaz de usuario.
# Server that uses its own provided instructionsweb-search: type: streamable-http url: https://example.com/mcp/search serverInstructions: true# Server with instructions explicitly disabledfilesystem: command: npx args: - -y - '@modelcontextprotocol/server-filesystem' - /home/user/documents/ serverInstructions: false# Server with custom instructionspuppeteer: type: stdio command: npx args: - -y - '@modelcontextprotocol/server-puppeteer' serverInstructions: | Browser automation security and best practices: 1. Be cautious with local file access and internal IP addresses 2. Take screenshots to verify successful page interactions 3. Wait for page elements to load before interacting with them 4. Use specific CSS selectors for reliable element targeting 5. Check console logs for JavaScript errors when troubleshooting
# OAuth configuration for MCP serversMCP_OAUTH_ON_AUTH_ERROR=trueMCP_OAUTH_DETECTION_TIMEOUT=10000MCP_OAUTH_HANDLING_TIMEOUT=600000MCP_OAUTH_FLOW_TTL=900000# API key for the serviceCOMPOSIO_API_KEY=your_composio_api_key_here
Importar configuraciones de servidor MCP
Las configuraciones de mcpServers permiten a LibreChat interactuar dinámicamente con varios servidores MCP, los cuales pueden realizar tareas especializadas o proporcionar funcionalidades específicas dentro de la aplicación. Este enfoque modular facilita la extensión de las capacidades de la aplicación simplemente añadiendo o modificando las configuraciones del servidor.
La inicialización ocurre al iniciar, y la aplicación debe reiniciarse para que los cambios surtan efecto.
Si se especifican tanto url como command, el type debe definirse explícitamente para evitar ambigüedades.
Soporte multiusuario:
El MCPManager ahora admite conexiones distintas a nivel de usuario y a nivel de aplicación, lo que permite una gestión de conexiones adecuada por usuario.
Las conexiones de usuario se rastrean y gestionan por separado, con el establecimiento y la limpieza adecuados.
Utilice marcadores de posición de campos de usuario dinámicos en encabezados, URLs y variables de entorno:
{{LIBRECHAT_USER_ID}} - Identificador único del usuario
{{LIBRECHAT_USER_EMAIL}} - Dirección de correo electrónico del usuario
{{LIBRECHAT_USER_USERNAME}} - Nombre de usuario del usuario
{{LIBRECHAT_USER_ROLE}} - Rol del usuario (p. ej., "user", "admin")
Y muchos más campos (consulta la sección de encabezados para ver la lista completa)
Gestión de inactividad del usuario:
Las conexiones de usuario son monitoreadas por actividad y serán desconectadas después de 15 minutos de inactividad.
Variables de entorno:
En env (para el tipo stdio): Útil para configurar entornos de ejecución específicos o configuraciones requeridas por el proceso del servidor MCP.
En headers (para los tipos sse y streamable-http): Utilice la sintaxis ${ENV_VAR} para hacer referencia a variables de entorno en los valores de los encabezados.
Campos de usuario dinámicos:
Los marcadores de posición del campo de usuario se reemplazan en tiempo de ejecución con la información del usuario autenticado.
Solo los campos no confidenciales están disponibles (las contraseñas y otros datos confidenciales están excluidos)
Los campos faltantes se establecen de forma predeterminada como cadenas vacías
Los campos booleanos se convierten a representaciones de cadena ("true" o "false")
Manejo de errores (stderr):
Configurar stderr le permite gestionar cómo se manejan los mensajes de error del proceso del servidor MCP. El valor predeterminado "inherit" significa que los errores se imprimirán en el stderr del proceso padre.
Instrucciones del servidor:
Las instrucciones se inyectan automáticamente en el mensaje del sistema del agente cuando se utilizan herramientas de servidor MCP.
Las Custom instructions (valores de cadena) tienen prioridad sobre las instrucciones proporcionadas por el servidor
Múltiples servidores MCP pueden contribuir cada uno con sus propias instrucciones al contexto del agente
Las instrucciones solo se incluyen cuando las herramientas del servidor MCP correspondiente están realmente disponibles para el agente
Autenticación OAuth:
El flujo OAuth2 es compatible para una autenticación segura con servidores MCP
Se solicitará a los usuarios que se autentiquen mediante OAuth antes de que se pueda utilizar el servidor MCP.
Al configurar correctamente los mcpServers en tu librechat.yaml, puedes mejorar la funcionalidad de LibreChat e integrar herramientas y servicios personalizados sin problemas.