El ejemplo anterior muestra cómo usar un proyecto local de .NET con el tipo stdio. Y cómo ejecutar el servidor localmente en un contenedor. Esta es una buena solución en muchas situaciones. Sin embargo, puede ser útil tener el servidor ejecutándose de forma remota, como en un entorno en la nube. Aquí es donde entra el tipo http.
Al observar la solución en la carpeta 04-PracticalImplementation, puede parecer mucho más compleja que la anterior. Pero en realidad, no lo es. Si miras de cerca el proyecto src/Calculator, verás que es básicamente el mismo código que en el ejemplo anterior. La única diferencia es que estamos usando una biblioteca diferente ModelContextProtocol.AspNetCore para manejar las solicitudes HTTP. Y cambiamos el método IsPrime para hacerlo privado, solo para mostrar que puedes tener métodos privados en tu código. El resto del código es igual que antes.
Los otros proyectos son de .NET Aspire. Tener .NET Aspire en la solución mejorará la experiencia del desarrollador durante el desarrollo y las pruebas, además de ayudar con la observabilidad. No es obligatorio para ejecutar el servidor, pero es una buena práctica tenerlo en tu solución.
-
Desde VS Code (con la extensión C# DevKit), navega hasta el directorio
04-PracticalImplementation/samples/csharp. -
Ejecuta el siguiente comando para iniciar el servidor:
dotnet watch run --project ./src/AppHost
-
Cuando un navegador web abra el panel de control de .NET Aspire, toma nota de la URL
http. Debería ser algo comohttp://localhost:5058/.
Si tienes Node.js 22.7.5 o superior, puedes usar el MCP Inspector para probar tu servidor.
Inicia el servidor y ejecuta el siguiente comando en una terminal:
npx @modelcontextprotocol/inspector http://localhost:5058- Selecciona
Streamable HTTPas the Transport type. - In the Url field, enter the URL of the server noted earlier, and append
/mcp. Debe serhttp(nohttps) something likehttp://localhost:5058/mcp. - select the Connect button.
A nice thing about the Inspector is that it provide a nice visibility on what is happening.
- Try listing the available tools
- Try some of them, it should works just like before.
To use the Streamable HTTP transport with GitHub Copilot Chat, change the configuration of the calc-mcp servidor creado previamente para que se vea así:
Haz algunas pruebas:
- Pide "3 números primos después de 6780". Observa cómo Copilot usará las nuevas herramientas
NextFivePrimeNumbersy solo devolverá los primeros 3 números primos. - Pide "7 números primos después de 111", para ver qué sucede.
- Pide "John tiene 24 piruletas y quiere repartirlas todas entre sus 3 hijos. ¿Cuántas piruletas le tocan a cada hijo?", para ver qué pasa.
Vamos a desplegar el servidor en Azure para que más personas puedan usarlo.
Desde una terminal, navega a la carpeta 04-PracticalImplementation/samples/csharp y ejecuta el siguiente comando:
azd upUna vez finalizado el despliegue, deberías ver un mensaje como este:
Toma la URL y úsala en el MCP Inspector y en GitHub Copilot Chat.
// .vscode/mcp.json
{
"servers": {
"calc-mcp": {
"type": "http",
"url": "https://calc-mcp.gentleriver-3977fbcf.australiaeast.azurecontainerapps.io/mcp"
}
}
}Probamos diferentes tipos de transporte y herramientas de prueba. También desplegamos tu servidor MCP en Azure. Pero, ¿qué pasa si nuestro servidor necesita acceder a recursos privados? Por ejemplo, una base de datos o una API privada. En el próximo capítulo, veremos cómo podemos mejorar la seguridad de nuestro servidor.
Aviso legal:
Este documento ha sido traducido utilizando el servicio de traducción automática Co-op Translator. Aunque nos esforzamos por la exactitud, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas derivadas del uso de esta traducción.


