返回 MCP 目录
public公开dns本地运行

SSH Commander

一个基于MCP协议的SSH服务器实现,提供安全的远程访问和执行功能,包含SQLite数据库集成和TypeScript类型安全支持。

article

README

🚀 SSH MCP 服务器

本项目是一个具备 SSH 功能的 Model Context Protocol (MCP) 服务器实现。它借助 MCP 协议,实现了安全的远程访问与操作执行,为用户提供了便捷、高效的远程服务体验。

✨ 主要特性

  • 基于 SSH 的 MCP 协议服务器实现,确保远程访问的安全性和高效性。
  • 集成 SQLite 数据库,实现数据持久化,方便数据的存储与管理。
  • 使用 TypeScript 开发,提供类型安全和更好的开发体验,提升代码的可维护性。

📦 安装指南

先决条件

  • Node.js(推荐使用 v16 或更高版本)
  • npm 或 yarn 包管理器
  • 具备 TypeScript 知识用于开发

安装步骤

  1. 克隆仓库:
git clone <repository-url>
cd ssh-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

💻 使用示例

基础用法

配置

服务器使用 SQLite 数据库 (ssh.db) 来存储 SSH 凭证。数据库文件将在服务器启动时自动创建。

工具使用

服务器提供了以下实用工具:

  • ssh_exec:通过 SSH 执行命令。
    • 输入参数
      • host:要连接的主机。(必填)
      • command:要执行的命令。(必填)
      • username:用于 SSH 连接的用户名。(必填)
      • privateKeyPath:私钥文件路径。(必填)
    • 示例用法
{
    "tool_name": "ssh_exec",
    "arguments": {
        "host": "example.com",
        "command": "ls -l",
        "username": "user",
        "privateKeyPath": "/path/to/private/key"
    }
}
- **注意**:`privateKeyPath` 必须是有效的私钥文件路径。
  • add_credential:添加新的 SSH 凭证。
    • 输入参数
      • name:凭证的名称。(必填)
      • host:要连接到的主机。(必填)
      • username:用于 SSH 连接的用户名。(必填)
      • privateKeyPath:私钥文件路径。(必填)
    • 示例用法
{
    "tool_name": "add_credential",
    "arguments": {
        "name": "my_credential",
        "host": "example.com",
        "username": "user",
        "privateKeyPath": "/path/to/private/key"
    }
}
- **注意**:`privateKeyPath` 必须是有效的私钥文件路径。
  • list_credentials:列出所有存储的 SSH 凭证。
    • 输入参数:无
    • 示例用法
{
    "tool_name": "list_credentials",
    "arguments": {}
}
  • remove_credential:移除一个存储的 SSH 凭证。
    • 输入参数
      • name:要移除的凭证名称。(必填)
    • 示例用法
{
    "tool_name": "remove_credential",
    "arguments": {
        "name": "my_credential"
    }
}

启动服务器

npm start

服务器将在配置好的端口上启动(默认设置可以在源代码中修改)。

高级用法

若你需要对项目进行修改和扩展,可以按照以下步骤操作:

  1. src/ 目录中进行更改。
  2. 重新构建项目:
npm run build
  1. 启动服务器以测试更改:
npm start

📚 详细文档

项目结构

  • src/ - 源代码目录
  • build/ - 编译后的 JavaScript 输出
  • node_modules/ - 项目依赖项

依赖项

| 属性 | 详情 | |------|------| | 模型类型 | 基于 SSH 的 MCP 协议服务器 | | 训练数据 | 无 | | 依赖项 | @modelcontextprotocol/sdk(MCP 协议实现)、sqlite3(SQLite 数据库驱动)、typescript(用于 TypeScript 支持的开发依赖) |

📄 许可证

本项目采用 ISC 许可证。

贡献

如果你想为项目做出贡献,可以按照以下步骤进行:

  1. 叉仓库
  2. 创建功能分支
  3. 提交你的更改
  4. 推送到分支机构
  5. 发送拉取请求
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端