Trae tu propio servidor MCP (BYO)

La característica de servidor MCP Bring Your Own (BYO) permite a las organizaciones registrar sus propios servidores remotos de Protocolo de contexto de modelo (MCP) con Microsoft Agent 365 para una gobernanza centralizada y observabilidad.

Importante

  • Esta característica se encuentra en versión preliminar.
  • Las características en versión preliminar no se han diseñado para un uso de producción y pueden tener una funcionalidad restringida. Estas características están sujetas a condiciones de uso adicionales y están disponibles antes del lanzamiento oficial para que los clientes puedan tener un acceso anticipado y proporcionar comentarios.

Las grandes empresas a menudo construyen y operan servidores MCP internos para impulsar a sus agentes en varios flujos de trabajo comerciales. Estos servidores normalmente se ejecutan fuera de cualquier límite de gobierno organizacional, sin visibilidad del administrador sobre qué herramientas están expuestas, sin aplicación de directivas sobre cómo se invocan y sin telemetría de uso para los equipos de seguridad y cumplimiento. BYO MCP Server soluciona este problema enrutando los servidores registrados a través de Agent 365 Tooling Gateway, lo que proporciona a los administradores de TI control a través del Centro de administración de Microsoft 365 y a los equipos de seguridad los datos de observabilidad que necesitan.

Note

Las superficies de cliente compatibles durante la versión preliminar son Copilot Studio, Visual Studio Code, Claude Code y CLI de GitHub Copilot. No se admiten Fundición de IA de Azure ni Microsoft 365 Declarative Agents.

Cómo funciona un servidor BYO MCP

Un servidor BYO MCP sigue este flujo de desarrollador a administrador para que los servidores MCP remotos se revisen y gobiernen antes de que los agentes puedan acceder a ellos:

  1. Un desarrollador registra el servidor a través de la CLI de Agent 365 y proporciona la dirección URL del servidor, el tipo de autenticación y las herramientas para exponer. Para obtener más información, consulte Registrar un servidor MCP remoto.

  2. Un administrador de TI revisa la solicitud en el Centro de administración de Microsoft 365 y la aprueba o la rechaza. Tras la aprobación, el administrador concede los permisos de Microsoft Entra necesarios para el servidor. Para obtener más información, consulte Revisar y aprobar solicitudes de MCP.

  3. Los clientes admitidos utilizan el servidor aprobado, como Copilot Studio y Visual Studio Code, para crear y probar agentes con invocaciones de herramientas reales. Para obtener más información, consulte Use un servidor MCP aprobado.

  4. El equipo de seguridad supervisa la actividad y las invocaciones de herramientas a través de la búsqueda avanzada de Microsoft Defender para el cumplimiento y la detección de anomalías. Para obtener más información, consulte Supervisar y observar la actividad del servidor MCP.

Importante

Este proceso requiere revisiones de gobernanza y cumplimiento antes de que las integraciones de MCP externas estén disponibles para los usuarios finales.

Note

No puede volver a publicar nuevas versiones del servidor MCP remoto mientras esté en versión preliminar.

Registro de un servidor MCP remoto

Tip

Los administradores pueden usar estos pasos para comprender el proceso de registro o proporcionarlos a un desarrollador.

Usted o un desarrollador pueden registrar un servidor MCP remoto con Agent 365 mediante la CLI. Después del registro, un administrador de TI puede revisar y aprobar el servidor para su uso en superficies para crear agentes.

Lleve a cabo las siguientes tareas:

Requisitos previos del desarrollador

Antes de registrar un servidor MCP remoto, asegúrese de lo siguiente:

  • Ha instalado la CLI de Agent 365 versión 1.1.165-preview o posterior.

  • La entidad de seguridad de servicio de Agent 365 se aprovisiona en su arrendatario. Si no encuentra la entidad de seguridad de servicio asociada al identificador de la aplicación ea9ffc3e-8a23-4a7d-836d-234d7c7565c1, aprovisiónelo mediante alguno de los siguientes recursos:

  • Su servidor MCP tiene un punto de conexión de acceso público.

  • El servidor utiliza uno de los siguientes tipos de autenticación admitidos:

    • NoAuth.
    • APIKey con un parámetro de encabezado o de consulta.
    • ExternalOAuth.
    • EntraOAuth.

