This project is not covered by Drupal’s security advisory policy.

Tool Shop provides developer-only tools for operations that normally require code, CLI or direct database access: raw configuration and state, queue runners, cache and router rebuilds, module installation, and log access. It is built on the Tool API, so its tools work with any Tool API consumer, such as AI agents, MCP clients and ECA.

Tool Shop is for development environments only. Install it as a development dependency so that production builds never contain it.

Tool Shop or Tool Belt?

Tool Shop is the developer-focused companion to Tool Belt. The two projects are split by how access is authorized:

  • Tool Belt mirrors the administrative interface. If a core admin screen can do something under a permission, Tool Belt provides a dedicated tool that checks the same permission.
  • Tool Shop mirrors code, CLI and database access. Operations with no meaningful granular permission belong here. The closest permission available amounts to "trust this account like the site owner".

For example, adding a field with Tool Belt checks the same field administration permissions as the Field UI. Writing the same field configuration directly with Tool Shop bypasses those forms and permissions entirely.

Security

Tool Shop is protected by three independent layers. None of them replaces the others.

  1. Development dependency only. Install with composer require --dev drupal/tool_shop. Production builds created with composer install --no-dev then don't contain the code at all, rather than merely having it disabled. This is the same approach the Devel module uses.
  2. Settings gate. No tool runs unless settings.php contains $settings['tool_shop_enabled'] = TRUE;. That setting can't be changed through the UI, a configuration import or the database, so enabling the tools requires code access. The gate is checked twice: before a tool is offered, so tools behind a closed gate are left out of AI function lists, and again before a tool runs.
  3. Restricted permissions. Each tool has its own permission, marked as restricted. If Tool Shop is accidentally enabled in production, its tools are still limited to trusted administrators.

Tools for arbitrary PHP execution and raw SQL queries are permanently out of scope. They will never ship, even behind these gates.

Submodules

The base module provides no tools on its own. Enable only the submodules you need.

Tool Shop - Configuration

Read, write, delete and list raw configuration, bypassing all administrative forms and validation.

Tools provided: Get configuration, Set configuration, Delete configuration, List configuration names.

For more details see the README file.

Tool Shop - State

Read, write and delete values in the State API, which has no administrative interface.

Tools provided: Get state, Set state, Delete state.

For more details see the README file.

Tool Shop - System

Full rebuilds, equivalent to drush cache:rebuild. The cache rebuild also rebuilds the container and theme registry, going beyond the administrative "Clear all caches" button.

Tools provided: Rebuild caches, Rebuild router.

For more details see the README file.

Tool Shop - Queue

List queues, process queue items through their workers within a time and item limit, or discard a queue's pending items.

Tools provided: List queues, Run queue, Clear queue.

For more details see the README file.

Tool Shop - Module

List available modules and install or uninstall them. Installing runs the module's install hooks. Uninstalling deletes the module's configuration and data.

Tools provided: List modules, Install modules, Uninstall modules.

For more details see the README file.

Tool Shop - Database Logging

Search log messages by text, retrieve a single log entry, and delete log messages that match given criteria, going beyond the Recent log messages report. Log messages can contain internal details such as exception traces, so decide deliberately who may read them.

Tools provided: Query log messages, Get log message, Delete log messages.

For more details see the README file.

Requirements

  • Drupal 10.3 or later
  • Tool 1.0.x

Installation

  1. Require the project as a development dependency: composer require --dev drupal/tool_shop
  2. Enable the submodules whose tools you need.
  3. In the settings.php of each environment where the tools should work, add: $settings['tool_shop_enabled'] = TRUE;
  4. Grant the relevant tool permissions to trusted roles only.

Roadmap

  • Configuration import and export, and comparing active configuration with the sync directory.
  • Database updates and entity schema updates.
  • Recipe tools to list, inspect, validate and apply recipes.

Project information

  • Created by michaellander on , updated
  • shield alertThis project is not covered by the security advisory policy.
    Use at your own risk! It may have publicly disclosed vulnerabilities.

Releases