Part of the MCP ecosystem · 11 projects
MCP Tools connects Drupal to AI assistants like Claude, allowing you to describe desired changes in plain English. The AI then automatically creates content types, fields, roles, and other Drupal configurations based on your requests. It offers different security modes for development, staging, and production environments.
MCP Tools connects Drupal to AI assistants (Claude, Cursor, Windsurf) via the Model Context Protocol. Describe what you want in plain English - the AI handles the Drupal work.
Example
You: "Create a blog with articles, categories, tags, and an editor role"
AI: Creates the content type, taxonomies, fields, role, and permissionsQuick Start
- Install:
composer require drupal/mcp_tools
drush en mcp_tools -y - Configure: Visit
/admin/config/services/mcp-toolsand choose a preset:- Development: Full access, no rate limiting
- Staging: Config-only mode, rate limited, audit logging
- Production: Read-only mode, strict limits, full audit trail
- Connect your AI tool: See transport options below
Option A: STDIO Transport (Recommended for Local)
Enable the STDIO module:
drush en mcp_tools_stdio -y
Generate config automatically:
drush mcp-tools:client-config > .mcp.json
Detects DDEV/Lando environments and outputs ready-to-use config. Use --scope=read for read-only.
Claude Code (run from your Drupal directory):
cd /path/to/drupal
claude mcp add --scope project drupal -- drush mcp-tools:serve --quiet --uid=1 --scope=read,writeOr add .mcp.json to your Drupal project root:
{
"mcpServers": {
"drupal": {
"command": "drush",
"args": ["mcp-tools:serve", "--quiet", "--uid=1", "--scope=read,write"]
}
}
}Option B: HTTP Transport (Remote/Docker)
Enable the remote module:
drush en mcp_tools_remote -y
Configure execution user: Visit /admin/config/services/mcp-tools/remote
- Quick setup: Check "Use site admin (uid 1)" — simple for development
- Production: Click "Create MCP Executor Account" for a dedicated service account
Generate an API key:
drush mcp-tools:remote-key-create --label="Claude" --scopes=read,write
Copy the key shown (it's only displayed once).
Claude Code one-liner:
claude mcp add drupal http://localhost:8080/_mcp_tools --transport http -H "Authorization: Bearer YOUR_API_KEY"
Or add to .mcp.json:
{
"mcpServers": {
"drupal": {
"type": "http",
"url": "http://localhost:8080/_mcp_tools",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Manage keys at /admin/config/services/mcp-tools/remote or via drush mcp-tools:remote-key-list.
The tool library also works through MCP Server 2.x via its Tool Bridge, or with no MCP server at all - as plain Tool API plugins for ECA and AI Agents (via the mcp_tools_ai submodule).
What's Included
226 tools across 36 optional submodules:
- Site Building: Content types, fields, taxonomies, roles, permissions, menus
- Content: Create/edit/publish nodes, media, bulk operations
- Translations: Read translatable content in document order, create complete linked translations, update single languages — paragraphs-aware
- Views & Layout: Views, blocks, Layout Builder, image styles
- Admin: Cache, cron, config management, security audits
Security
- Scoped access (read/write/admin per connection)
- Read-only and config-only modes
- Rate limiting and audit logging
- Destructive operations require explicit confirmation; unknown tool parameters are rejected, not silently dropped
- Designed for local development - remote access is optional
Requirements
- Drupal 10.3+ or 11
- Tool API module
- PHP 8.3+
Links
Ask your assistant about MCP Tools
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
More in the MCP ecosystem
Most installed first
Activity
Release Timeline
Releases
| Version | Type | Core | PHP | Release date | |
|---|---|---|---|---|---|
| 1.0.0-beta7 | Pre-release | 10–11 | Mar 10, 2026 | ||
| 1.0.0-beta6 | Pre-release | 10–11 | Mar 10, 2026 | ||
| 1.0.0-beta5 | Pre-release | 10–11 | Feb 26, 2026 | ||
| 1.0.0-beta4 | Pre-release | 10–11 | Feb 26, 2026 | ||
| 1.0.0-beta3 | Pre-release | 10–11 | Feb 26, 2026 | ||
| 1.0.0-beta2 | Pre-release | 10–11 | Feb 6, 2026 | ||
| 1.0.0-beta1 | Pre-release | 10–11 | Jan 10, 2026 | ||
| 1.0.0-alpha26 | Pre-release | 10–11 | Jan 9, 2026 | ||
| 1.0.0-alpha24 | Pre-release | 10–11 | Jan 8, 2026 | ||
| 1.0.0-alpha23 | Pre-release | 10–11 | Jan 8, 2026 |