Instalar la CLI de Agent 365

Para instalar la CLI de Agent 365, siga las instrucciones de Instalar la CLI de Agent 365.

Registre su servidor MCP

Elija uno de los métodos siguientes para registrar su servidor MCP con Agent 365:

  • Registro manual mediante la CLI: ejecute el a365 develop-mcp register-external-mcp-server comando desde la CLI y proporcione manualmente los detalles del servidor, el tipo de autenticación y las herramientas que expone el servidor MCP.
  • Registro mediante archivo JSON: utilice a365 develop-mcp register-external-mcp-server -f <path-to-file.json> para registrar el servidor MCP proporcionando un archivo JSON que contenga todos los detalles del servidor, el tipo de autenticación y las definiciones de herramienta en un único archivo, en lugar de especificarlos individualmente en la línea de comandos.

Importante

En los ejemplos de esta sección, se usa zava.com como dominio ficticio y nombres genéricos de servidores y herramientas para ilustración. Reemplace estos valores por la URL del servidor, el nombre y los identificadores de herramienta reales.

Los siguientes ejemplos muestran cómo registrar un servidor MCP mediante la CLI de Agent 365 con diferentes tipos de autenticación.

NoAuth

Para servidores MCP que no requieren autenticación:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://mcp.zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type "NoAuth" \
--tools "tool1,tool2"
{
  "serverName": "ext_DocsSearch",
  "serverUrl": "https://docs.contoso.com/api/mcp",
  "authType": "NoAuth",
  "description": "Documentation search MCP Server for Contoso developer docs.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "search_docs",
      "description": "Search Contoso developer documentation and code samples."
    }
  ],
  "remoteScopes": null,
  "externalOAuth": null,
  "apiKey": null
}

APIKey (parámetro de consulta)

Para los servidores que pasan la clave de API como parámetro de consulta:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://mcp.zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type APIKey \
--api-key-location Query \
--api-key-name apiKey \
--tools "tool1,tool2"
{
  "serverName": "ext_MarketData",
  "serverUrl": "https://api.contoso.com/market/mcp",
  "authType": "APIKey",
  "description": "Real-time stock market data and search from Contoso Market Services.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "stock-market-data",
      "description": "Get real-time stock market data and financial information."
    },
    {
      "name": "real-time-search",
      "description": "Search the web for real-time information and news."
    }
  ],
  "remoteScopes": null,
  "externalOAuth": null,
  "apiKey": {
    "location": "Query",
    "name": "apiKey"
  }
}

APIKey (encabezado)

Para los servidores que pasan la clave de API en un encabezado de solicitud:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://mcp.zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type APIKey \
--api-key-location Header \
--api-key-name token \
--tools "tool1,tool2"
{
  "serverName": "ext_InternalTools",
  "serverUrl": "https://tools.contoso.com/mcp",
  "authType": "APIKey",
  "description": "Contoso internal tools MCP Server with API key authentication.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "tool1",
      "description": "First tool exposed by the server."
    },
    {
      "name": "tool2",
      "description": "Second tool exposed by the server."
    }
  ],
  "remoteScopes": null,
  "externalOAuth": null,
  "apiKey": {
    "location": "Header",
    "name": "X-API-Key"
  }
}

ExternalOAuth

Para servidores que se autentican a través de un proveedor de OAuth externo:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type ExternalOAuth \
--idp-authorization-url "https://idp.zava.com/o/oauth2/v2/auth" \
--idp-token-url "https://idp.zava.com/oauth2/token" \
--idp-scopes "https://api.zava.com/read" \
--idp-client-id "<your-client-id>" \
--idp-client-secret "<your-client-secret>" \
--remote-scopes "https://api.zava.com/read" \
--tools "tool1,tool2"

