ISM MCP Server
ism-mcp
オーストラリアサイバーセキュリティセンター (ACSC) の Information Security Manual (ISM) を、MCP対応のLLMクライアント(Claude Desktop、VS Code、Cursor、Continueなど)に提供する Model Context Protocol サーバーです。
データは、公式の ASD/ACSC OSCAL ミラーからライブで取得されます:
そのリポジトリ内の各 git タグが、公開された ISM の各リリースに対応しています。サーバーは GitHub API を通じてタグを動的に検出するため、以下のようになります:
過去の全バージョン (
v2022.09.14以降) が利用可能です。現在のバージョン は、最新のタグとなります。
将来のバージョン は、ASD が新しいタグを公開した瞬間に自動的に表示されます。コードの変更や再デプロイは不要です。
カタログおよびプロファイルの JSON はディスク上にキャッシュされます(デフォルトは ~/.cache/ism-mcp/。ISM_MCP_CACHE_DIR で上書き可能)。タグリストは6時間ごとに更新されます(ISM_MCP_TAGS_TTL_MS で上書き可能)。
機能
ツール
ツール | 目的 |
| 公開されているすべての ISM リリース(タグ、ID、SHA、日付)を列挙します。 |
| バージョンの OSCAL メタデータとコントロール/グループの数を取得します。 |
| コントロール数を含む階層的な章/ガイドライン構造を表示します。 |
| 適用範囲、グループ、ラベルプレフィックスでフィルタリング可能なコントロールのページ分割リストを表示します。 |
| ラベル、タイトル、ステートメント、グループパス全体を対象とした全文検索を行います。 |
| OSCAL ID または人間が判読可能なラベル(例: |
| 2つの ISM リリースを比較し、追加、削除、変更されたコントロールを表示します。 |
| 8つの 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— 2つの 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 のバージョンは何ですか?"
"最新の ISM から GOV-01 を Markdown で表示して。"
"PROTECTED に適用される多要素認証に関する ISM コントロールを検索して。"
"ISM 2025.12.9 と最新リリースを比較して、変更点を要約して。"
"最新の ISM における Essential Eight ML2 ベースラインのコントロールをリストアップして。"
データとライセンス
ISM はオーストラリア信号局 (Australian Signals Directorate) によって公開されています。利用規約については、アップストリームのリポジトリおよび https://www.cyber.gov.au を参照してください。このサーバーは、公開されている OSCAL データを利用する非公式のツールです。
CI / CD
リポジトリには3つの GitHub Actions ワークフローが同梱されています:
.github/workflows/ci.yml— すべてのプッシュおよび PR で型チェック、ビルド、オフラインスモークテストを実行します。.github/workflows/release.yml— 新しいバージョンタグが作成された際(または手動ディスパッチ時)に、CI の成功後に実行されます。最新データのバンドル、ビルド、tarball のパッキング、チェックサムの生成、tarball とdata/index.jsonを添付した GitHub Release の作成、リリースされたコミットへのlatestgit タグの更新、および(オプションで)npm への公開を行います。Cloudflare の認証情報が設定されている場合、サイトを提供し/mcpで MCP Streamable HTTP エンドポイントを公開する Cloudflare Worker をデプロイします(手動ディスパッチでdeploy_cloudflare=falseを指定して無効化可能)。.github/workflows/upstream-sync.yml— 日次スケジュール(または手動ディスパッチ)でアップストリームの ACSC ISM OSCAL リポジトリを確認します。新しい ISM タグがアップストリームで公開されると、data/を再バンドルし、パッケージのパッチバージョンを上げ、mainに更新をコミットし、CI をトリガーしてタグ付きリリースと Cloudflare デプロイを実行します。
リポジトリの初回セットアップ
Settings → Actions → General → Workflow permissions: Read and write に設定します。
(オプション)リリース時に npm 公開するためのリポジトリ認証情報を設定します。
package.jsonのrepository、homepage、bugsフィールドを更新します(OWNERを置き換えてください)。(オプション)リリース時に Workers デプロイを有効にするため、リポジトリシークレットに Cloudflare アカウントの認証情報を設定します。
リリースの作成
# 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 リリースも1日1回自動的にチェックされます。新しいアップストリームタグが検出されると、同期ワークフローがデータを再バンドルし、パッケージバージョンを上げ、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