Files
2026-07-13 13:31:35 +08:00

5.3 KiB
Raw Permalink Blame History

Exemple

L'exemple précédent montre comment utiliser un projet .NET local avec le type stdio. Et comment exécuter le serveur localement dans un conteneur. Cest une bonne solution dans de nombreuses situations. Cependant, il peut être utile davoir le serveur qui tourne à distance, par exemple dans un environnement cloud. Cest là quintervient le type http.

En regardant la solution dans le dossier 04-PracticalImplementation, elle peut sembler bien plus complexe que la précédente. Mais en réalité, ce nest pas le cas. Si vous regardez de près le projet src/Calculator, vous verrez que cest essentiellement le même code que dans lexemple précédent. La seule différence est que nous utilisons une bibliothèque différente, ModelContextProtocol.AspNetCore, pour gérer les requêtes HTTP. Et nous modifions la méthode IsPrime pour la rendre privée, juste pour montrer que vous pouvez avoir des méthodes privées dans votre code. Le reste du code est identique à avant.

Les autres projets proviennent de .NET Aspire. Avoir .NET Aspire dans la solution améliore lexpérience du développeur lors du développement et des tests, et aide à lobservabilité. Ce nest pas obligatoire pour faire tourner le serveur, mais cest une bonne pratique de lavoir dans votre solution.

Démarrer le serveur localement

  1. Depuis VS Code (avec lextension C# DevKit), naviguez jusquau répertoire 04-PracticalImplementation/samples/csharp.

  2. Exécutez la commande suivante pour démarrer le serveur :

     dotnet watch run --project ./src/AppHost
    
  3. Quand un navigateur web ouvre le tableau de bord .NET Aspire, notez lURL http. Elle devrait ressembler à http://localhost:5058/.

    .NET Aspire Dashboard

Tester Streamable HTTP avec le MCP Inspector

Si vous avez Node.js 22.7.5 ou une version supérieure, vous pouvez utiliser le MCP Inspector pour tester votre serveur.

Démarrez le serveur et lancez la commande suivante dans un terminal :

npx @modelcontextprotocol/inspector http://localhost:5058

MCP Inspector

  • Sélectionnez Streamable HTTP comme type de transport.
  • Dans le champ Url, entrez lURL du serveur notée précédemment, en ajoutant /mcp. Cela doit être en http (pas en https), par exemple http://localhost:5058/mcp.
  • Cliquez sur le bouton Connect.

Un avantage de lInspector est quil offre une bonne visibilité sur ce qui se passe.

  • Essayez de lister les outils disponibles
  • Testez-en quelques-uns, cela devrait fonctionner comme avant.

Tester le serveur MCP avec GitHub Copilot Chat dans VS Code

Pour utiliser le transport Streamable HTTP avec GitHub Copilot Chat, modifiez la configuration du serveur calc-mcp créé précédemment pour quelle ressemble à ceci :

// .vscode/mcp.json
{
  "servers": {
    "calc-mcp": {
      "type": "http",
      "url": "http://localhost:5058/mcp"
    }
  }
}

Faites quelques tests :

  • Demandez « 3 nombres premiers après 6780 ». Notez que Copilot utilisera les nouveaux outils NextFivePrimeNumbers et ne retournera que les 3 premiers nombres premiers.
  • Demandez « 7 nombres premiers après 111 », pour voir ce qui se passe.
  • Demandez « John a 24 sucettes et veut les distribuer à ses 3 enfants. Combien de sucettes chaque enfant reçoit-il ? », pour voir ce qui se passe.

Déployer le serveur sur Azure

Déployons le serveur sur Azure pour que plus de personnes puissent lutiliser.

Depuis un terminal, naviguez dans le dossier 04-PracticalImplementation/samples/csharp et exécutez la commande suivante :

azd up

Une fois le déploiement terminé, vous devriez voir un message comme celui-ci :

Azd deployment success

Récupérez lURL et utilisez-la dans le MCP Inspector et dans GitHub Copilot Chat.

// .vscode/mcp.json
{
  "servers": {
    "calc-mcp": {
      "type": "http",
      "url": "https://calc-mcp.gentleriver-3977fbcf.australiaeast.azurecontainerapps.io/mcp"
    }
  }
}

Et ensuite ?

Nous avons essayé différents types de transport et outils de test. Nous avons aussi déployé votre serveur MCP sur Azure. Mais que faire si notre serveur doit accéder à des ressources privées ? Par exemple, une base de données ou une API privée ? Dans le chapitre suivant, nous verrons comment renforcer la sécurité de notre serveur.

Avertissement :
Ce document a été traduit à laide du service de traduction automatique Co-op Translator. Bien que nous nous efforcions dassurer lexactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue dorigine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de lutilisation de cette traduction.