Compartir a través de


Exposición y control de un servidor MCP existente

APLICA A: desarrollador | Básico | Básico v2 | Estándar | Estándar v2 | Premium | Premium v2

En este artículo se muestra cómo usar API Management para exponer y controlar un servidor de Protocolo de contexto de modelo remoto (MCP) existente: un servidor de herramientas hospedado fuera de API Management. Exponga y controle las herramientas del servidor a través de API Management para que los clientes de MCP puedan llamarlos mediante el protocolo MCP.

Algunos escenarios de ejemplo son:

  • Realice el proxy de los servidores de herramientas LangChain o LangServe a través de la gestión de API con autenticación por servidor y límites de velocidad.
  • Exponga de forma segura las herramientas basadas en Azure Logic Apps a copilots mediante el filtrado de IP y OAuth.
  • Centralice las herramientas de servidor MCP de Azure Functions y los entornos de ejecución de código abierto en el Centro de API de Azure.
  • Habilite GitHub Copilot, Claude por Anthropic o ChatGPT para interactuar de forma segura con herramientas en toda su empresa.

API Management también admite servidores MCP expuestos de forma nativa en API Management desde las API REST administradas. Para obtener más información, consulte Exponer una API REST como un servidor MCP.

Más información sobre:

Limitaciones

Prerrequisitos

  • Si aún no tiene una instancia de API Management, complete el siguiente inicio rápido: Creación de una instancia de Azure API Management. La instancia debe estar en uno de los niveles de servicio que admita servidores MCP.

  • Acceso a un servidor externo compatible con MCP (por ejemplo, hospedado en Azure Logic Apps, Azure Functions, LangServe u otras plataformas).

  • Credenciales adecuadas para el servidor MCP (como credenciales de cliente o claves de API de OAuth 2.0, según el servidor) para el acceso seguro.

  • Si habilita el registro de diagnóstico a través de Application Insights o Azure Monitor en el ámbito global (todas las API) para la instancia de API Management, establezca la opción Número de bytes de carga para registrar la respuesta de front-end en 0. Esta configuración impide el registro no deseado de cuerpos de respuesta en todas las API y ayuda a garantizar el funcionamiento adecuado de los servidores MCP. Para registrar cargas útiles selectivamente para API específicas, configure los ajustes individualmente en el ámbito de la API, lo que permite un control específico sobre el registro de respuestas.

  • Para probar el servidor MCP, use Visual Studio Code con acceso a GitHub Copilot o una herramienta como MCP Inspector.

Exponer un servidor MCP existente

Siga estos pasos para exponer un servidor MCP existente en API Management:

  1. En Azure Portal, vaya a la instancia de API Management.
  2. En el menú izquierdo, en API, seleccione Servidores> MCP+ Crear servidor MCP.
  3. Seleccione Exponer un servidor MCP existente.
  4. En servidor MCP backend:
    1. Escriba la dirección URL base del servidor MCP existente. Por ejemplo, https://learn.microsoft.com/api/mcp para el servidor MCP de Microsoft Learn.
    2. En Tipo de transporte, HTTP transmitible está seleccionado de forma predeterminada.
  5. En nuevo servidor MCP:
    1. Escriba un nombre para el servidor MCP en API Management.
    2. En Ruta de acceso base, escriba un prefijo de ruta para herramientas. Por ejemplo: mytools.
    3. Opcionalmente, escriba una descripción para el servidor MCP.
  6. Selecciona Crear.

Captura de pantalla de la creación de un servidor MCP en el portal.

  • El servidor MCP se crea y las operaciones del servidor remoto se exponen como herramientas.
  • El servidor MCP aparece en el panel Servidores MCP . La columna Dirección URL del servidor muestra la dirección URL del servidor MCP que se va a llamar para realizar pruebas o dentro de una aplicación cliente.

Captura de pantalla de la lista de servidores MCP en el portal.

Importante

Actualmente, API Management no muestra herramientas del servidor MCP existente. Debe registrar y configurar todas las herramientas en el servidor MCP remoto existente.

Configurar directivas para el servidor MCP

Configure una o varias directivas de API Management para ayudar a administrar el servidor MCP. Las directivas se aplican a todas las operaciones de API expuestas como herramientas en el servidor MCP. Use estas directivas para controlar el acceso, la autenticación y otros aspectos de las herramientas.

Más información sobre la configuración de directivas:

Precaución

No acceda al cuerpo de la respuesta usando la variable context.Response.Body en las políticas del servidor MCP. Al hacerlo, se desencadena el almacenamiento en búfer de respuesta, que interfiere con el comportamiento de streaming requerido por los servidores MCP y puede provocar que no funcionen correctamente.

