使用说明
项目简介
pty-mcp 是一个 MCP (Model Context Protocol) 工具服务器,它允许你通过 MCP 协议与服务器进行交互,并在服务器上执行 shell 命令。你可以通过会话 ID 管理多个独立的 shell 会话,每个会话保持各自的状态。
主要功能点
- 远程命令执行: 允许 LLM 客户端在服务器上执行任意 shell 命令,并返回命令输出结果。
- 交互式会话: 支持通过会话 ID 创建和管理多个独立的 shell 会话。每个会话是隔离的,拥有独立的 shell 环境和状态(例如,当前工作目录)。
- 状态保持: 在同一会话 ID 下执行的命令会保持 shell 会话的状态,例如,在一个会话中 'cd' 到某个目录后,后续命令会在该目录下执行。
安装步骤
- 安装 pipx (推荐): 如果你还没有安装 pipx,请先安装它。pipx 可以帮助你在隔离的环境中安装和运行 Python 应用,避免依赖冲突。
python -m pip install --user pipx pipx ensurepath - 安装 pty-mcp: 使用 pipx 安装 pty-mcp 工具服务器。
安装完成后,'pty-mcp' 命令将可以在你的命令行中使用。pipx install git+https://github.com/qodo-ai/pty-mcp.git
服务器配置
MCP 客户端需要配置以下信息来连接 pty-mcp 服务器。这是一个 JSON 格式的配置示例,你需要将其提供给你的 MCP 客户端:
{ "server_name": "ShellToolServer", "command": "pty-mcp", "args": [] }
配置参数说明:
- 'server_name': 服务器名称,这里设置为 "ShellToolServer",这是在 'pty_mcp.py' 代码中定义的服务器名称。MCP 客户端可能会使用这个名称来识别或选择服务器。
- 'command': 启动 pty-mcp 服务器的命令。安装 pipx 后,可以直接使用 'pty-mcp' 命令启动服务器。
- 'args': 启动命令的参数。pty-mcp 服务器本身不需要额外的命令行参数,所以这里配置为空数组 '[]'。
注意: 请确保你的 MCP 客户端能够读取并正确解析以上 JSON 配置信息,以便成功连接到 pty-mcp 服务器。
基本使用方法
-
启动 pty-mcp 服务器: 在你的服务器终端中运行 'pty-mcp' 命令来启动 pty-mcp 工具服务器。服务器启动后,会监听 MCP 客户端的请求。
-
配置 MCP 客户端: 在你的 LLM 应用或 MCP 客户端中,配置上面提供的 JSON 信息,指定连接到 "ShellToolServer" 服务器。
-
调用 'run' 工具: 通过 MCP 客户端向 pty-mcp 服务器发送 JSON-RPC 请求,调用 'run' 工具来执行 shell 命令。
以下是一个调用 'run' 工具的示例请求 (JSON-RPC 格式,具体发送方式取决于你的 MCP 客户端):
{ "jsonrpc": "2.0", "method": "run", "params": { "session_id": "session1", "command": "ls -l /tmp" }, "id": 1 }- 'method': 指定要调用的工具名称,这里是 'run'。
- 'params': 传递给 'run' 工具的参数。
- 'session_id': 会话 ID,例如 "session1"。如果会话不存在,服务器会自动创建一个新的会话。
- 'command': 要执行的 shell 命令,例如 "ls -l /tmp"。
- 'id': 请求 ID,用于匹配请求和响应。
-
接收响应: MCP 服务器会返回 JSON-RPC 响应,其中包含命令的执行结果。
示例响应 (成功执行):
{ "jsonrpc": "2.0", "result": "总用量 0\ndrwxrwxrwt 2 root root 40 1月 1 08:00 systemd-private-...\ndrwxrwxrwt 2 user user 6 1月 1 08:00 user-runtime-dir-...", "id": 1 }示例响应 (命令超时或错误):
{ "jsonrpc": "2.0", "error": { "code": -32603, "message": "Error: Command timed out" }, "id": 1 }
通过以上步骤,你就可以使用 pty-mcp 工具服务器,在 LLM 应用中集成远程 shell 命令执行能力。
信息
分类
桌面与硬件