Przejdź do głównej zawartości

GLPI

Wtyczka GLPI łączy Claude z instancją GLPI 11, platformą o otwartym kodzie do zarządzania usługami IT i zasobami. Jak każdą wtyczkę Speedwave, także tę pisze, rozwija i dostarcza wyłącznie Speednet.

GLPI przechowuje twoje dane o usługach IT i zasobach: zgłoszenia, zmiany, problemy, komputery i inne zasoby, użytkowników, grupy, bazę wiedzy oraz projekty. Ta wtyczka pozwala Claude czytać i zapisywać te dane za pomocą 22 narzędzi, które obejmują cykl życia zgłoszenia, wyszukiwanie zasobów oraz obiekty katalogowe, takie jak użytkownicy i grupy. Pytasz zwykłym językiem, na przykład o listę otwartych zgłoszeń albo o komputery wyszukane po nazwie, a Claude sam dobiera właściwe narzędzie.

Wtyczka to pojedynczy bezstanowy worker MCP: serwer Express na Node 24 i TypeScript, który łączy Claude z interfejsem High-Level REST API v2 GLPI (api.php), a nie ze starszym apirest.php v1. Jest przeznaczony konkretnie dla GLPI 11. Worker nie przechowuje żadnych danych GLPI między wywołaniami i nie utrzymuje własnej sesji poza swoim tokenem OAuth. Kontener działa z odebranymi wszystkimi uprawnieniami (capabilities), bez możliwości eskalacji uprawnień, z systemem plików tylko do odczytu i jednym punktem montowania /tokens w trybie tylko do odczytu. Nie udostępnia hostowi żadnego portu i jest osiągalny wyłącznie przez MCP Hub w sieci projektu.

Wspomniane 22 narzędzia dzielą się na trzy warstwy: warstwę odkrywania (status, sesja, listowanie endpointów, specyfikacja OpenAPI, GraphQL tylko do odczytu), uniwersalną warstwę CRUD, która działa na dowolnej ścieżce zasobu HL API v2, oraz wygodne wrappery dla obiektów ITIL (zgłoszenia, zmiany, problemy), zasobów (komputery, monitory i podobne) i obiektów katalogowych (użytkownicy, grupy, jednostki, profile). Wszystko to spina jedna dołączona umiejętność; opisujemy ją niżej.

NazwaCo robi
glpi-operationsUmiejętność do pracy z instancją GLPI: znajduje, odczytuje, tworzy i aktualizuje zgłoszenia, zmiany i problemy, przegląda i edytuje zasoby oraz użytkowników, a do każdego innego zasobu dociera, odkrywając endpointy na bieżąco. Tworzenie i aktualizacja to operacje destrukcyjne; Claude prosi o potwierdzenie, zanim je wykona.

Wtyczka nie ma żadnych samodzielnych komend, tylko tę umiejętność.

Powyższa umiejętność korzysta z tych 22 narzędzi. Narzędzia do odkrywania i odczytu działają bez pytania; tworzenie, aktualizacja i narzędzie awaryjne uruchamiają się dopiero, gdy to potwierdzisz. glpi_delete jest destrukcyjne i zawsze pyta najpierw.

Odkrywanie

NarzędzieCo robi
glpi_statusSprawdza, czy instancja GLPI i jej API są dostępne.
glpi_sessionPokazuje, jako kto jest zalogowany bieżący token OAuth.
glpi_list_endpointsWypisuje przestrzenie nazw zasobów udostępniane przez API, jako punkt wyjścia do dalszego przeglądania.
glpi_get_openapiPobiera specyfikację OpenAPI instancji, opcjonalnie filtrowaną do pasujących ścieżek.
glpi_graphqlWykonuje zapytanie GraphQL tylko do odczytu, dla bogatszych lub bardziej wybiórczych danych niż REST.
glpi_graphql_schemaPobiera schemat GraphQL, dzięki czemu można poprawnie zbudować zapytanie.

Uniwersalny CRUD

NarzędzieCo robi
glpi_listListuje elementy pod dowolną ścieżką zasobu, z filtrowaniem, sortowaniem i paginacją.
glpi_getOdczytuje pojedynczy element pod dowolną ścieżką zasobu.
glpi_createTworzy element pod dowolną ścieżką zasobu.
glpi_updateZmienia pola istniejącego elementu pod dowolną ścieżką zasobu.
glpi_deleteUsuwa element pod dowolną ścieżką zasobu. Destrukcyjne; Speedwave prosi o potwierdzenie przed wykonaniem.
glpi_requestNarzędzie awaryjne dla dowolnej metody i ścieżki, której nie obejmują pozostałe, na przykład podzasobów albo akcji wtyczek.

