Introducción a servidores MCP remotos mediante Azure Functions (Node.js/TypeScript)
Esta es una plantilla de inicio rápido para crear e implementar fácilmente un servidor MCP remoto personalizado en la nube con Azure Functions. Puede clonar, restaurar y ejecutar en su equipo local con depuración, y azd up
para tenerlo en la nube en cuestión de minutos. El servidor MCP está protegido por diseño mediante claves y HTTPS, y permite más opciones de OAuth mediante EasyAuth o API Management, así como aislamiento de red mediante VNET.
Vea el video resumen
Si está buscando este ejemplo en más idiomas, consulte las versiones .NET/C# y Python .
A continuación se muestra el diagrama de arquitectura para el servidor MCP remoto que utiliza Azure Functions:
Prerrequisitos
- Node.js versión 18 o superior
- Herramientas principales de Azure Functions >=
4.0.7030
- CLI para desarrolladores de Azure
- Para utilizar Visual Studio Code para ejecutar y depurar localmente:
- Docker para ejecutar Azurite, el emulador de almacenamiento de Azure (opcional)
Prepare su entorno local
Se necesita un emulador de almacenamiento de Azure para este ejemplo en particular porque guardaremos y obtendremos fragmentos del almacenamiento de blobs.
- Iniciar Azurita
Tenga en cuenta que si usa Azurite desde la extensión VS Code, debe ejecutar
Azurite: Start
ahora o verá errores.
Ejecute su servidor MCP localmente desde la terminal
- Instalar dependencias
- Construir el proyecto
- Inicie el host de Funciones localmente:
Tenga en cuenta que, de forma predeterminada, se usará la ruta de webhooks:
/runtime/webhooks/mcp/sse
. Más adelante, la usaremos en Azure para configurar la clave en las llamadas de cliente/host:/runtime/webhooks/mcp/sse?code=<system_key>
Utilice el servidor MCP local desde un cliente/host
VS Code - Ediciones de copiloto
- Agregue el servidor MCP desde la paleta de comandos y agregue la URL al punto final SSE de su aplicación de función en ejecución:
- Seleccione HTTP (Server-Sent-Events) para el tipo de servidor MCP que desea agregar.
- Ingrese la URL del punto final SSE de su aplicación de función en ejecución
- Ingrese el ID del servidor. (Puede ser cualquier nombre que desee)
- Elija si desea ejecutar esto en su configuración de usuario (disponible para todas las aplicaciones) o en su configuración de espacio de trabajo (disponible solo para esta aplicación)
- Enumere los servidores MCP desde la paleta de comandos e inicie el servidor. Es posible que el paso anterior ya haya iniciado su servidor local. De ser así, puede omitir este paso.
- En el modo de agente de chat de Copilot, ingrese un mensaje para activar la herramienta, por ejemplo, seleccione un código e ingrese este mensaje
- Cuando se le solicite ejecutar la herramienta, dé su consentimiento haciendo clic en Continuar
- Cuando haya terminado, presione Ctrl+C en la ventana de terminal para detener el proceso de host
func.exe
y seleccione Listar servidores MCP desde la paleta de comandos y detenga el servidor local.
Inspector de MCP
- En una nueva ventana de terminal , instale y ejecute MCP Inspector
- Si detuvo su aplicación de funciones anteriormente, inicie el host de funciones localmente:
- Mantenga presionada la tecla CTRL y haga clic para cargar la aplicación web MCP Inspector desde la URL que muestra la aplicación (por ejemplo, http://0.0.0.0:5173/#resources )
- Establezca el tipo de transporte en
SSE
- Establezca la URL del punto final SSE de la aplicación de función en ejecución y conéctese :
- Lista de herramientas . Haga clic en una herramienta y seleccione Ejecutar herramienta .
- Cuando haya terminado, presione Ctrl+C en la ventana de terminal para detener el proceso de host
func.exe
, y presione Ctrl+C en la ventana de terminal para detener el proceso de host@modelcontextprotocol/inspector
.
Implementar en Azure para MCP remoto
Opcionalmente, puede optar por usar una red virtual en la muestra. (Si lo desea, hágalo antes de azd up
).
Ejecute este comando azd para aprovisionar la aplicación de función, con todos los recursos de Azure necesarios, e implementar su código:
Nota: La administración de API se puede utilizar para mejorar la seguridad y las políticas de su servidor MCP, yla autenticación integrada de App Service se puede usar para configurar su proveedor OAuth favorito, incluido Entra.
Conéctese a la aplicación de función de servidor MCP remoto desde un cliente
Su cliente necesitará una clave para invocar el nuevo punto de conexión SSE alojado, que tendrá el formato https://<funcappname>.azurewebsites.net/runtime/webhooks/mcp/sse
. La función alojada requiere una clave de sistema predeterminada, que puede obtenerse desde el portal o la CLI ( az functionapp keys list --resource-group <resource_group> --name <function_app_name>
). Obtenga la clave de sistema llamada mcp_extension
.
Conectarse al servidor MCP remoto en MCP Inspector
Para MCP Inspector, puede incluir la clave en la URL:
Conectarse a un servidor MCP remoto en VS Code - GitHub Copilot
Para GitHub Copilot en VS Code, debe establecer la clave como el encabezado x-functions-key
en mcp.json
y usar https://<funcappname>.azurewebsites.net/runtime/webhooks/mcp/sse
como URL. El siguiente ejemplo proviene del archivo mcp.json
incluido en este repositorio y utiliza una entrada para solicitarle que proporcione la clave al iniciar el servidor desde VS Code. Su archivo mcp.json
tiene este aspecto:
- Haga clic en Iniciar en el servidor
remote-mcp-function
, dentro del archivomcp.json
: - Ingrese el nombre de la aplicación de función que creó en Azure Portal, cuando VS Code lo solicite.
- Introduzca la
Azure Functions MCP Extension System Key
en el mensaje. Puede copiarla desde el portal de Azure para su aplicación de funciones. Para ello, vaya al menú Funciones, seleccione Claves de la aplicación y copie la clavemcp_extension
de Claves del sistema. - En el modo de agente de chat de Copilot, ingrese un mensaje para activar la herramienta, por ejemplo, seleccione un código e ingrese este mensaje
Reimplementar su código
Puede ejecutar el comando azd up
tantas veces como necesite para aprovisionar sus recursos de Azure e implementar actualizaciones de código en su aplicación de funciones.
[!NOTA] Los archivos de código implementados siempre se sobrescriben con el último paquete de implementación.
Limpiar recursos
Cuando haya terminado de trabajar con su aplicación de función y los recursos relacionados, puede usar este comando para eliminar la aplicación de función y sus recursos relacionados de Azure y evitar incurrir en costos adicionales:
Código fuente
El código de función para los puntos finales getSnippet
y saveSnippet
se define en los archivos TypeScript del directorio src
. Las anotaciones de las funciones MCP exponen estas funciones como herramientas del servidor MCP.
Esto muestra el código para algunos ejemplos de servidor MCP (obtener cadena, obtener objeto, guardar objeto):
Tenga en cuenta que el archivo host.json
también incluye una referencia al paquete experimental, que es necesario para las aplicaciones que usan esta función:
Próximos pasos
- Agregue API Management a su servidor MCP (autorización, puerta de enlace, políticas, ¡y más!)
- Agregueautenticación integrada a su servidor MCP
- Habilitar VNET usando el indicador VNET_ENABLED=true
- Obtenga más información sobre los esfuerzos relacionados con MCP de Microsoft
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Un servidor MCP personalizado basado en la nube que utiliza Azure Functions y que permite guardar y recuperar fragmentos de código con comunicación segura a través de claves, HTTPS, OAuth y opciones de aislamiento de red.
- Prerrequisitos
- Prepare su entorno local
- Ejecute su servidor MCP localmente desde la terminal
- Utilice el servidor MCP local desde un cliente/host
- Implementar en Azure para MCP remoto
- Conéctese a la aplicación de función de servidor MCP remoto desde un cliente
- Reimplementar su código
- Limpiar recursos
- Código fuente
- Próximos pasos
Related MCP Servers
- AsecurityAlicenseAqualityA MCP server for managing and storing code snippets in various programming languages, allowing users to create, list, and delete snippets via a standardized interface.Last updated -34JavaScriptMIT License
- -securityFlicense-qualityAn MCP server that automates the backup of Cloudflare projects to a GitHub repository, providing a systematic way to preserve Cloudflare configurations and assets.Last updated -JavaScript
- -securityAlicense-qualityAn MCP server that wraps the Azure CLI. As LLMs are very good at generating Azure CLI commands, this server allows your LLM to list resources, update/create/delete them, fix errors (by looking at the logs), fix security issues...Last updated -61MIT License
- -securityAlicense-qualityAn MCP server for interacting with Azure. Contains some common Compute and Networking actions, and extensible to add many more.Last updated -PythonApache 2.0