SSH-MCP服务器
一种实现了模型上下文协议的服务器,它通过SSH启用安全的远程命令执行,并具有管理和使用SSH凭据的功能。
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
ssh_exec 4 个参数 需填 4 项
Execute command over SSH using private key file path
必填参数:host、command、username、privateKeyPath
add_credential 4 个参数 需填 4 项
Add a new SSH credential with private key file path
必填参数:name、host、username、privateKeyPath
list_credentials
List all stored SSH credentials
该工具无需必填参数,直接调用即可
remove_credential 1 个参数 需填 1 项
Remove a stored SSH credential
必填参数:name
rsync_copy 4 个参数 需填 4 项
Copy files/directories between local and remote server via rsync
必填参数:credentialName、localPath、remotePath、direction
服务介绍
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
贡献
- 叉分仓库
- 创建您的功能分支
- 提交您的更改
- 推送到分支
- 创建新的拉取请求