> ## Documentation Index
> Fetch the complete documentation index at: https://mainwp-mintlify-b66ccbcf.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Restrict Available Tools

> Limit which tools the AI can see and use: read-only setups, update-only setups, and hiding destructive operations.

By default the server exposes its full tool catalog. Two settings narrow it:

* `allowedTools`: a whitelist. Only the listed tools exist as far as the AI is concerned.
* `blockedTools`: a blacklist. Everything is available except the listed tools.

When both are set, the whitelist applies first, then the blocklist filters the result. Tool names use underscores (`list_sites_v1`, not `list-sites-v1`).

Filtering removes a blocked tool everywhere it could be seen or used: tool listing, execution, completions, per-tool help, and the informational resources. The AI cannot call what it cannot see.

```json theme={null}
{
  "allowedTools": ["list_sites_v1", "get_site_v1", "list_updates_v1"]
}
```

```bash theme={null}
MAINWP_ALLOWED_TOOLS="list_sites_v1,get_site_v1,list_updates_v1"
```

## Ready-made configurations

**Read-only monitoring** (17 tools). For dashboards, reporting, and any setup where the AI should observe but never modify. This is the configuration to reach for when [safe mode](/mcp-server/safety#safe-mode-block-deletions-entirely) is not strict enough, since safe mode still allows updates and activations.

```json theme={null}
{
  "allowedTools": [
    "list_sites_v1",
    "get_site_v1",
    "get_site_plugins_v1",
    "get_site_themes_v1",
    "get_site_updates_v1",
    "list_updates_v1",
    "list_ignored_updates_v1",
    "list_clients_v1",
    "get_client_v1",
    "count_clients_v1",
    "count_client_sites_v1",
    "get_client_sites_v1",
    "get_client_costs_v1",
    "list_tags_v1",
    "get_tag_v1",
    "get_tag_sites_v1",
    "get_tag_clients_v1"
  ]
}
```

**Updates only** (13 tools). Focused update management for maintenance automation and CI pipelines.

```json theme={null}
{
  "allowedTools": [
    "list_updates_v1",
    "run_updates_v1",
    "update_all_v1",
    "get_site_updates_v1",
    "update_site_core_v1",
    "update_site_plugins_v1",
    "update_site_themes_v1",
    "update_site_translations_v1",
    "list_ignored_updates_v1",
    "set_ignored_updates_v1",
    "ignore_site_core_v1",
    "ignore_site_plugins_v1",
    "ignore_site_themes_v1"
  ]
}
```

**Site management only** (30 tools). Full site management without client, tag, or update management.

```json theme={null}
{
  "allowedTools": [
    "list_sites_v1",
    "get_site_v1",
    "count_sites_v1",
    "get_sites_basic_v1",
    "add_site_v1",
    "update_site_v1",
    "delete_site_v1",
    "sync_sites_v1",
    "check_site_v1",
    "check_sites_v1",
    "reconnect_site_v1",
    "reconnect_sites_v1",
    "disconnect_site_v1",
    "disconnect_sites_v1",
    "suspend_site_v1",
    "suspend_sites_v1",
    "unsuspend_site_v1",
    "get_site_plugins_v1",
    "get_site_themes_v1",
    "activate_site_plugins_v1",
    "deactivate_site_plugins_v1",
    "delete_site_plugins_v1",
    "activate_site_theme_v1",
    "delete_site_themes_v1",
    "get_abandoned_plugins_v1",
    "get_abandoned_themes_v1",
    "get_site_security_v1",
    "get_site_client_v1",
    "get_site_costs_v1",
    "get_site_changes_v1"
  ]
}
```

**Hide destructive tools.** Keep all functionality while removing deletions from the AI's view. A conservative default for production.

```json theme={null}
{
  "blockedTools": [
    "delete_site_v1",
    "delete_client_v1",
    "delete_tag_v1",
    "delete_site_plugins_v1",
    "delete_site_themes_v1"
  ]
}
```

**Minimal update automation** (4 tools). Just enough to check and apply updates; pairs well with [compact schemas](/mcp-server/guides/token-usage) for the smallest possible context footprint.

```json theme={null}
{
  "schemaVerbosity": "compact",
  "allowedTools": ["list_sites_v1", "get_site_v1", "list_updates_v1", "run_updates_v1"]
}
```

## Tools from other namespaces

If you have [exposed abilities from other plugins](/mcp-server/guides/other-plugin-abilities), their tools carry a namespace prefix, and the filter lists must use the prefixed form:

```json theme={null}
{
  "allowedTools": ["list_sites_v1", "acme__do_thing_v1"]
}
```

## Notes

* Two built-in resources, `mainwp://categories` and `mainwp://status`, stay unfiltered by design: they describe the Dashboard connection, not the tool surface. See [Tools & Resources](/mcp-server/reference/tools).
* Filtering also reduces the token cost of the tool catalog in the AI's context window; the [Optimize Token Usage](/mcp-server/guides/token-usage) guide has the numbers.
