Skip to main content

Agregar servidores MCP

Desde la línea de comandos

La forma más rápida de agregar un servidor MCP:
El tipo de transporte se infiere automáticamente: una URL implica HTTP (Streamable HTTP), y los argumentos al final (o --command) implican stdio.
Los servidores MCP remotos usan Streamable HTTP de forma predeterminada. Si el servidor responde con un error HTTP 4xx, la CLI recurre a SSE en la misma URL. Establece "transport": "sse" explícitamente si es necesario; consulta fallback heredado a SSE más abajo.
De forma predeterminada, los servidores se guardan en el ámbito local (.devin/mcp_config.local.json, ignorado por Git). Usa -s/--scope para cambiarlo:
También puedes gestionar servidores desde la línea de comandos:

Mediante un archivo de configuración

Agrega servidores directamente a la sección mcpServers 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.
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

Después de agregar un servidor con OAuth, ejecuta devin mcp login notion para autenticarte. Consulta Autenticación a continuación.
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.

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 comando login:
Por ejemplo:
Se abre una ventana del navegador en la que puedes autorizar el acceso. Los tokens de OAuth se almacenan localmente y se actualizan automáticamente. Opcionalmente, puedes solicitar ámbitos específicos de OAuth:
Para eliminar las credenciales OAuth almacenadas para un servidor:
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— mediante oauthClientId / oauthClientSecret:
Cuando se establece 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.
No confirmes un secreto de cliente OAuth en una configuración compartida. Haz referencia a él desde una variable de entorno (${env:VAR}), léelo desde un archivo (${file:/path}) o colócalo en .devin/mcp_config.local.json (ignorado por git). Consulta la sección “Gestión de secretos” más abajo.

Anulación del recurso de OAuth

Durante la autorización de OAuth y el intercambio de tokens, Devin CLI envía el parámetro resource 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:
El campo tiene tres comportamientos:
  • Sin establecer (predeterminado): envía resource con 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ámetro resource tanto de la URL de autorización como del intercambio del token.
También puedes establecerlo desde la línea de comandos al agregar un servidor o iniciar sesión en él:
Al igual que otros campos de OAuth, 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.
Esto establece el indicador "disabled": true en la entrada del servidor del archivo de configuración. Usa -s/--scope para seleccionar un ámbito específico:
También puedes establecer este indicador directamente en tu archivo de configuración:
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

Nunca confirmes claves de API ni secretos en el control de versiones. Usa .devin/mcp_config.local.json para los valores sensibles.
Para proyectos en equipo, el patrón recomendado es:
  1. Define el servidor en .devin/mcp_config.json con variables de entorno de ejemplo o sin variables de entorno
  2. Cada miembro del equipo agrega sus claves personales en .devin/mcp_config.local.json
El archivo de configuración local se excluye automáticamente de git.

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:
Patrones de coincidencia de permisos:

Prompts

Los prompts no requieren configuración propia: cualquier servidor conectado que declare la capacidad prompts 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

Si ves errores como Auth required o AuthRequired al conectarte a un servidor MCP remoto, significa que el servidor requiere autenticación OAuth.Ejecuta:
Cada cliente MCP se autentica de forma independiente. Aunque ya te hayas autenticado en Windsurf o Claude Code, debes ejecutar devin mcp login por separado para Devin CLI.Para comprobar tu estado de autenticación, prueba a eliminar y volver a agregar las credenciales:
Verifica que el comando funcione fuera de Devin CLI:
Comprueba que todas las variables de entorno necesarias estén configuradas.
Pídele al agente que liste los servidores MCP y las herramientas. Puede que el servidor necesite un momento para inicializarse.
Revisa tu configuración de permisos. De forma predeterminada, las herramientas MCP solicitan aprobación. Agrégalas a permissions.allow para aprobarlas automáticamente.
Algunos servidores de autorización rechazan solicitudes de OAuth que incluyen el parámetro resource de RFC 8707. Establece oauthResource como una cadena vacía para omitir el parámetro:
Luego vuelve a autenticarte:
Consulta anulación del recurso de OAuth para conocer el conjunto completo de comportamientos de oauthResource.
Al conectarte a un servidor HTTP, Devin CLI intenta primero Streamable HTTP. Si el servidor responde con un error HTTP 4xx (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 cambio automático solo se activa con respuestas 4xx: los errores de conexión, los tiempos de espera y las respuestas 5xx se informan directamente sin intentar SSE.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.