{
  "serverName": "ext_Analytics",
  "serverUrl": "https://analytics.contoso.com/mcp",
  "authType": "ExternalOAuth",
  "description": "Contoso Analytics MCP Server for dataset and query operations.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "list_datasets",
      "description": "List all available analytics datasets."
    }
  ],
  "remoteScopes": "https://analytics.contoso.com/.default",
  "externalOAuth": {
    "authorizationUrl": "https://auth.contoso.com/oauth2/authorize",
    "tokenUrl": "https://auth.contoso.com/oauth2/token",
    "scopes": "https://analytics.contoso.com/.default",
    "clientId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "clientSecret": "<your-client-secret>"
  },
  "apiKey": null
}

EntraOAuth

Para servidores que se autentican mediante Microsoft Entra ID:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://mcp.zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type EntraOAuth \
--remote-scopes "https://api.zava.com/.default" \
--tools "tool1,tool2"
{
  "serverName": "ext_OrgDirectory",
  "serverUrl": "https://directory.contoso.com/mcp",
  "authType": "EntraOAuth",
  "description": "Contoso organization directory MCP Server secured with Entra OAuth.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "list_users",
      "description": "List users in the organization directory."
    },
    {
      "name": "get_user_profile",
      "description": "Get the profile of a specific user by ID or UPN."
    }
  ],
  "remoteScopes": "api://contoso-directory/.default",
  "externalOAuth": null,
  "apiKey": null
}

Después de registrarse correctamente, envíe el servidor MCP para su revisión por un administrador en el Centro de administración de Microsoft 365.

Evaluar servidores MCP

Puede evaluar la calidad de las definiciones de la herramienta MCP con el a365 develop-mcp evaluate comando. Este comando inspecciona los esquemas de herramientas de su servidor y genera un informe con instrucciones accionables para mejorar los nombres de herramientas, las descripciones y los esquemas de parámetros.

Las comprobaciones semánticas las puntúa una CLI de agente de codificación (CLI de GitHub Copilot o Claude Code) que se ejecuta localmente en el equipo, con su propia cuenta y suscripción de IA. Este comando no envía datos de esquema de herramienta a Microsoft.

Importante

Ejecute evaluate solo en servidores MCP de confianza. Los nombres de herramientas, las descripciones y los esquemas de parámetros del servidor se leen a través de una llamada MCP tools/list estándar y se entregan a un agente de codificación que se ejecuta en tu máquina para su puntuación. Este aviso de confianza se imprime una vez al principio de cada ejecución que utiliza un agente. No se aplica a --eval-engine none, que mantiene todo local.

No necesita un rol de administrador para ejecutar la evaluación. Se ejecuta localmente en la dirección URL del servidor MCP que proporcione y no llama a Azure ni a Microsoft Graph.

Prerequisites

  • Instale la CLI de Agent 365.
  • Para la puntuación semántica (IA), una CLI del agente de codificación instalada localmente:
    • GitHub Copilot CLI: instalar con npm install -g @github/copilot (Node.js 18 o posterior). Este es el binario independiente copilot, no la extensión de gh copilot GitHub CLI.
    • Claude Code: Instale con npm install -g @anthropic-ai/claude-code, o siga la instalación de Claude Code.
  • Si no está instalado ninguno de los dos agentes, el comando sigue ejecutando las comprobaciones deterministas y escribe la lista de comprobación, después se detiene para que pueda puntuar las comprobaciones semánticas con su propio LLM (bring-your-own-LLM). Pase --eval-engine none para omitir el sondeo del agente por completo.

Cómo funciona la evaluación

El comando ejecuta una canalización de cinco pasos y registra el progreso como se muestra en la tabla siguiente:

Step Qué hace
1. Descubre las herramientas Se conecta al servidor MCP, llama tools/listy captura el esquema de cada herramienta.
2. Generar lista de comprobación Escribe <server-name>_checklist.json en el directorio de salida.
3. Ejecutar la evaluación semántica Entrega la lista de comprobación al agente de codificación seleccionado para que la puntúe. Omitido cuando --eval-engine none o no hay ningún agente disponible.
4. Analizar Agrega puntuaciones generales y por herramienta y determina el nivel de madurez.
5. Escribir informes Produce <server-name>_eval_report.html y <server-name>_eval_report.json.

Cada comprobación es uno de dos tipos:

  • Determinista: lógica basada en reglas en la CLI; éxito o fallo es exacto y no necesita inteligencia artificial (por ejemplo, "el nombre de la herramienta no está vacío").
  • Semántica: Puntuada por el agente de codificación, con una reason cadena que explica el juicio.

