使用说明

项目简介

Shell MCP Server 是一个实现了 Model Context Protocol (MCP) 协议的服务器,它为大型语言模型 (LLM) 客户端提供了一个 execute_command 工具,使 LLM 能够通过调用该工具在运行服务器的系统上执行 shell 命令。这个服务器主要用于扩展 LLM 的能力,使其可以与本地操作系统进行交互,例如查询文件系统信息、执行系统命令等。请务必注意安全风险,谨慎使用,避免执行未授权或危险的命令。

主要功能点

  • 执行 Shell 命令: 提供 'execute_command' 工具,允许 LLM 客户端指定要执行的 shell 命令。
  • 返回命令结果: 执行命令后,服务器会将命令的输出(标准输出和标准错误)以及返回码封装成 JSON 格式返回给 LLM 客户端。
  • 基于 MCP 协议: 完全遵循 MCP 协议规范,可以与任何支持 MCP 协议的 LLM 客户端(如 Claude、Zed 等)无缝集成。
  • 简单易用: 安装配置简单,可以通过标准输入输出 (stdio) 进行通信,易于部署和调试。

安装步骤

本服务器提供了两种安装方式:使用 'uv' (推荐) 或 'pip'。

方式一:使用 uv (推荐)

'uv' 是一个快速的 Python 包安装和管理工具。如果您的环境中使用 'uv',则无需进行额外的安装步骤。您可以使用 'uvx' 直接运行 'mcp-server-shell'。

方式二:使用 pip

如果您的环境中使用 'pip',可以通过以下命令安装 'mcp-server-shell' 包:

pip install mcp-server-shell

安装完成后,您可以使用以下命令作为脚本运行服务器:

python -m mcp_server_shell

服务器配置

MCP 服务器是为 MCP 客户端(例如 Claude 应用或 Zed 编辑器)提供服务的后端。您需要在 MCP 客户端中配置服务器的启动命令和参数,以便客户端能够连接并使用该服务器提供的功能。

以下是针对不同 MCP 客户端 (Claude.app, Zed) 和不同安装方式 (uvx, pip installation) 的配置示例。您需要根据您的实际使用情况,将相应的配置信息添加到您的 MCP 客户端设置中。

针对 Claude.app 的配置

在 Claude.app 的设置中,找到 'mcpServers' 部分,添加以下配置:

<details><summary>使用 uvx 运行 (推荐)</summary>
{
  "shell": {  // 服务器名称,客户端用于标识和调用
    "command": "uvx",  // 启动服务器的命令,这里使用 uvx 运行
    "args": ["mcp-server-shell"] // 命令参数,这里指定运行 mcp-server-shell
  }
}
</details> <details><summary>使用 pip 安装运行</summary>
{
  "shell": {  // 服务器名称,客户端用于标识和调用
    "command": "python",  // 启动服务器的命令,这里使用 python 解释器
    "args": ["-m", "mcp_server_shell"] // 命令参数,-m 参数用于运行模块,这里指定运行 mcp_server_shell 模块
  }
}
</details>

针对 Zed 编辑器的配置

在 Zed 编辑器的 'settings.json' 文件中,找到 'context_servers' 部分,添加以下配置:

<details><summary>使用 uvx 运行 (推荐)</summary>
{
  "mcp-server-shell": {  // 服务器名称,客户端用于标识和调用,Zed 中建议使用仓库名作为 server name
    "command": "uvx",  // 启动服务器的命令,这里使用 uvx 运行
    "args": ["mcp-server-shell"] // 命令参数,这里指定运行 mcp-server-shell
  }
}
</details> <details><summary>使用 pip 安装运行</summary>
{
  "mcp-server-shell": {  // 服务器名称,客户端用于标识和调用,Zed 中建议使用仓库名作为 server name
    "command": "python",  // 启动服务器的命令,这里使用 python 解释器
    "args": ["-m", "mcp_server_shell"] // 命令参数,-m 参数用于运行模块,这里指定运行 mcp_server_shell 模块
  }
}
</details>

配置参数说明:

  • server name (服务器名称): 客户端用于唯一标识和调用 MCP 服务器的名称,可以自定义,例如 "shell"。在 Zed 中,推荐使用仓库名称 "mcp-server-shell" 作为服务器名称。
  • command (命令): 启动 MCP 服务器的可执行命令。根据安装方式选择 'uvx' 或 'python'。
  • args (参数): 传递给启动命令的参数。对于 uvx 和 pip 安装,参数分别为 '["mcp-server-shell"]' 和 '["-m", "mcp_server_shell"]'。

基本使用方法

配置完成后,在您的 MCP 客户端中,您可以使用 'execute_command' 工具来执行 shell 命令。例如,在 Claude 中,您可以提问类似以下的问题:

  1. "What files are in the current directory?" (对应执行 'ls' 命令)
  2. "Show me the contents of the README.md file" (对应执行 'cat README.md' 命令)
  3. "What's the current system date?" (对应执行 'date' 命令)
  4. "Check if Python is installed and show its version" (对应执行 'python --version' 命令)

客户端会将您的问题转化为对 'execute_command' 工具的调用,并将命令参数传递给服务器。服务器执行命令后,会将结果返回给客户端,客户端再将结果呈现给用户。

工具调用示例 (JSON 格式,用于客户端内部调用):

{
  "name": "execute_command",
  "arguments": {
    "command": "ls -la"  // 要执行的 shell 命令
  }
}

服务器返回的响应示例 (JSON 格式):

{
  "command": "ls -la",      // 执行的命令
  "output": "...",          // 命令的输出结果 (stdout 和 stderr)
  "return_code": 0          // 命令的返回码
}

安全警告: 请务必仔细阅读 'README.md' 中的安全注意事项,并谨慎使用此服务器。

信息

分类

桌面与硬件