mcpField
Q
qualys-mcp

qualys-mcp

ローカル
github.com/rijul170セキュリティ015 週間前に更新

qualys-mcp について

qualys-mcpは、MCPクライアントからQualysのセキュリティ製品や管理機能を操作するMCPサーバーです。複数のQualys APIに対応し、破壊的操作には明示的な有効化と確認を求めます。

主な機能

  1. 01複数のQualys製品モジュールに対応
  2. 02文書化されたAPI操作に対応するツール
  3. 03FO、QPS REST、Gateway APIに対応
  4. 04読み取り、書き込み、破壊的操作の区分
  5. 05破壊的ツールの有効化と確認
  6. 06環境変数またはWindows DPAPIによる認証情報の設定

活用シーン

  1. 01VMDRの検出結果とホスト検出を確認
  2. 02スキャンの開始とWAS検出結果の検索
  3. 03Cloud Agentとコンテナセキュリティのデータ管理
  4. 04コンソールの対象をライセンス済みモジュールに限定

MCP 対応

Qualys製品と管理機能を操作するツールをMCPクライアントに公開します。各サーバープロセスは1つのQualysコンソール向けに設定します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"rijul170-qualys": {
"command": "uvx",
"args": [
"qualys-mcp-full"
]
}
}
}
起動コマンドuvx qualys-mcp-full

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiqualys-mcp-full0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Qualys MCP

あらゆる MCP 対応クライアント(Claude、その他の MCP ホスト)で VMDR、Policy Compliance、WAS、Cloud Agent、Container Security、TotalCloud、Patch Management、CSAM/GAV、EASM および管理機能を利用できる、Qualys ポータル全体を管理する Model Context Protocol サーバーです。

CI Python License: MIT MCP Tools

Qualys コンソールごとに 1 つのプロセスを実行します(契約数に応じて複数実行できます)。FastMCP を基盤とし、Qualys の 3 種類すべての API に対応する単一クライアントを備えています。厳格な読み取り/書き込み/破壊的操作の安全モデルを採用し、認証情報がチャットや平文に触れることはありません。


特長

  • 幅広い機能範囲 — 自動検出される 59 の機能モジュールが、ポータル全体をカバーします。VMDR、PC、WAS、Cloud Agent、Container Security、TotalCloud/CloudView、Patch Management、CSAM/GAV、EASM、FIM、EDR、PCRS、および管理機能が含まれます。
  • 約 400 のツール — list_hosts、list_host_detections、launch_scan、search_was_findings、list_knowledgebase、get_cs_image_vulnerabilities など、数百のツールを提供します。それぞれが、文書化された Qualys API 操作に 1 対 1 で対応しています。
  • 3 種類の API に 1 つのクライアントで対応 — 従来の「FO」XML API、QPS REST API、JWT 認証の Gateway を、すべて self._fo/self._qps/self._gateway の背後で処理します。
  • 安全性の段階分けを厳格に適用 — すべてのツールに読み取り専用、書き込み、破壊的操作のいずれかが指定されています。破壊的操作(削除/パージ/無効化)を行うツールは、コンソールごとに有効化しない限り登録すらされません。さらに、呼び出しごとに確認トークンが必要です。
  • 遅延認証 — インポート時にも構築時にもネットワーク呼び出しを行いません。--check は認証情報なしで完全にオフラインで実行できます。
  • シークレットを安全に保持 — Windows では認証情報を DPAPI 暗号化されたデータとしてのみ保存します。どの OS でも、環境変数を使って認証情報を設定できます。リポジトリに書き込まれることはありません。

3 種類の API

種別ベースパス認証ペイロード
従来型「FO」/api/2.0/fo/、/msp/Basic + X-Requested-With ヘッダーフォーム → XML
QPS REST/qps/rest/BasicXML <ServiceRequest>/JSON
Gatewaygateway.<pod>.apps.qualys.comBearer JWT(/auth から取得)JSON

アーキテクチャ

