使用说明(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 客户端环境中部署与接入,并具备日志和错误处理能力。
  • 安装步骤(易操作)

    1. 安装依赖
      • 确保系统安装了 Node.js 环境。
      • 克隆仓库、进入项目目录后执行安装依赖:
        • npm install
    2. 构建与运行
      • 构建项目:npm run build
      • 开发模式(监听变更):npm run dev
    3. 运行与测试
      • 通过标准输入输出传输(Stdio)与 MCP 客户端对接,客户端可通过 Claude Desktop 等工具加载服务器并通过工具调用实现 SSH 与 SFTP 功能。
      • 服务器启动后,日志会显示已加载的服务器配置数量与名称,便于确认接入情况。
    4. 配置和环境
      • 服务器配置与环境变量会从 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、本地路径、本地目标路径、覆盖策略等
  • 关键词 SSH, SFTP, 远程执行, 会话管理, 文件传输

  • 分类 6

信息

分类

AI与计算