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.7030Para 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
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 \ mcr.microsoft.com/azure-storage/azurite
Tenga en cuenta que si usa Azurite desde la extensión VS Code, debe ejecutar
Azurite: Startahora o verá errores.
Ejecute su servidor MCP localmente desde la terminal
Instalar dependencias
npm installConstruir el proyecto
npm run buildInicie el host de Funciones localmente:
func start
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:
http://0.0.0.0:7071/runtime/webhooks/mcp/sseSeleccione 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
Say HelloSave this snippet as snippet1Retrieve snippet1 and apply to newFile.tsCuando 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.exey 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
npx @modelcontextprotocol/inspector node build/index.jsSi detuvo su aplicación de funciones anteriormente, inicie el host de funciones localmente:
func startMantenga 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
SSEEstablezca la URL del punto final SSE de la aplicación de función en ejecución y conéctese :
http://0.0.0.0:7071/runtime/webhooks/mcp/sseLista 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 Keyen 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_extensionde 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
Say HelloSave this snippet as snippet1Retrieve snippet1 and apply to newFile.ts
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
- Asecurity-licenseAqualityA 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 -347MIT License
- -security-license-qualityAn MCP server for interacting with Azure. Contains some common Compute and Networking actions, and extensible to add many more.Last updated -1Apache 2.0
- Asecurity-licenseAqualityAn MCP server that provides seamless interaction with Azure DevOps Git repositories, enabling users to manage repositories, branches, pull requests, and pipelines through natural language.Last updated -853
- -security-license-qualityThis project builds a read-only MCP server. For full read, write, update, delete, and action capabilities and a simplified setup, check out our free CData MCP Server for Azure Data Catalog (beta): https://www.cdata.com/download/download.aspx?sku=GNZK-V&type=betaLast updated -MIT License