README
🚀 SSH MCP 服务器
本项目是一个具备 SSH 功能的 Model Context Protocol (MCP) 服务器实现。它借助 MCP 协议,实现了安全的远程访问与操作执行,为用户提供了便捷、高效的远程服务体验。
✨ 主要特性
- 基于 SSH 的 MCP 协议服务器实现,确保远程访问的安全性和高效性。
- 集成 SQLite 数据库,实现数据持久化,方便数据的存储与管理。
- 使用 TypeScript 开发,提供类型安全和更好的开发体验,提升代码的可维护性。
📦 安装指南
先决条件
- Node.js(推荐使用 v16 或更高版本)
- npm 或 yarn 包管理器
- 具备 TypeScript 知识用于开发
安装步骤
- 克隆仓库:
git clone <repository-url>
cd ssh-server
- 安装依赖项:
npm install
- 构建项目:
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/目录中进行更改。 - 重新构建项目:
npm run build
- 启动服务器以测试更改:
npm start
📚 详细文档
项目结构
src/- 源代码目录build/- 编译后的 JavaScript 输出node_modules/- 项目依赖项
依赖项
| 属性 | 详情 |
|------|------|
| 模型类型 | 基于 SSH 的 MCP 协议服务器 |
| 训练数据 | 无 |
| 依赖项 | @modelcontextprotocol/sdk(MCP 协议实现)、sqlite3(SQLite 数据库驱动)、typescript(用于 TypeScript 支持的开发依赖) |
📄 许可证
本项目采用 ISC 许可证。
贡献
如果你想为项目做出贡献,可以按照以下步骤进行:
- 叉仓库
- 创建功能分支
- 提交你的更改
- 推送到分支机构
- 发送拉取请求
Scan to contact