Drupal Scout
Search for Drupal module entries with transitive core version requirements to help to upgrade the Drupal Core.
Installation
Using uv (Recommended)
uv tool install drupal-scout
Or run directly without installing:
uvx drupal-scout --help
Using pip
pip install drupal-scout
Quick Start
Get a compatibility report for your current Drupal project:
drupal-scout
Scan a specific module for Drupal 11 compatibility:
drupal-scout --core 11.0.0 --modules drupal/webform
Features
- Asyncio Concurrency: High-performance parallel module scanning using
asyncioto speed up dependency analysis. - Rich TUI Integration: Beautiful terminal output with structured tables and real-time progress bars powered by the
richlibrary. - MCP Server Support: Built-in Model Context Protocol server for integration with AI IDEs (like Claude Desktop or Cursor).
- Environment Diagnostics: Quick self-diagnostic check of the environment and dependencies using the
infocommand. - Multiple Output Formats:
table: High-fidelity color-coded table for human readability.json: Machine-readable raw data for automation scripts.suggest: Generates a suggestedcomposer.jsonwith updated version requirements.
Limitations
- Python 3.11+: The application requires Python 3.11 or higher.
- Composer v2: The application works with Composer-based (Composer v2) Drupal 8+ projects.
Usage/Examples
drupal-scout [-h] [-v] [-d DIRECTORY] [-n] [-l LIMIT] [-f {table,json,suggest}] [-s] [-c CORE] [-m MODULES [MODULES ...]] {info} ...
Arguments
-h, --help: Show help message and exit.-v, --version: Show program's version number and exit.-d DIRECTORY, --directory DIRECTORY: Directory of the Drupal installation (default:.).-n, --no-lock: Do not use thecomposer.lockfile to determine installed versions.-l LIMIT, --limit LIMIT: Concurrency limit for async requests. Default is10.-f {table,json,suggest}, --format {table,json,suggest}: Output format (default:table).-s, --save-dump: Use with--format suggestto save the suggestedcomposer.jsonto disk.-c CORE, --core CORE: Optional Drupal core version override (e.g.,10.0.0).-m MODULES [MODULES ...], --modules MODULES [MODULES ...]: Scan only specific modules, skipping full project discovery.--deep-scan[=MODE]: Perform a read-only local deep scan for global or targeted scans. Optional mode:all(default, Git + Patches),patches(Composer patches only), orgit(Git index + history only).
Subcommands
info: Show diagnostic information about the tool,jqavailability, and the current Drupal environment.
MCP Server Usage
To run drupal-scout as an MCP server for AI coding assistants:
drupal-scout-mcp
Or with uvx:
uvx --from drupal-scout drupal-scout-mcp
Quick Configuration for Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"drupal-scout": {
"command": "uvx",
"args": ["--from", "drupal-scout", "drupal-scout-mcp"]
}
}
}
For complete setup guides across Claude Desktop/Code, GitHub Copilot, Google Antigravity, and OpenAI Codex, see the detailed MCP Connection Guide.
Deep Scan & Audit Examples
Perform a complete deep scan across all project modules (global scan):
drupal-scout --deep-scan
Perform a Composer patch-only scan:
drupal-scout --deep-scan=patches
Perform a Git audit scan for targeted modules:
drupal-scout --directory /path/to/drupal --modules drupal/webform drupal/workbench --deep-scan=git
Perform a deep scan and output JSON:
drupal-scout --directory /path/to/drupal --deep-scan --format json
Metadata
Release files for drupal-scout 3.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| drupal_scout-3.1.1.tar.gz | 41.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| drupal_scout-3.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.1 kB
Release files / drupal_scout-3.1.1.tar.gz
| Download URL | drupal_scout-3.1.1.tar.gz |
|---|---|
| Size | 41.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
62691c846884b73e52f35440702b1028487d2b02474d2d264a546aa1ffac1251
|
|
BLAKE2b-256 checksum How to use checksums |
e8a4e95812ea33e7cfab67d127c55becdde67ae3663f0b123238a3f10717b390
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.
Transparency logRelease files / drupal_scout-3.1.1-py3-none-any.whl
| Download URL | drupal_scout-3.1.1-py3-none-any.whl |
|---|---|
| Size | 49.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a47aa03c239b8474ddc25807bbfae685d7d34facefa394a9739f786196ce6ab
|
|
BLAKE2b-256 checksum How to use checksums |
4c7544acdc6c7738ca1e7f1f2768b0845af2ea627e8b33695d06988d9dbc15ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.
Transparency log