مثال قبلی نشان میدهد چگونه میتوان از یک پروژه محلی .NET با نوع stdio استفاده کرد و سرور را به صورت محلی در یک کانتینر اجرا کرد. این راهحل در بسیاری از موقعیتها مناسب است. اما گاهی اوقات مفید است که سرور به صورت راه دور، مثلاً در یک محیط ابری، اجرا شود. اینجاست که نوع http وارد میشود.
اگر به راهحل موجود در پوشه 04-PracticalImplementation نگاه کنید، ممکن است بسیار پیچیدهتر از نمونه قبلی به نظر برسد. اما در واقع اینطور نیست. اگر دقیقتر به پروژه src/Calculator نگاه کنید، خواهید دید که بیشتر کد همان کد نمونه قبلی است. تنها تفاوت این است که ما از کتابخانه متفاوت ModelContextProtocol.AspNetCore برای مدیریت درخواستهای HTTP استفاده میکنیم. همچنین متد IsPrime را به صورت private تغییر دادهایم، فقط برای نشان دادن اینکه میتوانید متدهای خصوصی در کد خود داشته باشید. بقیه کد همان کد قبلی است.
سایر پروژهها از .NET Aspire هستند. داشتن .NET Aspire در راهحل، تجربه توسعهدهنده را هنگام توسعه و تست بهبود میبخشد و به مشاهدهپذیری کمک میکند. اجرای سرور بدون آن الزامی نیست، اما داشتن آن در راهحل یک روش خوب است.
-
از VS Code (با افزونه C# DevKit) به دایرکتوری
04-PracticalImplementation/samples/csharpبروید. -
دستور زیر را برای راهاندازی سرور اجرا کنید:
dotnet watch run --project ./src/AppHost
-
وقتی مرورگر وب داشبورد .NET Aspire را باز کرد، آدرس
httpرا یادداشت کنید. باید چیزی شبیه بهhttp://localhost:5058/باشد.
اگر Node.js نسخه 22.7.5 یا بالاتر دارید، میتوانید از MCP Inspector برای تست سرور خود استفاده کنید.
سرور را اجرا کنید و دستور زیر را در ترمینال وارد کنید:
npx @modelcontextprotocol/inspector http://localhost:5058- نوع Transport را روی
Streamable HTTPانتخاب کنید. - در فیلد Url، آدرس سرور که قبلاً یادداشت کردید را وارد کنید و
/mcpرا به آن اضافه کنید. بایدhttpباشد (نهhttps) و چیزی شبیه بهhttp://localhost:5058/mcp. - دکمه Connect را بزنید.
یکی از نکات خوب Inspector این است که دید خوبی نسبت به اتفاقات در حال رخ دادن ارائه میدهد.
- سعی کنید ابزارهای موجود را لیست کنید
- چندتا از آنها را امتحان کنید، باید مثل قبل کار کنند.
برای استفاده از انتقال Streamable HTTP با GitHub Copilot Chat، پیکربندی سرور calc-mcp که قبلاً ساخته شده را به شکل زیر تغییر دهید:
چند تست انجام دهید:
- درخواست "3 عدد اول بعد از 6780" را بدهید. ببینید چگونه Copilot از ابزارهای جدید
NextFivePrimeNumbersاستفاده میکند و فقط 3 عدد اول را برمیگرداند. - درخواست "7 عدد اول بعد از 111" را بدهید تا ببینید چه اتفاقی میافتد.
- درخواست "جان 24 آبنبات دارد و میخواهد آنها را بین 3 فرزندش تقسیم کند. هر بچه چند آبنبات دارد؟" را بدهید تا نتیجه را ببینید.
بیایید سرور را در Azure مستقر کنیم تا افراد بیشتری بتوانند از آن استفاده کنند.
از ترمینال به پوشه 04-PracticalImplementation/samples/csharp بروید و دستور زیر را اجرا کنید:
azd upپس از پایان استقرار، باید پیامی شبیه به این ببینید:
آدرس URL را بردارید و در MCP Inspector و GitHub Copilot Chat استفاده کنید.
// .vscode/mcp.json
{
"servers": {
"calc-mcp": {
"type": "http",
"url": "https://calc-mcp.gentleriver-3977fbcf.australiaeast.azurecontainerapps.io/mcp"
}
}
}ما انواع مختلف انتقال و ابزارهای تست را امتحان کردیم. همچنین سرور MCP شما را در Azure مستقر کردیم. اما اگر سرور ما نیاز به دسترسی به منابع خصوصی داشته باشد، مثلاً یک پایگاه داده یا API خصوصی؟ در فصل بعدی خواهیم دید چگونه میتوانیم امنیت سرور خود را بهبود دهیم.
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است حاوی خطاها یا نادرستیهایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نیستیم.


