mcpField
M
Mcp Server Commands

Mcp Server Commands

本地服务
github.com/g0t4开发工具23729 周前更新

关于 Mcp Server Commands

Mcp Server Commands 是一个 MCP 服务,可在宿主机上运行命令并返回标准输出与标准错误。它面向希望让模型执行命令行操作的用户,并提供了基于 stdio 的本地运行方式。

主要功能

  1. 01通过 runProcess 工具执行命令
  2. 02支持 command_line 字符串或 argv 数组两种调用方式
  3. 03返回 STDOUT 和 STDERR 文本
  4. 04可通过 stdin 向 shell 或脚本传入内容
  5. 05提供 HTTP 访问的 mcpo 桥接说明

适用场景

  1. 01让模型查询主机信息,例如运行 hostname 或 ls
  2. 02将脚本通过 stdin 传给 bash 或 python 执行
  3. 03在本地模型中通过命令行完成文件操作

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 run_process 工具,用于在宿主机上执行命令并返回输出。它使用 STDIO 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"commands": {
"command": "uvx",
"args": [
"mcpo"
]
}
}
}
启动命令uvx mcpo

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcpo

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

runProcess 工具

runProcess 工具可在主机上运行进程。有两种互斥的调用方式:

  1. command_line(字符串)——通过系统默认 shell 执行(就像在 bash/fish/pwsh 等命令行中输入一样)。管道、重定向和变量展开等 shell 功能均可使用。
  2. argv(字符串数组)——直接调用可执行文件。argv[0] 是可执行文件,其余部分是参数。不进行 shell 解析。

不能同时传入两者。工具会根据你提供的参数推断是否使用 shell。

如果你希望模型在系统上使用特定的 shell,可以在系统提示词中列出。或者也可以写在工具说明中,不过模型通常会更留意系统提示词中的示例。

如果遇到问题,请告诉我!

工具

工具供 LLM 调用。Claude Sonnet 3.5 可以智能地使用 run_process。初步测试也显示,Groq Desktop with MCP 和 llama4 模型的表现令人期待。

目前,一个命令即可统管一切!

  • run_process - 运行命令,例如 hostname、ls -al 或 echo "hello world" 等
    • 将 STDOUT 和 STDERR 作为文本返回
    • 可选的 stdin 参数允许你的 LLM
      • 通过 STDIN 将脚本传递给 fish、bash、zsh、python 等命令
      • 使用 stdin 中的文本通过 cat >> foo/bar.txt 创建文件

警告

请谨慎指定要此服务运行的内容! 在 Claude Desktop 应用中,请使用 Approve Once(而非 Allow for This Chat),以便审核每条命令;如果不信任该命令,请使用 Deny。 权限由运行此服务的用户决定。 切勿使用 sudo 运行。

视频演示

YouTube 缩略图

提示词

提示词供用户添加到聊天记录中,例如通过 Zed 的斜杠命令(在其 AI Chat 面板中)

  • run_process - 根据命令输出生成一条提示词消息
  • 供参考,这基本上是一次学习练习……我认为这是用户请求的工具调用。换句话说,它是一个用于运行命令并将输出传递给模型的模板!

开发

安装依赖项:

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(测试版,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": {
      // works b/c of shebang in index.js
      "command": "/path/to/mcp-server-commands/build/index.js"
    }
  }
}

本地模型

  • 大多数模型经过训练后,不会认为自己可以替你运行命令。
    • 有时它们会毫不犹豫地使用工具……有时则需要我引导。
    • 使用系统提示词或提示词模板,指示它们遵循用户请求,包括在不再次确认的情况下使用 run_processs。
  • Ollama 是在本地运行模型的好方法(搭配 Open-WebUI)
# 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 配合使用

uvx 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 桌面应用会将日志写入 ~/Library/Logs/Claude/mcp-server-mcp-server-commands.log

默认情况下,只会记录重要消息(即错误)。 如果想查看更多消息,请在配置服务时将 --verbose 添加到 args 中。

顺便提一下,日志会写入 STDERR,因为 Claude Desktop 会将其路由到日志文件。 未来,我预计格式良好的日志消息会通过 STDIO 传输发送给 MCP 客户端(注意:不是 Claude Desktop 应用)。

调试

由于 MCP 服务通过 stdio 通信,调试可能颇具挑战。我们建议使用 MCP Inspector,它可通过包脚本运行:

npm run inspector

Inspector 会提供一个 URL,供你在浏览器中访问调试工具。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。