使用说明
项目简介
'mcp-execute-command' 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于提供命令执行功能。它允许LLM客户端通过标准化的MCP协议,请求服务器执行指定的系统命令,并将命令的输出结果返回给客户端。
主要功能点
- 跨平台命令执行: 支持在不同操作系统平台上执行命令。
- 支持shell和直接命令执行: 可以选择通过shell解释器执行命令,或直接执行命令。
- 可配置工作目录: 允许为命令执行指定工作目录。
- 详细的错误处理和报告: 提供命令执行成功或失败的详细信息,包括返回码、标准输出和标准错误输出。
- 实现了 MCP 协议的 'initialize' 方法,用于声明服务器的功能。
- 实现了 'execute_command' 工具,允许客户端调用执行命令。
- 使用 JSON-RPC 协议 通过标准输入/输出 (stdio) 与客户端通信。
安装步骤
- 确保你的Python环境中安装了 'pip'。
- 打开终端或命令提示符,运行以下命令安装 'mcp-execute-command':
pip install mcp-execute-command
服务器配置
MCP客户端需要配置服务器的启动命令和参数才能连接到 'mcp-execute-command' 服务器。以下是 рекомендуемый 配置信息(JSON 格式):
{ "serverName": "mcp-execute-command", "command": "python", "args": ["-m", "mcp_execute_command"] }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 "mcp-execute-command"。
- 'command': 启动服务器的命令。这里使用 'python' 命令。
- 'args': 传递给启动命令的参数。 '["-m", "mcp_execute_command"]' 表示以模块方式运行 'mcp_execute_command'。
MCP客户端配置示例 (假设客户端配置项名为 'servers'):
{ "servers": [ { "name": "execute-command-server", "config": { "serverName": "mcp-execute-command", "command": "python", "args": ["-m", "mcp_execute_command"] }, "capabilities": { "tools": ["execute"] } } ] }
注意: 'capabilities' 中的 'tools: ["execute"]' 声明客户端期望使用的工具集,需要与服务器声明的工具能力匹配。
基本使用方法
-
启动 MCP 服务器: MCP 客户端根据上述配置启动 'mcp-execute-command' 服务器。服务器将监听标准输入 (stdin) 接收请求,并通过标准输出 (stdout) 发送响应。
-
客户端发送请求: 客户端需要构造符合 MCP 协议的 JSON-RPC 请求,并通过标准输入发送给服务器。以下是一个调用 'execute_command' 工具的请求示例:
{ "jsonrpc": "2.0", "method": "execute_command", "params": { "command": "echo 'hello from mcp server'", "shell": true, "cwd": "/tmp" }, "id": 1 }请求参数说明:
- 'jsonrpc': JSON-RPC 协议版本,固定为 '"2.0"'。
- 'method': 调用的方法名,这里是 '"execute_command"'。
- 'params': 方法参数,一个 JSON 对象,包含以下字段:
- 'command': 要执行的命令,例如 '"echo 'hello from mcp server'"'。
- 'shell' (可选): 是否通过 shell 执行命令,布尔值,默认为 'false'。如果设置为 'true',则命令将通过系统默认 shell 解释器执行。
- 'cwd' (可选): 命令执行的工作目录,字符串,例如 '"/tmp"'。如果未指定,则使用服务器的当前工作目录。
- 'id': 请求 ID,用于匹配请求和响应。
-
服务器返回响应: 服务器执行命令后,将通过标准输出返回 JSON-RPC 响应。以下是一个成功执行命令的响应示例:
{ "jsonrpc": "2.0", "result": { "success": true, "returncode": 0, "stdout": "hello from mcp server\n", "stderr": "" }, "id": 1 }响应结果说明:
- 'jsonrpc': JSON-RPC 协议版本,固定为 '"2.0"'。
- 'result': 方法执行结果,一个 JSON 对象,包含以下字段:
- 'success': 命令是否执行成功,布尔值。
- 'returncode': 命令的返回码,整数,'0' 表示成功,非 '0' 表示失败。
- 'stdout': 命令的标准输出,字符串。
- 'stderr': 命令的标准错误输出,字符串。
- 'id': 与请求 ID 相同的响应 ID。
如果命令执行失败或发生错误,服务器将返回包含 'error' 字段的 JSON-RPC 响应。
通过以上步骤,MCP 客户端可以利用 'mcp-execute-command' 服务器提供的 'execute_command' 工具,安全地在服务器端执行系统命令,从而扩展 LLM 应用的功能。
信息
分类
开发者工具