Skip to main content

How tools get their names

Every MCP tool is a WordPress ability from your Dashboard. The server derives tool names mechanically:
  • The primary namespace (default mainwp) is dropped, and hyphens become underscores: mainwp/list-sites-v1 becomes list_sites_v1.
  • Abilities from any additional namespace keep a prefix: acme/do-thing-v1 becomes acme__do_thing_v1.
The catalog size depends on your Dashboard: around 60 tools for a current MainWP Dashboard with the default namespace, but the exact set varies by Dashboard version and grows with any extra namespaces you enable. Ask the AI β€œwhat tools do you have?” or read the mainwp://abilities resource to see exactly what your setup exposes.

Tool categories

The per-tool reference (parameters, types, response shapes) lives with the Abilities API, because the abilities are the tools:

Sites

Manage child sites, plugins, themes, sync operations, and related site data.

Updates

Review and apply WordPress, plugin, theme, and translation updates.

Clients

Create and manage client records, assignments, and related metadata.

Tags

Organize sites and clients with tags.

Batch Operations

Check the status of queued large-scale operations.
Remember the naming translation when reading those pages: mainwp/get-site-v1 there is the tool get_site_v1 here.

Built-in resources

Beyond tools, the server exposes MCP resources for inspection: The mainwp://site/{id} resource and site ID completions execute the mainwp/get-site-v1 and mainwp/list-sites-v1 abilities directly, which is why mainwp must stay in abilityNamespaces (see the namespaces guide).
allowedTools and blockedTools apply to resources too: a blocked tool is refused at execution and also disappears from mainwp://abilities, mainwp://help, and per-tool help. Two exceptions are deliberate: mainwp://categories and mainwp://status stay unfiltered because they describe the Dashboard connection rather than the tool surface, so the category list and ability count they report do not shrink under filtering.