DevCtl MCP
A Model Context Protocol (MCP) server for managing development processes. Start, stop, and monitor your development servers, background tasks, and other processes directly through Claude or other MCP-compatible clients.
Features
- 🚀 Start/Stop Processes: Launch and terminate development processes by name
- 📊 Process Monitoring: View real-time status and uptime for all processes
- 📝 Log Management: Retrieve and view process logs with configurable line limits
- ⚙️ YAML Configuration: Define processes with commands, arguments, working directories, and environment variables
- 🔄 Automatic Cleanup: Graceful shutdown of all processes when the server terminates
- 🛡️ Process Groups: Proper signal handling for clean process termination
Installation
pip install devctl-mcp
Configuration
Create a processes.yaml file in your project root to define your development processes:
processes:
# Example Go API server
go_api:
cmd: go
args:
- run
- ./cmd/server
working_directory: ~/projects/my-api
env:
PORT: "8080"
GO_ENV: "development"
# Example Python web server
web_server:
cmd: python
args:
- -m
- flask
- run
working_directory: /path/to/your/flask/project
env:
FLASK_APP: app.py
FLASK_ENV: development
FLASK_DEBUG: "1"
# Example Node.js development server
frontend:
cmd: npm
args:
- run
- dev
working_directory: /path/to/your/frontend
env:
NODE_ENV: development
MCP Client Setup
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"devctl": {
"command": "devctl-mcp"
}
}
}
Other MCP Clients
The server runs via stdio transport and can be used with any MCP-compatible client:
devctl-mcp
Available Tools
The MCP server provides the following tools:
start_process
Start a named development process.
Parameters:
name(required): The name of the process to start
stop_process
Stop a running process.
Parameters:
name(required): The name of the process to stopforce(optional): Force kill the process (default: false)
get_process_logs
Retrieve logs from a process.
Parameters:
name(required): The name of the processlines(optional): Number of recent log lines to retrieve
list_processes
List all defined processes and their current status.
Parameters: None
Usage Examples
Once configured, you can interact with your processes through Claude:
"Start my web server"
"Stop the API server"
"Show me the logs for the frontend process"
"List all my development processes"
"Restart the database with force kill"
Process Configuration Reference
Each process in processes.yaml supports:
cmd(required): The command to executeargs(optional): List of command argumentsworking_directory(optional): Working directory for the processenv(optional): Environment variables as key-value pairs
Development
Setup
git clone https://github.com/opentrace/devctl-mcp.git
cd devctl-mcp
pip install -e ".[dev]"
Running Tests
pytest
Building
python -m build
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Metadata
Release files for devctl-mcp 0.0.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 | Provenance | |
|---|---|---|---|---|
| devctl_mcp-0.0.1.tar.gz | 13.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| devctl_mcp-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.1 kB
Release files / devctl_mcp-0.0.1.tar.gz
| Download URL | devctl_mcp-0.0.1.tar.gz |
|---|---|
| Size | 13.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cb0a7e34d2caabb515513ef3f2910355645516ad910761c49294f60075caef0c
|
|
BLAKE2b-256 checksum How to use checksums |
e968f3b0b8b2a8f361e25c7f0e41aa097c340f2c96a56fa74f9dff961474a47d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|
Release files / devctl_mcp-0.0.1-py3-none-any.whl
| Download URL | devctl_mcp-0.0.1-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e11af30d3cd7c16b8ce084fe665ef4a4e3ea551e1e93fd95a35f46d01188cf1d
|
|
BLAKE2b-256 checksum How to use checksums |
05b22e3bbed33318da51dd0c4bb57b182bef7632f6cf2bdffd3c6ff5bc42898e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|
Security for devctl-mcp 0.0.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.