La ejecución es idempotente. Volver a ejecutar el mismo comando reutiliza un <server-name>_checklist.json existente y omite la detección del servidor, que es como funciona el flujo completo de trae tu propio LLM: puntúe la lista de comprobación usted mismo y, a continuación, vuelva a ejecutar el comando para reanudar. Elimine el archivo de lista de comprobación para forzar una detección nueva después de cambiar los esquemas de herramientas.

Examples

Evalúe un servidor local con selección automática de motor:

a365 develop-mcp evaluate --server-url "http://localhost:5000/mcp"

Evalúe un servidor autenticado, con el token suministrado a través de una variable de entorno y artefactos escritos en una subcarpeta:

$env:A365_MCP_AUTH_TOKEN = "<bearer-token>"
a365 develop-mcp evaluate --server-url "https://my-mcp-server.contoso.com/mcp" --output-dir "./eval"

Genere solo la lista de verificación, luego califíquela con su propio LLM:

a365 develop-mcp evaluate --server-url "https://my-mcp-server.contoso.com/mcp" --eval-engine none

Forzar un motor de puntuación específico:

a365 develop-mcp evaluate --server-url "http://localhost:5000/mcp" --eval-engine claude-code

Lee el informe

Abra <server-name>_eval_report.html desde el directorio de salida en un explorador. El informe muestra lo siguiente:

  • La puntuación general (0-100; cuanto más alto, mejor).
  • Las puntuaciones por herramienta con desgloses de categorías: nombre de la herramienta, descripción de la herramienta, nombre del parámetro, descripción del parámetro y estructura del esquema.
  • Una lista de elementos de acción priorizados, ordenada por impacto, que incluye los requisitos concretos para alcanzar el siguiente nivel de madurez.

Captura de pantalla del informe develop-mcp evaluate HTML que muestra la puntuación de calidad general, el nivel de madurez, los recuentos de claves y las puntuaciones de categoría por dimensión.

Manejo de datos y transparencia de IA

  • El comando solo procesa los esquemas de herramientas estáticas de tu servidor MCP (nombres, descripciones y esquemas de parámetros) desde tools/list. No procesa cargas en tiempo de ejecución, datos de usuario final o datos personales.
  • La CLI del agente de codificación se ejecuta en el equipo con cargo a tu propia suscripción de IA. La llamada a la API del modelo se realiza directamente por esa CLI al proveedor de IA según tus condiciones de servicio y facturación. La a365 CLI especifica el modelo, pero no intermedia la llamada.
  • El --auth-token valor se almacena en la memoria, se envía solo como encabezado HTTP Authorization al servidor y nunca se escribe en el disco ni se pasa al agente de codificación.
  • Los archivos de salida (_checklist.json, _eval_report.html, _eval_report.json) solo se escriben en tu --output-dir y permanecen en él.

Troubleshooting

Usa la siguiente guía de solución de problemas para diagnosticar errores comunes y aplicar la solución recomendada.

Síntoma Causa probable Corregir
Unauthorized de tools/list Token bearer incorrecto o caducado Vuelva a adquirir el token y páselo por A365_MCP_AUTH_TOKEN.
Unknown eval engine Valor --eval-engine no válido Usa uno de auto, github-copilot, claude-code, o none.
La pipeline se detiene después de [2/5] No hay ningún agente de codificación en PATH Instale la CLI de GitHub Copilot o Claude Code, o califique la lista de comprobación usted mismo y vuelva a ejecutarla.
--output-dir cannot be empty or whitespace Se pasó un valor vacío a --output-dir Pase una ruta de acceso de directorio válida u omita la opción de utilizar el directorio actual.
Failed to read existing checklist El archivo de lista de comprobación está bloqueado o con formato incorrecto Elimine el archivo de lista de comprobación para forzar una detección nueva en la siguiente ejecución.

Revisar y aprobar las solicitudes del servidor BYO MCP

Después de que un desarrollador registre un servidor BYO MCP, un administrador lo revisa y aprueba de la misma manera que cualquier otra solicitud de herramienta. Para ver los pasos completos de revisión y aprobación, consulte Revisar y aprobar solicitudes de MCP.

