Skip to main content
Glama
Luizcc87

GLPI MCP Server v2

by Luizcc87

GLPI MCP Server v2

🌐 English version · Português (Brasil)

Servidor MCP (Model Context Protocol) em TypeScript/Node para integração com GLPI. Utiliza a API GLPI v2.3 (via OAuth2) para fornecer cobertura ITIL e ferramentas integradas (tickets, problems, changes, knowledgebase, stats, assets, administration) diretamente a agentes de IA.

Este projeto consolida múltiplas ferramentas, evita repetição de requests e traz dados em formatos otimizados para consumo por LLMs.

🌟 Créditos e Agradecimentos

Este projeto reaproveita estrutura e cobertura de ferramentas de:

Adaptados para a nova API GLPI v2.3 (OAuth2). Agradecimento aos autores originais (GMS64260 e DevSkillsIT) pela inspiração arquitetural e lógica de negócio de mapeamento ITIL.

Related MCP server: GLPI MCP

🚀 Funcionalidades (Tools)

São providas ferramentas focadas em produtividade, incluindo:

  • Assistance: Criação, atualização, busca (com filtros RSQL) e leitura completa (incluindo timeline em 1 request) de Tickets, Problems e Changes. Estatísticas e adição de follow-ups.

  • Knowledgebase: Busca e leitura de artigos.

  • Assets: Listagem e leitura de Computers (com flag para inclusão de specs detalhadas).

  • Administration: Busca de usuários, leitura de contexto de usuário e listagem de grupos.

🛠 Instalação

  1. Clone o repositório ou baixe os arquivos.

  2. Instale as dependências:

    npm install
  3. Compile o projeto:

    npm run build

⚙️ Configuração (.env)

Crie um arquivo .env na raiz do projeto, baseado no arquivo .env.example:

GLPI_BASE_URL=http://localhost:8080
GLPI_CLIENT_ID=seu_client_id_oauth2
GLPI_CLIENT_SECRET=seu_client_secret_oauth2
GLPI_USERNAME=usuario_glpi
GLPI_PASSWORD=senha_glpi

Como criar o Cliente API OAuth2 no GLPI

  1. Acesse o GLPI (versão 11 / v2.3 habilitada).

  2. Vá em ConfiguraçãoClientes OAuth (/front/oauthclient.php).

  3. Adicione um novo cliente.

  4. Em Concessões, adicione Senha (password grant — recomendado para scripts/agentes).

  5. Em Escopos, selecione ao menos api (e user se for usar tools de contexto de usuário).

  6. Salve e copie o Client ID (identifier) e Client Secret exibidos no item salvo.

🔌 Registro em Cliente MCP

O servidor roda via stdio (node dist/index.js + variáveis de ambiente), então qualquer cliente MCP compatível pode registrá-lo. Abaixo, exemplos por cliente.

Claude Desktop / Claude Code

Arquivo claude_desktop_config.json (Desktop) ou .mcp.json (Claude Code, na raiz do projeto):

{
  "mcpServers": {
    "glpi-v2": {
      "command": "node",
      "args": [
        "caminho/absoluto/para/glpi-mcp-v2/dist/index.js"
      ],
      "env": {
        "GLPI_BASE_URL": "http://localhost:8080",
        "GLPI_CLIENT_ID": "seu_client_id_oauth2",
        "GLPI_CLIENT_SECRET": "seu_client_secret_oauth2",
        "GLPI_USERNAME": "usuario_glpi",
        "GLPI_PASSWORD": "senha_glpi"
      }
    }
  }
}

Antigravity (IDE e CLI)

Arquivo ~/.gemini/config/mcp_config.json (global) ou .agents/mcp_config.json (por workspace):

{
  "mcpServers": {
    "glpi-v2": {
      "command": "node",
      "args": [
        "caminho/absoluto/para/glpi-mcp-v2/dist/index.js"
      ],
      "env": {
        "GLPI_BASE_URL": "http://localhost:8080",
        "GLPI_CLIENT_ID": "seu_client_id_oauth2",
        "GLPI_CLIENT_SECRET": "seu_client_secret_oauth2",
        "GLPI_USERNAME": "usuario_glpi",
        "GLPI_PASSWORD": "senha_glpi"
      }
    }
  }
}

Codex CLI (OpenAI)