qualys_mcp/
  server.py     FastMCP server; lazy auth; --check offline validation
  registry.py   auto-discovers modules/*.py
  client.py     one client, three API regimes (FO / QPS / Gateway-JWT)
  config.py     per-console config + platform (POD) -> URL map
  common/       auth (HTTP mw), errors, logging, rate_limit, utils, xml
  modules/      base.py + one file per feature module (the bulk of the surface)

機能を追加するには、qualys_mcp/modules/ にファイルを追加するだけです。docs/MODULE_BUILD_GUIDE.md を参照してください。

クイックスタート

1. インストール
python -m venv .venv
# Windows:      .\.venv\Scripts\pip install -e .
# macOS/Linux:  ./.venv/bin/pip install -e .
2. オフラインの動作確認(認証情報は不要)
python -m qualys_mcp --check

検出されたすべてのモジュールについて、ツール数を一覧表示して終了します。最初のスモークテストに適しています。

3. 認証情報を設定

Qualys の API ユーザーと、プラットフォーム/POD コード(例:US1、US2、EU1)が必要です。コンソールの URL、または Help → About で確認できます。

すべての OS — 環境変数:

export QUALYS_USERNAME='api-user'
export QUALYS_PASSWORD='api-pass'
export QUALYS_PLATFORM='US2'          # or set QUALYS_API_URL / QUALYS_GATEWAY_URL
python -m qualys_mcp --transport streamable-http --host 127.0.0.1 --port 8781 --console-label consulting

Windows — DPAPI 暗号化データ(継続的な運用におすすめ):

# Encrypt once per console; the blob is user-scoped and stored under .secrets/
.\encrypt-qualys-creds.ps1 -Console consulting -Platform US2
.\encrypt-qualys-creds.ps1 -Console cloud      -Platform US2

# Launch one instance per console (:8781, :8782)
.\start-qualys-mcp.ps1
#   ...opt into destructive tools for a console only when you mean it:
.\start-qualys-mcp.ps1 -EnableDestructive cloud

# Optional: keep both alive across reboots via a Scheduled Task watchdog
.\register-qualys-mcp-task.ps1

すべての QUALYS_* 設定については .env.example を参照してください。

4. MCP クライアントを接続

Claude Code 用の、すぐに使える .mcp.json が含まれています。

{
  "mcpServers": {
    "qualys-consulting": { "type": "http", "url": "http://localhost:8781/mcp" },
    "qualys-cloud":      { "type": "http", "url": "http://localhost:8782/mcp" }
  }
}

scripts/register_mcp_clients.py では、同じローカル HTTP サーバーを複数の MCP クライアントに一括登録する方法を紹介しています。

安全モデル

  • ツールには、読み取り専用、書き込み、破壊的操作のいずれかが注記されています。
  • 破壊的操作を行うツール(削除、消去、無効化、アンインストール)は、コンソールが QUALYS_ENABLE_DESTRUCTIVE=true で実行されない限り、登録されません。
  • 有効にした場合でも、破壊的操作を行うツールが動作するには、一致する confirm=<id> 引数が必要です。したがって、単一のプロンプトから誤って破壊的な呼び出しが行われることはありません。

各ティアの詳細については、docs/SAFETY_AUDIT.md をご覧ください。

モジュールとツールの一覧

  • qualys_mcp/modules/ から 59 個のモジュールが自動検出されます。
  • デフォルトで 約 360 個のツールが登録され、QUALYS_ENABLE_DESTRUCTIVE=true の場合は 約 400 個になります(追加される約 40 個は、通常は非表示の、保護された破壊的操作ツールです)。
  • 3 つの API 体系にまたがっており、2 つの体系を扱うモジュールもいくつかあります。

モジュールごとの完全な表(レジストリ名、API ファミリー、ツール数、簡単な説明)は docs/MODULE_INDEX.md に、エンドポイント → ツール → アクションの完全な内訳は docs/ENDPOINTS_TOOLS_ACTIONS.md にあります。

設定リファレンス

変数用途
QUALYS_USERNAME / QUALYS_PASSWORDAPI ユーザーの認証情報
QUALYS_PLATFORMPOD コード(US1…KSA1)。API URL とゲートウェイ URL が自動入力されます
QUALYS_API_URL / QUALYS_GATEWAY_URL一覧にない POD 向けの明示的な上書き
QUALYS_CONSOLE_LABELログとサーバー名に表示するコンソール名
QUALYS_ENABLE_DESTRUCTIVE破壊的操作のティアを登録する場合は true
QUALYS_MCP_MODULESコンソールの対象をライセンス済みモジュールに限定する、カンマ区切りの許可リスト
QUALYS_MCP_API_KEYHTTP トランスポート用の任意の共有シークレット

開発

pip install -e ".[dev]"
python -m qualys_mcp --check   # offline validation
pytest                          # unit tests (no network)
ruff check .                    # lint

コントリビューションを歓迎します。CONTRIBUTING.md をご覧ください。

免責事項

これは独立したコミュニティプロジェクトです。Qualys, Inc. とは提携、推奨、サポートの関係にありません。「Qualys」および製品名は、それぞれの所有者の商標です。ご自身のサブスクリプションに対し、Qualys のライセンスおよび API 利用規約に従って使用してください。本ソフトウェアは「現状有姿」で提供されます(LICENSE を参照)。ご自身の環境に対して実行する内容については、特に破壊的操作のティアに関して、ユーザーご自身が責任を負います。

スター履歴

スター履歴グラフ

ライセンス

MIT © 2026 Rijul Sharma

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。