mcpField
I
iterminal

iterminal

本地服务
github.com/iTophua云与基础设施41 天前更新

关于 iterminal

iTerminal 是面向开发者和运维人员的 SSH 连接管理桌面应用,可管理多台服务器并执行终端与文件操作。内置 MCP 服务可让 AI 工具控制 SSH 连接,且操作会同步显示在终端。

主要功能

  1. 01SSH 连接分组与状态管理
  2. 02多会话终端及分屏
  3. 03SFTP 文件浏览与传输
  4. 04实时系统监控和进程管理
  5. 05Docker 容器与镜像管理
  6. 06加密保存连接信息

适用场景

  1. 01管理并连接多台远程服务器
  2. 02通过 SFTP 上传、下载和编辑文件
  3. 03查看服务器资源并处理进程
  4. 04让 AI 工具执行 SSH 命令和文件操作

MCP 相关

内置 MCP 服务,通过 HTTP API 向 AI 工具提供 SSH 命令执行、文件操作、传输和系统监控能力。服务随应用分发,并使用稳定启动器支持应用更新。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"itophua-iterminal": {
"command": "npx",
"args": [
"-y",
"iterminal-mcp-server"
]
}
}
}
启动命令npx -y iterminal-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmiterminal-mcp-server2.1.0

工具

27

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

来自项目 README

iTerminal - SSH 连接管理器

一款基于 Tauri 2 + React 构建的现代化 SSH 连接管理工具,专注于提供高效的 SSH 连接管理和终端操作体验。

项目介绍

背景

iTerminal 是一款类似于 XTerminal 的 SSH 连接管理工具,旨在帮助开发者和运维人员更便捷地管理多台服务器。

技术栈
技术版本说明
Tauri2.x跨平台桌面应用框架
React19.x前端 UI 框架
TypeScript5.x类型安全的 JavaScript
Vite7.x下一代前端构建工具
Ant Design6.x企业级 UI 组件库
xterm.js6.x终端模拟器
Zustand5.x轻量级状态管理
Rust1.75+后端 SSH 实现
russh0.50Rust SSH 客户端库
russh-sftp2.1Rust SFTP 客户端库
核心特性
  • 🚀 轻量高效 - 基于 Tauri,内存占用低,启动速度快
  • 🔐 安全可靠 - AES-256-GCM 加密存储连接信息,支持 SSH 密钥认证,自动密码迁移
  • 🖥️ 多标签管理 - 支持同时打开多个 SSH 会话
  • 📐 终端分屏 - 支持水平/垂直分屏,嵌套分屏,可拖拽调整大小
  • 🔍 终端搜索 - 支持终端内容全文搜索
  • ⌨️ 快捷键系统 - 丰富的快捷键支持,可自定义
  • 📁 文件管理 - SFTP 文件浏览、上传下载、拖拽上传、文件搜索、压缩解压、文件预览/编辑(CodeMirror 6),面板跟随终端目录,权限不足时支持 sudo 提权上传
  • 📊 系统监控 - 实时 CPU、内存、磁盘监控面板,进程管理
  • 🤖 MCP 支持 - 内置 MCP 服务器(随 app 分发,Agent 自安装引导 + 自动更新),AI 执行的操作实时同步显示到终端
  • 🐳 Docker 管理 - 容器/镜像/日志/容器终端
  • ✨ AI 助手 - AI 对话(感知终端上下文)+ 智能体 Agent 自主诊断服务器
  • 🪟 多窗口支持 - 拖拽连接到边缘创建新窗口,完整终端功能复用
  • 📋 中文支持 - 完整的中文界面和右键菜单
  • 🌍 跨平台 - 支持 Windows、macOS、Linux
目标用户
  • 开发者
  • 系统运维工程师
  • DevOps 工程师
  • 需要管理多台服务器的技术人员

应用图片

连接管理 终端分屏 文件管理 系统监控

安装与打包

环境要求
通用要求
  • Node.js >= 18.x
  • Rust >= 1.75
  • npm 或 pnpm
Windows
macOS
  • Xcode Command Line Tools: xcode-select --install
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
开发环境搭建
# 1. 克隆项目
git clone <repository-url>
cd iTerminal

# 2. 安装依赖
npm install

# 3. 启动开发模式
npm run tauri dev
生产环境打包
# 构建并打包应用
npm run tauri build
打包输出

构建完成后,安装包位于 src-tauri/target/release/bundle/ 目录:

平台输出格式文件位置
Windows.msi / .exebundle/msi/ bundle/nsis/
macOS.dmg / .appbundle/dmg/ bundle/macos/
Linux.deb / .AppImagebundle/deb/ bundle/appimage/

功能介绍

