Skip to content

Latest commit

 

History

History
120 lines (97 loc) · 6.86 KB

File metadata and controls

120 lines (97 loc) · 6.86 KB

Сервіс базового калькулятора MCP

Цей сервіс надає базові операції калькулятора через Model Context Protocol (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.

Використання сервісу

Сервіс надає такі API-ендпоінти через протокол MCP:

  • add(a, b): Додати два числа
  • subtract(a, b): Відняти друге число від першого
  • multiply(a, b): Помножити два числа
  • divide(a, b): Поділити перше число на друге (з перевіркою на нуль)
  • isPrime(n): Перевірити, чи є число простим

Тестування з Github Copilot Chat у VS Code

  1. Спробуйте зробити запит до сервісу через протокол MCP. Наприклад, ви можете запитати:
    • "Додай 5 і 3"
    • "Відніми 10 від 4"
    • "Помнож 6 і 7"
    • "Поділи 8 на 2"
    • "Чи є 37854 простим?"
    • "Які 3 прості числа перед і після 4242?"
  2. Щоб переконатися, що використовуються потрібні інструменти, додайте #MyCalculator до запиту. Наприклад:
    • "Додай 5 і 3 #MyCalculator"
    • "Відніми 10 від 4 #MyCalculator"

Контейнеризована версія

Попереднє рішення чудово підходить, якщо у вас встановлений .NET SDK і всі залежності на місці. Однак, якщо ви хочете поділитися рішенням або запустити його в іншому середовищі, можна скористатися контейнеризованою версією.

  1. Запустіть Docker і переконайтеся, що він працює.
  2. У терміналі перейдіть у папку 03-GettingStarted\samples\csharp\src
  3. Щоб зібрати Docker-образ для сервісу калькулятора, виконайте наступну команду (замініть <YOUR-DOCKER-USERNAME> на ваш логін Docker Hub):
    docker build -t <YOUR-DOCKER-USERNAME>/mcp-calculator .
  4. Після створення образу завантажте його на Docker Hub. Виконайте команду:
     docker push <YOUR-DOCKER-USERNAME>/mcp-calculator

## Використання Docker-версії

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.

Тестування Docker-версії

Запустіть MCP сервер, натиснувши маленьку кнопку запуску над "mcp-calc": {, і так само, як раніше, ви можете попросити сервіс калькулятора виконати обчислення для вас.

Відмова від відповідальності:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.