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:
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:
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
- Tools and permissions: all 54 tools, by group.
- Write gates: why a write refuses, and who can unlock it.
- Over MCP, for editors.
- Extending: add a tool of your own.
- Coming from 1.x or a 2.0 alpha? Upgrading first.