Skip to main content
Glama
JohnGilligan2

itglue-mcp

itglue-mcp

Servidor MCP de solo lectura sobre el tenant de IT Glue de Example Corp / examplecorp (your-company.itglue.com). Responde "¿qué sabemos de este cliente" desde el chat, y responde "¿cuáles son las credenciales para X" con un enlace de IT Glue en lugar de un secreto.

Construido sobre el estándar remoto-MCP de la casa: servidor de recursos fastmcp + autenticación Entra ID, detrás de Nginx Proxy Manager en Portainer. Ver ~/.claude/context/mcp-server-playbook.md.

Los hallazgos de la API y la auditoría de contenido que dieron forma a este diseño están en FEASIBILITY.md. Lea §0 y §1 antes de cambiar cualquier cosa.


Las dos garantías

1. Nunca se escribe nada en IT Glue

La clave API en uso tiene derechos completos de escritura y borrado. Verificado, no asumido:

PATCH  /configurations/999999999  -> 404 "Record not found"
PATCH  /passwords/999999999       -> 404 "Record not found"
DELETE /configurations/999999999  -> 404

Una clave sin permiso de escritura falla con 401/403 antes de la búsqueda del registro. Un 404 significa que la mutación fue autorizada y simplemente no tenía nada sobre lo que actuar. IT Glue no emite claves API clásicas con solo lectura, por lo que no hay permiso del lado del servidor en el que apoyarse — la garantía está completamente en este código:

  • client.py expone exactamente un método de solicitud, get(), que codifica method="GET".

  • No existe un helper post/patch/put/delete. Agregar uno es una regresión de seguridad, no una característica.

  • Un tripwire WriteAttemptError se dispara si se construye algo que no sea GET.

  • tests/smoke_local.py verifica tanto los métodos ausentes como los verbos ausentes.

Si alguna vez se construye la escritura (Opción C en FEASIBILITY.md), irá en un proceso separado con una clave separada. Esa separación es todo el argumento de seguridad, porque los documentos de IT Glue son texto creado por el cliente que un modelo resume — es decir, entrada no confiable.

2. Nunca se devuelve ningún valor de credencial

itglue_find_credential devuelve un puntero: el nombre de la credencial, la categoría, a qué dispositivo pertenece, cuándo se rotó por última vez, si OTP está activado, y un enlace profundo de IT Glue. El humano hace clic en el enlace e inicia sesión en IT Glue para revelar el secreto.

Campo

¿Se devuelve?

Por qué

password

Nunca

No configurable. IT Glue también rechaza darle valor a esta clave (?show_password=true401).

notes

Nunca

No configurable. En este tenant, 15 de 25 registros muestreados tenían notas, y las notas de contraseña son donde viven los PIN y los códigos de recuperación.

otp_secret, autofill_selectors

Nunca

Material de semilla TOTP / selectores.

username

Desactivado por defecto

Media credencial. ITGLUE_INCLUDE_USERNAME=true para habilitarlo.

resource_url

Este es el entregable.

La redacción ocurre en el camino hacia el espejo (redact.py), por lo que ninguna herramienta posterior puede filtrar un campo al olvidar eliminarlo. Los registros que IT Glue marca como restricted se descartan por completo.


Related MCP server: invgate-mcp

Por qué hay un espejo local

El filter[name] de IT Glue es solo coincidencia exacta, y algunos filtros se ignoran silenciosamente en lugar de rechazarse:

Consulta

Resultado

filter[name]=Example Corp

1

filter[name]=Info

0

filter[name]=nfoN

0

/contacts?filter[name]=john

los 318 contactos (filtro ignorado)

Por lo tanto, la búsqueda del lado del servidor o necesita la cadena exacta que el modelo no tiene, o miente silenciosamente. Por eso todo se refleja en RAM y se busca localmente (search.py, index.py).

Costo de sincronización, medido: ~10 solicitudes para ~7,000 registros estructurados; ~400 solicitudes para 300 cuerpos de documentos (95 listados de organizaciones + búsquedas por documento), contra un límite de 3,000 por 5 minutos. El núcleo se calienta en segundos; los documentos se calientan en segundo plano durante unos minutos, y las herramientas de documentos reportan status: indexing en lugar de colgarse.

Nada se persiste en disco — el corpus es pequeño, por lo que un reinicio simplemente re-sincroniza y no hay modo de fallo por caché obsoleta.

La búsqueda es deliberadamente tolerante porque las consultas reales se ven como "EF Vista Del Mar Unified Controller": un acrónimo, un nombre completo y un producto escrito Unifi en los datos. Se maneja con coincidencia de acrónimos (EF → Example Foundation), coincidencia difusa por palabra (unifiedunifi, ratio 0.83), resta de tokens de organización, y manejo de identificadores atómicos para que 192.0.2.51 no se desmenuce en ['10','105','251'].


Herramientas

Herramienta

Qué hace

itglue_find_organization

Resolver un nombre/acrónimo/fragmento a organizaciones. Úsela primero cuando haya ambigüedad.

