Skip to main content

Extensión del agente de codificación de GitHub Copilot con el protocolo de contexto de modelo (MCP)

Descubre cómo usar el protocolo de contexto de modelo (MCP) para ampliar las capacidades de Agente de programación Copilot.

Requisito previo

Antes de configurar un servidor MCP para Agente de programación Copilot, lee Protocolo de contexto de modelo (MCP) y agente de codificación GitHub Copilot para asegurarte de comprender los conceptos relacionados con los servidores MCP y Agente de programación Copilot.

Presentación

Como administrador de repositorios, puedes configurar servidores MCP para su uso en el repositorio. Para esto, usa una configuración con formato JSON que especifique los detalles de los servidores MCP que quieres usar. Especifica la configuración JSON directamente en la configuración del repositorio en GitHub.com.

Los administradores de la organización y de la empresa también pueden configurar servidores MCP como parte de agentes personalizados mediante la cabecera de YAML. Para más información, consulta Configuración de agentes personalizados.

Advertencia

Una vez configurado un servidor MCP, Copilot podrá usar las herramientas proporcionadas por el servidor de forma autónoma y no solicitará tu aprobación antes de usarlas.

Nota:

  • Agente de programación Copilot solo admite herramientas proporcionadas por los servidores MCP. No admite recursos ni indicaciones.
  • Agente de programación Copilot no admite actualmente servidores MCP remotos que aprovechen OAuth para la autenticación y la autorización.

Adición de una configuración de MCP al repositorio

Los administradores del repositorio pueden configurar servidores MCP siguiendo estos pasos:

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. Debajo del nombre del repositorio, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la sección "Código y automatización" de la barra lateral, haga clic en Copilot y luego en Agente de codificación.

  4. Agrega la configuración en la sección MCP configuration.

    En las secciones siguientes de este artículo se explica cómo escribir la configuración JSON que debes escribir aquí.

  5. Haz clic en Guardar.

    La configuración se validará para garantizar una sintaxis adecuada.

  6. Si el servidor MCP requiere una variable, clave o secreto, agregue una variable o un secreto al entorno Copilot . Solo las variables y secretos con nombres con COPILOT_MCP_ prefijo estarán disponibles para la configuración de MCP. Consulta Configuración de un entorno de Copilot para Agente de programación Copilot.

Escritura de una configuración JSON para servidores MCP

Los servidores MCP se configuran con un formato JSON especial. El JSON debe contener un objeto mcpServers, donde la clave es el nombre del servidor MCP (por ejemplo, sentry) y el valor es un objeto con la configuración de ese servidor MCP.

JSON
{
  "mcpServers": {
    "MCP SERVER 1": {
      "command": "VALUE",
      "args": [ VALUES ],
      ...
    },
    "MCP SERVER 2": {
      "command": "VALUE",
      "args": [ VALUES ],
      ...
    },
    ...
  }
}

El objeto de configuración puede contener las claves siguientes:

          **Claves necesarias para servidores MCP locales y remotos**

* tools (string[]): herramientas del servidor MCP que se va a habilitar. Puedes encontrar una lista de herramientas en la documentación del servidor o en su código. Se recomienda encarecidamente incluir en la lista de permitidos herramientas específicas de solo lectura, ya que el agente podrá usar estas herramientas de forma autónoma y no le pedirá primero la aprobación. También puedes habilitar todas las herramientas incluyendo * en la matriz. * type (string): Agente de programación Copilot acepta "local", "stdio", "http"o "sse".

          **Claves específicas de MCP local**

* command (string): necesario. Comando que se va a ejecutar para iniciar el servidor MCP. * args (string[]): necesario. Argumentos que se pasan a command. * env (object): opcional. Variables de entorno que se van a pasar al servidor. Este objeto debe asignar el nombre de la variable de entorno que se debe exponer al servidor MCP a uno de los siguientes:

  • Referencia de sustitución a un secreto o variable en el entorno Copilot, como $COPILOT_MCP_API_KEY o ${COPILOT_MCP_API_KEY}. Los nombres a los que se hace referencia deben comenzar por COPILOT_MCP_.

  • Un valor de cadena literal.

          **Claves específicas de MCP remoto**
    
  •         `url` (`string`): necesario. Dirección URL del servidor MCP.
    
  •         `headers` (`object`): opcional. Encabezados que se van a adjuntar a las solicitudes al servidor. Este objeto debe asignar el nombre de las claves de encabezado a uno de los siguientes elementos:
    
    • Referencia de sustitución para un secreto o una variable dentro del entorno Copilot, como $COPILOT_MCP_API_KEY o ${COPILOT_MCP_API_KEY}. Los nombres a los que se hace referencia deben comenzar por COPILOT_MCP_.
    • Valor de cadena literal.

