Przejdź do głównej zawartości

Zbuduj i zarejestruj pierwszy serwer

Potrzebujesz JDK 25, Linuksa lub macOS (Windows tylko przez WSL2) i kopii repozytorium mcp-server-template. Artefakty platformy pochodzą z Maven Central, więc nie trzeba się nigdzie logować.

  1. Wybierz identyfikator systemu: od 2 do 31 małych liter i cyfr, inny niż zarezerwowane w kontraktach (gateway, broker, portal, admin i kilka innych). W przykładach użyto notes.

  2. Zbuduj szablon jeden raz. Generator odczytuje wzorzec identyfikatora z jara kontraktów:

    Okno terminala
    export JAVA_HOME="$(/usr/libexec/java_home -v 25)" # macOS; na Linuksie katalog JDK 25
    ./mvnw -B verify
  3. Wygeneruj serwer:

    Okno terminala
    ./new-server.sh notes

    Powstaje ../mcp-server-notes. Komenda ./new-server.sh notes /sciezka/do/katalogu umieszcza serwer gdzie indziej; katalog docelowy nie może istnieć i musi leżeć poza szablonem.

  4. Zbuduj nowy serwer:

    Okno terminala
    cd ../mcp-server-notes
    git init
    ./mvnw -B verify

    Wygenerowany serwer buduje się i przechodzi testy bez zmian. Build zapisuje też mcp-app/target/mcp-manifest.json.

  1. Uruchom jar w profilu dev. Profil serwuje zwykłe HTTP na 127.0.0.1:8080 i przyjmuje klucze testowe, więc używaj go tylko na stacji roboczej, nigdy w kontenerze:

    Okno terminala
    SPRING_PROFILES_ACTIVE=dev java -jar mcp-app/target/mcp-notes.jar
  2. Pobierz manifest. Ta ścieżka nie wymaga tokenu:

    Okno terminala
    curl -s http://127.0.0.1:8080/.well-known/mcp-manifest

    Oczekiwany wynik: dokument JSON z serverId równym mcp-notes, system równym notes, blokiem credential, resourceTypes, policies, policiesHash i listą tools. Dopóki manifest się nie zbuduje, serwer odpowiada 503.

  3. Sprawdź, że pozostałe ścieżki są zamknięte:

    Okno terminala
    curl -s -o /dev/null -w '%{http_code}\n' -X POST http://127.0.0.1:8080/mcp \
    -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
    -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

    Oczekiwany wynik: 401. Przechodzi tylko żądanie z wewnętrznym JWT bramki, zobacz Uwierzytelnianie.

Żeby wywołać narzędzie bez platformy, uruchom LocalGateway przed serwerem. Kroki są w Napisz serwer z szablonu.

  1. Uzupełnij trzy wartości w deploy/server.env:

    Okno terminala
    MCP_GATEWAY_JWKS_URI=https://<platform>/.well-known/mcp-jwks.json
    MCP_CONNECT_URL=https://<platform>/connections?system={system}
    MCP_NOTES_URL=https://<host systemu>
  2. Zbuduj obraz i uruchom go. Wygenerowany serwer nie ma jeszcze opublikowanego obrazu, więc zbuduj go:

    Okno terminala
    cd deploy
    docker compose build
    docker compose up -d
  3. Odczytaj odcisk certyfikatu:

    Okno terminala
    docker compose logs mcp-notes | grep event=tls_certificate

    Oczekiwany wynik: event=tls_certificate source=generated fingerprint=sha256:...

  4. Sprawdź ścieżkę zdrowia:

    Okno terminala
    curl -fsSk https://localhost:8443/actuator/health

    Oczekiwany wynik: {"status":"UP"...}.

Platforma musi dosięgnąć tego hosta na porcie 8443, a ten host musi dosięgnąć https://<platform> na porcie 443.

Rejestruje administrator platformy w portalu. Przekaż mu adres https://<ten host>:8443/mcp i odcisk z kroku 10.

  1. Poproś administratora o dodanie systemu notes i serwera na stronie Serwery (najpierw system, zobacz Systemy).
  2. Poproś go o porównanie odcisku z tym, który pokazuje portal, a potem o zatwierdzenie połączenia, polityk i każdego narzędzia. Dopóki wszystkie trzy nie są zatwierdzone, narzędzia odpowiadają tool_disabled.

Nic w platformie się nie restartuje i nie wymaga zmiany konfiguracji.