ISM MCP Server
ism-mcp
一个 Model Context Protocol 服务器,旨在为支持 MCP 的 LLM 客户端(Claude Desktop、VS Code、Cursor、Continue 等)提供 澳大利亚网络安全中心 (ACSC) 信息安全手册 (ISM)。
数据直接来源于官方 ASD/ACSC OSCAL 镜像:
该仓库中的每个 git 标签都是一个已发布的 ISM 版本。服务器通过 GitHub API 动态发现标签,因此:
所有历史版本(追溯至
v2022.09.14)均可用。当前版本即最新的标签。
未来版本在 ASD 发布新标签时会自动出现——无需更改代码或重新部署。
目录和配置文件 JSON 会缓存在磁盘上(默认路径为 ~/.cache/ism-mcp/,可通过 ISM_MCP_CACHE_DIR 覆盖)。标签列表每六小时刷新一次(可通过 ISM_MCP_TAGS_TTL_MS 覆盖)。
功能
工具
工具 | 用途 |
| 枚举所有已发布的 ISM 版本(标签、ID、SHA、日期)。 |
| 获取版本的 OSCAL 元数据以及控制项/组计数。 |
| 带有控制项计数的层级章节/指南结构。 |
| 分页的控制项列表,可按适用性/组/标签前缀进行过滤。 |
| 对标签、标题、声明和组路径进行全文搜索。 |
| 通过 OSCAL ID 或人类可读标签(例如 |
| 比较两个 ISM 版本之间的差异——包括新增、删除和修改的控制项。 |
| 列出八个 OSCAL 配置文件(NC / OS / P / S / TS + E8 ML1/2/3)。 |
| 获取给定基准或“基本八项”(Essential Eight) 成熟度级别的已解析控制项集。 |
| 检查本地缓存。 |
资源(模板)
ism://catalog/{version}— 完整的 OSCAL 目录 JSON(使用latest或例如2026.03.24)。ism://catalog/{version}/control/{controlId}— 渲染为 Markdown 的单个控制项。ism://profile/{version}/{profile}— 针对基准的 OSCAL 已解析配置文件目录。
提示词
ism_compliance_check— 针对基准生成系统的结构化合规性评估。ism_change_brief— 生成两个 ISM 版本之间的变更管理摘要。
安装 / 构建
npm install
npm run build编译后的入口点为 dist/index.js,并作为 ism-mcp 二进制文件公开。
运行
服务器通过 stdio 使用 MCP 协议通信:
node dist/index.js如需进行交互式探索,请使用官方检查器:
npm run inspect连接到客户端
VS Code (.vscode/mcp.json 或设置)
{
"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"],
},
},
}可选环境变量
变量 | 用途 |
| 覆盖磁盘缓存目录。 |
| 标签列表缓存的 TTL(毫秒,默认为 6 小时)。 |
尝试示例提示词
“有哪些可用的 ISM 版本?”
“以 Markdown 格式显示最新 ISM 中的 GOV-01。”
“搜索适用于 PROTECTED 级别的关于多因素身份验证的 ISM 控制项。”
“比较 ISM 2025.12.9 与最新版本,并总结变更内容。”
“列出最新 ISM 中 Essential Eight ML2 基准下的控制项。”
数据与许可
ISM 由澳大利亚信号局 (Australian Signals Directorate) 发布。请参阅上游仓库和 https://www.cyber.gov.au 了解使用条款。本服务器是一个非附属工具,仅消费公开发布的 OSCAL 数据。
CI / CD
仓库附带三个 GitHub Actions 工作流:
.github/workflows/ci.yml— 在每次推送和 PR 时进行类型检查、构建并运行离线冒烟测试。.github/workflows/release.yml— 在main分支构建成功且创建新版本标签后(或手动触发)由 CI 调度。它会打包最新数据、构建、压缩 tarball、生成校验和、创建包含 tarball 和data/index.json的 GitHub Release、将滚动latestgit 标签更新至已发布的提交,并(可选)发布到 npm。如果配置了 Cloudflare 凭据,它会部署一个 Cloudflare Worker,用于提供站点服务并在/mcp处公开 MCP Streamable HTTP 端点(可通过deploy_cloudflare=false手动禁用)。.github/workflows/upstream-sync.yml— 每日(或手动)检查上游 ACSC ISM OSCAL 仓库。当上游发布新 ISM 标签时,它会重新打包data/,提升包补丁版本,将更新提交到main,并触发 CI 进行标签发布和 Cloudflare 部署。
一次性仓库设置
设置 → Actions → General → 工作流权限:读写 (Read and write)。
(可选)配置发布到 npm 的仓库凭据。
更新
package.json中的repository、homepage和bugs字段(替换OWNER)。(可选)在仓库密钥中配置 Cloudflare 账户凭据,以启用发布时的 Workers 部署。
发布版本
# bump version
npm version patch # or minor / major
git push --follow-tags手动发布会先运行 CI;当 main 分支上的 CI 成功后,它会创建版本标签并调度 release.yml,该工作流会构建一个离线就绪的 ism-mcp-<version>.tgz,将其附加到 GitHub Release,并(可选)将包发布到 npm 并部署 Cloudflare Worker 端点。
上游 ISM 版本也会每天自动检查一次。如果检测到新的上游标签,同步工作流会重新打包数据、提升包版本、将更新推送到 main,后续由现有的 CI 和发布工作流接管。
对于远程 AI 客户端,请使用此 URL 添加远程 MCP 服务器:
https://ism.mcp.zta.au/mcp
{
"servers": {
"ism": {
"type": "http",
"url": "https://ism.mcp.zta.au/mcp",
},
},
}远程 MCP / HTTP 传输
除了 stdio,ism-mcp 还支持 MCP Streamable HTTP,因此可以作为远程端点托管,供 AI 工具通过网络查询。
# run as an HTTP server on :8080
MCP_TRANSPORT=http PORT=8080 node dist/index.js
# or via flag
node dist/index.js --http端点:
POST /mcp— 基于 Streamable HTTP 的 JSON-RPC(通过Mcp-Session-Id标头进行会话管理)。GET /health— 存活探针。GET /— 纯文本使用提示。
环境变量:
变量 | 用途 |
|
|
| 绑定地址(默认: |
| MCP 端点的 URL 路径(默认 |
将客户端连接到远程端点
托管端点: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