Tenga en cuenta que todos los campos string y string[], además de tools & type, admiten la sustitución con una variable o un secreto que haya configurado en su entorno de Copilot.

Sustitución de variables

Se admiten los siguientes patrones de sintaxis para hacer referencia a variables de entorno configuradas en el entorno Copilot :

SintaxisEjemplo
$VAR$COPILOT_MCP_API_KEY
${VAR}${COPILOT_MCP_API_KEY}
${VAR:-default}${COPILOT_MCP_API_KEY:-fallback_value}

Configuraciones de ejemplo

En los ejemplos siguientes se muestran las configuraciones del servidor MCP para distintos proveedores.

  •         [Sentry](#example-sentry)
    
  •         [Notion](#example-notion)
    
  •         [Azure](#example-azure)
    
  •         [Cloudflare](#example-cloudflare)
    
  •         [Azure DevOps](#example-azure-devops)
    
  •         [Atlassian](#example-atlassian)
    

Ejemplo: Sentry

El servidor MCP de Sentry proporciona a Copilot acceso autenticado a excepciones registradas en Sentry.

JavaScript
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
  "mcpServers": {
    "sentry": {
      "type": "local",
      "command": "npx",
      // We can use the $SENTRY_HOST environment variable which is passed to
      // the server because of the `env` value below.
      "args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"],
      "tools": ["get_issue_details", "get_issue_summary"],
      "env": {
        // We can specify an environment variable value as a string...
        "SENTRY_HOST": "https://contoso.sentry.io",
        // or refer to a variable or secret in your Copilot environment
        // with a name starting with `COPILOT_MCP_`
        "SENTRY_ACCESS_TOKEN": "$COPILOT_MCP_SENTRY_ACCESS_TOKEN"
      }
    }
  }
}

Ejemplo: Notion

El servidor MCP de Notion proporciona a Copilot acceso autenticado a notas y otro contenido de Notion.

JavaScript
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
  "mcpServers": {
    "notionApi": {
      "type": "local",
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        // We can use the $NOTION_API_KEY environment variable which is passed to
        // the server because of the `env` value below.
        "OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer $NOTION_API_KEY\", \"Notion-Version\": \"2022-06-28\"}",
       "mcp/notion"
      ],
      "env": {
        // The value of the `COPILOT_MCP_NOTION_API_KEY` secret will be passed to the
        // server command as an environment variable called `NOTION_API_KEY`
        "NOTION_API_KEY": "$COPILOT_MCP_NOTION_API_KEY"
      },
      "tools": ["*"]
    }
  }
}

Ejemplo: Azure

El repositorio Microsoft MCP incluye el servidor MCP de Azure, que permite a Copilot comprender los archivos específicos de Azure y los recursos de Azure dentro de tu suscripción al realizar cambios en el código.

Para configurar automáticamente su repositorio con un archivo copilot-setup-steps.yml para autenticar con Azure, además de los secretos para la autenticación, clone el repositorio localmente y luego ejecute el comando CLI de desarrollador de Azureazd coding-agent config en la raíz del repositorio.

Una vez que haya ejecutado el comando y combinado la solicitud de incorporación de cambios creada, puede agregar la configuración de MCP al repositorio.

JSON
 {
   "mcpServers": {
     "Azure": {
      "type": "local",
      "command": "npx",
      "args": [
        "-y",
        "@azure/mcp@latest",
        "server",
        "start"
       ],
      "tools": ["*"]
     }
   }
 }

Ejemplo: Cloudflare

El servidor MCP de Cloudflare crea conexiones entre los servicios de Cloudflare, incluida la documentación de procesamiento y el análisis de datos.

JSON
{
  "mcpServers": {
    "cloudflare": {
      "type": "sse",
      "url": "https://docs.mcp.cloudflare.com/sse",
      "tools": ["*"]
    }
  }
}

Ejemplo: Azure DevOps

El servidor MCP de Azure DevOps crea una conexión sin problemas entre Copilot y los servicios de Azure DevOps, incluidos los elementos de trabajo, las canalizaciones o la documentación.

Para usar el servidor MCP de Azure DevOps con Agente de programación Copilot, debe actualizar el archivo copilot-setup-steps.yml del repositorio para incluir un paso de flujo de trabajo de inicio de sesión de Azure.

  1. Configura OIDC en una aplicación de Microsoft Entra y confía en GitHub. Consulte Utilice la acción Inicio de sesión de Azure con OpenID Connect.

  2. Configurar el acceso a la organización y los proyectos de Azure DevOps para la identidad de la aplicación. Consulta Agregar usuarios de la organización y administrar el acceso.

  3. Agrega un archivo de flujo de trabajo de Acciones .github/workflows/copilot-setup-steps.yml en el repositorio si aún no tienes uno.

  4. Agrega un paso de inicio de sesión de Azure al trabajo de flujo de trabajo copilot-setup-steps.

    YAML
    # Este flujo de trabajo usa acciones que no GitHub no certifica.
    # Estas las proporcionan entidades terceras y las gobiernan
    # condiciones de servicio, políticas de privacidad y documentación de soporte
    # en línea.
    on:
      workflow_dispatch:
    permissions:
      id-token: write
      contents: read
    jobs:
      copilot-setup-steps:
        runs-on: ubuntu-latest
        permissions:
          id-token: write
          contents: read
        environment: copilot
        steps:
          - name: Azure login
            uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5
            with:
              client-id: ${{ secrets.AZURE_CLIENT_ID }}
              tenant-id: ${{ secrets.AZURE_TENANT_ID }}
              allow-no-subscriptions: true
    

    Esta configuración garantiza que la acción azure/login se ejecuta cuando se ejecuta Agente de programación Copilot.

  5. En el entorno de Copilot del repositorio, agrega secretos para AZURE_CLIENT_ID y AZURE_TENANT_ID.

  6. Configura el servidor MCP de Azure DevOps agregando un objeto ado a la configuración de MCP con las herramientas definidas que deseas que use Agente de programación Copilot.

JSON
{
  "mcpServers": {
    "ado": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp", "<your-azure-devops-organization>", "-a", "azcli"],
      "tools": ["wit_get_work_item", "wit_get_work_items_batch_by_ids", ...]
    }
  }
}

Ejemplo: Atlassian

El servidor Atlassian MCP proporciona a Copilot acceso con autenticación a las aplicaciones de Atlassian, como Jira, Compass y Confluence.

Para obtener más información sobre la autenticación en el servidor MCP de Atlassian mediante una clave de API, consulte Configuración de la autenticación mediante token de API en la documentación de Atlassian.

JavaScript
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
  "mcpServers": {
    "atlassian-rovo-mcp": {
      "command": "npx",
      "type": "local",
      "tools": ["*"],
      "args": [
        "mcp-remote@latest",
        "https://mcp.atlassian.com/v1/mcp",
        // We can use the $ATLASSIAN_API_KEY environment variable which is passed
        // to the server because of the `env` value below.
        "--header",
        "Authorization: Basic $ATLASSIAN_API_KEY"
      ],
      "env": {
        // The value of the `COPILOT_MCP_ATLASSIAN_API_KEY` secret will be passed
        // to the server command as an environment variable
        // called `ATLASSIAN_API_KEY`.
        "ATLASSIAN_API_KEY": "$COPILOT_MCP_ATLASSIAN_API_KEY"
      }
    }
  }
}

