ISM MCP Server
ism-mcp
Un servidor del Protocolo de Contexto de Modelo que sirve el Manual de Seguridad de la Información (ISM) del Centro Australiano de Ciberseguridad (ACSC) a clientes LLM compatibles con MCP (Claude Desktop, VS Code, Cursor, Continue, etc.).
Los datos se obtienen en tiempo real desde el espejo oficial OSCAL del ASD/ACSC:
Cada etiqueta (tag) de git en ese repositorio es una versión publicada del ISM. El servidor descubre las etiquetas dinámicamente a través de la API de GitHub, por lo tanto:
Todas las versiones históricas desde
v2022.09.14están disponibles.La versión actual es la etiqueta más reciente.
Las versiones futuras aparecen automáticamente en el momento en que el ASD publica una nueva etiqueta; no se requieren cambios de código ni redepliegues.
El catálogo y el JSON del perfil se almacenan en caché en el disco (por defecto ~/.cache/ism-mcp/, se puede sobrescribir con ISM_MCP_CACHE_DIR). Los listados de etiquetas se actualizan cada seis horas (se puede sobrescribir con ISM_MCP_TAGS_TTL_MS).
Capacidades
Herramientas
Herramienta | Propósito |
| Enumera cada versión publicada del ISM (etiqueta, id, SHA, fecha). |
| Metadatos OSCAL + conteo de controles/grupos para una versión. |
| Estructura jerárquica de capítulos/directrices con conteo de controles. |
| Lista paginada de controles, filtrable por aplicabilidad / grupo / prefijo de etiqueta. |
| Búsqueda de texto completo en etiquetas, títulos, declaraciones y rutas de grupo. |
| Detalle completo de un control individual por id de OSCAL o etiqueta humana (ej. |
| Diferencias entre dos versiones del ISM: controles añadidos, eliminados y modificados. |
| Lista los ocho perfiles OSCAL (NC / OS / P / S / TS + E8 ML1/2/3). |
| Conjunto resuelto de controles para una línea base o nivel de madurez de Essential Eight. |
| Inspecciona la caché local. |
Recursos (plantillas)
ism://catalog/{version}— catálogo OSCAL completo en JSON (uselatesto ej.2026.03.24).ism://catalog/{version}/control/{controlId}— un control individual renderizado como Markdown.ism://profile/{version}/{profile}— catálogo de perfil resuelto de OSCAL para una línea base.
Prompts
ism_compliance_check— genera una evaluación de cumplimiento estructurada de un sistema frente a una línea base.ism_change_brief— produce un resumen de gestión de cambios entre dos versiones del ISM.
Instalación / compilación
npm install
npm run buildEl punto de entrada compilado es dist/index.js y se expone como el binario ism-mcp.
Ejecución
El servidor habla MCP a través de stdio:
node dist/index.jsPara una exploración interactiva, utilice el inspector oficial:
npm run inspectConexión a un cliente
VS Code (.vscode/mcp.json o configuración)
{
"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"],
},
},
}Entorno opcional
Variable | Propósito |
| Sobrescribe el directorio de caché en disco. |
| TTL de la caché de etiquetas en milisegundos (por defecto 6h). |
Ejemplos de prompts para probar
"¿Qué versiones de ISM están disponibles?"
"Muéstrame GOV-01 del ISM más reciente, en Markdown."
"Busca controles del ISM sobre autenticación multifactor que se apliquen a PROTECTED."
"Compara el ISM 2025.12.9 con la última versión y resume los cambios."
"Lista los controles en la línea base Essential Eight ML2 para el ISM más reciente."
Datos y licencias
El ISM es publicado por la Dirección Australiana de Señales (ASD). Consulte el repositorio original y https://www.cyber.gov.au para conocer los términos de uso. Este servidor es una herramienta no afiliada que consume los datos OSCAL publicados públicamente.
CI / CD
El repositorio incluye tres flujos de trabajo de GitHub Actions:
.github/workflows/ci.yml— realiza comprobaciones de tipo, construye y ejecuta la prueba de humo offline en cada push y PR..github/workflows/release.yml— despachado por CI después de una construcción exitosa enmaincuando se crea una nueva etiqueta de versión (o por despacho manual), empaqueta los datos más recientes, construye, empaqueta el tarball, genera sumas de verificación, crea un GitHub Release con el tarball ydata/index.jsonadjuntos, actualiza una etiqueta gitlatestal commit lanzado, y (opcionalmente) publica en npm. Si las credenciales de Cloudflare están configuradas, despliega un Cloudflare Worker que sirve el sitio y expone el endpoint HTTP de MCP Streamable en/mcp(el despacho manual puede deshabilitar esto mediantedeploy_cloudflare=false)..github/workflows/upstream-sync.yml— verifica el repositorio original ACSC ISM OSCAL diariamente (o por despacho manual). Cuando se publica una nueva etiqueta ISM, vuelve a empaquetardata/, incrementa la versión del paquete, confirma la actualización enmainy permite que CI active el lanzamiento etiquetado y el despliegue en Cloudflare.
Configuración única del repositorio
Settings → Actions → General → Workflow permissions: Read and write.
(Opcional) configurar credenciales del repositorio para la publicación en npm al lanzar.
Actualizar los campos
repository,homepageybugsenpackage.json(reemplazarOWNER).(Opcional) configurar las credenciales de la cuenta de Cloudflare en los secretos del repositorio para habilitar el despliegue de Workers al lanzar.
Realizar un lanzamiento
# bump version
npm version patch # or minor / major
git push --follow-tagsLos lanzamientos manuales ejecutan CI primero; cuando CI tiene éxito en main, crea la etiqueta de versión y despacha release.yml, que construye un ism-mcp-<version>.tgz listo para usar offline, lo adjunta al GitHub Release y (opcionalmente) publica el paquete en npm y despliega el endpoint de Cloudflare Worker.
Los lanzamientos del ISM original también se verifican automáticamente una vez al día. Si se detecta una nueva etiqueta original, el flujo de trabajo de sincronización vuelve a empaquetar los datos, incrementa la versión del paquete, envía la actualización a main, y los flujos de trabajo de CI y lanzamiento existentes se encargan del resto.
Para clientes de IA remotos, añada el servidor MCP remoto con esta URL:
https://ism.mcp.zta.au/mcp
{
"servers": {
"ism": {
"type": "http",
"url": "https://ism.mcp.zta.au/mcp",
},
},
}MCP remoto / transporte HTTP
Además de stdio, ism-mcp también habla MCP Streamable HTTP para que pueda alojarse como un endpoint remoto que las herramientas de IA consultan a través de la red.
# run as an HTTP server on :8080
MCP_TRANSPORT=http PORT=8080 node dist/index.js
# or via flag
node dist/index.js --httpEndpoints:
POST /mcp— JSON-RPC sobre Streamable HTTP (por sesión mediante el encabezadoMcp-Session-Id).GET /health— sonda de vivacidad.GET /— pista de uso en texto plano.
Variables de entorno:
Variable | Propósito |
|
|
| Dirección de enlace (por defecto: |
| Ruta URL para el endpoint MCP (por defecto |
Conectar un cliente al endpoint remoto
Endpoint alojado: https://ism.mcp.zta.au/mcp
// VS Code .vscode/mcp.json
{
"servers": {
"ism": {
"type": "http",
"url": "https://ism.mcp.zta.au/mcp",
},
},
}Maintenance
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