The Droost module provides tools that read the running Drupal site and work with its content and configuration. Agents can discover installed modules, entity types, fields, services and logs through structured JSON:

bash
drush droost:tool                                      # the tools, by what they are about
drush droost:tool droost_entities help                 # what one does, and its arguments
drush droost:tool droost_entities '{"entity_type_id":"node"}'

Each call returns one envelope, {success, message, data}, and runs as its own drush process, so it answers from the code on disk.

Tool API, so everything reaches it

Every Droost tool is a Tool API tool. Besides drush droost:tool, the same tools answer through drush tool:run, Drupal AI's function calling, and MCP Server's Tool API bridge. Every route in checks the tool's permission and its declared inputs before it runs.

What to enable, and where

Module What it adds Where
droost the content tools: entities, content queries, Views results, URLs, tokens any site, production included
droost_canvas Canvas pages and trees, page variants, component toggles, a component lint content tools: any site; the rest: development
droost_mcp the content tools over MCP, for editors any site
droost_build site building: configuration, fields, bundles, Views, displays, components development and staging
droost_dev developer tools: routes, services, logs, the database, modules, PHP evaluation local development only
droost_ai the site's AI function calls local development only
droost_devel generated content, through Devel local development only

The build and developer tools refuse any web request, so they cannot be reached over MCP or HTTP whatever an account holds. Tools and permissions lists every tool.

Install

Tool API is still in beta. Composer ignores a dependency's own stability flags, so the site requires it at that stability itself:

bash
composer require 'drupal/tool:^1.0@beta' 'drupal/droost:^2.0'
drush en droost
drush en droost_build droost_dev     # a development copy only
  • A module that depends on a submodule (Droost UI Kit needs droost_build) resolves it from drupal.org as its own package: require 'drupal/droost_build:^2.0' beside droost.
  • twig 3.30.0 breaks Drupal's escape filter, and droost refuses it. If your project has it locked, run composer require -W … so twig can move.

For agents

droost ships a skill, droost-tools, that tells an agent which tool does what, the permissions and the write rules. The droost command's droost init installs it into .claude/skills/ when the module is on disk, and removes it when the module is gone.

Where to look

  • /admin/reports/droost: a read-only status page.
  • /admin/config/development/droost: every write gate and its state.

Next