Skip to main content
Glama
JohnGilligan2

itglue-mcp

{"type": "text"}# itglue-mcp

Schreibgeschützter MCP-Server über den IT-Glue-Mandanten von Example Corp / examplecorp (your-company.itglue.com). Beantwortet aus dem Chat „Was wissen wir über diesen Kunden?" und beantwortet „Was sind die Anmeldedaten für X?" mit einem IT-Glue-Link statt eines Geheimnisses.

Aufgebaut auf dem hauseigenen Remote-MCP-Standard: fastmcp-Ressourcenserver + Entra-ID-Authentifizierung, hinter Nginx Proxy Manager auf Portainer. Siehe ~/.claude/context/mcp-server-playbook.md.

Erkenntnisse aus der API- und Inhaltsprüfung, die dieses Design geprägt haben, finden Sie in FEASIBILITY.md. Lesen Sie §0 und §1, bevor Sie etwas ändern.


Die zwei Garantien

1. Es wird nie etwas in IT Glue geschrieben

Der verwendete API-Schlüssel hat volle Schreib- und Löschrechte. Verifiziert, nicht angenommen:

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

Ein Schlüssel ohne Schreibberechtigung schlägt mit 401/403 fehl, bevor die Datensatzsuche stattfindet. Eine 404 bedeutet, dass die Mutation autorisiert war und lediglich nichts zu tun hatte. IT Glue gibt keine klassischen API-Schlüssel mit Lesebereich aus, daher gibt es keine serverseitige Berechtigung, auf die man sich stützen kann — die Garantie liegt vollständig in dieser Codebasis:

  • client.py stellt genau eine Anforderungsmethode bereit, get(), die method="GET" fest codiert.

  • Es gibt keinen post/patch/put/delete-Helfer. Einen hinzuzufügen ist eine Sicherheitsregression, kein Feature.

  • Ein WriteAttemptError-Auslöser feuert, wenn jemals ein Nicht-GET konstruiert wird.

  • tests/smoke_local.py prüft sowohl die fehlenden Methoden als auch die fehlenden Verben.

Wenn jemals ein Rückschreiben gebaut wird (FEASIBILITY.md Option C), erfolgt es in einem separaten Prozess mit einem separaten Schlüssel. Diese Trennung ist das gesamte Sicherheitsargument, denn IT-Glue-Dokumente sind kundenerstellter Text, den ein Modell zusammenfasst — also nicht vertrauenswürdige Eingabe.

2. Es wird nie ein Anmeldedatenwert zurückgegeben

itglue_find_credential gibt einen Zeiger zurück: den Namen der Anmeldedaten, die Kategorie, zu welchem Gerät sie gehören, wann sie zuletzt rotiert wurden, ob OTP aktiviert ist, und einen IT-Glue-Deep-Link. Der Mensch klickt auf den Link und meldet sich bei IT Glue an, um das Geheimnis zu enthüllen.

Feld

Zurückgegeben?

Warum

password

Nie

Nicht konfigurierbar. IT Glue verweigert diesem Schlüssel auch einen Wert (?show_password=true401).

notes

Nie

Nicht konfigurierbar. In diesem Mandanten hatten 15 von 25 Stichproben Notizen, und Passwortnotizen sind der Ort, an dem PINs und Wiederherstellungscodes leben.

otp_secret, autofill_selectors

Nie

TOTP-Seed / Selektor-Material.

username

Standardmäßig aus

Halbe Anmeldedaten. ITGLUE_INCLUDE_USERNAME=true zum Aktivieren.

resource_url

Ja

Das ist das Ergebnis.

Die Schwärzung erfolgt auf dem Weg in den Spiegel (redact.py), sodass kein nachgelagertes Tool ein Feld leaken kann, indem es vergisst, es zu entfernen. Datensätze, die IT Glue als restricted markiert, werden vollständig verworfen.


Related MCP server: invgate-mcp

Warum es einen lokalen Spiegel gibt

IT Glues filter[name] ist nur exakte Übereinstimmung, und einige Filter werden stillschweigend ignoriert statt abgelehnt:

Abfrage

Ergebnis

filter[name]=Example Corp

1

filter[name]=Info

0

filter[name]=nfoN

0

/contacts?filter[name]=john

alle 318 Kontakte (Filter ignoriert)

Die serverseitige Suche benötigt also entweder die exakte Zeichenfolge, die das Modell nicht hat, oder sie lügt still. Daher wird alles in den RAM gespiegelt und lokal durchsucht (search.py, index.py).

Sync-Kosten, gemessen: ~10 Anfragen für ~7.000 strukturierte Datensätze; ~400 Anfragen für 300 Dokumentkörper (95 Organisationslisten + Abrufe pro Dokument), bei einer Obergrenze von 3.000 pro 5 Minuten. Der Kern erwärmt sich in Sekunden; Dokumente erwärmen sich im Hintergrund über einige Minuten, und Dokumenttools melden status: indexing, anstatt zu hängen.

Es wird nichts auf der Festplatte gespeichert — der Korpus ist klein, sodass ein Neustart einfach neu synchronisiert und es keinen Fehlermodus für veralteten Cache gibt.

