runProcess 工具
这 runProcess 该工具在主机上运行进程。调用它有两种互斥的方式:
command_line(string)–通过系统的默认shell执行(就像键入bash/fish/pwsh/等等)。Shell的特性,如管道、重定向和可变扩展,都能正常工作。argv(字符串数组)–直接可执行调用。argv[0]是可执行文件,其余是参数。没有外壳解释。
你不能两者都通过。该工具根据您提供的参数推断是否使用shell。
如果你想让你的模型在系统上使用特定的shell,我会在你的系统提示符中列出它们。或者,也许在你的工具说明中,尽管模型往往更关注系统提示中的示例。
如果你遇到问题,请告诉我!
工具
工具供LLM请求。克劳德·十四行诗3.5智能使用 run_process而且,初步测试显示了有希望的结果 带MCP的Groq桌面 和 llama4 模型。
目前,只有一个命令可以统治所有人!
-
run_process-运行命令,即。hostname或ls -al或echo "hello world"等等 -
退货
STDOUT和STDERR以文本形式 -
可选的
stdin参数表示您的LLM可以 -
传递脚本
STDIN命令如下fish,bash,zsh,python -
使用创建文件
cat >> foo/bar.txt从文本中stdin
[!警告] 请小心您要求此服务器运行的内容! 在Claude Desktop应用程序中,使用
Approve Once(不是Allow for This Chat)因此,您可以查看每个命令,使用Deny如果你不信任这个命令。 权限由运行服务器的用户决定。 不要带着sudo.
视频演练
提示
提示用户在聊天记录中包括,即通过 Zed的斜线命令(在其AI聊天面板中)
-
run_process-使用命令输出生成提示消息 -
仅供参考,这主要是一次学习练习。…我认为这是用户请求的工具调用。这是一种奇特的说法,它是一个运行命令并将输出传递给模型的模板!
发展
安装依赖项:
BASH``` 1npm install
构建服务器:
BASH```
1npm run build
对于自动重建的开发:
BASH``` 1npm run watch
## 安装
要与Claude Desktop一起使用,请添加服务器配置:
在MacOS上: `~/Library/Application Support/Claude/claude_desktop_config.json`
在Windows上: `%APPDATA%/Claude/claude_desktop_config.json`
Groq Desktop(测试版,macOS)使用 `~/Library/Application Support/groq-desktop-app/settings.json`
### 使用已发布的npm包
发布到npm [mcp服务器命令](https://www.npmjs.com/package/mcp-server-commands) 使用这个 [工作流](https://github.com/g0t4/mcp-server-commands/actions)
JSON```
1
2
3
4
5
6
7
8{
"mcpServers": {
"mcp-server-commands": {
"command": "npx",
"args": ["mcp-server-commands"]
}
}
}
使用本地构建(仓库签出)
一定要跑 npm run build
JSON``` 1 2 3 4 5 6 7 8{ “mcpServers”: { “mcp-server-commands”: { // works b/c of shebang in index.js “command”: “/path/to/mcp-server-commands/build/index.js” } } }
## 局部模型
- 大多数模型经过训练,认为它们不能为你运行命令。
- 有时,他们会毫不犹豫地使用工具。…其他时候,我必须哄他们。
- 使用系统提示或提示模板来指示他们应该遵循用户请求。包括使用 `run_processs` 没有双重检查。
- Ollama是在本地运行模型的好方法(带Open WebUI)
SH```
1
2
3
4
5
6
7# NOTE: make sure to review variants and sizes, so the model fits in your VRAM to perform well!
# Probably the best so far is [OpenHands LM](https://www.all-hands.dev/blog/introducing-openhands-lm-32b----a-strong-open-coding-agent-model)
ollama pull https://huggingface.co/lmstudio-community/openhands-lm-32b-v0.1-GGUF
# https://ollama.com/library/devstral
ollama pull devstral
# Qwen2.5-Coder has tool use but you have to coax it
ollama pull qwen2.5-coder
HTTP/OpenAPI
服务器是用 STDIO 运输。
对于 HTTP,使用 mcpo 为了一个 OpenAPI 兼容的web服务器界面。
这适用于 Open-WebUI
BASH``` 1 2 3uvx mcpo —port 3010 —api-key “supersecret” — npx mcp-server-commands
uvx runs mcpo => mcpo run npx => npx runs mcp-server-commands
then, mcpo bridges STDIO <=> HTTP
> [!警告]
> 我简要地使用了 `mcpo` 和 `open-webui`,确保对其进行安全审查。
### 日志记录
Claude Desktop应用程序将日志写入 `~/Library/Logs/Claude/mcp-server-mcp-server-commands.log`
默认情况下,只记录重要消息(即错误)。
如果您想查看更多消息,请添加 `--verbose` 到 `args` 在配置服务器时。
顺便说一句,日志被写入 `STDERR` 因为这是Claude Desktop发送到日志文件的路径。
在未来,我希望格式良好的日志消息能够被写在 `STDIO` 传输到MCP客户端(注意:不是Claude Desktop应用程序)。
### 调试
由于MCP服务器通过stdio进行通信,调试可能具有挑战性。我们建议使用 [MCP检查员](https://github.com/modelcontextprotocol/inspector),可作为包脚本使用:
BASH```
1npm run inspector
检查器将提供一个URL,用于访问浏览器中的调试工具。
