This server lets Claude start and manage long-running processes like dev servers, Docker Compose stacks, or test watchers, then check their stdout and stderr to debug issues autonomously. It uses a whitelist pattern for security: the LLM must ask permission once to allow a specific command in a specific directory, then can restart or monitor that process freely without repeated confirmations. Tools include start-process, delete-process, restart-process, and log retrieval commands. Processes clean up automatically when your Claude session ends. Reach for this when you want Claude to spin up services, run watchers, and iterate on fixes based on their output without manual intervention.
A Model Context Protocol (MCP) server for process management.
Using these features, LLMs start processes like development servers, docker-compose, or test watchers and check their outputs to fix bugs automatically.
npm i -D procm-mcp
.mcp.json
{
"mcpServers": {
"procm-mcp": {
"command": "node",
"args": ["./node_modules/procm-mcp/build/index.js"],
"env": {}
}
}
}
You can permit LLMs to use start-process tool without confirmation, because procm-mcp only allow whitelisted process creations.
LLMs will ask you to use allow-start-process tool to add specific process creation to the whitelist.
Once you allow a process creation, you don't have to confirming it anymore as long as the command and the working directory are the same.
I call it "allow-x pattern", which can balances security and usability in MCP.
Warning: Do not permit LLMs to use allow-start-process without confirmation.That means "Do anything you want to".
allow-start-process Allow specific processes to be created
script (required): The script/command to allowargs (optional): Array of argumentscwd (optional): Working directorystart-process Start a new process with specified script and arguments
script (required): The script/command to executename (optional): A friendly name for the processargs (optional): Array of arguments to pass to the scriptcwd (required): Working directory for the processenvs (optional): Environment variables to set for the processdelete-process Stop and remove a process by ID.The default signal is SIGTERM, but SIGKILL(force killing) will be sent after 10 seconds unless the process exits.
id (required): The process IDrestart-process Restart an existing process by ID
id (required): The process IDget-process-info Get detailed information about a process
id (required): The process IDlist-processes List all currently managed processes
get-process-stdout Retrieve stdout logs from a process
id (required): The process IDchunkCount (optional): Number of recent log entries to retrieve (default: 10)get-process-stderr Retrieve stderr logs from a process
id (required): The process IDchunkCount (optional): Number of recent log entries to retrieve (default: 10)MIT