1. 连接管理
1.1 连接列表
  • 卡片式展示所有 SSH 连接
  • 分组管理(自定义分组)
  • 标签分类
  • 实时显示连接状态(在线/离线)
  • 支持按名称、IP、标签搜索筛选
  • 连接排序、批量管理
1.2 连接操作
操作说明
新建连接创建新的 SSH 连接配置
编辑连接修改现有连接信息
删除连接删除单个连接
复制连接快速复制现有配置创建新连接
连接测试测试 SSH 连通性和认证
快速连接一键打开 SSH 终端
导入/导出JSON 格式批量导入导出连接
复制 IP一键复制服务器 IP 地址
1.3 连接状态
  • 在线 - 端口可达(绿色指示灯)
  • 离线 - 端口不可达(灰色指示灯)
  • 连接中 - 正在建立连接(蓝色指示灯)

💡 启动后自动检测所有连接状态,定期刷新。

1.4 连接配置

基本配置:

  • 连接名称
  • 分组
  • 标签
  • 主机名/IP 地址
  • 端口(默认 22)
  • 用户名

认证方式:

  • 密码认证
  • SSH 密钥认证(支持 OpenSSH 和 PEM 格式)
2. SSH 终端
2.1 多标签管理
  • 支持同时打开多个 SSH 会话
  • 连接级别标签页(每个连接可创建多个会话)
  • 标签页显示服务器名称/IP
  • 会话状态标识
2.2 终端分屏
  • 支持水平/垂直分屏
  • 可拖拽调整分屏大小
  • 每个分屏独立会话管理
  • 拖拽会话标签创建新分屏
2.3 终端功能
功能快捷键/操作
终端模拟完整的 xterm.js 终端
彩色输出支持 ANSI 颜色
复制工具栏按钮 / 右键菜单 / CmdOrCtrl+Shift+C
粘贴右键菜单 / CmdOrCtrl+Shift+V
全选右键菜单
搜索工具栏搜索按钮 / CmdOrCtrl+F
全屏工具栏全屏按钮
分屏CmdOrCtrl+D 水平 / CmdOrCtrl+Shift+D 垂直
新建会话CmdOrCtrl+T
关闭会话CmdOrCtrl+W
2.4 工具栏

悬浮工具栏提供快捷操作:

  • 📋 复制 - 复制选中的终端内容
  • 🔍 搜索 - 打开搜索栏,搜索终端内容
  • 🖥️ 全屏 - 窗口最大化并收起侧边栏
  • 📊 系统监控 - 打开实时监控面板
  • 📁 文件管理 - 打开 SFTP 文件管理面板
  • ➖ 收起 - 收起工具栏为小球形态
2.5 多窗口支持
  • 拖拽连接标签到窗口边缘创建新窗口
  • 新窗口保留完整终端功能
  • 终端会话自动恢复到新窗口
  • 窗口位置自动记忆
3. 文件管理
3.1 文件浏览
  • SFTP 协议远程文件浏览
  • 树形/列表双视图切换
  • 路径输入框快速跳转
  • 显示/隐藏隐藏文件
  • 文件大小显示
  • 拖拽上传到指定目录
3.2 文件操作
操作说明
新建文件创建空文件
新建文件夹创建目录
重命名修改文件/文件夹名称
删除删除文件或目录
修改权限chmod 权限设置
压缩远程 tar.gz 压缩
解压支持 tar.gz/zip/gz 等格式
文件搜索远程文件搜索
文件预览文本文件预览
文件编辑在线编辑远程文件
复制文件名复制选中文件名
复制路径复制完整路径
3.3 文件传输
  • 上传文件 - 支持多文件选择上传
  • 上传文件夹 - 整个文件夹上传
  • 拖拽上传 - 直接拖拽文件到面板上传
  • 下载文件 - 选择保存位置下载
  • 传输进度 - 实时显示传输进度
  • 暂停/恢复 - 支持传输暂停和恢复
4. 系统监控
4.1 监控面板

实时显示服务器状态,自动刷新:

系统信息:

  • 主机名
  • 操作系统
  • 内核版本
  • 运行时间

CPU 监控:

  • 总体使用率
  • 各核心使用率(可视化)
  • 核心数量
  • 负载均值

内存监控:

  • 内存使用率(可视化)
  • 已用/总量/可用
  • Swap 使用情况

磁盘监控:

  • 各挂载点使用率
  • 已用/总量/可用空间
  • 使用率百分比

进程管理:

  • 进程列表(按内存排序)
  • 进程终止
4.2 状态指示
  • 🟢 绿色 - 使用率 < 70%
  • 🟡 黄色 - 使用率 70% - 90%
  • 🔴 红色 - 使用率 > 90%
5. MCP 服务器

