# manage_wp_plugins

> List, install, update, activate, deactivate or uninstall the plugins of one WordPress site over WP-CLI.

- Tier: D
- Required scope: read:hosting
- Annotations: destructiveHint
- Docs: https://api.inleed.com/tools/manage-wp-plugins

## Description

List, install, update, activate, deactivate or uninstall the plugins of one WordPress site over WP-CLI. `action=list` returns each plugin `{name, status, version, updateAvailable, latestVersion}` and needs only `read:hosting`; `install` needs `slug` (optional `activate`); `update`/`activate`/`deactivate`/`uninstall` need `slug`. Those five require `write:hosting` and return `insufficient_scope` without it. `deactivate` keeps the files and settings; `uninstall` deactivates and then deletes the plugin's files and data — prefer `deactivate` unless the customer asked to remove it.

## Input schema

- `input` — string (required). A domain, email address, website URL, numeric service id, or hosting-account username the customer actually owns. Resolved to the owning account automatically; the resolved target is echoed back in the response.
- `action` — enum (required). list the plugins, install a new one, update one, activate or deactivate one, or uninstall one (deactivates, then deletes its files and data). All but list require write:hosting. One of list, install, update, activate, deactivate, uninstall.
- `slug` — string. The plugin slug (e.g. wordpress-seo), lower-case letters/digits/.-_.
- `path` — string. Optional subfolder of a WordPress install not at the domain root (e.g. blog).
- `activate` — boolean. For install only: activate the plugin immediately after installing it. Defaults to false.

## Example call

```json
{
  "name": "manage_wp_plugins",
  "arguments": {
    "input": "example.se",
    "action": "list"
  }
}
```

