cPanel/wordpress_manage
Tool · cPanel

wordpress_manage

Run one WordPress operation on the customer's own hosting service and return { ok, data, errors[], warnings[] }. Discovery flow: list_wordpress_operations to find the module, get_wordpress_module to see its operations and their parameters, then this tool to run one. Pass module, operation, params (that operation's parameters as a flat object), service_id (required for every module except "directory"; get it from list_services) and, for operations whose "requires" is "installation", installation_id from the sites module's list operation — never a file path, which this tool neither takes nor returns. Operations marked destructive answer error="confirm_required" until you pass confirm:true: tell the customer exactly what will change, get their agreement, then repeat the call. Operations marked async answer with task_id and status="running" — poll the sites module's operation_status with that task_id and the same installation_id. A service or installation the customer does not own returns error="not_found", the same as one that does not exist. error="invalid_params" names the offending parameter in param; error="backend_error" names the condition in reason; error="timeout" means the operation was stopped, so check the current state before retrying. Requires the hosting-management scope the customer already granted.

DestructiveOpen‑worldscope cpanel:uapi

Invoked over the MCP transport with a tools/call request naming this tool.

Authorization #

Requires a valid OAuth 2.1 bearer access_token whose grant includes the cpanel:uapi scope — Manage your hosting account via cPanel — read and change settings on the cPanel features JetHost has enabled (this can modify your account). The broker resolves the caller from the token and returns only records the account owns.

Parameters #

modulestringRequired
The WordPress module: "sites", "content" or "directory".
operationstringRequired
The operation within the module, e.g. "list" or "plugin_list". Call get_wordpress_module for the exact names.
paramsobject · arrayOptional
The operation's parameters as a flat JSON object of key/value pairs. Omit it, or pass {}, when the operation takes none.
service_idintegerOptional
The hosting service the operation runs against. Obtain it via list_services. Required for every module except "directory".
installation_idstring · integerOptional
The WordPress installation to act on, from the sites module's "list" operation. Required by every operation whose "requires" is "installation".
confirmbooleanOptional
Set true to confirm a destructive operation the customer has agreed to. Operations marked destructive refuse to run without it.

Response #

200 · application/json

okboolean
errorsarray<string>
warningsarray<string>
task_idstring
statusstring
One of: running done failed
reasonstring
paramstring
messagestring
modulestring
operationstring
enabled_modulesarray<string>

Errors #

ResultWhen
{ "error": "unknown_module" }See the tool description for when this result is returned.
{ "error": "unknown_operation" }See the tool description for when this result is returned.
{ "error": "not_found" }The requested item does not exist, or it belongs to another account. Cross-account IDs are indistinguishable from missing ones by design.
{ "error": "confirm_required" }See the tool description for when this result is returned.
{ "error": "invalid_params" }See the tool description for when this result is returned.
{ "error": "unsupported_operation" }See the tool description for when this result is returned.
{ "error": "backend_unavailable" }See the tool description for when this result is returned.
{ "error": "timeout" }See the tool description for when this result is returned.
{ "error": "backend_error" }See the tool description for when this result is returned.
{ "error": "internal_error" }See the tool description for when this result is returned.
{ "error": "module_not_enabled" }See the tool description for when this result is returned.