Docker Techstack Rolldev Mcp Server
LocalAbout Docker Techstack Rolldev Mcp Server
An MCP server for Magento 2 projects running in RollDev environments. It lets AI clients manage environments and services, run development commands, initialize projects, and inspect read-only performance diagnostics.
Key features
- 01Manage RollDev environments and services
- 02Run SQL, PHP, Magento CLI, and Composer commands
- 03Initialize Magento 2 projects
- 04Query Inspector health and performance traces
- 05Save command output to log files
Use cases
- 01Start or stop a Magento project environment
- 02Query a project database or run upgrade commands
- 03Investigate slow routes, repeated queries, and service health
MCP support
The server exposes RollDev environment management, development operations, and Inspector query tools to compatible MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
10Saved tool list · updated 3w ago
This tool takes no parameters.
Details
From the project READMERollDev MCP Server
A Model Context Protocol (MCP) server for RollDev + Magento 2 development environments. This server enables Claude and other LLMs to interact with RollDev projects, manage environments, execute commands, and initialize new Magento 2 projects seamlessly.
Features
Environment Management
- Environment Control: List, start, and stop RollDev project environments
- Service Management: Control RollDev system services (database, Redis, OpenSearch, etc.)
- Project Initialization: Create new Magento 2 projects with automatic configuration
Development Tools
- Database Operations: Execute SQL queries directly in project databases
- PHP Script Execution: Run PHP scripts within project containers
- Magento CLI Access: Execute Magento commands through
roll magento - Composer Integration: Run Composer commands in project environments
Reliability Features
- Command Timeouts: All commands have appropriate timeouts to prevent hanging (5-15 min depending on operation)
- Output File Redirection: Option to save command output to log files for later investigation
Prerequisites
- RollDev installed and configured
- Node.js 18+
- Active RollDev project environments (for some operations)
Installation
Option 1: Using NPM (Recommended)
{
"mcpServers": {
"rolldev": {
"command": "npx",
"args": [
"-y",
"@disrex/rolldev-mcp-server"
]
}
}
}
Add this configuration to your Claude for Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Option 2: Manual Setup
- Clone this repository:
git clone https://github.com/dockergiant/rolldev-mcp-server.git
cd rolldev-mcp-server
- Install dependencies:
npm install
- Add to Claude configuration:
{
"mcpServers": {
"rolldev": {
"command": "node",
"args": ["/path/to/rolldev-mcp-server/server.js"]
}
}
}
Available Tools
rolldev_list_environments
Lists all running RollDev environments with structured information including project names, paths, URLs, Docker networks, and container counts.
rolldev_start_project
Starts a RollDev project environment.
- project_path: Path to the project directory
rolldev_stop_project
Stops a RollDev project environment.
- project_path: Path to the project directory
rolldev_start_svc
Starts RollDev system services.
- project_path: Path to the project directory
rolldev_stop_svc
Stops RollDev system services.
- project_path: Path to the project directory
rolldev_db_query
Executes SQL queries in project databases.
- project_path: Path to the project directory
- query: SQL query to execute
- database: Database name (optional, defaults to "magento")
rolldev_php_script
Runs PHP scripts inside project containers.
- project_path: Path to the project directory
- script_path: Path to PHP script relative to project root
- args: Additional arguments (optional)
rolldev_magento_cli
Executes Magento CLI commands (5 minute timeout).
- project_path: Path to the project directory
- command: Magento command (without 'bin/magento' prefix)
- args: Additional arguments (optional)
- save_output_to_file: Save full output to a log file (optional, default: false)
rolldev_composer
Runs Composer commands in project environments (10 minute timeout).
- project_path: Path to the project directory
- command: Composer command (e.g., "install", "update", "require symfony/console")
- save_output_to_file: Save full output to a log file (optional, default: false)
rolldev_magento2_init
Initializes new Magento 2 projects with automatic configuration (15 minute timeout).
- project_name: Project name (lowercase, letters, numbers, hyphens only)
- magento_version: Magento version (optional, defaults to "2.4.x")
- target_directory: Target directory (optional, defaults to current directory)
Roll Inspector tools (read-only)
These tools read from Roll Inspector (https://inspector.<TRAEFIK_DOMAIN>) and never change the environment. Each takes project_path, reads ROLL_ENV_NAME, TRAEFIK_DOMAIN and ROLL_INSPECTOR the way roll does (${ROLL_HOME_DIR:-~/.roll}/.env.roll, then .env there, then the nearest project .env.roll, each overriding the one before), and accepts save_output_to_file like the tools above. Output is compact text plus a JSON block. Anything over 60,000 characters is cut off with a hint to use save_output_to_file.
| Tool | Returns |
|---|---|
rolldev_inspector_overview | Service health, warnings and their copyable fixes |
rolldev_inspector_traces | Trace list with cost split per category. Filters: route, min_ms, sort, limit |
rolldev_inspector_trace | Analysis of one trace id: cost per category, hot spans, repeated (N+1) calls, slowest calls. Raw spans only with include_spans, capped at 200 by self time |
rolldev_inspector_hotspots | Slowest routes, most expensive operations and repeated calls across all stored traces. limit sets the rows per section |
rolldev_inspector_request | Timeline entry for a url (or xid): Varnish result and the PHP, cache and search lanes. limit returns more matches, newest first |
rolldev_inspector_service | section health (default) or info of kind varnish, redis, search or rabbitmq |
Connection details:
- The tool connects with
node:httpsand trusts roll's root CA from${ROLL_SSL_DIR}/rootca/certs/ca.cert.pem.ROLL_SSL_DIRdefaults to${ROLL_HOME_DIR}/sslandROLL_HOME_DIRto~/.roll, as inbin/roll. Set either variable in the MCP server's environment to override. - Requests time out after 10 seconds.
- With
ROLL_INSPECTORunset or0, the tool answers with the fix: setROLL_INSPECTOR=1in.env.rolland runroll env up. - It reports a stopped Inspector container (
roll env up), certificate problems (roll sign-certificate <domain>), an unresolvable host and a 403 from the gate in plain words. rolldev_inspector_traceandrolldev_inspector_hotspotsneed an Inspector image with the analysis and hotspots endpoints. Older images get a message to update.
Trace and hotspot answers need the project's .env.roll to have ROLL_INSPECTOR=1 and ROLL_INSPECTOR_TRACE=1. Varnish HITs have no trace, so rolldev_inspector_request finds nothing for them. User docs: roll-docker-stack/docs/inspector/api-and-extensions.md.
The logic lives in inspector.cjs, and test/inspector.test.js runs it against a fake transport.
Examples
Here are some example interactions you can try with Claude after setting up the RollDev MCP server:
Basic Environment Management
- "Can you list all my RollDev environments?"
- "Start the project at /path/to/my-magento-project"
- "Stop the services for my current project"
Database Operations
- "Run the query 'SELECT * FROM admin_user LIMIT 5' in my project"
- "Show me all enabled modules in the database"
- "Check the current configuration values for my store"
Magento Development
- "Execute 'cache:flush' Magento command in my project"
- "Run 'setup:upgrade' on my Magento installation"
- "List all available Magento CLI commands"
Project Initialization
- "Initialize a new Magento 2.4.7 project called 'my-store'"
- "Create a Magento project with the latest version in /Users/dev/projects"
Composer Operations
- "Install dependencies with Composer in my project"
- "Require the symfony/console package in my project"
Output File Redirection
- "Run setup:upgrade and save the output to a file for investigation"
- "Execute composer install with output saved to a log file"
Roll Inspector
These prompts only read; no Inspector tool purges, flushes or switches anything. 16. "Why is /category-1.html slow? Check the Inspector trace" 17. "Show the Inspector hotspots for this project" 18. "Which routes in this project repeat the same SQL query (N+1)?" 19. "Is RabbitMQ healthy? Ask Inspector for the overview" 20. "Was the last request to /checkout/cart a Varnish MISS, and why?"
Development
# Start in development mode with debugging
npm run dev
# Run tests
npm test
Testing
You can test the server using the MCP Inspector:
npx @modelcontextprotocol/inspector node server.js
Contributing
- Fork the repository from dockergiant/rolldev-mcp-server
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
If you encounter any issues or have questions:
- Check the GitHub Issues section
- Consult the MCP documentation at modelcontextprotocol.io
- Open a new issue with detailed reproduction steps
Sponsored by
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.