工具
工具是LLM请求使用的。Claude Sonnet 3.5智能地使用run_command。初步测试显示,与Groq Desktop with MCP和llama4模型结合使用效果良好。
目前只有一个命令可以统管一切!
run_command- 运行命令,例如hostname、ls -al或echo "hello world"等- 返回
STDOUT和STDERR作为文本 - 可选的
stdin参数意味着您的LLM可以- 将代码通过
stdin传递给fish、bash、zsh、python等命令 - 使用
cat >> foo/bar.txt从stdin中的文本创建文件
- 将代码通过
- 返回
[!WARNING] 小心向此服务器请求运行什么命令! 在Claude Desktop应用中,使用
Approve Once(而不是Allow for This Chat),以便您可以逐个审查每个命令,如果不可信则使用Deny。 权限由运行服务器的用户决定。 请勿使用sudo运行。
视频演示
提示
提示用于用户在聊天历史中包含,例如通过Zed的斜杠命令(在其AI聊天面板中)
run_command- 生成包含命令输出的提示消息
开发
安装依赖项:
npm install
构建服务器:
npm run build
用于开发并自动重建:
npm run watch
安装
与Claude Desktop一起使用时,添加服务器配置:
在MacOS上:~/Library/Application Support/Claude/claude_desktop_config.json
在Windows上:%APPDATA%/Claude/claude_desktop_config.json
Groq Desktop(beta,macOS)使用~/Library/Application Support/groq-desktop-app/settings.json
使用发布的npm包
发布到npm作为mcp-server-commands,使用此工作流
{
"mcpServers": {
"mcp-server-commands": {
"command": "npx",
"args": ["mcp-server-commands"]
}
}
}
使用本地构建(仓库检出)
确保运行npm run build
{
"mcpServers": {
"mcp-server-commands": {
// 因为index.js中的shebang,所以可以工作
"command": "/path/to/mcp-server-commands/build/index.js"
}
}
}
本地模型
- 大多数模型经过训练后不会认为它们可以为您运行命令。
- 有时它们毫不犹豫地使用工具... 其他时候,我不得不引导它们。
- 使用系统提示或提示模板指示它们应遵循用户请求。包括无需二次确认即可使用
run_commands。
- Ollama是本地运行模型的好方法(配合Open-WebUI)
# 注意:确保审查变体和大小,以便模型适合您的VRAM以获得良好性能!
# 目前效果最好的可能是[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有工具使用功能,但您需要引导它
ollama pull qwen2.5-coder
HTTP / OpenAPI
服务器使用STDIO传输实现。
对于HTTP,使用mcpo以获得兼容OpenAPI的Web服务器接口。
这适用于Open-WebUI
uvx mcpo --port 3010 --api-key "supersecret" -- npx mcp-server-commands
# uvx运行mcpo => mcpo运行npx => npx运行mcp-server-commands
# 然后,mcpo桥接STDIO <=> HTTP
[!WARNING] 我曾短暂使用
mcpo与open-webui,请确保审查其安全性问题。
日志记录
Claude Desktop应用将日志写入~/Library/Logs/Claude/mcp-server-mcp-server-commands.log
默认情况下,仅记录重要消息(即错误)。
如果您想看到更多消息,请在配置服务器时在args中添加--verbose。
顺便说一句,日志记录到STDERR,因为Claude Desktop将其路由到日志文件。
未来,我预计将使用STDIO传输向MCP客户端写入格式化的日志消息(注意:不是Claude Desktop应用)。
调试
由于MCP服务器通过stdio通信,调试可能具有挑战性。我们建议使用MCP Inspector,它作为包脚本提供:
npm run inspector
Inspector将提供一个URL,您可以在浏览器中访问调试工具。
