Skip to content

GLPI integration plugin

The GLPI plugin enables Speedwave to interface with GLPI 11 IT service management (ITSM) and asset management platforms. Claude can inspect and triage tickets, transition problem records, update hardware asset inventories, and query user directory structures.

The plugin runs as a stateless MCP worker container hosting an Express service written in TypeScript on Node 24. It targets the GLPI High-Level REST API v2 (api.php/v2) and GraphQL endpoints.

The container executes with standard isolation policies: unprivileged user permissions, read-only root filesystems, and a read-only /tokens directory mount. Outbound network traffic is constrained to the target GLPI instance.

Skill identifierDescription
glpi-operationsOrchestrates comprehensive ITIL workflows across tickets, problems, and asset inventories. Destructive operations require explicit confirmation.

The plugin provides 22 operations organized into functional categories:

Tool nameDescription
glpi_statusVerifies instance reachability and API status.
glpi_sessionInspects active user session metadata.
glpi_list_endpointsLists exposed resource namespaces in the v2 API.
glpi_get_openapiRetrieves OpenAPI v3 specifications for instance routes.
glpi_graphqlExecutes read-only GraphQL queries for selective datasets.
glpi_graphql_schemaFetches GraphQL schema definitions.
Tool nameDescription
glpi_listQueries collection resources with filtering, sorting, and pagination.
glpi_getRetrieves individual resource records by path and ID.
glpi_createAuthors new records at specified resource paths.
glpi_updateModifies existing resource attributes.
glpi_deletePermanently deletes a resource record (requires confirmation).
glpi_requestGeneric HTTP request dispatcher for specialized sub-resource paths.

ITIL ticket, change, and problem management

Section titled “ITIL ticket, change, and problem management”
Tool nameDescription
glpi_itil_listLists tickets, changes, or problem tickets.
glpi_itil_getRetrieves complete ITIL ticket records by ID.
glpi_itil_createCreates new ITIL tickets with assigned categories and urgencies.
glpi_itil_updateUpdates status transitions, assignments, or priorities.
glpi_itil_get_timelineRetrieves chronological timeline notes, tasks, and followups.
glpi_itil_add_timelineAppends solutions, followups, or approval tasks.
Tool nameDescription
glpi_asset_listEnumerate hardware assets (computers, monitors, network gear).
glpi_asset_getInspect specific hardware inventory records.
glpi_user_meRetrieve authenticated profile information.
glpi_admin_listQuery directory objects (users, groups, entities, profiles).

The plugin uses OAuth2 Authorization Code Grant mediated by the host daemon. Long-lived credentials (client_secret, refresh_token) reside in host storage at ~/.speedwave/oauth/<project>/glpi.json. The host daemon maintains short-lived access tokens mounted at /tokens/access_token and the target endpoint at /tokens/glpi_url.

If GLPI returns HTTP 400/401 on token expiration, the worker coordinates an atomic token refresh via the host daemon before retrying requests.

  1. In GLPI, navigate to Setup → OAuth Clients and register a new client application.
  2. Set the redirect URI to http://127.0.0.1:9123/callback.
  3. In Speedwave Desktop, open the GLPI plugin configuration, enter the API Base URL (https://glpi.example.com/api.php), Client ID, and Client Secret, then click Save.
  4. Click Sign in with GLPI to complete the browser authorization flow.

The worker container holds only short-lived access tokens mounted read-only. Client secrets and refresh tokens are isolated on the host. Refer to Credentials management for additional security specifications.