Para configurar directivas para el servidor MCP, siga estos pasos:

  1. En Azure Portal, vaya a la instancia de API Management.

  2. En el menú de la izquierda, en API, seleccione Servidores MCP.

  3. Seleccione un servidor MCP en la lista.

  4. En el menú izquierdo, en MCP, seleccione Directivas.

  5. En el editor de directivas, agregue o edite las directivas que desea aplicar a las herramientas del servidor MCP. Defina las directivas en formato XML.

    Por ejemplo, puede agregar una directiva para limitar las llamadas a las herramientas del servidor MCP (en este ejemplo, una llamada por cada 60 segundos por sesión de MCP).

    <!-- Rate limit tool calls by Mcp-Session-Id header -->
    <set-variable name="body" value="@(context.Request.Body.As<string>(preserveContent: true))" />
    <choose>
        <when condition="@(
            Newtonsoft.Json.Linq.JObject.Parse((string)context.Variables["body"])["method"] != null 
            && Newtonsoft.Json.Linq.JObject.Parse((string)context.Variables["body"])["method"].ToString() == "tools/call"
        )">
        <rate-limit-by-key 
            calls="1" 
            renewal-period="60" 
            counter-key="@(
                context.Request.Headers.GetValueOrDefault("Mcp-Session-Id", "unknown")
            )" />
        </when>
    </choose>
    

    Captura de pantalla del editor de directivas para un servidor MCP.

Nota:

API Management evalúa las directivas configuradas en el ámbito global (todas las API) antes de evaluar las directivas en el ámbito del servidor MCP.

Validar y usar el servidor MCP

Use un agente LLM compatible (como GitHub Copilot, Kernel semántico o Copilot Studio) o un cliente de prueba (como curl) para llamar al punto de conexión de MCP hospedado en API Management. Asegúrese de que la solicitud incluye los encabezados o tokens adecuados y confirme el enrutamiento y la respuesta correctos del servidor MCP.

Sugerencia

Si usa el Inspector de MCP para probar un servidor MCP administrado por API Management, use la versión 0.9.0.

Adición del servidor MCP en Visual Studio Code

En Visual Studio Code, use el chat de GitHub Copilot en modo agente para agregar el servidor MCP y usar las herramientas. Para obtener información sobre los servidores MCP en Visual Studio Code, consulte Uso de servidores MCP en VS Code.

Para agregar el servidor MCP en Visual Studio Code:

  1. Use el comando MCP: Agregar servidor desde la paleta de comandos.

  2. Cuando se le solicite, seleccione el tipo de servidor: HTTP (HTTP o Eventos enviados por el servidor).

  3. Escriba la dirección URL del servidor MCP en API Management. Por ejemplo, https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp para el punto de conexión de MCP.

  4. Escriba un identificador de servidor de su elección.

  5. Seleccione si desea guardar la configuración en la configuración del área de trabajo o en la configuración del usuario.

    • Configuración del área de trabajo : la configuración del servidor se guarda en un .vscode/mcp.json archivo solo disponible en el área de trabajo actual.

    • Configuración del usuario: la configuración del servidor se agrega al archivo global settings.json y está disponible en todas las áreas de trabajo. La configuración es similar a la siguiente:

    Captura de pantalla de los servidores MCP configurados en Visual Studio Code.

Agregue campos a la configuración JSON para ajustes como el encabezado de autenticación. En el ejemplo siguiente se muestra la configuración de una clave de suscripción de API Management que se pasa en un encabezado como valor de entrada. Más información sobre el formato de configuración

Captura de pantalla de la configuración del encabezado de autenticación para un servidor MCP

Uso de herramientas en modo de agente

Después de agregar un servidor MCP en Visual Studio Code, puede usar herramientas en modo agente.

  1. En el chat de GitHub Copilot, seleccione Modo de agente y seleccione el botón Herramientas para ver las herramientas disponibles.

    Captura de pantalla del botón Herramientas en el chat.

  2. Seleccione una o varias herramientas del servidor MCP para que estén disponibles en el chat.

    Captura de pantalla de la selección de herramientas en Visual Studio Code.

  3. Escriba un mensaje en el chat para invocar la herramienta. Por ejemplo, si seleccionó una herramienta para obtener información sobre un pedido, puede preguntar al agente sobre un pedido.

    Get information for order 2
    

    Seleccione Continuar para ver los resultados. El agente usa la herramienta para llamar al servidor MCP y devuelve los resultados en el chat.

    Captura de pantalla de los resultados del chat en Visual Studio Code.

Solución de problemas y problemas conocidos

Problema Causa Solución
401 Unauthorized error del servidor Encabezado de autorización no reenviado Si es necesario, use la directiva set-header para adjuntar manualmente el token
La llamada API funciona en API Management, pero se produce un error en el agente Dirección URL base incorrecta o token que falta Comprobar las directivas de seguridad y el punto de conexión
Se produce un error en el streaming del servidor MCP cuando se habilitan los registros de diagnóstico Registro del cuerpo de respuesta o acceso al cuerpo de respuesta a través de la directiva interfiere con el transporte MCP Deshabilitar el registro del cuerpo de respuesta en el ámbito de Todas las APIs: consulte Requisitos previos