Skip to content

Latest commit

 

History

History
121 lines (97 loc) · 4.78 KB

File metadata and controls

121 lines (97 loc) · 4.78 KB

Základní kalkulační služba MCP

Tato služba poskytuje základní kalkulační operace prostřednictvím Model Context Protocol (MCP). Je navržena jako jednoduchý příklad pro začátečníky, kteří se učí o implementacích MCP.

Pro více informací viz C# SDK

Funkce

Tato kalkulační služba nabízí následující možnosti:

  1. Základní aritmetické operace:
    • Sčítání dvou čísel
    • Odečítání jednoho čísla od druhého
    • Násobení dvou čísel
    • Dělení jednoho čísla druhým (s kontrolou dělení nulou)

Použití stdio typu

Konfigurace

  1. Nastavení MCP serverů:
    • Otevřete svůj pracovní prostor ve VS Code.

    • Vytvořte v adresáři pracovního prostoru soubor .vscode/mcp.json pro konfiguraci MCP serverů. Příklad konfigurace:

      {
        "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"
            ]
          }
        }
      }
    • Budete vyzváni k zadání kořenového adresáře GitHub repozitáře, který lze získat příkazem git rev-parse --show-toplevel.

Using the Service

The service exposes the following API endpoints through the MCP protocol:

  • add(a, b): Add two numbers together
  • subtract(a, b): Subtract the second number from the first
  • multiply(a, b): Multiply two numbers
  • divide(a, b): Divide the first number by the second (with zero check)
  • isPrime(n): Check if a number is prime

Test with Github Copilot Chat in VS Code

  1. Try making a request to the service using the MCP protocol. For example, you can ask:
    • "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. To make sure it's using the tools add #MyCalculator to the prompt. For example:
    • "Add 5 and 3 #MyCalculator"
    • "Subtract 10 from 4 #MyCalculator

Containerized Version

The previous soultion is great when you have the .NET SDK installed, and all the dependencies are in place. However, if you would like to share the solution or run it in a different environment, you can use the containerized version.

  1. Start Docker and make sure it's running.
  2. From a terminal, navigate in the folder 03-GettingStarted\samples\csharp\src
  3. To build the Docker image for the calculator service, execute the following command (replace <YOUR-DOCKER-USERNAME> s vaším uživatelským jménem na Docker Hub):
    docker build -t <YOUR-DOCKER-USERNAME>/mcp-calculator .
  4. Po vytvoření image jej nahrajeme na Docker Hub. Spusťte následující příkaz:
     docker push <YOUR-DOCKER-USERNAME>/mcp-calculator

## Použití Docker verze

1. V souboru `.vscode/mcp.json` nahraďte konfiguraci serveru následujícím:
 ```json
  "mcp-calc": {
    "command": "docker",
    "args": [
      "run",
      "--rm",
      "-i",
      "<YOUR-DOCKER-USERNAME>/mcp-calc"
    ],
    "envFile": "",
    "env": {}
  }

Při pohledu na konfiguraci vidíte, že příkaz je docker and the args are run --rm -i <YOUR-DOCKER-USERNAME>/mcp-calc. The --rm flag ensures that the container is removed after it stops, and the -i flag allows you to interact with the container's standard input. The last argument is the name of the image we just built and pushed to Docker Hub.

Test the Dockerized Version

Start the MCP Server by clicking the little Start button above "mcp-calc": {, a stejně jako dříve můžete požádat kalkulační službu, aby pro vás provedla nějaké výpočty.

Prohlášení o vyloučení odpovědnosti:
Tento dokument byl přeložen pomocí AI překladatelské služby Co-op Translator. Přestože usilujeme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro kritické informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.