MartinDai/linux-mcp-server
If you are the rightful owner of linux-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The linux-mcp-server is an MCP Server implemented using the Spring AI framework, designed to execute shell commands on specified Linux systems, both locally and remotely via SSH.
Linux MCP Server
基于 Spring Boot 和 Spring AI 框架实现的 MCP Server,支持在本地或远程 Linux 主机上执行 shell 命令。该服务器实现了 Model Context Protocol (MCP),可以与支持 MCP 的 AI 助手集成,提供安全的 shell 命令执行能力。
功能特性
- 本地命令执行:支持在本地 Linux 系统上执行 shell 命令
- 远程 SSH 执行:通过 SSH 连接到远程 Linux 主机执行命令
- 连接池管理:自动管理 SSH 连接,支持连接复用和自动清理
- JSON 配置:简单的 JSON 格式主机配置文件
- Spring Boot 集成:基于 Spring Boot 框架,易于部署和扩展
- MCP 协议支持:完全兼容 Model Context Protocol 标准
项目结构
src/
├── main/
│ ├── java/com/doodl6/mcp/linux/
│ │ ├── LinuxMcpServerApplication.java # 主启动类
│ │ ├── config/
│ │ │ └── ToolConfig.java # 工具配置
│ │ └── service/
│ │ ├── ShellService.java # Shell 服务(本地执行)
│ │ └── RemoteShellService.java # 远程 Shell 服务(SSH 执行)
│ └── resources/
│ └── hosts.json # 主机配置文件
配置说明
主机配置(hosts.json)
在 src/main/resources/hosts.json
文件中配置远程主机信息:
[
{
"ip": "192.168.1.100",
"username": "root",
"password": "your_password"
},
{
"ip": "10.0.0.50",
"username": "admin",
"password": "admin_password"
}
]
配置字段说明:
ip
:远程主机 IP 地址username
:SSH 登录用户名password
:SSH 登录密码
使用说明
环境要求
- Java 17 或更高版本
- Maven 3.6+ 或 Gradle 7.0+
- Linux/macOS/Windows(开发环境)
- 目标 Linux 主机需要开启 SSH 服务
启动服务
-
克隆项目
git clone <repository-url> cd linux-mcp-server
-
配置主机信息 编辑
src/main/resources/hosts.json
文件,添加你的主机配置 -
编译运行
mvn spring-boot:run
或
mvn clean package java -jar target/linux-mcp-server-0.0.1-SNAPSHOT.jar
MCP 工具
服务通过 MCP 协议暴露一个统一的 shell 执行工具,AI 助手可以通过 MCP 客户端调用:
Shell 执行工具
- 工具名称:
executeShell
- 描述:在本地或远程 Linux 主机上执行 shell 命令
- 参数:
machineIp
(可选):目标主机 IP 地址- 如果为空、
localhost
或127.0.0.1
,则在本地执行 - 如果为其他 IP 地址,则通过 SSH 远程执行(需在 hosts.json 中配置)
- 如果为空、
path
(可选):执行命令的工作目录shell
:要执行的 shell 命令
工具调用方式
该工具通过 MCP 协议供 AI 助手调用,不是传统的 REST API。AI 助手会根据用户需求自动选择合适的参数调用此工具。例如:
- 本地执行:当用户询问本地系统信息时,AI 助手会调用工具并传入
localhost
或空的machineIp
- 远程执行:当用户指定某个 IP 地址的主机时,AI 助手会传入对应的
machineIp
参数
与 AI 助手集成
该 MCP Server 可以与支持 MCP 协议的 AI 助手集成,如 Claude Desktop 等。配置方式请参考对应 AI 助手的 MCP 集成文档。
安全注意事项
- 请妥善保管 hosts.json 配置文件,避免密码泄露
- 建议在生产环境中使用 SSH 密钥认证替代密码认证
- 限制 SSH 用户权限,避免使用 root 用户
- 在防火墙中限制 SSH 访问来源
开发
技术栈
- Spring Boot 3.4+
- Spring AI
- SSHJ(SSH 客户端库)
- Caffeine(缓存库)
- Jackson(JSON 处理)
贡献
欢迎提交 Issue 和 Pull Request 来完善项目功能。