Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SSH_HOST | No | 目标服务器的IP地址或主机名(传统单连接配置,向后兼容) | |
| SSH_PORT | No | SSH端口号(传统单连接配置,向后兼容) | 22 |
| SSH_DEV_HOST | No | 开发环境服务器的IP地址或主机名 | |
| SSH_DEV_PORT | No | 开发环境SSH端口号 | 22 |
| SSH_KEY_PATH | No | SSH私钥文件路径(传统单连接配置,向后兼容,与 SSH_PASSWORD 二选一) | |
| SSH_PASSWORD | No | SSH登录密码(传统单连接配置,向后兼容,与 SSH_KEY_PATH 二选一) | |
| SSH_USERNAME | No | SSH登录用户名(传统单连接配置,向后兼容) | |
| EXEC_LOG_FILE | No | 执行日志文件路径 | exec_log.json |
| SAVE_EXEC_LOG | No | 是否保存执行日志 | false |
| SSH_PROD_HOST | No | 生产环境服务器的IP地址或主机名 | |
| SSH_PROD_PORT | No | 生产环境SSH端口号 | 22 |
| SSH_TEST_HOST | No | 测试环境服务器的IP地址或主机名 | |
| SSH_TEST_PORT | No | 测试环境SSH端口号 | 22 |
| SSH_DEV_KEY_PATH | No | 开发环境SSH私钥文件路径 | |
| SSH_DEV_PASSWORD | No | 开发环境SSH登录密码 | |
| SSH_DEV_USERNAME | No | 开发环境SSH登录用户名 | |
| SSH_PROD_KEY_PATH | No | 生产环境SSH私钥文件路径 | |
| SSH_PROD_PASSWORD | No | 生产环境SSH登录密码 | |
| SSH_PROD_USERNAME | No | 生产环境SSH登录用户名 | |
| SSH_TEST_KEY_PATH | No | 测试环境SSH私钥文件路径 | |
| SSH_TEST_PASSWORD | No | 测试环境SSH登录密码 | |
| SSH_TEST_USERNAME | No | 测试环境SSH登录用户名 | |
| SSH_DEFAULT_CONNECTION | No | 设置默认连接名称(可选) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_ssh_connections | 列出所有可用的SSH连接配置
Returns:
Dict包含连接列表和默认连接:
- connections: 所有连接的详细信息
- default_connection: 默认连接名称
- total_count: 连接总数 |
| execute_command | 在远程服务器上执行shell命令
Args:
command: 要执行的shell命令
timeout: 命令执行超时时间(秒),默认30秒
max_output_size: 最大输出大小(字节),默认8192(8KB)。
设置为0表示不限制(注意可能导致内存问题)。
超过限制的输出会被截断。
connection_name: SSH连接名称,如果不指定则使用默认连接
Returns:
Dict包含执行结果:
- success: 是否成功执行
- exit_code: 命令退出码
- stdout: 标准输出
- stderr: 标准错误输出
- truncated: 输出是否被截断
- error: 错误信息(如果有)
- connection: 使用的连接名称 |
| check_ssh_connection | 检查SSH连接状态
Args:
connection_name: SSH连接名称,如果不指定则使用默认连接
Returns:
Dict包含连接状态信息:
- connected: 是否能够连接
- connection_name: 连接名称
- host: 目标主机
- port: 目标端口
- username: 用户名
- error: 错误信息(如果有) |
| execute_interactive_command | 执行交互式命令(可以发送输入数据)
Args:
command: 要执行的shell命令
input_data: 要发送给命令的输入数据
timeout: 命令执行超时时间(秒),默认30秒
max_output_size: 最大输出大小(字节),默认8192(8KB)。
设置为0表示不限制(注意可能导致内存问题)。
超过限制的输出会被截断。
connection_name: SSH连接名称,如果不指定则使用默认连接
Returns:
Dict包含执行结果(同execute_command) |
| upload_file | 使用SFTP协议上传文件到远程服务器
Args:
local_path: 本地文件路径
推荐使用绝对路径以避免路径解析问题
如果使用相对路径,将基于MCP服务器的工作目录进行解析
remote_path: 远程服务器文件路径(绝对路径)
timeout: 传输超时时间(秒),默认60秒
connection_name: SSH连接名称,如果不指定则使用默认连接
Returns:
Dict包含上传结果:
- success: 是否成功上传
- local_path: 本地文件路径(转换为绝对路径后)
- remote_path: 远程文件路径
- file_size: 文件大小(字节)
- connection: 使用的连接名称
- error: 错误信息(如果有) |
| download_file | 使用SFTP协议从远程服务器下载文件到本地
Args:
remote_path: 远程服务器文件路径(绝对路径)
local_path: 本地文件保存路径
推荐使用绝对路径以避免路径解析问题
如果使用相对路径,将基于MCP服务器的工作目录进行解析
timeout: 传输超时时间(秒),默认60秒
connection_name: SSH连接名称,如果不指定则使用默认连接
Returns:
Dict包含下载结果:
- success: 是否成功下载
- remote_path: 远程文件路径
- local_path: 本地文件路径(转换为绝对路径后)
- file_size: 文件大小(字节)
- connection: 使用的连接名称
- error: 错误信息(如果有) |
| list_directory | 获取远程目录的结构化文件列表
Args:
remote_path: 远程目录路径,默认为当前目录 "."
timeout: 操作超时时间(秒),默认30秒
connection_name: SSH连接名称,如果不指定则使用默认连接
Returns:
Dict包含目录列表结果:
- success: 是否成功获取
- path: 目录路径
- files: 文件列表,每个文件包含:
- name: 文件名
- type: 类型 (file/directory/symlink/other)
- size: 文件大小(字节,仅文件类型)
- permissions: 权限字符串(如 "rwxr-xr-x")
- modified_time: 修改时间(Unix时间戳)
- owner_uid: 所有者UID
- group_gid: 组GID
- total_count: 文件总数
- connection: 使用的连接名称
- error: 错误信息(如果有) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |