-
Notifications
You must be signed in to change notification settings - Fork 1
System Tools
The base Magebit_Mcp module ships 13 system tools that let an MCP-connected AI agent inspect and operate the Magento store itself — stores and websites, system configuration values, cache types, indexers, and the admin notification inbox. They are available the moment the module is installed; no extra sub-module required.
All system tools are namespaced system.* and follow the same conventions:
- Every tool is gated by its own admin-role ACL under
Magebit_Mcp::tools— the same admin role you give the token-issuing user must grant the tool's resource. - Write tools require both
Allow Write Tools(store config) andallow_writeson the token. See Setup for the full write-gate explanation. - Write tools advertise
requires_confirmation: true, so clients that support user confirmation (Claude Desktop, Claude Web) prompt the operator before running. - Tools that wrap an existing admin-UI capability (cache, indexer, notification list) also enforce the underlying admin ACL — so MCP can never do what the admin UI would forbid for that same role.
| Tool | Mode | ACL | Underlying ACL |
|---|---|---|---|
system.store.list |
read | Magebit_Mcp::tool_system_store_list |
— |
system.store.info |
read | Magebit_Mcp::tool_system_store_info |
— |
system.config.get |
read | Magebit_Mcp::tool_system_config_get |
— |
system.cache.list |
read | Magebit_Mcp::tool_system_cache_list |
Magento_Backend::cache |
system.cache.clean |
write | Magebit_Mcp::tool_system_cache_clean |
Magento_Backend::cache |
system.cache.flush |
write | Magebit_Mcp::tool_system_cache_flush |
Magento_Backend::cache |
system.cache.enable |
write | Magebit_Mcp::tool_system_cache_enable |
Magento_Backend::cache |
system.cache.disable |
write | Magebit_Mcp::tool_system_cache_disable |
Magento_Backend::cache |
system.index.list |
read | Magebit_Mcp::tool_system_index_list |
Magento_Indexer::index |
system.index.reindex |
write | Magebit_Mcp::tool_system_index_reindex |
Magento_Indexer::index |
system.index.reset |
write | Magebit_Mcp::tool_system_index_reset |
Magento_Indexer::invalidate |
system.index.set_mode |
write | Magebit_Mcp::tool_system_index_set_mode |
Magento_Indexer::changeMode |
system.notification.list |
read | Magebit_Mcp::tool_system_notification_list |
Magento_AdminNotification::show_list |
Enumerate every website, store group, and store view on the Magento instance. Use the returned ids to scope other tools — for example, filter sales.order.list by store_id. The admin-scope id 0 is excluded.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
include_inactive |
boolean | no | Include disabled store views in the response. Defaults to false. |
website_id |
array of int | no | Narrow the tree to one or more website ids. |
Return the general-settings profile for a single store view: name, base URLs (secure/unsecure, media, static), locale, timezone, currencies, and the merchant contact block (phone, address, hours, VAT number).
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
store_id |
integer | one-of | Numeric store-view id. |
store_code |
string | one-of | Store-view code, e.g. default. Provide either store_id or store_code. |
Fetch a single Magento system-configuration value by its slash-separated path (e.g. general/store_information/name, web/secure/base_url). Optionally scope the read to a specific website or store.
Encrypted / password-backed fields are refused with a FORBIDDEN_FIELD marker — the value never leaves the database in cleartext through MCP.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
path |
string | yes | Slash-separated config path. |
scope |
string | no | One of default, websites, stores. Defaults to default. |
scope_code |
string | no | Website code (for websites) or store code (for stores). |
Enumerate every Magento cache type with its enabled status and invalidated flag. Mirror of bin/magento cache:status.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
cache_type |
array of string | no | Narrow to specific cache type ids, e.g. ["config", "full_page"]. |
Invalidate cached data for the given cache types — mirror of bin/magento cache:clean. Light operation: clears only Magento-tagged entries.
Write tool. Requires confirmation.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
cache_type |
array of string | one-of | Cache type ids to clean. |
all |
boolean | one-of |
true to clean all cache types. Provide either cache_type or all. |
Physically clear the storage backend behind the given cache types — mirror of bin/magento cache:flush. Heavier than clean: wipes the underlying Redis / file storage, not just the Magento-tagged entries. Affects any other application sharing the same cache backend.
Write tool. Requires confirmation.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
cache_type |
array of string | one-of | Cache type ids to flush. |
all |
boolean | one-of |
true to flush all cache types. |
Enable the given cache types — mirror of bin/magento cache:enable. Returns the subset whose state actually changed.
Write tool. Requires confirmation.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
cache_type |
array of string | one-of | Cache type ids to enable. |
all |
boolean | one-of |
true to enable all cache types. |
Disable the given cache types — mirror of bin/magento cache:disable. Returns the subset whose state actually changed.
Write tool. Requires confirmation.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
cache_type |
array of string | one-of | Cache type ids to disable. |
all |
boolean | one-of |
true to disable all cache types. |
Enumerate every Magento indexer with its status (valid / invalid / working / suspended), mode (realtime / scheduled), and last-updated timestamp. Mirror of bin/magento indexer:status.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
indexer_id |
array of string | no | Narrow to specific indexer ids, e.g. ["catalog_product_price"]. |
Run a full reindex for the given indexers — mirror of bin/magento indexer:reindex. Heavy operation; can take minutes on large catalogs. Each indexer is wrapped in try/catch — a partial failure is reported per id rather than aborting the whole call.
Write tool. Requires confirmation.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
indexer_id |
array of string | one-of | Indexer ids to reindex. |
all |
boolean | one-of |
true to reindex every indexer. |
Invalidate the given indexers so the next cron run rebuilds them — mirror of bin/magento indexer:reset. Cheap operation: it just flips the state row to invalid. Per-indexer exceptions are reported in the result body.
Write tool. Requires confirmation.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
indexer_id |
array of string | one-of | Indexer ids to reset. |
all |
boolean | one-of |
true to reset every indexer. |
Switch the given indexers between realtime (update on save) and scheduled (update by cron) — mirror of bin/magento indexer:set-mode.
Write tool. Requires confirmation.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
mode |
string | yes |
realtime or scheduled. |
indexer_id |
array of string | one-of | Indexer ids to switch. |
all |
boolean | one-of |
true to switch every indexer. |
List admin-inbox notifications, newest first. Defaults to unread items only — pass include_read: true for the full set. Soft-removed items are always excluded.
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
severity |
array of int | no | Filter by severity: 1=critical, 2=major, 3=minor, 4=notice. |
include_read |
boolean | no | Include items the admin has already marked read. Defaults to false. |
limit |
integer | no | Maximum number of items to return. |
The base module also ships a handful of MCP prompts (/-menu workflows in Claude Desktop / Claude Web) built on top of these tools — they're the easiest way to demo the surface to a store owner:
-
system.health_check— "Is my store healthy?". Walkssystem.cache.list,system.index.list,system.notification.list. Read-only. -
system.refresh_after_edit— "I just made changes — make them visible". Callssystem.cache.flushthensystem.index.reindexper stale indexer. Write-gated. -
system.list_stores— "Show me my stores". Callssystem.store.list. Read-only. -
system.find_setting— "Find a setting". Maps a natural-languagequeryargument to a config path, then callssystem.config.get. Read-only.
See Prompts for the full prompt catalog and how to ship your own.