Arquivo ~/.codex/config.toml (global) ou .codex/config.toml (por projeto, em ambiente confiável):

[mcp_servers.glpi-v2]
command = "node"
args = ["caminho/absoluto/para/glpi-mcp-v2/dist/index.js"]

[mcp_servers.glpi-v2.env]
GLPI_BASE_URL = "http://localhost:8080"
GLPI_CLIENT_ID = "seu_client_id_oauth2"
GLPI_CLIENT_SECRET = "seu_client_secret_oauth2"
GLPI_USERNAME = "usuario_glpi"
GLPI_PASSWORD = "senha_glpi"

Ou via codex mcp add glpi-v2 --command node --args caminho/absoluto/para/glpi-mcp-v2/dist/index.js (interativo, para as env vars).

Hermes Agent

hermes mcp add glpi-v2 --command "node caminho/absoluto/para/glpi-mcp-v2/dist/index.js"

As variáveis de ambiente (GLPI_BASE_URL, GLPI_CLIENT_ID, etc.) devem estar disponíveis no ambiente onde o Hermes é executado, ou configuradas via .env no diretório do projeto (o servidor as carrega via dotenv, se aplicável — confira src/config.ts).

OpenClaw

Arquivo ~/.openclaw/openclaw.json:

{
  "mcp": {
    "servers": {
      "glpi-v2": {
        "command": "node",
        "args": [
          "caminho/absoluto/para/glpi-mcp-v2/dist/index.js"
        ],
        "transport": "stdio",
        "env": {
          "GLPI_BASE_URL": "http://localhost:8080",
          "GLPI_CLIENT_ID": "seu_client_id_oauth2",
          "GLPI_CLIENT_SECRET": "seu_client_secret_oauth2",
          "GLPI_USERNAME": "usuario_glpi",
          "GLPI_PASSWORD": "senha_glpi"
        }
      }
    }
  }
}

Nota: os exemplos de Hermes Agent e OpenClaw acima seguem a documentação pública de cada projeto no momento da escrita, mas não foram testados diretamente contra este servidor. Valide a conexão localmente (liste as tools expostas) antes de depender em produção.

Alternativa: transporte HTTP

Se o cliente não suportar stdio, o servidor também expõe StreamableHTTPServerTransport (ver src/httpServer.ts). Defina MCP_TRANSPORT=http e, opcionalmente, MCP_HTTP_PORT (padrão 3000) nas variáveis de ambiente do processo. O endpoint fica em http://localhost:<porta>/mcp (POST) — aponte o cliente para essa URL em vez de um comando local.

📄 Spec OpenAPI (referência de desenvolvimento)

O arquivo swagger-v2.3.json (spec OpenAPI completa da API v2.3, gerada dinamicamente pelo GLPI) não é versionado (git-ignorado — 4.6MB, gerado). Para regenerar a partir de uma instância GLPI rodando:

curl -s "http://SEU_GLPI/api.php/doc.json" -o swagger-v2.3.json

🌐 Modo HTTP (Express)

O servidor suporta opcionalmente comunicação via HTTP, usando o endpoint stateless recomendado (POST /mcp). Para ativar este modo, defina as variáveis de ambiente:

  • MCP_TRANSPORT=http (O padrão é stdio)

  • MCP_HTTP_PORT=3000 (Opcional, define a porta do servidor Express)

Exemplo de requisição para listar as ferramentas usando curl:

curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

Licença

MIT

Install Server
A
license - permissive license
C
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
6Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for interacting with GitLab API, supporting both self-hosted instances and gitlab.com. Provides tools for managing issues, merge requests, code review, pipelines, milestones, releases, search, and file access.
    514
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server allowing an AI assistant to interact directly with your GLPI instance via its REST API, enabling ticket management, knowledge base operations, and statistics.
    40
    4
    The Unlicense
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for iTop ITSM that provides 19 tools for analytics, ticket management, comments, knowledge base, and CI impact analysis, enabling AI assistants to interact with iTop.
    1

View all related MCP servers

Related MCP Connectors

  • An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform

  • MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.

  • MCP server for the PDFGate API. Generate PDFs, manage documents and handle e-signatures.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Luizcc87/glpi-mcp-v2'

If you have feedback or need assistance with the MCP directory API, please join our Discord server