Skip to main content
Glama

ism-mcp

オーストラリアサイバーセキュリティセンター (ACSC) の Information Security Manual (ISM) を、MCP対応のLLMクライアント(Claude Desktop、VS Code、Cursor、Continueなど)に提供する Model Context Protocol サーバーです。

データは、公式の ASD/ACSC OSCAL ミラーからライブで取得されます:

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

そのリポジトリ内の各 git タグが、公開された ISM の各リリースに対応しています。サーバーは GitHub API を通じてタグを動的に検出するため、以下のようになります:

  • 過去の全バージョン (v2022.09.14 以降) が利用可能です。

  • 現在のバージョン は、最新のタグとなります。

  • 将来のバージョン は、ASD が新しいタグを公開した瞬間に自動的に表示されます。コードの変更や再デプロイは不要です。

カタログおよびプロファイルの JSON はディスク上にキャッシュされます(デフォルトは ~/.cache/ism-mcp/ISM_MCP_CACHE_DIR で上書き可能)。タグリストは6時間ごとに更新されます(ISM_MCP_TAGS_TTL_MS で上書き可能)。

機能

ツール

ツール

目的

list_versions

公開されているすべての ISM リリース(タグ、ID、SHA、日付)を列挙します。

get_version_metadata

バージョンの OSCAL メタデータとコントロール/グループの数を取得します。

list_groups

コントロール数を含む階層的な章/ガイドライン構造を表示します。

list_controls

適用範囲、グループ、ラベルプレフィックスでフィルタリング可能なコントロールのページ分割リストを表示します。

search_controls

ラベル、タイトル、ステートメント、グループパス全体を対象とした全文検索を行います。

get_control

OSCAL ID または人間が判読可能なラベル(例: GOV-01)で単一のコントロールの詳細を JSON または Markdown で取得します。

compare_versions

2つの ISM リリースを比較し、追加、削除、変更されたコントロールを表示します。

list_profiles

8つの OSCAL プロファイル(NC / OS / P / S / TS + E8 ML1/2/3)を一覧表示します。

get_profile_controls

指定されたベースラインまたは Essential Eight 成熟度レベルに対する解決済みのコントロールセットを取得します。

cache_info

ローカルキャッシュを調査します。

リソース (テンプレート)

  • 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"],
    },
  },
}

オプションの環境変数

変数

目的

ISM_MCP_CACHE_DIR

ディスク上のキャッシュディレクトリを上書きします。

ISM_MCP_TAGS_TTL_MS

タグリストのキャッシュ 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 の作成、リリースされたコミットへの latest git タグの更新、および(オプションで)npm への公開を行います。Cloudflare の認証情報が設定されている場合、サイトを提供し /mcp で MCP Streamable HTTP エンドポイントを公開する Cloudflare Worker をデプロイします(手動ディスパッチで deploy_cloudflare=false を指定して無効化可能)。

  • .github/workflows/upstream-sync.yml — 日次スケジュール(または手動ディスパッチ)でアップストリームの ACSC ISM OSCAL リポジトリを確認します。新しい ISM タグがアップストリームで公開されると、data/ を再バンドルし、パッケージのパッチバージョンを上げ、main に更新をコミットし、CI をトリガーしてタグ付きリリースと Cloudflare デプロイを実行します。

リポジトリの初回セットアップ

  1. Settings → Actions → General → Workflow permissions: Read and write に設定します。

  2. (オプション)リリース時に npm 公開するためのリポジトリ認証情報を設定します。

  3. package.jsonrepositoryhomepagebugs フィールドを更新します(OWNER を置き換えてください)。

  4. (オプション)リリース時に 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_TRANSPORT

stdio (CLI のデフォルト) または http。Docker イメージはこれを http に設定します。

PORT / HOST

バインド先アドレス(デフォルト: 0.0.0.0:8080)。

MCP_HTTP_PATH

MCP エンドポイントの URL パス(デフォルト /mcp)。

クライアントをリモートエンドポイントに接続する

ホストされたエンドポイント: 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