Qualys Mcp

io.github.rijul170由 GitHub 帳號 rijul170 發布v0.1.0更新於 Oct 24, 2026

Full Qualys portal management over MCP: VMDR, PC, WAS, Cloud Agent, Container Security & more

概覽

AI 產生的概覽

本機 MCP 伺服器,把 Qualys 入口網站(VMDR、政策合規、WAS、雲端代理、容器安全等)以約 400 個工具提供給 MCP 用戶端使用。

可以做什麼
  • 列出主機、主機偵測結果與知識庫條目
  • 啟動掃描並查詢弱點、修補與合規資料
  • 搜尋 WAS 發現項目並檢視容器映像弱點
  • 使用雲端代理、TotalCloud/CloudView、EASM、FIM、EDR、PCRS 等模組
  • 管理入口網站,破壞性操作預設不註冊
適用情境
適合想讓助理直接查詢或操作自有 Qualys 訂閱的情境,例如弱點分流、合規檢查或發起掃描,不必離開聊天用戶端。每個 Qualys 主控台需要一個獨立行程。
執行需求
以 Python 套件(qualys-mcp-full)在本機透過 stdio 執行,README 亦提供本機 HTTP 傳輸方式。需要 Qualys API 使用者名稱與密碼及平台/POD 代碼,透過 QUALYS_USERNAME、QUALYS_PASSWORD、QUALYS_PLATFORM(或明確的 URL 覆寫)提供,Windows 上也可使用 DPAPI 加密憑證檔。需要連線至 Qualys API 的網路。
安裝前請注意
伺服器持有 Qualys API 憑證,請妥善保護環境變數或加密檔案,切勿貼到對話中。它可發起掃描等寫入操作;破壞性工具(刪除、清除、停用、解除安裝)僅在 QUALYS_ENABLE_DESTRUCTIVE=true 時註冊,且每次呼叫仍需確認權杖。選用的 QUALYS_MCP_API_KEY 可保護 HTTP 傳輸。本專案為獨立社群專案,與 Qualys 公司無關。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Qualys Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Qualys MCP

A Model Context Protocol server for full Qualys portal management — expose VMDR, Policy Compliance, WAS, Cloud Agent, Container Security, TotalCloud, Patch Management, CSAM/GAV, EASM and administration to any MCP‑capable client (Claude, and other MCP hosts).

[CI] [Python] [License: MIT] [MCP] [Tools]

One process per Qualys console (run as many as you have subscriptions). Built on FastMCP, with a single client that speaks all three Qualys API families, a strict read / write / destructive safety model, and credentials that never touch chat or plaintext.


Highlights

  • Broad coverage — 59 auto‑discovered feature modules spanning the whole portal: VMDR, PC, WAS, Cloud Agent, Container Security, TotalCloud/CloudView, Patch Management, CSAM/GAV, EASM, FIM, EDR, PCRS, and administration.
  • ~400 tools — list_hosts, list_host_detections, launch_scan, search_was_findings, list_knowledgebase, get_cs_image_vulnerabilities, and hundreds more, each mapped 1:1 to a documented Qualys API operation.
  • Three API regimes, one client — the classic "FO" XML API, the QPS REST API, and the JWT‑authenticated Gateway are all handled behind self._fo / self._qps / self._gateway.
  • Safety tiers are load‑bearing — every tool is annotated read‑only, write, or destructive. Destructive tools (delete / purge / deactivate) are not even registered unless you opt in per console, and still require a per‑call confirmation token.
  • Lazy auth — no network calls at import or construction; --check runs fully offline with no credentials.
  • Secrets stay secret — on Windows, credentials live only in DPAPI‑encrypted blobs; on any OS you can supply them via environment variables. Nothing is ever written to the repo.

The three API regimes

RegimeBase pathAuthPayload
Classic "FO"/api/2.0/fo/, /msp/Basic + X-Requested-With headerform → XML
QPS REST/qps/rest/BasicXML <ServiceRequest> / JSON
Gatewaygateway.<pod>.apps.qualys.comBearer JWT (from /auth)JSON

Architecture

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)

Adding a capability is just dropping a file in qualys_mcp/modules/ — see docs/MODULE_BUILD_GUIDE.md.

Quick start

1. Install

bash
python -m venv .venv# Windows:      .\.venv\Scripts\pip install -e .# macOS/Linux:  ./.venv/bin/pip install -e .

2. Offline sanity check (no credentials required)

bash
python -m qualys_mcp --check

Lists every discovered module with its tool count and exits — a good first smoke test.

3. Provide credentials

You need a Qualys API user and your platform/POD code (e.g. US1, US2, EU1; find it under your console URL or Help → About).

Any OS — environment variables:

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

Windows — DPAPI‑encrypted blobs (recommended for a persistent deployment):

powershell
# 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

See .env.example for every QUALYS_* setting.

4. Point your MCP client at it

A ready‑to‑use .mcp.json is included for Claude Code:

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 shows how to register the same local‑HTTP servers into several MCP clients at once.

Safety model

  • Tools are annotated read‑only, write, or destructive.
  • Destructive tools (delete, purge, deactivate, uninstall) are not registered unless the console runs with QUALYS_ENABLE_DESTRUCTIVE=true.
  • Even when enabled, each destructive tool requires a matching confirm=<id> argument before it will act — so a destructive call can never happen by accident from a single prompt.

Read docs/SAFETY_AUDIT.md for the full tiering.

Module & tool inventory

  • 59 modules auto‑discovered from qualys_mcp/modules/.
  • ~360 tools registered by default; ~400 with QUALYS_ENABLE_DESTRUCTIVE=true (the extra ~40 are the guarded destructive tools that otherwise stay hidden).
  • Spread across the three API regimes, with a handful of modules spanning two.

The full per‑module table (registry name, API family, tool counts, one‑line description) is in docs/MODULE_INDEX.md, and a complete endpoint → tool → action breakdown is in docs/ENDPOINTS_TOOLS_ACTIONS.md.

Configuration reference

VariablePurpose
QUALYS_USERNAME / QUALYS_PASSWORDAPI user credentials
QUALYS_PLATFORMPOD code (US1…KSA1) — auto‑fills API + Gateway URLs
QUALYS_API_URL / QUALYS_GATEWAY_URLExplicit overrides for unlisted PODs
QUALYS_CONSOLE_LABELNames the console in logs and the server name
QUALYS_ENABLE_DESTRUCTIVEtrue to register the destructive tier
QUALYS_MCP_MODULESComma‑separated allowlist to scope a console to its licensed modules
QUALYS_MCP_API_KEYOptional shared secret for the HTTP transport

Development

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

Contributions welcome — see CONTRIBUTING.md.

Disclaimer

This is an independent, community project. It is not affiliated with, endorsed by, or supported by Qualys, Inc. "Qualys" and product names are trademarks of their respective owners. Use against your own subscriptions in accordance with your Qualys license and API terms. The software is provided "as is" (see LICENSE); you are responsible for what you run against your environment — especially the destructive tier.

Star history

[Star History Chart]

License

MIT © 2026 Rijul Sharma

來源:README.md,提交 edee0e1

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分