itglue_find_credential

Qué credenciales existen para un dispositivo/servicio + enlaces de IT Glue. Nunca un valor.

itglue_search_documents

Búsqueda de texto completo en los cuerpos de los documentos. Devuelve fragmento + fecha de última actualización + enlace.

itglue_get_document

Texto completo de un documento, HTML → texto plano.

itglue_find_configuration

Dispositivo por nombre, hostname, IP, serial o MAC. Busca en configuraciones y activos flexibles.

itglue_organization_brief

Todo el cliente en una llamada: sitios, contactos, conteos de dispositivos, documentos, dominios, expiraciones.

itglue_list_locations

Direcciones, códigos postales, teléfonos. Los datos más limpios del tenant (79% completos).

itglue_list_contacts

Correos, teléfonos, títulos; filtro important_only.

itglue_expirations

Garantías, SSL, dominios — expirando o vencidos.

itglue_documentation_health

Informe de brechas, peor primero: campos faltantes, sin dirección de sitio, sin Hoja de Resumen Técnico, credenciales sin rotar por 3+ años.

itglue_health_check

Conectividad, frescura del espejo, postura de seguridad. Ejecútela primero cuando algo parezca mal.

Todas están anotadas con readOnlyHint: true.

La consulta para la que fue construido

"¿Cuáles son las credenciales para el controlador UniFi de Example Foundation?"

itglue_find_credential infiere la organización de la frase, resta las palabras de su nombre, hace coincidencia difusa de unifiedunifi en los 460 registros de credenciales de EF, y devuelve cinco punteros — los dos en el actual Unifi Controller (New Staging) y los tres inicios de sesión más antiguos de VDM_Cloudwifi — cada uno con un enlace clicable, la URL del dispositivo y la fecha de última rotación. Ningún secreto sale del servidor.


Desarrollo local

python -m venv .venv && .venv/Scripts/activate    # Windows
pip install -r requirements.txt
cp .env.example .env      # fill in ITGLUE_API_KEY; set MCP_AUTH_ENABLED=false
python -m itglue_mcp

Nunca exponga un servidor sin autenticación. MCP_AUTH_ENABLED=false es solo para MCP Inspector en localhost.

Prueba de humo (en vivo, solo lectura)

python tests/smoke_local.py

47 aserciones contra el tenant en vivo. Lee ~/.claude/credentials/itglue.env si ITGLUE_API_KEY no está configurada en el entorno, y no necesita instalación de fastmcp. Las aserciones de credenciales son las importantes — si alguna falla, deténgase y corrija antes de desplegar.


Despliegue

  1. App Entra + grupo + duración del tokenscripts/setup_entra_app.ps1 (modo de prueba por defecto; -Apply para ejecutar). Aprovisiona la app, el grupo de seguridad ITGlue-MCP-Users con los cinco miembros iniciales, aplicación de asignación, y una política de duración de token de acceso de 23h59m. Ver docs/ENTRA_SETUP_CHECKLIST.md.

  2. Stack de Portainer + NPMPORTAINER_DEPLOY.md. Puerto de host 8111 (probado libre en 10.0.0.10, 2026-07-29 — 8100 y 8110 están en uso). Host público itglue-mcp.example.com.

Mantenimiento

  • Rotar la clave de IT Glue — aún pendiente. Ahora vive en ~/.claude/credentials/itglue.env en formato KEY=VALUE de la casa (migrado 2026-07-30 desde un .itglueapicreds.txt en texto plano), pero eso fue un cambio de formato, no una rotación — el valor de la clave no ha cambiado. Tiene derechos de escritura + borrado y estuvo en un .txt en texto plano por un período desconocido. Para rotar: cree una nueva clave en IT Glue → Cuenta → Configuración → Claves API, actualice itglue.env y la variable ITGLUE_API_KEY del stack de Portainer, luego revoque la antigua.

  • IT Glue revoca automáticamente las claves API no utilizadas por más de 90 días. La actualización del espejo mantiene esta caliente; si el servidor se estaciona, espere un 401 al despertar.

  • Agregue y elimine acceso a través del grupo ITGlue-MCP-Users, no en el código.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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

  • F
    license
    A
    quality
    Not graded
    maintenance
    An MCP server that enables LLMs to interact with IT Glue documentation, including organizations, configurations, passwords, and flexible assets. It provides tools for listing, creating, and updating managed service provider (MSP) data through the IT Glue API.
    31
  • A
    license
    A
    quality
    C
    maintenance
    A read-only MCP server for InvGate Asset Management, enabling natural language queries for assets, people, computers, servers, software, and API health.
    12
    12
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A read-only MCP server that enables AI assistants to query ServiceNow instances—incidents, changes, users, CMDB—with malformed query linting and injection protection.
    7
    MIT

View all related MCP servers

Related MCP Connectors

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • Official Microsoft MCP Server to query Microsoft Entra data using natural language

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

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/JohnGilligan2/itglue-docs-mcp'

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