你是否曾经希望AI能够直接在本地或远程服务器上执行系统命令,自动化运维任务?今天要介绍的开源项目终端MCP服务器,正是为了实现这个目标而设计的。它是一个MCP服务器,允许AI模型通过SSH在本地机器或远程主机上执行系统命令,支持持久会话和环境变量。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | 终端MCP服务器 |
| GitHub地址 | https://github.com/weidwonder/terminal-mcp-server |
| 项目描述 | 一个MCP服务器,允许AI模型通过SSH在本地机器或远程主机上执行系统命令,支持持久会话和环境变量。 |
| 作者 | weidwonder |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | TypeScript |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-04-23 |
一、项目介绍
终端MCP服务器是一个让AI能够执行系统命令的MCP工具。它支持本地命令执行和通过SSH远程执行,提供持久会话和环境变量功能。
这个服务器提供了一个核心工具:
execute_command:在本地或远程主机上执行命令
支持的特性包括:
- 本地命令执行
- 远程SSH命令执行
- 会话持久性(默认20分钟)
- 自定义环境变量
- stdio和SSE两种连接方式
二、核心优势
双模式执行
支持本地和远程命令执行。
会话持久性
同一会话在20分钟内重用相同的终端环境。
环境变量
为命令设置自定义环境变量。
灵活连接
支持stdio和SSE两种连接方式。
跨平台
支持Windows、macOS、Linux。
三、适用场景
自动化运维
让AI自动执行系统管理命令。
远程服务器管理
通过SSH管理远程服务器。
开发环境配置
AI可以自动配置开发环境。
批量任务执行
在多台服务器上批量执行命令。
四、安装教程
系统要求
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| Node.js | 运行环境 | [https://nodejs.org/] (版本要求:18.0 或以上) |
| SSH密钥 | 远程认证(可选) | ssh-keygen 生成 |
| MCP客户端 | 如Claude Desktop、Cline等 | 根据客户端官网下载 |
安装步骤
第一步:克隆项目并安装依赖
git clone https://github.com/weidwonder/terminal-mcp-server.git
cd terminal-mcp-server
npm install
npm run build第二步:启动服务器
stdio模式(默认):
npm startSSE模式:
npm run start:sseSSE模式自定义选项:
node build/index.js --sse --port 3000 --endpoint /mcp --host 0.0.0.0第三步:配置MCP客户端
对于Claude Desktop:
找到配置文件,添加:
{
"mcpServers": {
"terminal-mcp": {
"command": "node",
"args": ["/path/to/terminal-mcp-server/build/index.js"]
}
}
}SSE模式配置:
{
"mcpServers": {
"terminal-mcp-sse": {
"url": "http://localhost:8080/sse"
}
}
}第四步:通过Smithery安装(可选)
npx -y @smithery/cli install @weidwonder/terminal-mcp-server --client claude五、使用示例
示例1:本地命令执行
用户指令:“列出当前目录下的所有文件”
AI会调用execute_command工具:
{
"command": "ls -la",
"session": "my-local-session",
"env": {
"NODE_ENV": "development"
}
}示例2:远程命令执行
用户指令:“在远程服务器上查看系统状态”
{
"host": "example.com",
"username": "user",
"command": "uptime",
"session": "my-remote-session"
}示例3:持久会话
使用相同的session名称,多个命令共享同一个终端环境:
{
"command": "cd /var/log",
"session": "my-session"
}
{
"command": "pwd",
"session": "my-session" // 输出 /var/log
}示例4:环境变量
{
"command": "echo $MY_VAR",
"session": "my-session",
"env": {
"MY_VAR": "hello"
}
}六、配置选项
命令行选项
| 选项 | 描述 | 默认值 |
|---|---|---|
| --port, -p | 监听端口 | 8080 |
| --endpoint, -e | 端点路径 | /sse |
| --host, -h | 绑定的主机 | localhost |
SSE模式示例
# 自定义端口和端点
node build/index.js --sse --port 3000 --endpoint /mcp --host 0.0.0.0七、最佳实践
命令执行
- 运行命令前先确定系统类型(Mac、Linux等)
- 使用完整路径避免路径问题
- 用
&&连接需要保持环境的命令序列 - 长时间运行命令使用
nohup或screen/tmux
SSH连接
- 确保已设置基于SSH密钥的身份验证
- 检查密钥文件是否存在(默认路径:
~/.ssh/id_rsa) - 确保远程主机SSH服务正在运行
会话管理
- 使用session参数保持相关命令之间的环境
- 会话在20分钟无活动后自动关闭
八、常见问题
问题1:SSH连接失败
解决方案:确保已设置SSH密钥认证,检查远程主机SSH服务。
问题2:命令执行权限不足
解决方案:使用有足够权限的用户执行,或使用sudo。
问题3:会话在20分钟后失效
解决方案:会话超时是设计特性,需要时创建新会话。
问题4:Node.js版本要求
解决方案:需要Node.js 18或更高版本。
问题5:SSE模式连接失败
解决方案:检查端口是否正确,防火墙是否允许。
九、总结
终端MCP服务器是一个让AI能够执行系统命令的MCP工具,支持本地和远程执行,提供持久会话功能。
这个项目的最大价值在于:
- 双模式执行:本地和远程
- 会话持久性:保持终端环境
- 环境变量:自定义配置
- 灵活连接:stdio和SSE
- MIT许可证:可自由使用
如果你需要让AI执行系统命令或管理远程服务器,终端MCP服务器是一个非常实用的工具。
作为运维工程师,这个工具很实用。
希望未来能支持Windows远程管理。
已经加星,期待功能完善。
MIT协议开源,可以自由使用。
和直接使用SSH相比,这个更AI友好。