Zgłoszenia, zmiany i problemy

NarzędzieCo robi
glpi_itil_listListuje zgłoszenia, zmiany lub problemy.
glpi_itil_getOdczytuje jedno zgłoszenie, zmianę lub problem po id.
glpi_itil_createOtwiera nowe zgłoszenie, zmianę lub problem.
glpi_itil_updateAktualizuje jedno z nich, na przykład jego status lub przypisanie.
glpi_itil_get_timelineOdczytuje wpisy z osi czasu jednego z nich, opcjonalnie zawężone do typu, na przykład komentarza czy zadania.
glpi_itil_add_timelineDodaje wpis do osi czasu, na przykład komentarz, zadanie, prośbę o zatwierdzenie lub rozwiązanie.

Zasoby i katalog

NarzędzieCo robi
glpi_asset_listListuje zasoby danego typu, na przykład komputery, monitory lub drukarki.
glpi_asset_getOdczytuje jeden zasób po typie i id.
glpi_user_meZwraca rekord użytkownika, do którego należy token OAuth.
glpi_admin_listListuje obiekty katalogowe: użytkowników, grupy, jednostki lub profile.

GLPI korzysta z OAuth2 sterowanego przez hosta, z grantem authorization-code. Host uruchamia proces logowania w przeglądarce i przechowuje token odświeżający oraz sekret klienta poza punktem montowania, w ~/.speedwave/oauth/<project>/glpi.json; do punktu montowania /tokens workera, w trybie tylko do odczytu, trafia jedynie krótkotrwały token dostępu. Worker odczytuje udostępniony mu adres bazowy z /tokens/glpi_url oraz token typu bearer z /tokens/access_token i nigdy nie widzi samego sekretu klienta ani tokenu odświeżającego.

Podczas obsługi żądań wywołania zasobów trafiają pod <base>/v2/<path>, wywołania rdzenia (status, sesja, OpenAPI) pod główną ścieżkę api.php, a zapytania GraphQL pod <base>/GraphQL. Przy wygasłym tokenie GLPI zwraca 400 zamiast standardowego 401, więc worker traktuje oba kody jako błąd uwierzytelnienia: prosi hostowy worker OAuth o odświeżenie, ponownie odczytuje odświeżony token dostępu i jednokrotnie ponawia żądanie. Blokada szereguje odświeżenia, dzięki czemu seria błędów wyzwala jedno odświeżenie, a nie wiele. Claude prosi cię o potwierdzenie przed każdym utworzeniem, aktualizacją czy usunięciem; odczyty (list, get, search, discovery, GraphQL) działają bez pytania.

Konfiguracja obejmuje rejestrację klienta OAuth w GLPI, a następnie logowanie z poziomu Speedwave.

  1. W GLPI przejdź do Setup → OAuth Clients i utwórz klienta OAuth.
  2. Zarejestruj URI przekierowania dokładnie jako http://127.0.0.1:9123/callback. Użyj dosłownie 127.0.0.1, nie localhost.
  3. W Speedwave wpisz bazowy adres URL API (api.php), identyfikator klienta oraz sekret klienta, a następnie kliknij Save.
  4. Kliknij Sign in with GLPI, aby przejść przez proces OAuth. Jeśli później natrafisz na błąd uwierzytelnienia, użyj Reconnect.

O tym, jak zainstalować i włączyć wtyczkę w projekcie przed tą konfiguracją, przeczytasz w Używanie wtyczek.

Worker przechowuje wyłącznie krótkotrwały token dostępu wystawiony przez hosta, zamontowany w trybie tylko do odczytu. Nigdy nie widzi sekretu klienta OAuth ani tokenu odświeżającego; oba pozostają poza punktem montowania, na hoście. Kontener nie udostępnia hostowi żadnych portów, więc jest osiągalny wyłącznie przez MCP Hub, a jego system plików jest tylko do odczytu poza tym jednym punktem montowania tokenu. Zobacz Jak obsługiwane są dane uwierzytelniające, aby dowiedzieć się, jak wpisuje się to w szerszy model izolacji Speedwave.