Reutilización de la configuración de MCP desde Visual Studio Code

Si ya has configurado servidores MCP en VS Code, puedes aprovechar una configuración similar para Agente de programación Copilot.

En función de cómo se configura VS Code, es posible que puedas encontrar la configuración de MCP en el archivo .vscode/mcp.json del repositorio o en el archivo settings.json privado de la máquina.

Para adaptar la configuración de Agente de programación Copilot, deberás:

  1. Agregar una clave tools para cada servidor MCP, especificando qué herramientas estarán disponibles para Copilot.
  2. Si has configurado inputs, cambiar a este mediante env directamente.
  3. Si has configurado un elemento envFile, cambiar a este mediante env directamente.
  4. Actualiza las referencias a inputs en la configuración args para hacer referencia a variables de entorno desde env en su lugar.

Para obtener más información sobre MCP en VS Code, consulta los documentos de VS Code.

Configuración de un entorno de Copilot para Agente de programación Copilot

Algunos servidores MCP requerirán claves o secretos. Para sacar provecho de esos servidores en Agente de programación Copilot, puedes agregar secretos a un entorno para Copilot. Esto garantiza que los secretos se reconozcan correctamente y se pasen al servidor MCP aplicable que has configurado.

Debes ser administrador de repositorios a fin de configurar un entorno de Copilot para el repositorio.

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. Debajo del nombre del repositorio, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la barra lateral de la izquierda, haz clic en Entornos.

  4. Haga clic en New environment (Nuevo entorno).

  5. Llama al nuevo entorno copilot y haz clic en Configure environment.

  6. En "Environment secrets", haz clic en Add environment secret.

  7. Asigna al secreto un nombre que comience por COPILOT_MCP_, agrega el valor del secreto y luego haz clic en Add secret.

