Skip to main content
Glama

ism-mcp

Ein Model Context Protocol-Server, der das Information Security Manual (ISM) des Australian Cyber Security Centre (ACSC) für MCP-fähige LLM-Clients (Claude Desktop, VS Code, Cursor, Continue usw.) bereitstellt.

Die Daten werden live vom offiziellen ASD/ACSC OSCAL-Mirror bezogen:

https://github.com/AustralianCyberSecurityCentre/ism-oscal

Jeder Git-Tag in diesem Repository entspricht einer veröffentlichten ISM-Version. Der Server erkennt Tags dynamisch über die GitHub-API, daher gilt:

  • Alle historischen Versionen bis zurück zu v2022.09.14 sind verfügbar.

  • Die aktuelle Version ist der jeweils neueste Tag.

  • Zukünftige Versionen erscheinen automatisch, sobald die ASD einen neuen Tag veröffentlicht — es sind keine Codeänderungen oder erneute Bereitstellungen erforderlich.

Katalog- und Profil-JSONs werden auf der Festplatte zwischengespeichert (Standard: ~/.cache/ism-mcp/, überschreibbar mit ISM_MCP_CACHE_DIR). Tag-Listen werden alle sechs Stunden aktualisiert (überschreibbar mit ISM_MCP_TAGS_TTL_MS).

Funktionen

Tools

Tool

Zweck

list_versions

Auflistung aller veröffentlichten ISM-Releases (Tag, ID, SHA, Datum).

get_version_metadata

OSCAL-Metadaten + Anzahl der Kontrollen/Gruppen für eine Version.

list_groups

Hierarchische Kapitel-/Richtlinienstruktur mit Anzahl der Kontrollen.

list_controls

Paginierte Liste der Kontrollen, filterbar nach Anwendbarkeit / Gruppe / Label-Präfix.

search_controls

Volltextsuche über Labels, Titel, Aussagen und Gruppenpfade hinweg.

get_control

Volle Details für eine einzelne Kontrolle per OSCAL-ID oder menschlichem Label (z. B. GOV-01), als JSON oder Markdown.

compare_versions

Vergleich zweier ISM-Releases — hinzugefügte, entfernte und geänderte Kontrollen.

list_profiles

Auflistung der acht OSCAL-Profile (NC / OS / P / S / TS + E8 ML1/2/3).

get_profile_controls

Aufgelöster Satz von Kontrollen für eine gegebene Baseline oder Essential Eight Reifegrad.

cache_info

Lokalen Cache inspizieren.

Ressourcen (Vorlagen)

  • ism://catalog/{version} — vollständiges OSCAL-Katalog-JSON (verwenden Sie latest oder z. B. 2026.03.24).

  • ism://catalog/{version}/control/{controlId} — eine einzelne Kontrolle, gerendert als Markdown.

  • ism://profile/{version}/{profile} — OSCAL-aufgelöster Profilkatalog für eine Baseline.

Prompts

  • ism_compliance_check — Erstellung einer strukturierten Compliance-Bewertung eines Systems gegenüber einer Baseline.

  • ism_change_brief — Erstellung einer Zusammenfassung des Änderungsmanagements zwischen zwei ISM-Releases.

Installation / Build

npm install
npm run build

Der kompilierte Einstiegspunkt ist dist/index.js und wird als ism-mcp Binärdatei bereitgestellt.

Ausführung

Der Server spricht MCP über stdio:

node dist/index.js

Für interaktive Erkundungen verwenden Sie den offiziellen Inspector:

npm run inspect

Einbindung in einen Client

VS Code (.vscode/mcp.json oder Einstellungen)

{
  "servers": {
    "ism": {
      "command": "node",
      "args": ["/absolute/path/to/ism-mcp/dist/index.js"],
    },
  },
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "ism": {
      "command": "node",
      "args": ["/absolute/path/to/ism-mcp/dist/index.js"],
    },
  },
}

Optionale Umgebungsvariablen

Variable

Zweck

ISM_MCP_CACHE_DIR

Überschreiben des Cache-Verzeichnisses auf der Festplatte.

ISM_MCP_TAGS_TTL_MS

TTL des Tag-Listen-Caches in Millisekunden (Standard 6h).

Beispiel-Prompts zum Ausprobieren

  • "Welche ISM-Versionen sind verfügbar?"

  • "Zeige mir GOV-01 aus dem neuesten ISM in Markdown."

  • "Suche nach ISM-Kontrollen zur Multi-Faktor-Authentifizierung, die für PROTECTED gelten."

  • "Vergleiche ISM 2025.12.9 mit dem neuesten Release und fasse die Änderungen zusammen."

  • "Liste die Kontrollen im Essential Eight ML2-Baseline für das neueste ISM auf."

Daten und Lizenzierung

