Skip to content

Latest commit

 

History

History
121 lines (97 loc) · 4.73 KB

File metadata and controls

121 lines (97 loc) · 4.73 KB

Basic Calculator MCP Service

Denne service tilbyder grundlæggende lommeregnerfunktioner via Model Context Protocol (MCP). Den er designet som et enkelt eksempel for begyndere, der vil lære om MCP-implementeringer.

For mere information, se C# SDK

Funktioner

Denne lommeregnerservice tilbyder følgende muligheder:

  1. Grundlæggende aritmetiske operationer:
    • Addition af to tal
    • Subtraktion af et tal fra et andet
    • Multiplikation af to tal
    • Division af et tal med et andet (med kontrol for division med nul)

Brug af stdio Type

Konfiguration

  1. Konfigurer MCP-servere:
    • Åbn dit arbejdsområde i VS Code.

    • Opret en .vscode/mcp.json fil i din arbejdsmappe for at konfigurere MCP-servere. Eksempel på konfiguration:

      {
        "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"
            ]
          }
        }
      }
    • Du vil blive bedt om at indtaste roden til GitHub-repositoriet, som kan hentes med kommandoen 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> med dit Docker Hub brugernavn):
    docker build -t <YOUR-DOCKER-USERNAME>/mcp-calculator .
  4. Når billedet er bygget, uploader vi det til Docker Hub. Kør følgende kommando:
     docker push <YOUR-DOCKER-USERNAME>/mcp-calculator

## Brug den Dockeriserede Version

1. I `.vscode/mcp.json` filen, erstat serverkonfigurationen med følgende:
 ```json
  "mcp-calc": {
    "command": "docker",
    "args": [
      "run",
      "--rm",
      "-i",
      "<YOUR-DOCKER-USERNAME>/mcp-calc"
    ],
    "envFile": "",
    "env": {}
  }

Når man ser på konfigurationen, kan du se at kommandoen er 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": {, og ligesom før kan du bede lommeregnerservicen om at udføre nogle beregninger for dig.

Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.