Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

GLPI MCP

by mhajderversion 0.1.1i★ –iRuns on your computer
Registry nameio.github.mhajder/glpi-mcp

Install

Overview

Description from the maker (original English)

MCP server for GLPI IT service management (tickets, assets, users, knowledge base)

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio, Streamable HTTP
  • Category: Search & AI memory
  • You need to fill in: GLPI_URL, GLPI_CLIENT_ID, GLPI_CLIENT_SECRET, GLPI_USERNAME, GLPI_PASSWORD

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: GLPI_URL, GLPI_CLIENT_ID, GLPI_CLIENT_SECRET, GLPI_USERNAME, GLPI_PASSWORD, GLPI_SCOPES, GLPI_API_VERSION, GLPI_ENTITY, GLPI_ENTITY_RECURSIVE, GLPI_PROFILE, GLPI_VERIFY_SSL, GLPI_TIMEOUT, READ_ONLY_MODE, DRY_RUN_MODE, DISABLED_TAGS, RESPONSE_MAX_SIZE, LOG_LEVEL, RATE_LIMIT_ENABLED, RATE_LIMIT_MAX_REQUESTS, RATE_LIMIT_WINDOW_MINUTES, TOOL_SEARCH_ENABLED, TOOL_SEARCH_STRATEGY, TOOL_SEARCH_MAX_RESULTS

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "glpi": {
      "command": "uvx",
      "args": [
        "glpi-mcp-server"
      ],
      "env": {
        "GLPI_URL": "your-value",
        "GLPI_CLIENT_ID": "your-value",
        "GLPI_CLIENT_SECRET": "your-value",
        "GLPI_USERNAME": "your-value",
        "GLPI_PASSWORD": "your-value",
        "GLPI_SCOPES": "your-value",
        "GLPI_API_VERSION": "your-value",
        "GLPI_ENTITY": "your-value",
        "GLPI_ENTITY_RECURSIVE": "your-value",
        "GLPI_PROFILE": "your-value",
        "GLPI_VERIFY_SSL": "your-value",
        "GLPI_TIMEOUT": "your-value",
        "READ_ONLY_MODE": "your-value",
        "DRY_RUN_MODE": "your-value",
        "DISABLED_TAGS": "your-value",
        "RESPONSE_MAX_SIZE": "your-value",
        "LOG_LEVEL": "your-value",
        "RATE_LIMIT_ENABLED": "your-value",
        "RATE_LIMIT_MAX_REQUESTS": "your-value",
        "RATE_LIMIT_WINDOW_MINUTES": "your-value",
        "TOOL_SEARCH_ENABLED": "your-value",
        "TOOL_SEARCH_STRATEGY": "your-value",
        "TOOL_SEARCH_MAX_RESULTS": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add glpi --env GLPI_URL=your-value --env GLPI_CLIENT_ID=your-value --env GLPI_CLIENT_SECRET=your-value --env GLPI_USERNAME=your-value --env GLPI_PASSWORD=your-value --env GLPI_SCOPES=your-value --env GLPI_API_VERSION=your-value --env GLPI_ENTITY=your-value --env GLPI_ENTITY_RECURSIVE=your-value --env GLPI_PROFILE=your-value --env GLPI_VERIFY_SSL=your-value --env GLPI_TIMEOUT=your-value --env READ_ONLY_MODE=your-value --env DRY_RUN_MODE=your-value --env DISABLED_TAGS=your-value --env RESPONSE_MAX_SIZE=your-value --env LOG_LEVEL=your-value --env RATE_LIMIT_ENABLED=your-value --env RATE_LIMIT_MAX_REQUESTS=your-value --env RATE_LIMIT_WINDOW_MINUTES=your-value --env TOOL_SEARCH_ENABLED=your-value --env TOOL_SEARCH_STRATEGY=your-value --env TOOL_SEARCH_MAX_RESULTS=your-value -- uvx glpi-mcp-server

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "glpi": {
      "command": "uvx",
      "args": [
        "glpi-mcp-server"
      ],
      "env": {
        "GLPI_URL": "your-value",
        "GLPI_CLIENT_ID": "your-value",
        "GLPI_CLIENT_SECRET": "your-value",
        "GLPI_USERNAME": "your-value",
        "GLPI_PASSWORD": "your-value",
        "GLPI_SCOPES": "your-value",
        "GLPI_API_VERSION": "your-value",
        "GLPI_ENTITY": "your-value",
        "GLPI_ENTITY_RECURSIVE": "your-value",
        "GLPI_PROFILE": "your-value",
        "GLPI_VERIFY_SSL": "your-value",
        "GLPI_TIMEOUT": "your-value",
        "READ_ONLY_MODE": "your-value",
        "DRY_RUN_MODE": "your-value",
        "DISABLED_TAGS": "your-value",
        "RESPONSE_MAX_SIZE": "your-value",
        "LOG_LEVEL": "your-value",
        "RATE_LIMIT_ENABLED": "your-value",
        "RATE_LIMIT_MAX_REQUESTS": "your-value",
        "RATE_LIMIT_WINDOW_MINUTES": "your-value",
        "TOOL_SEARCH_ENABLED": "your-value",
        "TOOL_SEARCH_STRATEGY": "your-value",
        "TOOL_SEARCH_MAX_RESULTS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "glpi": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "glpi-mcp-server"
      ],
      "env": {
        "GLPI_URL": "your-value",
        "GLPI_CLIENT_ID": "your-value",
        "GLPI_CLIENT_SECRET": "your-value",
        "GLPI_USERNAME": "your-value",
        "GLPI_PASSWORD": "your-value",
        "GLPI_SCOPES": "your-value",
        "GLPI_API_VERSION": "your-value",
        "GLPI_ENTITY": "your-value",
        "GLPI_ENTITY_RECURSIVE": "your-value",
        "GLPI_PROFILE": "your-value",
        "GLPI_VERIFY_SSL": "your-value",
        "GLPI_TIMEOUT": "your-value",
        "READ_ONLY_MODE": "your-value",
        "DRY_RUN_MODE": "your-value",
        "DISABLED_TAGS": "your-value",
        "RESPONSE_MAX_SIZE": "your-value",
        "LOG_LEVEL": "your-value",
        "RATE_LIMIT_ENABLED": "your-value",
        "RATE_LIMIT_MAX_REQUESTS": "your-value",
        "RATE_LIMIT_WINDOW_MINUTES": "your-value",
        "TOOL_SEARCH_ENABLED": "your-value",
        "TOOL_SEARCH_STRATEGY": "your-value",
        "TOOL_SEARCH_MAX_RESULTS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • GLPI_URL required env
    GLPI root URL without /api.php (e.g., https://glpi.example.com); needs GLPI 11.0.6+ or 12
  • GLPI_CLIENT_ID required env
    OAuth client ID from GLPI Setup > OAuth clients
  • GLPI_CLIENT_SECRET secret required env
    OAuth client secret from GLPI Setup > OAuth clients
  • GLPI_USERNAME required env
    GLPI user the tools act as (OAuth password grant)
  • GLPI_PASSWORD secret required env
    Password of the GLPI user
  • GLPI_SCOPES env
    OAuth scopes to request, space- or comma-separated (add graphql for GraphQL)
  • GLPI_API_VERSION env
    High-Level API version: auto, 2.3 or 3.0
  • GLPI_ENTITY env
    Entity ID to work in (GLPI-Entity header)
  • GLPI_ENTITY_RECURSIVE env
    Include sub-entities of GLPI_ENTITY
  • GLPI_PROFILE env
    Profile ID to work with (GLPI-Profile header)
  • GLPI_VERIFY_SSL env
    Verify SSL certificates
  • GLPI_TIMEOUT env
    Total seconds allowed for one request, retries included
  • READ_ONLY_MODE env
    Enable read-only mode to restrict write operations
  • DRY_RUN_MODE env
    Write tools return the request they would send instead of changing GLPI
  • DISABLED_TAGS env
    Comma-separated list of tags to disable tools for
  • RESPONSE_MAX_SIZE env
    Maximum size of a tool response in bytes (empty = unlimited)
  • LOG_LEVEL env
    Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  • RATE_LIMIT_ENABLED env
    Enable rate limiting
  • RATE_LIMIT_MAX_REQUESTS env
    Maximum requests per rate limit window
  • RATE_LIMIT_WINDOW_MINUTES env
    Rate limit window in minutes
  • TOOL_SEARCH_ENABLED env
    Enable FastMCP tool search transform
  • TOOL_SEARCH_STRATEGY env
    Tool search strategy (bm25 or regex)
  • TOOL_SEARCH_MAX_RESULTS env
    Maximum tool search results returned by search_tools

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account mhajder, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 5684 servers in this category
  • Published to the registry more recently than 98% of the other 5684 servers in this category
  • Basic checks equal to or better than 100% of the other 5684 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is GLPI MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: GLPI_URL, GLPI_CLIENT_ID, GLPI_CLIENT_SECRET, GLPI_USERNAME, GLPI_PASSWORD

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.1) reached the registry yesterday.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv), Docker on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

by upstashWidely used↓ 972.7K/wk★ 64.2KUpdated 2 days ago

Computer or cloud

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

by DeusDataWidely used↓ 18K/wk★ 48.1KUpdated 22 days ago

Runs on your computer

Exa

Connect AI agents to Exa for web search, content fetching, and multi-step research.

by exa-labsGrowing★ 5.2KUpdated 2 months ago

Runs in the cloud✓ exa.ai

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

GLPI MCP Server

Let AI agents work with GLPI tickets, assets and the knowledge base through the Model Context Protocol

Installation · Tools · Configuration · Security

GLPI MCP Server is a Python-based Model Context Protocol (MCP) server for the GLPI IT service management platform. It talks to GLPI's High-Level API (/api.php, OAuth2) and gives AI assistants and automation tools access to tickets, changes and problems (with their timeline and team), assets, users, groups, entities, the knowledge base and documents, plus generic tools that reach every endpoint GLPI exposes. It supports read and write operations, with read-only and dry-run modes, per-user GLPI access and OAuth login for remote MCP clients.

✨ Features

Core Features
  • Search tickets, changes and problems by status, type, priority, category, entity, dates, text or any RSQL filter
  • Read the full timeline of an item: followups, tasks, solutions, approvals and documents
  • Search and read assets of every type (including custom assets), with financial information
  • Find users, groups, entities and profiles
  • Search and read knowledge base articles; download documents
  • Discover every endpoint and schema from GLPI's own OpenAPI document, so nothing is hard-coded to one GLPI version
Management Operations
  • Create, update and delete tickets, changes and problems (if enabled)
  • Add followups, tasks, solutions and approval requests
  • Assign technicians and groups, add requesters and observers
  • Create, update and delete assets and knowledge base articles
  • Create, update and delete items at any endpoint with the generic tools
Advanced Capabilities
  • Supports GLPI 11.0.6+ (API 2.3) and GLPI 12 (API 3.0, or 2.3 if pinned); the version is detected and pinned in every request
  • OAuth password grant with token caching and renewal
  • Per-user access: token passthrough, or sign-in with GLPI accounts (OAuth login) for remote MCP clients
  • OIDC login through an external identity provider, or a static bearer token
  • Read-only mode, dry-run mode and tag-based tool filtering
  • HTML rich text converted to plain text to save tokens
  • Rate limiting, response size limit and optional tool-search transform
  • Multiple transport options (STDIO, SSE, HTTP) and optional Sentry integration

🚀 Installation

Prerequisites
  • Python 3.11 to 3.15
  • GLPI 11.0.6 or newer (including 12.x). GLPI 10 and GLPI 11.0.0-11.0.5 are not supported: they lack High-Level API 2.3
  • The API enabled in Setup > General > API ("Enable API")
  • An OAuth client (see GLPI setup)
Quick Install from PyPI

The easiest way to get started is to install from PyPI:

# Using UV (recommended)

uvx glpi-mcp-server

Or using pip

pip install glpi-mcp-server

Remember to configure the environment variables for your GLPI instance before running the server:

# Create environment configuration

export GLPI_URL=https://glpi.example.com export GLPI_CLIENT_ID=your-client-id export GLPI_CLIENT_SECRET=your-client-secret export GLPI_USERNAME=glpi-mcp export GLPI_PASSWORD=change-me

Install from Source
  1. Clone the repository:
git clone https://github.com/mhajder/glpi-mcp.git

cd glpi-mcp

  1. Install dependencies:
# Using UV (recommended)

uv sync

Or using pip

pip install -e .

  1. Configure environment variables:
cp .env.example .env

Edit .env with your GLPI URL and OAuth credentials

  1. Run the server:
# Using UV (recommended)

uv run glpi-mcp

Or using the installed command directly

glpi-mcp

Using Docker

A Docker image is available on GitHub Packages for easy deployment. It runs the HTTP Streamable transport on port 8000 (/mcp).

docker pull ghcr.io/mhajder/glpi-mcp:latest

When GLPI login or OIDC is enabled, mount a volume on /data so OAuth client registrations survive container recreation.

Open WebUI

Open WebUI 0.6.31 and later connect to the image directly. In Open WebUI, go to Admin Settings > Integrations > External Tool Servers, add a connection of type MCP (Streamable HTTP) with the URL http:// :8000/mcp, and set Bearer authentication to your MCP_HTTP_BEARER_TOKEN.

With GLPI login or OIDC enabled, use the public URL + /mcp and choose OAuth 2.1 authentication instead; Open WebUI registers itself as a client, so if you restrict redirect URIs, include your Open WebUI URL.

Development Setup

For development with additional tools:

# Clone and install with development dependencies

git clone https://github.com/mhajder/glpi-mcp.git cd glpi-mcp uv sync --group dev

Run tests

uv run pytest

Run with coverage

uv run pytest --cov=src/

Run linting and formatting

uv run ruff check . uv run ruff format .

Run type checking

uv run ty check .

Setup prek hooks

uv run prek install

🔧 Configuration

GLPI setup
  1. Enable the API: Setup > General > API > "Enable API".
  2. Create an OAuth client: Setup > OAuth clients > Add.
  • Grants: Password (for GLPI_USERNAME/GLPI_PASSWORD). Add Authorization Code for GLPI login.
  • Scopes: api and user. Add graphql for glpi_graphql_query.
  • For GLPI login, set the redirect URI to GLPI_OAUTH_BASE_URL + GLPI_OAUTH_REDIRECT_PATH.
  • Copy the generated client ID and secret.
  1. Create a GLPI user for the server (for example glpi-mcp) with a profile that has just the rights the tools need. Every tool call acts as this user, unless per-user access is enabled.
Environment Variables
# GLPI Connection Details

GLPI root URL, without /api.php

GLPI_URL=https://glpi.example.com

OAuth client from Setup > OAuth clients

GLPI_CLIENT_ID=your-client-id GLPI_CLIENT_SECRET=your-client-secret

GLPI account the tools act as (OAuth password grant)

GLPI_USERNAME=glpi-mcp GLPI_PASSWORD=change-me

OAuth scopes, space- or comma-separated (default: api user)

GLPI_SCOPES=api user

High-Level API version: auto (default), 2.3 or 3.0

GLPI_API_VERSION=auto

Optional: entity and profile to work in

GLPI_ENTITY=0

GLPI_ENTITY_RECURSIVE=true

GLPI_PROFILE=4

SSL Configuration

GLPI_VERIFY_SSL=true GLPI_TIMEOUT=30

Per-user GLPI access (HTTP transports only; pick at most one)

GLPI_TOKEN_PASSTHROUGH=false

GLPI_OAUTH_LOGIN=false

GLPI_OAUTH_BASE_URL=https://glpi-mcp.example.com

GLPI_OAUTH_REDIRECT_PATH=/auth/callback

GLPI_OAUTH_ALLOWED_REDIRECT_URIS=

Read-Only Mode

READ_ONLY_MODE=false

Dry-Run Mode

DRY_RUN_MODE=false

Disabled Tags

Example: DISABLED_TAGS=assets,knowledgebase,graphql

DISABLED_TAGS=

Response Size Limit (bytes; empty = unlimited)

RESPONSE_MAX_SIZE=500000

Logging Configuration

LOG_LEVEL=INFO

Rate Limiting

RATE_LIMIT_ENABLED=false RATE_LIMIT_MAX_REQUESTS=60 RATE_LIMIT_WINDOW_MINUTES=1

Tool Search Transform (Optional)

TOOL_SEARCH_ENABLED=false TOOL_SEARCH_STRATEGY=bm25 TOOL_SEARCH_MAX_RESULTS=5

Sentry Error Tracking (Optional)

SENTRY_DSN=https://your-key@o12345.ingest.us.sentry.io/6789

MCP Transport Configuration

'stdio' (default), 'sse' or 'http' ('streamable-http' is an alias for 'http')

MCP_TRANSPORT=stdio

MCP_HTTP_HOST=127.0.0.1

MCP_HTTP_PORT=8000

MCP_HTTP_BEARER_TOKEN=

OIDC / OAuth Authentication (optional, for remote hosting)

OIDC_CONFIG_URL=https://id.example.com/.well-known/openid-configuration

OIDC_CLIENT_ID=

OIDC_CLIENT_SECRET=

OIDC_BASE_URL=https://glpi-mcp.example.com

See .env.example for every setting with comments.

API versions

GLPI lists the High-Level API versions it offers at GET /api.php/. On first use the server reads that list and pins one version in every request path (/api.php/v2.3/... or /api.php/v3.0/...), because GLPI silently routes an unknown version to its newest one.

GLPIVersions offeredGLPI_API_VERSION=auto picks
10.x, 11.0.0-11.0.5none / 2.0-2.2not supported
11.0.6+2.32.3
12.x2.3, 3.03.0

Set GLPI_API_VERSION=2.3 to keep GLPI 12 on the 2.3 schemas (for example while migrating other integrations). The tools that depend on a schema difference handle both: knowledge base articles are filed under categories on 2.3 and under parent articles (parents) on 3.0.

Entity and profile

GLPI scopes every API session to an active profile and entities. By default these are the user's defaults. GLPI_ENTITY, GLPI_ENTITY_RECURSIVE and GLPI_PROFILE send the GLPI-Entity, GLPI-Entity-Recursive and GLPI-Profile headers with every request to change them. glpi_whoami shows the active ones and glpi_get_entity_tree lists the entities available.

🧰 Available Tools

Server & Session
  • glpi_server_info: API versions GLPI offers, the pinned version, auth mode and safety modes
  • glpi_whoami: The GLPI user the tools act as, with the active profile and entities
  • glpi_get_entity_tree: Entities the current user can work in
Tickets, Changes & Problems

All take itil_type: Ticket (default), Change or Problem.

  • glpi_search_itil: Search by status, type, priority, category, entity, dates, text or filter
  • glpi_get_itil: One item with its description and team
  • glpi_get_itil_timeline: Followups, tasks, solutions, approvals and documents
  • glpi_create_itil / glpi_update_itil / glpi_delete_itil: Create, update, delete
  • glpi_add_itil_followup: Add a followup (public or private)
  • glpi_add_itil_task: Add a task with state, time spent, technician and planning
  • glpi_add_itil_solution: Add a solution
  • glpi_request_itil_validation: Ask a user or group to approve a ticket or change
  • glpi_list_itil_team: Requesters, assignees and observers
  • glpi_add_itil_team_member / glpi_remove_itil_team_member: Assign or remove users, groups and suppliers
Assets
  • glpi_list_asset_types: Asset types of this GLPI, including custom assets
  • glpi_search_assets: Search one asset type, or all at once, by name, serial, inventory number or filter
  • glpi_get_asset: One asset, optionally with financial information
  • glpi_create_asset / glpi_update_asset / glpi_delete_asset: Create, update, delete
Users, Groups, Entities & Profiles
  • glpi_search_users / glpi_get_user: Find users; get one by ID or login
  • glpi_search_groups / glpi_get_group: Find groups; get one by ID
  • glpi_search_entities / glpi_get_entity: Find entities; get one by ID
  • glpi_list_profiles: Profiles (

Only the beginning is shown; read the rest in the repo

Ask PopNx