返回市场
SSH-MCP服务器

SSH-MCP服务器

作者:KinoThe-Kafkaesque9 星标更新:2025-05-02

项目介绍

SSH MCP 服务器

smithery 徽章

这是一个使用 Model Context Protocol (MCP) 协议实现的 SSH 服务器,提供了安全的远程访问和执行功能。

特性

  • 使用 MCP 协议实现的 SSH 服务器
  • 集成 SQLite 数据库以实现数据持久化
  • 使用 TypeScript 实现,确保类型安全并提供更好的开发体验

预备条件

  • Node.js(推荐 v16 或更高版本)
  • npm 或 yarn 包管理器
  • 开发所需的 TypeScript 知识

安装

通过 Smithery 安装

要通过 Smithery 自动安装 SSH 服务器:

npx -y @smithery/cli install @KinoThe-Kafkaesque/ssh-mcp-server --client claude

手动安装

  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

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

项目结构

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

依赖项

  • @modelcontextprotocol/sdk: MCP 协议实现
  • sqlite3: SQLite 数据库驱动
  • typescript: 支持 TypeScript 的开发依赖

开发

要对项目进行更改:

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

许可证

ISC

贡献

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