使用说明(Markdown 格式)
-
项目简介
- 这是一个完整的 MCP 服务器实现,构建在 Model Context Protocol (MCP) SDK 之上。服务器通过 JSON-RPC 与 LLM 客户端通信,向客户端提供资源管理、工具注册与执行、以及可渲染的提示/模板等能力,以实现对多台远程服务器的 SSH 操作和文件传输等功能。
-
主要功能点
- MCP 服务端核心:实现对 MCP 请求的处理与响应,注册并执行可用的工具集,提供对资源的托管与管理,以及会话生命周期与请求跟踪。
- 资源与会话管理:通过 SessionManager 管理 SSH 会话、连接池、超时清理与并发上限,确保安全、可扩展。
- 工具集合:注册一整套工具,包含
- 连接管理(ssh_connect、ssh_disconnect、ssh_list_sessions 等)
- 命令执行(ssh_exec、ssh_sudo_exec)
- 文件操作(sftp_upload、sftp_download、sftp_ls、sftp_mkdir、sftp_rm、sftp_stat、sftp_read、sftp_write)
- 数据访问与权限控制:通过服务器配置和环境变量管理远程服务器信息,避免将凭据持久化存储在服务器端日志或输出中。
- JSON-RPC/通信协议:通过 MCP SDK 提供的 JSON-RPC 路由,统一处理 ListTools 与 CallTool 请求,返回一致的结果结构或错误信息。
- 多传输与部署友好性:当前实现基于标准输入输出(Stdio)传输,便于在 Claude 等 LLM 客户端环境中部署与接入,并具备日志和错误处理能力。
-
安装步骤(易操作)
- 安装依赖
- 确保系统安装了 Node.js 环境。
- 克隆仓库、进入项目目录后执行安装依赖:
- npm install
- 构建与运行
- 构建项目:npm run build
- 开发模式(监听变更):npm run dev
- 运行与测试
- 通过标准输入输出传输(Stdio)与 MCP 客户端对接,客户端可通过 Claude Desktop 等工具加载服务器并通过工具调用实现 SSH 与 SFTP 功能。
- 服务器启动后,日志会显示已加载的服务器配置数量与名称,便于确认接入情况。
- 配置和环境
- 服务器配置与环境变量会从 config 文件、环境变量以及 CLI 参数中加载,支持多服务器、不同认证方式(密码/私钥)。
- 安装依赖
-
服务器配置(MCP 客户端需要的最低信息) 说明:MCP 客户端需要配置启动命令及参数来启动该 MCP 服务器进程。下面给出可用于 Claude Desktop 的示例配置(JSON 格式文本,不包含具体代码块,便于直接粘贴理解)。该配置将启动 ssh-client-mcp 服务器进程,并通过命令行参数向服务器提供要连接的远程 SSH 服务器信息。实际值请替换为你的目标服务器信息。
示例(高层描述的 JSON 配置文本): { "mcpServers": { "ssh": { "name": "SSH Client MCP", "command": "npx", "args": [ "ssh-client-mcp", "--host", "192.168.1.100", "--user", "admin", "--password", "your-password" ] } } }
说明与替换建议:
- name(服务器显示名):自定义名称,便于你区分不同的 MCP 服务器实例。
- command(启动命令):推荐使用 npx 或 node 直接启动,可根据你的运行环境调整。
- args(启动参数):
- --host: 远程要管理的 SSH 服务器主机名或 IP(通常是目标机器的 SSH 地址)。
- --user: SSH 登录用户名。
- --password: SSH 登录密码(若使用密码认证)。
- 也可以使用私钥认证参数,例如:--key ~/.ssh/id_rsa、--passphrase YourPassphrase。
-
基本使用方法
- 启动后,LLM 客户端可以通过 MCP 的工具集执行以下常用操作:
- 列出已配置的服务器
- 测试与某台服务器的连接性
- 通过已建立的会话执行命令(ssh_exec、ssh_sudo_exec)
- 进行 SFTP 文件上传/下载、目录列出、创建/删除目录、读取/写入文件等
- 使用范例(在对话中以 Tool 调用的形式发起请求,格式为 ToolName 和 Arguments):
- ssh_list_servers
- ssh_test_connection 传入 serverId
- ssh_connect_by_id 传入 serverId
- ssh_exec 传入 sessionId 与命令
- sftp_upload 传入 sessionId、本地路径、本地目标路径、覆盖策略等
- 启动后,LLM 客户端可以通过 MCP 的工具集执行以下常用操作:
-
关键词 SSH, SFTP, 远程执行, 会话管理, 文件传输
-
分类 6
信息
分类
AI与计算