一种实现了模型上下文协议的服务器,它通过SSH启用安全的远程命令执行,并具有管理和使用SSH凭据的功能。
808 查看 · 2026-07-07 更新
简介
一种实现了模型上下文协议的服务器,它通过SSH启用安全的远程命令执行,并具有管理和使用SSH凭据的功能。
简介
一种实现了模型上下文协议的服务器,它通过SSH启用安全的远程命令执行,并具有管理和使用SSH凭据的功能。
SSH MCP 服务器
这是一个使用模型上下文协议(MCP)实现的SSH服务器,它允许通过MCP协议进行安全的远程访问和执行。
功能
- 使用MCP协议实现的SSH服务器
- 集成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/- 源代码目录build/- 编译后的JavaScript输出node_modules/- 项目依赖
依赖项
@modelcontextprotocol/sdk: MCP协议实现sqlite3: SQLite数据库驱动typescript: 支持TypeScript的开发依赖
开发
要对项目进行更改:
- 在
src/目录下进行更改 - 重新构建项目:
npm run build
- 启动服务器以测试您的更改:
npm start
许可证
ISC
贡献
- 叉分仓库
- 创建您的功能分支
- 提交您的更改
- 推送到分支
- 创建新的拉取请求
工具列表
-
ssh_exec: Execute command over SSH using private key file path
-
add_credential: Add a new SSH credential with private key file path
-
list_credentials: List all stored SSH credentials
-
remove_credential: Remove a stored SSH credential
-
rsync_copy: Copy files/directories between local and remote server via rsync
来源
- 来源:github
- 链接:https://github.com/KinoThe-Kafkaesque/ssh-mcp-server