Controles clave de gobernanza

En la tabla siguiente se resumen los controles de gobernanza clave:

Control Description
Aprobación o rechazo Un administrador aprueba o rechaza cada servidor BYO MCP antes de que se pueda usar.
Bloqueo a nivel de servidor Un administrador puede bloquear los servidores aprobados en cualquier momento. La aplicación de restricciones en tiempo de ejecución impide que los agentes invoquen servidores bloqueados.
Bloque de nivel de herramienta Un administrador puede permitir o bloquear herramientas individuales en un servidor BYO en lugar de todo el servidor. Esta funcionalidad se está implementando para los servidores MCP admitidos registrados en Agent 365. La compatibilidad con los servidores BYO MCP está prevista para una versión futura. Para obtener más información, consulte Administración de herramientas individuales dentro de un servidor MCP.
Resumen de herramientas Un administrador puede ver las herramientas declaradas por cada servidor MCP.
Aplicación en tiempo de ejecución Los servidores MCP bloqueados no se pueden invocar en tiempo de ejecución en ninguna superficie de cliente.
Delete Un administrador puede eliminar un servidor BYO MCP registrado que ya no sea necesario. Para obtener más información, consulte Eliminar un servidor BYO MCP.

Usa un servidor MCP aprobado

Después de que se apruebe un servidor MCP y de que Microsoft Entra conceda consentimiento, puede usarlo en superficies compatibles de creación de agentes. Las siguientes interfaces de cliente admiten servidores BYO MCP aprobados durante la versión preliminar:

Client Status
Copilot Studio Soportado
Código de Visual Studio Soportado
Claude Code Soportado
CLI de GitHub Copilot Soportado

En Copilot Studio, siga estos pasos para invocar el servidor MCP de BYO aprobado:

  1. Ve a Copilot Studio en tu entorno.

  2. Cree un nuevo agente personalizado (o abra uno existente).

  3. Vaya a la sección Herramientas y seleccione Servidor MCP.

  4. Seleccione el servidor MCP del registro.

  5. Pruebe el agente escribiendo un mensaje que invoque el servidor MCP.

Note

La primera vez que invoque el servidor, es posible que se le pida que complete una configuración de conexión única. Siga la dirección URL proporcionada para crear la conexión necesaria, como escribir la clave de API de un servidor basado en APIKey. Cuando termine, vuelva con su agente y vuelva a intentar el prompt. Después de una invocación correcta, el servidor MCP devuelve la salida de la herramienta.

Obtenga información sobre cómo invocar servidores BYO MCP aprobados desde Claude Code, VS Code y la CLI de GitHub Copilot en la sección Configurar servidores MCP de Work IQ para agentes de codificación de la introducción a Work IQ MCP.

Supervisar y observar la actividad del servidor MCP

Use Microsoft Defender Advanced hunting para realizar un seguimiento y analizar las invocaciones del servidor MCP. Este proceso muestra qué agentes invocan qué servidores MCP, cuándo se producen las invocaciones y otros metadatos que pueden ayudarle a detectar un uso inusual o no autorizado.

La siguiente consulta de KQL proporciona un ejemplo de la búsqueda avanzada de Defender:

CloudAppEvents
| where ActionType in ( "ExecuteToolByGateway")
| where RawEventData contains "tool name"

Esta consulta devuelve detalles como el nombre del agente, el nombre del servidor MCP y los metadatos de invocación.

Eliminar un servidor MCP BYO

Puede eliminar un servidor BYO MCP registrado en el Centro de administración de Microsoft 365 cuando ya no lo necesite. Al eliminar un servidor, se quita del Registro y los agentes ya no pueden invocarlo.

Para eliminar un servidor MCP BYO, siga estos pasos:

  1. Inicie sesión en el Centro de administración de Microsoft 365.
  2. Seleccione Agentes> y, a continuación, seleccione la pestaña Registro.
  3. Seleccione el servidor BYO MCP que desea eliminar y abra su panel de información general.
  4. Seleccione Eliminar.
  5. Seleccione Eliminar para confirmar la eliminación.