使用说明
项目简介
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></details> <details><summary>使用 pip 安装运行</summary>{ "shell": { // 服务器名称,客户端用于标识和调用 "command": "uvx", // 启动服务器的命令,这里使用 uvx 运行 "args": ["mcp-server-shell"] // 命令参数,这里指定运行 mcp-server-shell } }
</details>{ "shell": { // 服务器名称,客户端用于标识和调用 "command": "python", // 启动服务器的命令,这里使用 python 解释器 "args": ["-m", "mcp_server_shell"] // 命令参数,-m 参数用于运行模块,这里指定运行 mcp_server_shell 模块 } }
针对 Zed 编辑器的配置
在 Zed 编辑器的 'settings.json' 文件中,找到 'context_servers' 部分,添加以下配置:
<details><summary>使用 uvx 运行 (推荐)</summary></details> <details><summary>使用 pip 安装运行</summary>{ "mcp-server-shell": { // 服务器名称,客户端用于标识和调用,Zed 中建议使用仓库名作为 server name "command": "uvx", // 启动服务器的命令,这里使用 uvx 运行 "args": ["mcp-server-shell"] // 命令参数,这里指定运行 mcp-server-shell } }
</details>{ "mcp-server-shell": { // 服务器名称,客户端用于标识和调用,Zed 中建议使用仓库名作为 server name "command": "python", // 启动服务器的命令,这里使用 python 解释器 "args": ["-m", "mcp_server_shell"] // 命令参数,-m 参数用于运行模块,这里指定运行 mcp_server_shell 模块 } }
配置参数说明:
- 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 中,您可以提问类似以下的问题:
- "What files are in the current directory?" (对应执行 'ls' 命令)
- "Show me the contents of the README.md file" (对应执行 'cat README.md' 命令)
- "What's the current system date?" (对应执行 'date' 命令)
- "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' 中的安全注意事项,并谨慎使用此服务器。
信息
分类
桌面与硬件