Instalacja lokalna
Ta instalacja służy do testów. Platforma i serwer MCP działają jako dwa projekty Compose na jednym komputerze. Kroki poniżej używają serwera GitLab, inny serwer instaluje się tak samo (Instalacja serwera MCP). Przebieg sprawdzono na macOS z Docker Desktop. Na Windows wykonuj polecenia w Git Bash.
Zasady dla nazwy lokalnej
Dział zatytułowany „Zasady dla nazwy lokalnej”- Jako nazwę platformy użyj
mcp.localhost, nielocalhost. W kontenerze serweralocalhostoznacza sam kontener, a nginx odrzuca nazwę TLS inną niżMCP_DOMAIN. Przeglądarki i Node kierują*.localhostna adres pętli zwrotnej. - Certyfikat musi mieć
subjectAltName=DNS:mcp.localhost. Wystaw go własnym CA. - Przykłady publikują platformę na porcie 21443 (http 21080) pod adresem 127.0.0.1, żeby nie kolidować z innym stosem na 443.
- Kontener serwera trafia do platformy przez
extra_hosts, a gateway do serwera przezhost.docker.internal.
Potrzebujesz Docker Desktop, openssl i keytool (z dowolnego JDK).
1. Utwórz CA i certyfikat
Dział zatytułowany „1. Utwórz CA i certyfikat”-
Utwórz CA i certyfikat dla
mcp.localhost:Okno terminala mkdir -p ~/mcp-local/cacd ~/mcp-local/caopenssl req -x509 -newkey rsa:3072 -nodes -days 365 -keyout ca.key -out ca.crt -subj "/CN=MCP local CA" \-addext "basicConstraints=critical,CA:TRUE" -addext "keyUsage=critical,keyCertSign,cRLSign"openssl req -newkey rsa:2048 -nodes -keyout tls.key -out tls.csr -subj "/CN=mcp.localhost"printf 'subjectAltName=DNS:mcp.localhost\nbasicConstraints=CA:FALSE\nkeyUsage=digitalSignature,keyEncipherment\nextendedKeyUsage=serverAuth\n' > ext.cnfopenssl x509 -req -in tls.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 365 -extfile ext.cnf -out tls.crt -
Dodaj
ca.crtdo zaufanych w systemie, żeby przeglądarka mu ufała. Na macOS:Okno terminala sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/mcp-local/ca/ca.crtNa Windows, w PowerShell jako administrator:
Okno terminala certutil -addstore -f Root $HOME\mcp-local\ca\ca.crt -
Jeśli system, z którym się łączysz (na przykład GitLab), używa certyfikatu z firmowego CA, zapisz certyfikat tego CA jako
~/mcp-local/ca/company-ca.crt. Potrzebują go i broker, i serwer.
2. Uruchom platformę
Dział zatytułowany „2. Uruchom platformę”-
Pobierz pakiet i wejdź do niego:
Okno terminala mkdir -p ~/mcp-localcd ~/mcp-localgit clone https://github.com/aiwcorpo/mcp-platform.git platformcd platform -
Skopiuj certyfikat i CA.
certs/company-ca.crtma zawierać lokalne CA, a po nim firmowe CA, jeśli je masz:Okno terminala cp ../ca/tls.crt ../ca/tls.key certs/cat ../ca/ca.crt > certs/company-ca.crtJeśli zapisałeś firmowe CA, dopisz je:
cat ../ca/company-ca.crt >> certs/company-ca.crt. -
Zapisz
.env. Każda linia to osobne polecenie:Okno terminala grep -v '^MCP_DOMAIN=' platform.env > .envecho COMPOSE_PROJECT_NAME=mcp-local >> .envecho MCP_DOMAIN=mcp.localhost >> .envecho MCP_BIND=127.0.0.1 >> .envecho MCP_HTTPS_PORT=21443 >> .envecho MCP_HTTP_PORT=21080 >> .envecho MCP_PUBLIC_ORIGIN=https://mcp.localhost:21443 >> .envCOMPOSE_PROJECT_NAMEdaje projektowi własne wolumeny i sieci, więc drugi projekt o nazwiemcp-platformna tym komputerze zostaje nietknięty. -
Uruchom:
Okno terminala docker compose up -ddocker compose psPo 3 do 5 minutach wszystkie usługi są zdrowe.
-
Wypisz hasło początkowe
mcp-admin:Okno terminala docker compose run --rm init show admin-password -
Otwórz
https://mcp.localhost:21443/auth/realms/mcp/account, zaloguj się jakomcp-admin, ustaw nowe hasło i OTP. Portal jest podhttps://mcp.localhost:21443/.
Jeśli zmienisz company-ca.crt po pierwszym starcie, uruchom docker compose up -d, potem docker compose logs init | grep warn.
Log poda polecenie docker compose restart ... do wykonania.
3. Uruchom serwer MCP
Dział zatytułowany „3. Uruchom serwer MCP”-
Pobierz katalog
deploy/serwera:Okno terminala cd ~/mcp-localgit clone https://github.com/aiwcorpo/mcp-server-gitlab.git server-gitlabcd server-gitlab/deploy -
Zwiąż serwer z adresem pętli zwrotnej i spraw, żeby nazwa platformy działała w jego kontenerze:
Okno terminala echo MCP_GITLAB_BIND=127.0.0.1 > .envprintf 'services:\n mcp-gitlab:\n extra_hosts: ["mcp.localhost:host-gateway"]\n' > compose.override.yaml -
Utwórz magazyn zaufania serwera. Potrzebuje lokalnego CA (do pobrania kluczy gatewaya) i firmowego CA, jeśli GitLab go używa:
Okno terminala keytool -importcert -noprompt -alias mcp-local -file ~/mcp-local/ca/ca.crt -keystore certs/truststore.p12 -storetype PKCS12 -storepass changeitkeytool -importcert -noprompt -alias company-ca -file ~/mcp-local/ca/company-ca.crt -keystore certs/truststore.p12 -storetype PKCS12 -storepass changeitchmod 644 certs/truststore.p12Pomiń drugie polecenie, jeśli nie masz firmowego CA.
-
Otwórz
mcp-gitlab.envi ustaw te wartości. Odkomentuj linięJAVA_TOOL_OPTIONS:Okno terminala MCP_GATEWAY_JWKS_URI=https://mcp.localhost:21443/.well-known/mcp-jwks.jsonMCP_CONNECT_URL=https://mcp.localhost:21443/connections?system={system}MCP_GITLAB_URL=https://<gitlab> -
Uruchom serwer i odczytaj odcisk jego certyfikatu:
Okno terminala docker compose up -ddocker compose logs mcp-gitlab | grep event=tls_certificateZachowaj odcisk do zatwierdzenia w portalu. Komputer musi widzieć GitLaba (sieć firmowa lub VPN), bo łączą się z nim i serwer, i broker.
4. Dodaj serwer w portalu
Dział zatytułowany „4. Dodaj serwer w portalu”Zaloguj się do portalu jako mcp-admin i wykonaj kroki z Serwery i Systemy. Użyj tych wartości:
| Gdzie | Wartość |
|---|---|
| Adres serwera | https://host.docker.internal:8443/mcp |
| Zaufanie | Certyfikat jest samopodpisany, więc połączenie jest przypięte. Porównaj odcisk z tym z kroku 3.5. |
| Konsola Keycloaka | https://mcp.localhost:21443/auth/admin/mcp/console/ |
5. Połącz Claude Code
Dział zatytułowany „5. Połącz Claude Code”Claude Code musi ufać lokalnemu CA i używać lokalnego adresu:
export NODE_EXTRA_CA_CERTS=$HOME/mcp-local/ca/ca.crtW tej samej powłoce uruchom polecenie claude mcp add ze strony portalu z adresem MCP. Adres to
https://mcp.localhost:21443/mcp. Zobacz Claude Code.
Na Linuksie host.docker.internal nie jest zdefiniowane. Utwórz compose.override.yaml w katalogu platformy:
services: gateway: extra_hosts: ["host.docker.internal:host-gateway"]Usuń wszystko
Dział zatytułowany „Usuń wszystko”cd ~/mcp-local/server-gitlab/deploydocker compose down -vcd ~/mcp-local/platformdocker compose down -vdown -v usuwa wolumeny tylko tych dwóch projektów. Na koniec usuń lokalne CA z magazynu certyfikatów systemu.
