Skip to content

Latest commit

 

History

History
98 lines (66 loc) · 4.81 KB

File metadata and controls

98 lines (66 loc) · 4.81 KB

Príklad

Predchádzajúci príklad ukazuje, ako použiť lokálny .NET projekt s typom stdio. A ako spustiť server lokálne v kontejnery. Toto je dobré riešenie v mnohých situáciách. Avšak môže byť užitočné mať server bežiaci vzdialene, napríklad v cloudovom prostredí. Práve tu prichádza na rad typ http.

Ak sa pozriete na riešenie v priečinku 04-PracticalImplementation, môže sa zdať oveľa zložitejšie ako predchádzajúce. Ale v skutočnosti to tak nie je. Ak sa pozriete bližšie na projekt src/Calculator, uvidíte, že ide väčšinou o rovnaký kód ako v predchádzajúcom príklade. Jediný rozdiel je, že používame inú knižnicu ModelContextProtocol.AspNetCore na spracovanie HTTP požiadaviek. A zmeníme metódu IsPrime na súkromnú, len aby sme ukázali, že vo vašom kóde môžete mať súkromné metódy. Zvyšok kódu je rovnaký ako predtým.

Ostatné projekty sú z .NET Aspire. Mať .NET Aspire v riešení zlepší skúsenosť vývojára počas vývoja a testovania a pomôže s pozorovateľnosťou. Nie je to povinné na spustenie servera, ale je to dobrá prax mať to vo vašom riešení.

Spustenie servera lokálne

  1. Vo VS Code (s rozšírením C# DevKit) prejdite do adresára 04-PracticalImplementation/samples/csharp.

  2. Spustite nasledujúci príkaz na spustenie servera:

     dotnet watch run --project ./src/AppHost
  3. Keď sa v prehliadači otvorí dashboard .NET Aspire, všimnite si http URL. Malo by to byť niečo ako http://localhost:5058/.

    .NET Aspire Dashboard

Testovanie Streamable HTTP pomocou MCP Inspector

Ak máte Node.js verzie 22.7.5 alebo vyššej, môžete použiť MCP Inspector na testovanie vášho servera.

Spustite server a v termináli spustite nasledujúci príkaz:

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

MCP Inspector

  • Vyberte Streamable HTTP ako typ transportu.
  • Do poľa Url zadajte URL servera, ktorú ste si poznamenali, a pridajte /mcp. Malo by to byť http (nie https), napríklad http://localhost:5058/mcp.
  • Kliknite na tlačidlo Connect.

Výhodou Inspektora je, že poskytuje dobrý prehľad o tom, čo sa deje.

  • Skúste zobraziť zoznam dostupných nástrojov
  • Vyskúšajte niektoré z nich, mali by fungovať rovnako ako predtým.

Testovanie MCP Servera s GitHub Copilot Chat vo VS Code

Ak chcete použiť Streamable HTTP transport s GitHub Copilot Chat, zmeňte konfiguráciu servera calc-mcp, ktorý ste vytvorili predtým, takto:

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

Vykonajte niekoľko testov:

  • Požiadajte o „3 prvočísla po 6780“. Všimnite si, že Copilot použije nové nástroje NextFivePrimeNumbers a vráti len prvé 3 prvočísla.
  • Požiadajte o „7 prvočísel po 111“, aby ste videli, čo sa stane.
  • Požiadajte o „John má 24 lízaniek a chce ich rozdeliť medzi svoje 3 deti. Koľko lízaniek dostane každé dieťa?“, aby ste videli, čo sa stane.

Nasadenie servera do Azure

Nasadíme server do Azure, aby ho mohlo používať viac ľudí.

V termináli prejdite do priečinka 04-PracticalImplementation/samples/csharp a spustite nasledujúci príkaz:

azd up

Po dokončení nasadenia by ste mali vidieť správu ako táto:

Azd deployment success

Skopírujte URL a použite ju v MCP Inspector a v GitHub Copilot Chat.

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

Čo ďalej?

Vyskúšali sme rôzne typy transportu a testovacie nástroje. Tiež sme nasadili váš MCP server do Azure. Ale čo ak náš server potrebuje prístup k súkromným zdrojom? Napríklad databáze alebo súkromnému API? V ďalšej kapitole uvidíme, ako môžeme zlepšiť bezpečnosť nášho servera.

Vyhlásenie o zodpovednosti:
Tento dokument bol preložený pomocou AI prekladateľskej služby Co-op Translator. Aj keď sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.