Skip to main content

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.

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'.

Metadata

Release files for mojood-glpi-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mojood-glpi-mcp 0.1.0
File Size Uploaded Provenance Actions
mojood_glpi_mcp-0.1.0.tar.gz 60.9 kB With provenance Details for mojood_glpi_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mojood-glpi-mcp 0.1.0
File Interpreter ABI Platform Actions
mojood_glpi_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for mojood_glpi_mcp-0.1.0-py3-none-any.whl

Total release size: 81.7 kB

Release files / mojood_glpi_mcp-0.1.0.tar.gz

Download URL mojood_glpi_mcp-0.1.0.tar.gz
Size 60.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ec21cb9487d5c7e96e77cd7eb6c8550ac523b47ee1563b50ee1925bd83442b3b
BLAKE2b-256 checksum
How to use checksums
370f5c7f06810b8ea49dc3b158425369170324dbef7d9d8d4ad80d8a4bd4e9c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / mojood_glpi_mcp-0.1.0-py3-none-any.whl

Download URL mojood_glpi_mcp-0.1.0-py3-none-any.whl
Size 20.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
274ae23816517d69643f1173785f251f712664865de3c3dbc22453ffba3d70d7
BLAKE2b-256 checksum
How to use checksums
841ddcc881c6db94eb7211951752ccbbedda64471348eb6bd7541be575ddd387
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for mojood-glpi-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mojood_glpi_mcp-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page