Skip to content

Latest commit

 

History

History
120 lines (97 loc) · 6.31 KB

File metadata and controls

120 lines (97 loc) · 6.31 KB

سرویس ماشین حساب پایه MCP

این سرویس عملیات پایه ماشین حساب را از طریق پروتکل مدل کانتکست (MCP) ارائه می‌دهد. این سرویس به عنوان یک مثال ساده برای مبتدیانی که می‌خواهند با پیاده‌سازی‌های MCP آشنا شوند طراحی شده است.

برای اطلاعات بیشتر، به C# SDK مراجعه کنید.

ویژگی‌ها

این سرویس ماشین حساب امکانات زیر را ارائه می‌دهد:

  1. عملیات پایه حسابی:
    • جمع دو عدد
    • تفریق یک عدد از عدد دیگر
    • ضرب دو عدد
    • تقسیم یک عدد بر عدد دیگر (با بررسی تقسیم بر صفر)

استفاده از نوع stdio

پیکربندی

  1. پیکربندی سرورهای MCP:
    • فضای کاری خود را در VS Code باز کنید.

    • یک فایل .vscode/mcp.json در پوشه فضای کاری خود ایجاد کنید تا سرورهای MCP را پیکربندی کنید. نمونه پیکربندی:

      {
        "inputs": [
          {
            "type": "promptString",
            "id": "repository-root",
            "description": "The absolute path to the repository root"
          }
        ],
        "servers": {
          "calculator-mcp-dotnet": {
            "type": "stdio",
            "command": "dotnet",
            "args": [
              "run",
              "--project",
              "${input:repository-root}/03-GettingStarted/samples/csharp/src/calculator.csproj"
            ]
          }
        }
      }
    • از شما خواسته می‌شود ریشه مخزن GitHub را وارد کنید که می‌توانید با دستور git rev-parse --show-toplevel آن را دریافت کنید.

استفاده از سرویس

این سرویس از طریق پروتکل MCP نقاط پایانی API زیر را ارائه می‌دهد:

  • add(a, b): جمع دو عدد
  • subtract(a, b): تفریق عدد دوم از عدد اول
  • multiply(a, b): ضرب دو عدد
  • divide(a, b): تقسیم عدد اول بر عدد دوم (با بررسی صفر بودن مخرج)
  • isPrime(n): بررسی اول بودن یک عدد

تست با Github Copilot Chat در VS Code

  1. سعی کنید با استفاده از پروتکل MCP درخواست‌هایی به سرویس ارسال کنید. به عنوان مثال، می‌توانید بپرسید:
    • "Add 5 and 3"
    • "Subtract 10 from 4"
    • "Multiply 6 and 7"
    • "Divide 8 by 2"
    • "Does 37854 prime?"
    • "What are the 3 prime numbers before after 4242?"
  2. برای اطمینان از استفاده از ابزارها، عبارت #MyCalculator را به درخواست اضافه کنید. به عنوان مثال:
    • "Add 5 and 3 #MyCalculator"
    • "Subtract 10 from 4 #MyCalculator"

نسخه کانتینری

راه‌حل قبلی زمانی عالی است که SDK دات‌نت نصب شده باشد و تمام وابستگی‌ها در دسترس باشند. اما اگر بخواهید این راه‌حل را به اشتراک بگذارید یا در محیطی متفاوت اجرا کنید، می‌توانید از نسخه کانتینری استفاده کنید.

  1. داکر را اجرا کنید و مطمئن شوید که در حال کار است.
  2. از طریق ترمینال به پوشه 03-GettingStarted\samples\csharp\src بروید.
  3. برای ساخت تصویر داکر برای سرویس ماشین حساب، دستور زیر را اجرا کنید (نام کاربری داکر خود را به جای <YOUR-DOCKER-USERNAME> قرار دهید):
    docker build -t <YOUR-DOCKER-USERNAME>/mcp-calculator .
  4. پس از ساخت تصویر، آن را به Docker Hub آپلود کنید. دستور زیر را اجرا کنید:
     docker push <YOUR-DOCKER-USERNAME>/mcp-calculator

## استفاده از نسخه داکری

1. در فایل `.vscode/mcp.json` پیکربندی سرور را با موارد زیر جایگزین کنید:
 ```json
  "mcp-calc": {
    "command": "docker",
    "args": [
      "run",
      "--rm",
      "-i",
      "<YOUR-DOCKER-USERNAME>/mcp-calc"
    ],
    "envFile": "",
    "env": {}
  }

با نگاه به پیکربندی، می‌بینید که دستور docker است و آرگومان‌ها run --rm -i <YOUR-DOCKER-USERNAME>/mcp-calc هستند. گزینه --rm تضمین می‌کند که کانتینر پس از توقف حذف شود و گزینه -i اجازه می‌دهد با ورودی استاندارد کانتینر تعامل داشته باشید. آرگومان آخر نام تصویری است که ساخته و به Docker Hub ارسال کرده‌ایم.

تست نسخه داکری

سرور MCP را با کلیک روی دکمه کوچک Start بالای "mcp-calc": { راه‌اندازی کنید و مانند قبل می‌توانید از سرویس ماشین حساب بخواهید محاسباتی برای شما انجام دهد.

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نواقصی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده از این ترجمه ناشی شود، نیستیم.