Nota:
Agente de codificación de Copilot is in versión preliminar pública and subject to change.
Para obtener más información sobre Agente de codificación de Copilot, consulta Acerca de la asignación de tareas a Copilot.
The Model Context Protocol (MCP) is an open standard that defines how applications share context with large language models (LLMs). MCP provides a standardized way to connect AI models to different data sources and tools, enabling them to work together more effectively.
You can use MCP to extend the capabilities of Agente de codificación de Copilot by connecting it to other tools and services.
El agente puede usar herramientas proporcionadas por servidores MCP locales. Por ejemplo, el servidor MCP playwright proporciona herramientas para interactuar con páginas web y extraer contexto adicional al ejecutar en la tarea solicitada.
Para más información sobre MCP, consulta la documentación oficial de MCP. Para obtener información sobre algunos de los servidores MCP disponibles actualmente, consulta el repositorio de servidores MCP.
Nota:
- Agente de codificación de Copilot solo admite herramientas proporcionadas por los servidores MCP. No admite recursos ni indicaciones.
- Agente de codificación de Copilot actualmente solo admite servidores MCP locales. Para obtener más información sobre los tipos de transporte, consulta la documentación oficial de MCP.
Mantenerse seguro con los servidores MCP
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.
Se recomienda restringir los servidores a herramientas de solo lectura. Puedes usar la opción de configuración tools
para exponer solo herramientas conocidas y seguras a Copilot.
Acerca de cómo configurar servidores MCP en un repositorio
Como administrador de repositorios, puedes configurar servidores MCP para su uso en el repositorio. Esto se realiza a través de una configuración con formato JSON que especifica los detalles de los servidores MCP que quieres usar. Especifica la configuración JSON directamente en la configuración del repositorio en GitHub.com.
Una vez configurados los servidores MCP para su uso en un repositorio, las herramientas especificadas en la configuración estarán disponibles para Agente de codificación de Copilot en cada tarea asignada.
Creación de la configuración de JSON 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, playwright
) y el valor es un objeto con la configuración de ese servidor MCP.
{ "mcpServers": { "MCP SERVER 1": { "command": "VALUE", "args": [ VALUES ], ... }, "MCP SERVER 2": { "command": "VALUE", "args": [ VALUES ], ... }, ... } }
{
"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:
command
(string
): comando que se va a ejecutar para iniciar el servidor MCP.args
(string[]
): argumentos que se pasan acommand
.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 permitir la lista de herramientas específicas, pero también puedes habilitar todas las herramientas incluyendo*
en la matriz.type
(string
): campo opcional. Agente de codificación de Copilot solo acepta"local"
.env
(object
): 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 cualquiera de las siguientes opciones:- El nombre de un secreto de GitHub Actions que has configurado, empezando por
COPILOT_MCP_
. - Un valor de cadena.
- El nombre de un secreto de GitHub Actions que has configurado, empezando por
Configuraciones de ejemplo
Ejemplo: Playwright
El servidor MCP de Playwright proporciona herramientas que permiten a Copilot examinar Internet.
{ "mcpServers": { "playwright": { "command": "docker", "args": ["run", "-i", "--rm", "--init", "mcp/playwright"], "tools": ["*"] } } }
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "mcp/playwright"],
"tools": ["*"]
}
}
}
Ejemplo: Sentry
El servidor MCP de Sentry proporciona a Copilot acceso autenticado a excepciones registradas en Sentry.
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON. { "mcpServers": { "sentry": { "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 GitHub Actions secret with a name starting with // `COPILOT_MCP_` "SENTRY_AUTH_TOKEN": "COPILOT_MCP_SENTRY_AUTH_TOKEN" } } } }
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"sentry": {
"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 GitHub Actions secret with a name starting with
// `COPILOT_MCP_`
"SENTRY_AUTH_TOKEN": "COPILOT_MCP_SENTRY_AUTH_TOKEN"
}
}
}
}
Ejemplo: Notion
El servidor MCP de Notion proporciona a Copilot acceso autenticado a notas y otro contenido de Notion.
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON. { "mcpServers": { "notionApi": { "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": ["*"] } } }
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"notionApi": {
"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 servidor MCP de Azure crea una conexión sin problemas entre Copilot y los servicios clave de Azure, como Azure Cosmos DB y la plataforma de Azure Storage.
Para usar MCP de Azure con Agente de codificación de Copilot, debes actualizar el archivo copilot-setup-steps.yml
del repositorio para incluir un paso de flujo de trabajo de inicio de sesión de Azure.
-
Configura OIDC en una aplicación de Microsoft Entra y confía en GitHub. Consulta Uso de la acción de inicio de sesión de Azure con OpenID Connect.
-
Agrega un archivo de flujo de trabajo de Acciones
.github/workflows/copilot-setup-steps.yml
en el repositorio si aún no tienes uno. -
Agrega un paso de inicio de sesión de Azure al trabajo de flujo de trabajo
copilot-setup-steps
.YAML 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@a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0 with: client-id: $ tenant-id: $ subscription-id: $
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@a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0 with: client-id: $ tenant-id: $ subscription-id: $
Esta configuración garantiza que la acción
azure/login
se ejecuta cuando se ejecuta Agente de codificación de Copilot. -
En el entorno de Copilot del repositorio, agrega secretos para
AZURE_CLIENT_ID
,AZURE_TENANT_ID
yAZURE_SUBSCRIPTION_ID
. -
Configura el servidor MCP de Azure agregando un objeto
azure
a la configuración de MCP.JSON { "mcpServers": { "Azure MCP Server": { "command": "npx", "args": [ "-y", "@azure/mcp@latest", "server", "start" ] } } }
{ "mcpServers": { "Azure MCP Server": { "command": "npx", "args": [ "-y", "@azure/mcp@latest", "server", "start" ] } } }
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 codificación de 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 codificación de Copilot, deberás:
- Agregar una clave
tools
para cada servidor MCP, especificando qué herramientas estarán disponibles para Copilot. - Si has configurado
inputs
, cambiar a este medianteenv
directamente. - Si has configurado un elemento
envFile
, cambiar a este medianteenv
directamente. - Actualiza las referencias a
inputs
en la configuraciónargs
para hacer referencia a variables de entorno desdeenv
en su lugar.
Para obtener más información sobre MCP en VS Code, consulta los documentos de VS Code.
Adición de la configuración al repositorio
Los administradores del repositorio pueden configurar servidores MCP siguiendo estos pasos:
-
En GitHub, navegue hasta la página principal del repositorio.
-
En el nombre del repositorio, haz clic en Configuración. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.
-
En la sección "Code & automation" de la barra lateral, haz clic en Copilot y luego en Agente de Copilot.
-
Agrega la configuración en la sección MCP configuration.
-
Haga clic en Save(Guardar).
La configuración se validará para garantizar una sintaxis adecuada.
-
Si el servidor MCP requiere una clave o un secreto, agrega un secreto al entorno de Copilot. Solo los secretos con nombres que tengan el prefijo
COPILOT_MCP_
estarán disponibles para la configuración de MCP. Consulta Configuración de un entorno de Copilot para Agente de codificación de Copilot.
Configuración de un entorno de Copilot para Agente de codificación de Copilot
Algunos servidores MCP requerirán claves o secretos. Para sacar provecho de esos servidores en Agente de codificación de 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.
-
En GitHub, navegue hasta la página principal del repositorio.
-
En el nombre del repositorio, haz clic en Configuración. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.
-
En la barra lateral de la izquierda, haz clic en Entornos.
-
Haga clic en New environment (Nuevo entorno).
-
Llama al nuevo entorno
copilot
y haz clic en Configure environment. -
En "Environment secrets", haz clic en Add environment secret.
-
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.
- Crea una incidencia en el repositorio y asígnala a Copilot.
- Espera unos segundos y Copilot dejará una reacción 👀 sobre la incidencia.
- 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.
- Haz clic en la solicitud de incorporación de cambios creada en la escala de tiempo y espera hasta que aparezca un evento de escala de tiempo "Copilot started work".
- Haz clic en View session para abrir los registros de Agente de codificación de Copilot.
- 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.
- Haz clic en el paso Start MCP Servers para expandir los registros.
- 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 de Copilot.
Personalización del servidor MCP integrado GitHub
El servidor MCP de GitHub está habilitado de manera predeterminada, lo que proporciona a Copilot acceso a datos de GitHub como incidencias y solicitudes de incorporación de cambios.
De manera predeterminada, el servidor MCP se conecta a GitHub con un token de ámbito especial que solo 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.
-
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.
-
En GitHub, navegue hasta la página principal del repositorio.
-
En el nombre del repositorio, haz clic en Configuración. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.
-
En la sección "Code & automation" de la barra lateral, haz clic en Copilot y luego en Agente de Copilot.
-
Agrega la configuración en la sección MCP configuration.
-
Haga clic en Save(Guardar).
-
En la barra lateral de la izquierda, haz clic en Entornos.
-
Haz clic en el entorno
copilot
. -
En "Environment secrets", haz clic en Add environment secret.
-
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.
procedimientos recomendados
-
La habilitación de servidores MCP de terceros para su uso puede afectar al rendimiento del agente y la calidad de las salidas. Revisa el servidor MCP de terceros exhaustivamente y asegúrate de que cumple los requisitos de tu organización.
-
De manera predeterminada, Agente de codificación de Copilot no tiene acceso para escribir herramientas de servidor MCP. Pero algunos servidores MCP contienen estas herramientas. Asegúrate de revisar las herramientas disponibles en el servidor MCP que quieres usar. Actualiza el campo
tools
en la configuración de MCP solo con las herramientas necesarias. -
Revisa cuidadosamente los servidores MCP configurados antes de guardar la configuración para asegurarte de que los servidores correctos están configurados para su uso.