procm-mcp
v0.0.35
Published
A Model Context Protocol (MCP) server for process management.
Readme
procm-mcp
A Model Context Protocol (MCP) server for process management.
Supported features
- Secure and automatable process creation
- Cleanup created processes automatically on termination (e.g. exiting claude code)
- Common process management features supported, restarting, deleting, checking status or retreving stdout/stderr of processes
Using these features, LLMs start processes like development servers, docker-compose, or test watchers and check their outputs to fix bugs automatically.
Installation
npm i -D procm-mcp.mcp.json
{
"mcpServers": {
"procm-mcp": {
"command": "node",
"args": ["./node_modules/procm-mcp/build/index.js"],
"env": {}
}
}
}Secure process creation
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".
Tools
allow-start-processAllow specific processes to be createdscript(required): The script/command to allowargs(optional): Array of argumentscwd(optional): Working directory
start-processStart a new process with specified script and argumentsscript(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 process
delete-processStop 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 ID
restart-processRestart an existing process by IDid(required): The process ID
get-process-infoGet detailed information about a processid(required): The process ID
list-processesList all currently managed processes- No parameters required
get-process-stdoutRetrieve stdout logs from a processid(required): The process IDchunkCount(optional): Number of recent log entries to retrieve (default: 10)
get-process-stderrRetrieve stderr logs from a processid(required): The process IDchunkCount(optional): Number of recent log entries to retrieve (default: 10)
License
MIT