Die Suche ist bewusst nachsichtig, weil echte Abfragen wie „EF Vista Del Mar Unified Controller" aussehen: ein Akronym, ein vollständiger Name und ein Produkt, das in den Daten als Unifi geschrieben ist. Behandelt durch Akronymabgleich (EF → Example Foundation), Fuzzy-Abgleich pro Wort (unifiedunifi, Verhältnis 0,83), Subtraktion von Organisations-Tokens und atomare Identifikatorbehandlung, sodass 192.0.2.51 nicht in ['10','105','251'] zerlegt wird.


Werkzeuge

Werkzeug

Was es tut

itglue_find_organization

Einen Namen/Akronym/Fragment zu Organisationen auflösen. Bei Mehrdeutigkeit zuerst verwenden.

itglue_find_credential

Welche Anmeldedaten für ein Gerät/einen Dienst existieren + IT-Glue-Links. Nie ein Wert.

itglue_search_documents

Volltextsuche über Dokumentkörper. Gibt Ausschnitt + letztes Aktualisierungsdatum + Link zurück.

itglue_get_document

Volltext eines Dokuments, HTML → Klartext.

itglue_find_configuration

Gerät nach Name, Hostname, IP, Seriennummer oder MAC. Durchsucht Konfigurationen und flexible Assets.

itglue_organization_brief

Ganzer Kunde in einem Aufruf: Standorte, Kontakte, Geräteanzahl, Dokumente, Domains, Abläufe.

itglue_list_locations

Straßenadressen, Postleitzahlen, Telefone. Die saubersten Daten im Mandanten (79% vollständig).

itglue_list_contacts

E-Mails, Telefone, Titel; important_only-Filter.

itglue_expirations

Garantien, SSL, Domains — ablaufend oder überfällig.

itglue_documentation_health

Lückenbericht, schlimmste zuerst: fehlende Felder, keine Standortadresse, kein Technical Overview Sheet, Anmeldedaten seit 3+ Jahren nicht rotiert.

itglue_health_check

Konnektivität, Spiegel-Frische, Sicherheitslage. Führen Sie dies zuerst aus, wenn etwas nicht stimmt.

Alle sind mit readOnlyHint: true annotiert.

Die Abfrage, für die dies gebaut wurde

„Was sind die Anmeldedaten für den Example Foundation UniFi-Controller?"

itglue_find_credential leitet die Organisation aus dem Satz ab, subtrahiert deren Namenswörter, führt einen Fuzzy-Abgleich von unifiedunifi über 460 EF-Anmeldedatensätze durch und gibt fünf Zeiger zurück — die zwei auf dem aktuellen Unifi Controller (New Staging) und die drei älteren VDM_Cloudwifi-Anmeldungen — jeweils mit einem klickbaren Link, der Geräte-URL und dem Datum der letzten Rotation. Kein Geheimnis verlässt den Server.


Lokale Entwicklung

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

Setzen Sie niemals einen Server ohne Authentifizierung ein. MCP_AUTH_ENABLED=false ist nur für MCP Inspector auf localhost.

Smoke-Test (live, schreibgeschützt)

python tests/smoke_local.py

47 Assertions gegen den Live-Mandanten. Liest ~/.claude/credentials/itglue.env, wenn ITGLUE_API_KEY nicht in der Umgebung gesetzt ist, und benötigt keine fastmcp-Installation. Die Anmeldedaten-Assertions sind die wichtigen — wenn eine fehlschlägt, stoppen und beheben, bevor Sie bereitstellen.


Bereitstellung

  1. Entra-App + Gruppe + Token-Lebensdauerscripts/setup_entra_app.ps1 (standardmäßig Trockenlauf; -Apply zum Ausführen). Stellt die App, die Sicherheitsgruppe ITGlue-MCP-Users mit den fünf anfänglichen Mitgliedern, Zuweisungsdurchsetzung und eine 23h59m-Zugriffstoken-Lebensdauerrichtlinie bereit. Siehe docs/ENTRA_SETUP_CHECKLIST.md.

  2. Portainer-Stack + NPMPORTAINER_DEPLOY.md. Host-Port 8111 (am 29.07.2026 auf 10.0.0.10 als frei geprüft — 8100 und 8110 sind belegt). Öffentlicher Host itglue-mcp.example.com.

Wartung

  • IT-Glue-Schlüssel rotieren — noch offen. Er liegt jetzt unter ~/.claude/credentials/itglue.env im hauseigenen KEY=VALUE-Format (migriert am 30.07.2026 von einer Klartext-Datei .itglueapicreds.txt), aber das war eine Formatänderung, keine Rotation — der Schlüsselwert ist unverändert. Er hat Schreib- und Löschrechte und lag für einen unbekannten Zeitraum in einer Klartext-.txt. Zum Rotieren: Erstellen Sie einen neuen Schlüssel in IT Glue → Konto → Einstellungen → API-Schlüssel, aktualisieren Sie itglue.env und den ITGLUE_API_KEY des Portainer-Stacks, und widerrufen Sie dann den alten.

  • IT Glue widerruft automatisch API-Schlüssel, die 90+ Tage lang nicht verwendet wurden. Die Spiegelaktualisierung hält diesen warm; wenn der Server jemals geparkt wird, erwarten Sie beim Aufwachen eine 401.

  • Fügen Sie Zugriff über die Gruppe ITGlue-MCP-Users hinzu und entfernen Sie ihn, nicht über den Code.

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