Skip to main content
Glama
askmojood

GLPI MCP server

by askmojood

GLPI MCP server

Ask Claude about your IT helpdesk and assets in plain words: what's urgent and who owns it, what a person holds and whether any of it is broken, what a ticket says. Add follow-ups and reassign tickets from the same chat, with a confirmation step before anything changes.

Built by Mojood Connect as a working demo for GLPI. It runs against any GLPI 9.5–12 through its REST API. This repository includes a local GLPI with SAMPLE data for the IT department of a made-up company, Harbor Trading, so you can try it without touching a real instance.

Tools

Tool

What it does

Changes anything?

find_tickets

Find tickets, highest priority first: status, requester, technicians, groups, deadline, linked assets

No

get_ticket

One ticket with its description and every follow-up in order, private ones marked

No

person_overview

The assets a person holds (state, and any open ticket about each) and the tickets they asked for

No

needs_attention

Tickets with no owner, past their time to resolve, high priority and above, waiting on the requester

No

add_followup

A follow-up on a ticket: private to technicians unless asked otherwise

Yes, after confirmation

update_ticket

Reassign to a group, add a technician, or change the priority

Yes, after confirmation

How changes are made safe. A call to add_followup or update_ticket without a confirmation changes nothing: it returns a plain summary ("On #1 ("VPN drops every 10 minutes at the Riyadh office"): reassign it to Network team (from Service desk).") and a one-time code. The change happens only when the same request comes back with that code, within 10 minutes. A code works once, and only for the request it was issued for. The server's instructions tell the model to show the summary and wait for the user's yes. Follow-ups carry "via Claude (Mojood Connect demo)", and GLPI records every change in the ticket's history under the signed-in user.

The server signs in as one GLPI user and acts with that user's profile and rights.

Related MCP server: glpi-mcp

Try it locally

Needs Docker (with Compose), uv and Python 3.13.

scripts/reset.sh                         # local GLPI on http://localhost:8095, filled with the SAMPLE helpdesk
uv run --env-file .env glpi-mcp          # MCP server on http://127.0.0.1:8006/mcp (Streamable HTTP)

docker/compose.yml follows GLPI's own docker-compose.example.yml (glpi-project/docker-images), pinned to GLPI 12.0.1 and MySQL 8.4, on 127.0.0.1 only and in UTC. scripts/up.sh gives GLPI's default accounts (glpi, tech, normal, post-only) generated passwords, creates the demo's API user and switches the REST API on; every password stays in the git-ignored files docker/.env and .env, and nothing is printed.

Claude Desktop: add this to claude_desktop_config.json (Settings › Developer), with the path to this folder:

{
  "mcpServers": {
    "glpi": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/glpi-mcp", "--env-file", "/path/to/glpi-mcp/.env", "glpi-mcp", "--stdio"]
    }
  }
}

Then ask: "What urgent tickets are open, and who owns them?", "What does Sara have, and is any of it broken?", "Add a note to the VPN ticket that the firewall logs point to the IPsec tunnel, and reassign it to the network team."

Your own GLPI: set GLPI_URL, GLPI_LOGIN, GLPI_PASSWORD (a GLPI user; the REST API and login-credential access switched on in Setup › General › API) and GLPI_SAMPLE=0.

The SAMPLE helpdesk

Harbor Trading's IT: three sites, three groups (Service desk, Network team, Field support), four technicians, eight staff, 16 assets (laptops, monitors, phones, warehouse scanners) and ten tickets. Times are set relative to the moment it is seeded, so there is always a major incident with no owner, two tickets past their deadline, one waiting on the requester and some solved history. Everyone and everything in it is made up.

Tests

uv run --env-file .env pytest            # unit tests (a fake GLPI API), plus live tests when the local GLPI runs

What a production version adds

This demo signs in as one user. A production server for GLPI customers would add sign-in through GLPI 11+'s OAuth for each technician, so Claude sees exactly their entities and profile; hosting with an audit log of every tool call; and more of the API (problems and changes, knowledge base, contracts, software and licences). That is what Mojood Connect builds.

License

Apache 2.0. GLPI is a trademark of Teclib'; this project is not made or endorsed by Teclib'.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI assistants to GLPI IT Service Management, enabling ticket management, asset search, and ITIL processes via natural language.
    2 npm
    4
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables AI assistants to manage GLPI inventory, tickets, and CIA security fields via its REST API.
    9
    2 npm
    1
    ISC
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to interact with a GLPI instance through its REST API, allowing natural-language consultation, creation, and updating of tickets, followups, tasks, solutions, knowledge base articles, suppliers, contacts, contracts, and statistics.
    52
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects AI assistants to GLPI through the Model Context Protocol, enabling management of tickets, ITIL objects, assets, projects, tasks, documents, sessions, entities and massive actions via the legacy REST API. It supports GLPI 10 and 11 with safe defaults such as read-only mode, disabled destructive operations and masked secrets.
    MIT