Linux SSH MCP - WindTerm-like Terminal Emulator
🚀 WindTerm风格的终端模拟器,集成AI助手
一个功能类似WindTerm的终端模拟器,通过Model Context Protocol (MCP)与AI助手集成,提供多标签页SSH会话管理、交互式终端、会话持久化和脚本自动化功能。
核心功能
🖥️ 终端模拟器
- 多标签页管理: 类似浏览器的多标签页SSH会话管理
- 交互式终端: 真实的PTY模拟,支持完整的终端交互体验
- 终端协议支持: 支持ANSI/VT100/xterm-256color协议
- 实时输出流: 流式传输终端输出,支持增量更新
🤖 AI助手集成
- 自然语言控制: 通过AI助手使用自然语言控制终端操作
- 丰富的MCP工具: 提供完整的终端管理工具集
- 智能命令执行: AI助手可以理解并执行复杂的终端命令序列
💾 会话管理
- 会话持久化: 保存和恢复完整的终端工作区
- 自动断线重连: 支持断线重连和会话状态自动恢复
- 多工作区支持: 可以保存不同的服务器组合配置
⚡ 高级功能
- 脚本自动化: 支持脚本执行和自动化任务
- 性能监控: 实时连接状态和性能指标监控
- 安全设计: 多种认证方式,安全凭证管理
系统要求
- Python 3.9+
- Linux/macOS/Windows (支持跨平台PTY操作)
- SSH 服务器访问权限
快速开始
安装
# 从PyPI安装
pip install linux-ssh-mcp
# Claude Code配置
claude mcp add linux-ssh-mcp python -m linux_ssh_mcp.cli_v2
服务器配置
配置文件会自动创建在 ~/.ssh-mcp/servers.json,或手动创建:
{
"version": "1.0",
"servers": {
"server-01": {
"id": "server-01",
"host": "192.168.1.100",
"port": 22,
"username": "root",
"password": "your_password"
}
}
}
配置文件搜索路径 (按优先级)
SSH_MCP_CONFIG_PATH环境变量指定的路径~/.ssh-mcp/servers.json(用户主目录)- 平台特定配置目录:
- Windows:
%APPDATA%/ssh-mcp/servers.json - Linux/Mac:
~/.config/ssh-mcp/servers.json
- Windows:
- 当前工作目录
./servers.json - 项目根目录
servers.json(开发环境)
AI助手命令示例
终端会话管理
- "创建一个新的终端标签页连接到 web-server-01"
- "切换到名为 production 的终端标签页"
- "关闭 database-server 的终端会话"
- "调整当前终端窗口大小为 120x40"
交互式终端操作
- "在当前终端输入 'ls -la' 并回车"
- "在 web-server 终端中执行 'sudo systemctl status nginx'"
- "获取 database-server 终端的最新输出"
- "查看当前终端的命令历史"
多终端管理
- "在所有服务器上批量检查磁盘空间"
- "同时查看三个不同服务器的系统负载"
- "保存当前所有终端会话为 '日常巡检' 工作区"
- "恢复昨天的 '开发调试' 工作区"
命令行工具
启动 MCP 服务器
# 启动 MCP 服务器
linux-ssh-mcp server
# 或使用 Python 模块
python -m linux_ssh_mcp.mcp_server_v2
初始化配置
# 创建示例配置文件
linux-ssh-mcp init
测试连接
# 测试终端连接
linux-ssh-mcp test localhost username
# 指定端口和密码
linux-ssh-mcp test 192.168.1.100 admin --password your_password --port 22
调试模式
# 启用调试日志
linux-ssh-mcp server --debug
Python API
from linux_ssh_mcp import SSHManager, ServerConfig
# 创建管理器
ssh_manager = SSHManager(use_pooling=True)
# 添加服务器
config = ServerConfig(
id="web-server-01",
host="192.168.1.100",
port=22,
username="admin",
password="password",
timeout=30
)
ssh_manager.add_server(config)
# 执行命令
result = await ssh_manager.execute_command("web-server-01", "uptime")
print(f"输出: {result.stdout}")
安全特性
- 多种认证方式: 密码、SSH密钥
- 连接安全: SSL/TLS加密
- 访问控制: 支持IP白名单
- 审计日志: 完整的操作记录
性能特点
- 连接管理: <100ms建立连接(池化),<500ms(新建)
- 命令执行: 简单命令平均<1秒
- 批量操作: 支持并发执行
- 资源占用: 基础
50MB,每连接1MB
测试
# 运行测试套件
python -m pytest tests/
许可证
MIT License
支持
- 问题反馈: GitHub Issues
- 讨论: GitHub Discussions
Built with ❤️ for the Linux SSH management community
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
linux_ssh_mcp-2.1.0.tar.gz
(47.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linux_ssh_mcp-2.1.0.tar.gz.
File metadata
- Download URL: linux_ssh_mcp-2.1.0.tar.gz
- Upload date:
- Size: 47.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f53040aab16607e9010e682236c5bb4b4108ecd77329846db0b592a07be0f75d
|
|
| MD5 |
d10de93c7820c7fb0e44f9bd943aed07
|
|
| BLAKE2b-256 |
03d8e611c9ab52b89283331b766e495cb96f985608412f3d95c109ebed8a8853
|
File details
Details for the file linux_ssh_mcp-2.1.0-py3-none-any.whl.
File metadata
- Download URL: linux_ssh_mcp-2.1.0-py3-none-any.whl
- Upload date:
- Size: 48.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19496f22ebc08ac909b787c015150e22853928bacace720b6865288fe3ec7f00
|
|
| MD5 |
5277843289bf6893eddf5c3f4ad51bdc
|
|
| BLAKE2b-256 |
d6b05228b765edd88902ceb21f12d96dd5315ba1a34ef962652ab243fc0d78e2
|