Agregar servidores MCP
Desde la línea de comandos
La forma más rápida de agregar un servidor MCP:--command) implican stdio.
Los servidores MCP remotos usan Streamable HTTP de forma predeterminada. Si el servidor responde con un error HTTP 4xx, como 404 o 405, la CLI recurre a SSE en la misma URL. Los errores de autenticación (un 401 o un 403 por ámbito insuficiente con un challenge
WWW-Authenticate) no activan el fallback; se notifican directamente para que puedas autenticarte. Establece "transport": "sse" explícitamente si es necesario; consulta fallback heredado a SSE más abajo..devin/mcp_config.local.json, ignorado por Git). Usa -s/--scope para cambiarlo:
Mediante un archivo de configuración
Agrega servidores directamente a la secciónmcpServers de tu archivo de configuración de MCP:
La ubicación del archivo de configuración de MCP cambió en v3000.3 (la versión Local 3.6). Las versiones anteriores (a v3000.3) almacenan los servidores MCP en la clave
mcpServers de los archivos de configuración principales (~/.config/devin/config.json, .devin/config.json, .devin/config.local.json). Las versiones más recientes los almacenan en archivos específicos ubicados en las mismas rutas: ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json en Windows), .devin/mcp_config.json y .devin/mcp_config.local.json. Al iniciarse, las entradas de mcpServers que se encuentren en los archivos de configuración principales se migran automáticamente a los archivos específicos.- Configuración del proyecto
- Configuración de usuario
- Anulación local
Los servidores configurados a nivel de proyecto se comparten con tu equipo mediante el control de versiones.
Opciones de configuración de servidores
Los servidores MCP se pueden configurar de dos maneras: como un comando local (transporte stdio) o como un servidor remoto (transporte HTTP).Comando local (stdio)
Servidor remoto (Streamable HTTP)
Ejemplos
GitHub (stdio)
GitHub (stdio)
Notion (HTTP con OAuth)
Notion (HTTP con OAuth)
Después de agregar un servidor con OAuth, ejecuta
devin mcp login notion para autenticarte. Consulta Autenticación a continuación.Linear (HTTP con OAuth)
Linear (HTTP con OAuth)
Atlassian / Jira (HTTP con OAuth)
Atlassian / Jira (HTTP con OAuth)
Después de agregarlo, ejecuta
devin mcp login atlassian para autenticarte. Cada cliente MCP (Windsurf, Claude Code, Devin CLI) mantiene su propia sesión de OAuth, así que debes iniciar sesión por separado aunque ya te hayas autenticado en otra herramienta.Servidor personalizado (stdio)
Servidor personalizado (stdio)
Autenticación
Algunos servidores MCP remotos requieren autenticación mediante OAuth. Después de agregar a tu configuración un servidor basado en OAuth, autentícate con el comandologin:
Si el servidor admite OAuth, también se te pedirá que te autentiques automáticamente la primera vez que se use.
Volver a autenticarse
Las credenciales OAuth almacenadas no duran para siempre: caducan y un administrador puede revocarlas desde el proveedor. Cuando esto ocurre, el servidor informa del estado auth-required en lugar de conectarse, y sus herramientas (y los prompts) dejan de estar disponibles hasta que vuelvas a iniciar sesión. Para volver a autenticarte, borra las credenciales almacenadas y vuelve a ejecutar el flujo en el navegador:logout elimina los tokens guardados de ese servidor; login vuelve a ejecutar el flujo de OAuth y guarda otros nuevos. Haz lo mismo después de cambiar oauthClientId, oauthClientSecret u oauthResource: las credenciales emitidas con la configuración anterior no se reutilizan.
Las integraciones del Editor que controlan Devin CLI mediante ACP muestran el mismo estado de autenticación requerida, con una acción para volver a autenticarse que borra las credenciales guardadas y vuelve a abrir el flujo en el navegador, equivalente al par
logout + login anterior.Clientes OAuth prerregistrados
La mayoría de los servidores MCP basados en OAuth admiten el registro dinámico de clientes (DCR), por lo que Devin CLI se registra automáticamente y no tienes que proporcionar ninguna credencial del cliente. Algunos proveedores (p. ej., GitHub) no admiten DCR y, en su lugar, requieren un cliente OAuth prerregistrado. En esos casos, proporciona el ID del cliente —y el secreto de cliente OAuth, si es un cliente confidencial— medianteoauthClientId / oauthClientSecret:
oauthClientId, Devin CLI omite el registro dinámico de clientes y usa tu cliente prerregistrado durante el flujo de OAuth. Ejecuta devin mcp login <name> (o deja que se active en el primer uso) para autenticarte como de costumbre.
También puedes configurarlos desde la línea de comandos al agregar un servidor o iniciar sesión en él:
oauthClientId / oauthClientSecret son credenciales de cliente de OAuth que se usan durante el flujo de autorización. No son credenciales genéricas por solicitud; si un servidor espera un token estático, usa headers (HTTP) o env (stdio) en su lugar.Anulación del recurso de OAuth
Durante la autorización de OAuth y el intercambio de tokens, Devin CLI envía el parámetroresource de RFC 8707 para que el servidor de autorización pueda emitir tokens restringidos por audiencia. De forma predeterminada, el valor es la URL del servidor MCP. Puedes anularlo con oauthResource:
- Sin establecer (predeterminado): envía
resourcecon la URL del servidor MCP. - Valor no vacío: reemplaza el valor predeterminado por tu valor (p. ej., un URI de ID de aplicación específico).
- Cadena vacía (
""): omite por completo el parámetroresourcetanto de la URL de autorización como del intercambio del token.
oauthResource permite expandir ${env:VAR} y ${file:/path}.
Habilitar y deshabilitar servidores
Puede deshabilitar temporalmente un servidor MCP sin eliminar su configuración. Un servidor deshabilitado se omite durante el descubrimiento de herramientas: sus herramientas no aparecerán y no se iniciará el proceso del servidor."disabled": true en la entrada del servidor del archivo de configuración. Usa -s/--scope para seleccionar un ámbito específico:
Desactivarlo es útil cuando quieres conservar la configuración de un servidor (incluidas las variables de entorno y las credenciales OAuth) y dejar de usarlo temporalmente; por ejemplo, para reducir el tiempo de arranque o aislar un problema.
Gestión de secretos
Para proyectos en equipo, el patrón recomendado es:- Define el servidor en
.devin/mcp_config.jsoncon variables de entorno de ejemplo o sin variables de entorno - Cada miembro del equipo agrega sus claves personales en
.devin/mcp_config.local.json
Permisos de MCP
Puedes aprobar previamente, denegar o hacer que siempre se solicite confirmación para herramientas específicas de MCP en tu configuración de permisos:Prompts
Los prompts no requieren configuración propia: cualquier servidor conectado que declare la capacidadprompts de MCP añade automáticamente comandos de barra diagonal /mcp__<server>__<prompt>. Como el nombre del comando incluye el nombre del servidor, al cambiar el nombre de un servidor en mcpServers también se cambian los nombres de sus comandos de prompt. Consulte Descripción general de MCP: prompts como comandos de barra diagonal.
Restricciones de la organización
Si estás en un equipo Enterprise, tu Admin puede restringir a qué servidores MCP puedes conectarte. Un servidor que hayas configurado puede quedar bloqueado si MCP está deshabilitado para tu equipo o si no está en la lista de permitidos de tu equipo ni en un registro de MCP impuesto; en ese caso, no se conectará y sus herramientas no estarán disponibles. Consulta Team Settings — MCP Registry para obtener más información.Solución de problemas
Autenticación obligatoria / errores de OAuth con servidores remotos
Autenticación obligatoria / errores de OAuth con servidores remotos
Si ves errores como Cada cliente MCP se autentica de forma independiente. Aunque ya te hayas autenticado en Windsurf o Claude Code, debes ejecutar
Auth required o AuthRequired al conectarte a un servidor MCP remoto, significa que el servidor requiere autenticación OAuth.Ejecuta:devin mcp login por separado para Devin CLI.Para comprobar tu estado de autenticación, prueba a eliminar y volver a agregar las credenciales:El servidor no se inicia
El servidor no se inicia
Verifica que el comando funcione fuera de Devin CLI:Comprueba que todas las variables de entorno necesarias estén configuradas.
Las herramientas no aparecen
Las herramientas no aparecen
Pídele al agente que liste los servidores MCP y las herramientas. Puede que el servidor necesite un momento para inicializarse.
Permiso denegado
Permiso denegado
Revisa tu configuración de permisos. De forma predeterminada, las herramientas MCP solicitan aprobación. Agrégalas a
permissions.allow para aprobarlas automáticamente.Errores de OAuth debido al parámetro resource
Errores de OAuth debido al parámetro resource
Algunos servidores de autorización rechazan solicitudes de OAuth que incluyen el parámetro Luego vuelve a autenticarte:Consulta anulación del recurso de OAuth para conocer el conjunto completo de comportamientos de
resource de RFC 8707. Establece oauthResource como una cadena vacía para omitir el parámetro:oauthResource.fallback heredado a SSE
fallback heredado a SSE
Al conectarte a un servidor HTTP, Devin CLI intenta primero Streamable HTTP. Si el servidor responde con un error HTTP 4xx no relacionado con la autenticación (p. ej., 404 o 405), cambia automáticamente a SSE heredado en la misma URL configurada. Esto sigue la guía de compatibilidad con versiones anteriores de la spec de MCP.El fallback solo se activa con respuestas 4xx no relacionadas con la autenticación. Los errores de conexión, los tiempos de espera y las respuestas 5xx se informan directamente sin intentar SSE. Las respuestas que exigen autenticación (un 401, o un 403 por ámbito insuficiente, que incluyan un challenge
WWW-Authenticate) también se informan directamente, para que puedas ejecutar devin mcp login <server-name> (u otorgar el ámbito necesario) en lugar de ver un intento de SSE. Consulta Autenticación obligatoria / errores de OAuth con servidores remotos.Si el endpoint SSE de tu servidor está en una ruta distinta (p. ej., /sse en lugar de /mcp), establece "transport": "sse" con la URL de SSE para conectarte directamente sin intentar Streamable HTTP.Si ambos transportes fallan, el mensaje de error incluye detalles de ambos intentos para facilitar la solución de problemas.