Das ISM wird vom Australian Signals Directorate veröffentlicht. Siehe das Upstream-Repository und https://www.cyber.gov.au für Nutzungsbedingungen. Dieser Server ist ein unabhängiges Werkzeug, das die öffentlich veröffentlichten OSCAL-Daten nutzt.

CI / CD

Drei GitHub Actions-Workflows werden mit dem Repo ausgeliefert:

  • .github/workflows/ci.yml — Typ-Prüfungen, Builds und Ausführung des Offline-Smoke-Tests bei jedem Push und PR.

  • .github/workflows/release.yml — Wird durch CI nach einem erfolgreichen main-Build ausgelöst, wenn ein neuer Versions-Tag erstellt wird (oder durch manuellen Dispatch). Es bündelt die neuesten Daten, baut das Projekt, packt das Tarball, generiert Prüfsummen, erstellt ein GitHub-Release mit dem Tarball und der angehängten data/index.json, aktualisiert einen rollierenden latest Git-Tag auf den veröffentlichten Commit und veröffentlicht (optional) auf npm. Wenn Cloudflare-Anmeldedaten konfiguriert sind, wird ein Cloudflare Worker bereitgestellt, der die Website bedient und den MCP Streamable HTTP-Endpunkt unter /mcp bereitstellt (manueller Dispatch kann dies über deploy_cloudflare=false deaktivieren).

  • .github/workflows/upstream-sync.yml — Überprüft das Upstream ACSC ISM OSCAL-Repository täglich (oder per manuellem Dispatch). Wenn ein neuer ISM-Tag upstream veröffentlicht wird, werden die data/-Daten neu gebündelt, die Patch-Version des Pakets erhöht, das Update in main committet und die CI löst das getaggte Release und die Cloudflare-Bereitstellung aus.

Einmalige Repository-Einrichtung

  1. Einstellungen → Actions → General → Workflow-Berechtigungen: Read and write.

  2. (Optional) Repository-Anmeldedaten für npm-Veröffentlichung bei Release konfigurieren.

  3. Die Felder repository, homepage und bugs in package.json aktualisieren (ersetzen Sie OWNER).

  4. (Optional) Cloudflare-Konto-Anmeldedaten in den Repository-Secrets konfigurieren, um die Worker-Bereitstellung bei Release zu ermöglichen.

Ein Release erstellen

# bump version
npm version patch        # or minor / major
git push --follow-tags

Manuelle Releases führen zuerst die CI aus; wenn die CI auf main erfolgreich ist, wird der Versions-Tag erstellt und release.yml ausgelöst, das ein offline-fähiges ism-mcp-<version>.tgz erstellt, es an das GitHub-Release anhängt und (optional) das Paket auf npm veröffentlicht und den Cloudflare Worker-Endpunkt bereitstellt.

Upstream-ISM-Releases werden ebenfalls automatisch einmal täglich überprüft. Wenn ein neuer Upstream-Tag erkannt wird, bündelt der Sync-Workflow die Daten neu, erhöht die Paketversion, pusht das Update auf main, und die bestehenden CI- und Release-Workflows übernehmen von dort aus.

Für Remote-KI-Clients fügen Sie den Remote-MCP-Server mit dieser URL hinzu:

https://ism.mcp.zta.au/mcp

{
  "servers": {
    "ism": {
      "type": "http",
      "url": "https://ism.mcp.zta.au/mcp",
    },
  },
}

Remote MCP / HTTP-Transport

Neben stdio spricht ism-mcp auch MCP Streamable HTTP, sodass es als Remote-Endpunkt gehostet werden kann, den KI-Tools über das Netzwerk abfragen.

# run as an HTTP server on :8080
MCP_TRANSPORT=http PORT=8080 node dist/index.js
# or via flag
node dist/index.js --http

Endpunkte:

  • POST /mcp — JSON-RPC über Streamable HTTP (pro Sitzung via Mcp-Session-Id-Header).

  • GET /health — Liveness-Probe.

  • GET / — Klartext-Nutzungshinweis.

Umgebungsvariablen:

Variable

Zweck

MCP_TRANSPORT

stdio (Standard für CLI) oder http. Das Docker-Image setzt dies auf http.

PORT / HOST

Bind-Adresse (Standard: 0.0.0.0:8080).

MCP_HTTP_PATH

URL-Pfad für den MCP-Endpunkt (Standard /mcp).

Verbinden eines Clients mit dem Remote-Endpunkt

Gehosteter Endpunkt: https://ism.mcp.zta.au/mcp

// VS Code .vscode/mcp.json
{
  "servers": {
    "ism": {
      "type": "http",
      "url": "https://ism.mcp.zta.au/mcp",
    },
  },
}
Install Server
F
license - not found
A
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
13Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/RusticEagle/ism-mcp'

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