Skip to main content
The Virusdie Integration registers four read-only abilities in the mainwp-virusdie category. All use the mainwp/ namespace on your MainWP Dashboard. Use them when an AI assistant, the MainWP MCP Server, or an automation script needs to check which sites are connected to Virusdie, whether the firewall and automatic cleanup are enabled, and what the latest stored scans found.

What You’ll Learn

  • List accessible sites with their stored Virusdie state
  • Read one site’s connection, firewall, automatic cleanup, and last scan
  • List and read stored scan report summaries
  • Handle pagination and errors

Prerequisites

  • WordPress 6.9 or later on the MainWP Dashboard site
  • MainWP Dashboard with Abilities API support; use version 6.2 or later for the input_json examples below
  • The Virusdie Integration, active in MainWP Dashboard, in a version that includes Abilities support
  • An authenticated WordPress user with manage_options and access to the Virusdie Add-on
  • Access to the selected MainWP site for site-specific calls
The abilities are registered only when the Dashboard provides the WordPress Abilities API and MainWP Abilities support. On older WordPress or Dashboard versions, the Add-on runs without them. Use an Application Password or the authentication methods in the Abilities API overview. The examples use an Application Password.

What these abilities do and don’t do

  • They read data already stored on your Dashboard. They make no Virusdie API calls and don’t start scans. Run a scan from the Virusdie page, the WP-CLI command, or the REST endpoint first.
  • They never return your Virusdie API key, passwords, or raw provider data. api_key_set only reports whether a key is saved.
  • Reports contain only scan counters. Per-file details and vulnerability lists are not stored by the Add-on, so the abilities don’t return them.
  • All four declare readonly, non-destructive, and idempotent annotations, so MCP clients can call them without confirmation.

Permissions

Every call checks the Dashboard’s base Abilities permission and access to the Virusdie Add-on. Team Control restrictions apply.
  • mainwp/list-virusdie-sites-v1 silently excludes sites you can’t access. The total count reflects only accessible sites.
  • The three site-specific abilities check access to the requested site_id before reading any stored data.
  • mainwp/get-virusdie-report-v1 also verifies that the report belongs to the requested site.

Available Abilities

Discover the full input and output schemas:

Input and pagination

Both list abilities return items, page, per_page, and total. A page beyond the last result returns an empty items array with the full total. Times use ISO 8601 UTC, such as 2026-10-28T19:35:00Z, or null when no scan is stored. Scan status values are:

List Virusdie Sites

Ability: mainwp/list-virusdie-sites-v1
Method: GET
Input: Optional page and per_page
Returns every MainWP site you can access, including sites not connected to Virusdie.
Example response:

Get a Virusdie Site

Ability: mainwp/get-virusdie-site-v1
Method: GET
Input: site_id
The response is a single site object with the same fields as a list item.

List Virusdie Reports

Ability: mainwp/list-virusdie-reports-v1
Method: GET
Input: site_id, optional page and per_page
Returns stored scan summaries for one site, newest first. A site that isn’t connected to Virusdie returns an empty list.
Example response:

Get a Virusdie Report

Ability: mainwp/get-virusdie-report-v1
Method: GET
Input: site_id and report_id
The response contains the same fields as a report list item, plus truncated. Because stored reports contain only counters, truncated is always false. A report that doesn’t exist, or that belongs to a different site, returns mainwp_virusdie_not_found.

Handle Errors

Unauthenticated requests return HTTP 401 from WordPress.