runProcess tool
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
The runProcess tool runs processes on the host machine. There are two mutually exclusive ways to invoke it:
1. **command_line** (string) — Executed via the system's default shell (just like typing into bash/fish/pwsh/etc). Shell features like pipes, redirects, and variable expansion all work.
2. **argv** (string array) — Direct executable invocation. argv[0] is the executable, the rest are arguments. No shell interpretation.
You cannot pass both. The tool infers whether to use a shell from which parameter you provide.
If you want your model to use specific shell(s) on a system, I would list them in your system prompt. Or, maybe in your tool instructions, though models tend to pay better attention to examples in a system prompt.
Let me know if you encounter problems!
Tools
Tools are for LLMs to request. Claude Sonnet 3.5 intelligently uses run_process. And, initial testing shows promising results with Groq Desktop with MCP and llama4 models.
Currently, just one command to rule them all!
- run_process - run a command, i.e. hostname or ls -al or echo "hello world" etc
- Returns STDOUT and STDERR as text
- Optional stdin parameter means your LLM can
- pass scripts over STDIN to commands like fish, bash, zsh, python
- create files with cat >> foo/bar.txt from the text in stdin
> [!WARNING]
> Be careful what you ask this server to run!
> In Claude Desktop app, use Approve Once (not Allow for This Chat) so you can review each command, use Deny if you don't trust the command.
> Permissions are dictated by the user that runs the server.
> DO NOT run with sudo.
Video walkthrough
Prompts
Prompts are for users to include in chat history, i.e. via Zed's slash commands (in its AI Chat panel)
- run_process - generate a prompt message with the command output
* FYI this was mostly a learning exercise... I see this as a user requested tool call. That's a fancy way to say, it's a template for running a command and passing the outputs to the model!
Development
Install dependencies:
Build the server:
For development with auto-rebuild:
Installation
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Groq Desktop (beta, macOS) uses ~/Library/Application Support/groq-desktop-app/settings.json
Use the published npm package
Published to npm as mcp-server-commands using this workflow
Use a local build (repo checkout)
Make sure to run npm run build
Local Models
- Most models are trained such that they don't think they can run commands for you.
- Sometimes, they use tools w/o hesitation... other times, I have to coax them.
- Use a system prompt or prompt template to instruct that they should follow user requests. Including to use run_processs without double checking.