npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-glpi

v3.2.0

Published

MCP Server for GLPI - IT Service Management for Claude. Multi-criteria search, pagination, dynamic field resolution, ticket timeline, ITIL coverage (incidents, problems, changes, validations), asset CMDB, reporting.

Downloads

417

Readme

MCP Server for GLPI v3

A Model Context Protocol (MCP) server that exposes GLPI (IT Service Management) to AI assistants like Claude.

v3 is a foundations-and-coverage overhaul on top of v2. See CHANGELOG.md for the full list of changes; the rest of this README documents what's exposed today.

What's in v3

  • Solid foundations: unified HTTP layer with auto re-authentication on 401, structured errors, retry on 5xx.
  • Real search: multi-criteria with AND / OR / AND NOT / OR NOT, forcedisplay, pagination, fetch_all, dedicated count probe.
  • Dynamic field mapping: /listSearchOptions/{itemtype} is cached so field_id ↔ name translations stay valid across GLPI versions.
  • High-level reporting: glpi_search_tickets accepts friendly params, glpi_tickets_stats_by ventilates counts by status / category / technician / entity / month.
  • Full ITIL coverage: timeline (followups + tasks + solutions + validations), validations request/approve, ticket linking, document attachment, satisfaction, overdue (SLA) tickets.
  • Resolved foreign keys by default: detail views return users_id_tech: 42 and the resolved name, so the LLM doesn't have to guess.

Configuration

| Env var | Required | Description | |---|---|---| | GLPI_URL | yes | Base URL of the GLPI instance | | GLPI_APP_TOKEN | no | Application token (Setup → General → API) | | GLPI_USER_TOKEN | no* | User API token | | GLPI_USERNAME | no* | Login (when not using user token) | | GLPI_PASSWORD | no* | Password (when not using user token) | | GLPI_TIMEOUT_MS | no | HTTP request timeout in ms (default 15000) | | GLPI_MAX_RETRIES | no | Max retries on 5xx / 429 / network errors (default 2) | | GLPI_DEBUG | no | Set to any value to log HTTP retries/re-auth to stderr |

* either GLPI_USER_TOKEN or GLPI_USERNAME+GLPI_PASSWORD is required.

Claude Desktop / Claude Code

{
  "mcpServers": {
    "glpi": {
      "command": "npx",
      "args": ["mcp-glpi"],
      "env": {
        "GLPI_URL": "https://glpi.example.com",
        "GLPI_APP_TOKEN": "...",
        "GLPI_USER_TOKEN": "..."
      }
    }
  }
}

Tool catalogue

Tickets — read

| Tool | Description | |---|---| | glpi_list_tickets | List with start/limit/range/sort/order/status | | glpi_get_ticket | Detail + status/urgency labels + counts of linked items | | glpi_get_ticket_timeline | Followups + tasks + solutions + validations, chronological | | glpi_search_tickets | High-level search (status, assigned, requester, dates, ...) | | glpi_get_ticket_followups | Followups of a ticket | | glpi_get_ticket_tasks | Tasks | | glpi_get_ticket_solutions | Solutions | | glpi_get_ticket_validations | Validations (approvals) | | glpi_get_ticket_documents | Linked documents | | glpi_get_ticket_satisfaction | Satisfaction survey result | | glpi_list_overdue_tickets | Tickets whose SLA deadline has passed |

Tickets — write

| Tool | Description | |---|---| | glpi_create_ticket | Create a ticket | | glpi_update_ticket | Update fields | | glpi_delete_ticket | ⚠️ Delete (force=true purges) | | glpi_add_followup | Add a followup | | glpi_add_task | Add a task with time tracking | | glpi_add_solution | Add a solution | | glpi_assign_ticket | Assign to user OR group | | glpi_link_tickets | link / duplicate / parent | | glpi_add_ticket_validation | Request a validation | | glpi_set_validation_status | Approve (2) or refuse (3) | | glpi_attach_document_to_ticket | Link an uploaded document to a ticket |

Problems & Changes

| Tool | Description | |---|---| | glpi_list_problems / glpi_get_problem / glpi_create_problem / glpi_update_problem | Problem management | | glpi_list_changes / glpi_get_change / glpi_create_change / glpi_update_change | Change management |

Assets

| Tool family | Notes | |---|---| | Computer, Software, NetworkEquipment, Printer, Monitor, Phone | list_*, get_*, plus create/update/delete symmetry |

Knowledge base, contracts, suppliers, locations, projects, documents

glpi_list_*, glpi_get_*, and glpi_create_* where the GLPI API allows it. glpi_search_knowbase performs a free-text search on the title (field id resolved dynamically — no longer hard-coded).

Users, groups, categories, entities

glpi_list_users filters active users via the search endpoint (not searchText); glpi_create_user/glpi_create_group/glpi_add_user_to_group cover provisioning.

Statistics

| Tool | Description | |---|---| | glpi_get_ticket_stats | Counts by status (optional entity / date filters) | | glpi_get_asset_stats | Total counts per asset type | | glpi_tickets_stats_by | Ventilation by status / category / technician / entity / month, optional period |

Generic / introspection

| Tool | Description | |---|---| | glpi_search_v2 | Multi-criteria search (criteria[], forcedisplay, fetch_all, ...) | | glpi_count | Cheap totalcount probe with criteria | | glpi_list_search_options | Catalogue of searchable fields for an itemtype | | glpi_get_session_info | Active profile + available profiles + entities | | glpi_search | Deprecated: single-criterion alias kept for backward compat |

Resources

glpi://tickets/open, glpi://tickets/recent, glpi://problems/open, glpi://changes/pending, glpi://computers, glpi://groups, glpi://categories, glpi://stats/tickets, glpi://stats/assets.

Reference

Ticket status

| ID | Label | |---|---| | 1 | New | | 2 | Processing (assigned) | | 3 | Processing (planned) | | 4 | Pending | | 5 | Solved | | 6 | Closed |

Validation status

| ID | Label | |---|---| | 1 | Waiting | | 2 | Granted | | 3 | Refused |

Urgency / impact / priority

| ID | Label | |---|---| | 1 | Very low | | 2 | Low | | 3 | Medium | | 4 | High | | 5 | Very high |

Change status

| ID | Label | |---|---| | 1 | New | | 2 | Evaluation | | 3 | Approval | | 4 | Accepted | | 5 | Pending | | 6 | Test | | 7 | Qualification | | 8 | Applied | | 9 | Review | | 10 | Closed | | 11 | Refused | | 12 | Canceled |

Development

git clone https://github.com/GMS64260/mcp-glpi.git
cd mcp-glpi
npm install
npm run build
npm test          # node --test via tsx, mocked fetch

Run locally:

export GLPI_URL="https://glpi.example.com"
export GLPI_USER_TOKEN="..."
npm start

License

MIT

Links