内置 MCP (Model Context Protocol) 服务器,支持 AI 助手集成:

  • MCP server 随 app 分发(不依赖 npm),在设置 → MCP 复制安装指令发给任意 AI 工具即可接入
  • 通过 HTTP API 控制 SSH 连接:命令执行、文件操作、传输、系统监控
  • 注册的是稳定启动器(~/.iterminal/bin/mcp-launcher.mjs),app 升级后 Agent 下次拉起会话自动使用新版,无需重新注册

项目结构

iTerminal/
├── src/                        # React 前端
│   ├── main.tsx                # 应用入口
│   ├── App.tsx                 # 路由 + 布局
│   ├── components/             # 公共组件
│   │   ├── Sidebar.tsx         # 侧边栏
│   │   ├── FileManagerPanel.tsx # 文件管理面板
│   │   ├── MonitorPanel.tsx    # 系统监控面板
│   │   ├── SettingsPanel.tsx   # 设置面板
│   │   └── fileManager/        # 文件管理子模块
│   ├── pages/                  # 页面组件
│   │   ├── Terminal.tsx        # 终端页面
│   │   ├── TerminalWindow.tsx  # 新窗口终端
│   │   ├── Connections.tsx     # 连接管理
│   │   └── Transfers.tsx       # 传输管理
│   ├── stores/                 # Zustand 状态管理
│   │   ├── terminalStore.ts    # 连接/会话状态
│   │   └── transferStore.ts    # 传输记录状态
│   ├── services/               # 服务层
│   │   ├── database.ts         # 数据库服务
│   │   └── sftp.ts             # SFTP 服务
│   ├── utils/                  # 工具函数
│   │   ├── paneUtils.ts        # 分屏工具
│   │   └── TerminalManager.ts  # 终端管理
│   └── styles/                 # 全局样式
│       └── global.css          # xterm.js 样式覆盖
├── src-tauri/                  # Rust 后端
│   ├── src/
│   │   ├── main.rs             # Tauri 入口
│   │   ├── lib.rs              # 模块声明
│   │   ├── db/                 # 数据库
│   │   │   ├── schema.sql      # 数据库结构
│   │   │   └── crypto.rs       # 加密模块
│   │   └── commands/           # Tauri 命令
│   │       ├── ssh.rs          # SSH 操作
│   │       ├── sftp.rs         # SFTP 文件传输
│   │       ├── db.rs           # 数据库操作
│   │       ├── api.rs          # HTTP API 服务器
│   │       └── window.rs       # 窗口管理
│   ├── Cargo.toml              # Rust 依赖
│   ├── tauri.conf.json         # Tauri 配置
│   └── capabilities/           # 权限配置
├── mcp/                        # MCP 服务器
│   └── src/index.ts            # MCP 工具定义
├── package.json                # npm 依赖
├── vite.config.ts              # Vite 配置
└── tsconfig.json               # TypeScript 配置

安全注意事项

风险项当前状态建议
密码存储AES-256-GCM 加密存储安全
主机密钥验证已跳过后续版本将支持 known_hosts
密钥认证已实现推荐使用密钥认证
会话超时无自动锁定手动断开不使用的连接

常见问题

Q: 无法连接服务器?
  1. 检查网络连通性
  2. 确认 SSH 服务已启动
  3. 验证用户名和密码/密钥
  4. 检查防火墙设置
Q: Windows 打包失败?
  1. 确保已安装 Visual Studio Build Tools
  2. 选择 "Desktop development with C++" 工作负载
  3. 安装 WebView2 Runtime
Q: macOS 提示无法打开?
  1. 系统偏好设置 → 安全性与隐私
  2. 点击「仍要打开」
  3. 或使用命令:xattr -cr iTerminal.app
Q: 终端显示乱码?
  1. 检查服务器 locale 设置
  2. 确保终端字体支持 UTF-8
  3. 尝试调整终端字体

开发计划

已完成功能
  • SSH 连接管理
  • 多会话终端
  • 终端搜索功能
  • SFTP 文件管理
  • 文件上传/下载
  • 拖拽上传
  • sudo 提权上传(权限不足时自动重试)
  • 系统监控面板
  • 远程文件压缩/解压
  • 密钥认证
  • 密码加密存储
  • 连接导入/导出
  • 断线自动重连
  • 快捷键系统
  • 分屏终端
  • 终端主题配置
  • 文件预览/编辑(CodeMirror 6)
  • 文件搜索
  • 传输暂停/恢复
  • MCP 服务器(Token 鉴权 + SSE 传输 + 日志体系)
  • 多窗口支持
  • Docker 管理(容器/镜像/日志/容器终端)
  • AI 助手(AI 对话 + 智能体 Agent)
  • 主题切换
  • 文件夹下载
  • 输入广播(多连接同时输入)
  • 命令片段库(Pro)
  • 端口转发(Pro)
计划功能
  • 断点续传
  • 进程管理增强
  • 多语言支持

贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。