Validación de la configuración de MCP

Una vez que hayas configurado la configuración de MCP, debes probarla para asegurarte de que está configurada correctamente.

  1. Crea una incidencia en el repositorio y asígnala a Copilot.
  2. Espera unos segundos y Copilot dejará una reacción 👀 sobre la incidencia.
  3. Espera unos segundos más y Copilot creará una solicitud de incorporación de cambios, que aparecerá en la escala de tiempo de la incidencia.
  4. Haga clic en la solicitud de incorporación de cambios creada en la cronología y espere hasta que aparezca un evento en la cronología indicando "Copilot ha comenzado el trabajo".
  5. Haz clic en View session para abrir los registros de Agente de programación Copilot.
  6. Haz clic en el botón de puntos suspensivos (...) situado en la parte superior derecha del visor de registros y luego en Copilot en la barra lateral.
  7. Haz clic en el paso Start MCP Servers para expandir los registros.
  8. Si los servidores MCP se han iniciado correctamente, verás sus herramientas en la parte inferior de los registros.

Si los servidores MCP requieren dependencias que no estén instaladas en el ejecutor GitHub Actions de manera predeterminada, como uv y pipx, o que necesiten pasos de configuración especiales, es posible que tengas que crear un archivo de flujo de trabajo de Acciones copilot-setup-steps.yml para instalarlos. Para más información, consulta Personalización del entorno de desarrollo para el agente de codificación GitHub Copilot.

Personalización del servidor MCP integrado GitHub

El servidor MCP de GitHub está habilitado de manera predeterminada y se conecta a GitHub con un token de ámbito especial que únicamente tiene acceso de solo lectura al repositorio actual.

Si quieres permitir que Copilot acceda a datos fuera del repositorio actual, puedes proporcionarle un personal access token con acceso más amplio.

  1. Crea un personal access token con los permisos adecuados. Se recomienda usar un fine-grained personal access token, donde puedes limitar el acceso del token a permisos de solo lectura en repositorios específicos. Para más información sobre personal access tokens, consulta Administración de tokens de acceso personal.

  2. En GitHub, navegue hasta la página principal del repositorio.

  3. Debajo del nombre del repositorio, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  4. En la sección "Código y automatización" de la barra lateral, haga clic en Copilot y luego en Agente de codificación.

  5. Agrega la configuración en la sección MCP configuration. Por ejemplo, puede agregar lo siguiente:

    JavaScript
     // If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
     {
       "mcpServers": {
         "github-mcp-server": {
           "type": "http",
           // Remove "/readonly" to enable wider access to all tools.
           // Then, use the "X-MCP-Toolsets" header to specify which toolsets you'd like to include.
           // Use the "tools" field to select individual tools from the toolsets.
           "url": "https://api.githubcopilot.com/mcp/readonly",
           "tools": ["*"],
           "headers": {
             "X-MCP-Toolsets": "repos,issues,users,pull_requests,code_security,secret_protection,actions,web_search"
           }
         }
       }
     }
    

    Para obtener más información sobre los conjuntos de herramientas, consulte el README en la documentación GitHub Servidor MCP Remoto.

  6. Haz clic en Guardar.

  7. En la barra lateral de la izquierda, haz clic en Entornos.

  8. Haz clic en el entorno copilot.

  9. En "Environment secrets", haz clic en Add environment secret.

  10. Llama al secreto COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN, escribe el personal access token en el campo "Value" y luego haz clic en Add secret.

Para obtener información sobre el uso del servidor MCP de GitHub en otros entornos, consulta Uso del servidor MCP de GitHub.

Pasos siguientes

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/create-custom-agents)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/extending-copilot-chat-with-mcp)