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_jsonexamples below - The Virusdie Integration, active in MainWP Dashboard, in a version that includes Abilities support
- An authenticated WordPress user with
manage_optionsand access to the Virusdie Add-on - Access to the selected MainWP site for site-specific calls
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_setonly 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-v1silently excludes sites you can’t access. Thetotalcount reflects only accessible sites.- The three site-specific abilities check access to the requested
site_idbefore reading any stored data. mainwp/get-virusdie-report-v1also 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-v1Method: GET
Input: Optional
page and per_page
Returns every MainWP site you can access, including sites not connected to Virusdie.
Get a Virusdie Site
Ability:mainwp/get-virusdie-site-v1Method: GET
Input:
site_id
List Virusdie Reports
Ability:mainwp/list-virusdie-reports-v1Method: 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.
Get a Virusdie Report
Ability:mainwp/get-virusdie-report-v1Method: GET
Input:
site_id and report_id
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.
Related Resources
- Virusdie Integration - Setup, scanning, firewall, and automatic cleanup
- Abilities API Overview - Authentication and request formats
- MainWP MCP Server - Call abilities from AI assistants
