一个用于只读Linux系统管理、诊断和故障排除的模型上下文协议(MCP)服务器,适用于基于RHEL的系统。
需要Python 3.10或更高版本。
pip安装创建并激活虚拟环境,然后使用pip进行安装:
pip install linux-mcp-server
或者安装在Python用户目录下
pip install --user linux-mcp-server
uv安装使用uv进行安装
uv tool install linux-mcp-server
更多详细信息,请参阅完整的安装指南。
由于MCP服务器使用SSH连接到远程主机,因此SSH密钥需要在容器内可用。如果SSH密钥是加密的,则需要提供密码短语来解密密钥。
关键环境变量:
LINUX_MCP_ALLOWED_LOG_PATHS - 可以访问的日志文件的逗号分隔列表LINUX_MCP_LOG_LEVEL - 日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)LINUX_MCP_SSH_KEY_PATH - 远程执行用的SSH私钥路径LINUX_MCP_USER - 用于SSH连接的用户名更多详细信息,请参阅环境变量。
对于以下示例配置,请确保提供真实的SSH密钥和日志文件路径。
[!NOTE] 如果配置了
ssh-agent,则会自动使用加载到会话中的任何密钥。
[!NOTE] 当使用Docker时
- SSH密钥必须由UID 1001拥有
- 必须提前创建日志目录,并由1001拥有
- 移除
--userns参数
这是一个设置容器主机上的文件示例,以便它们可以在运行的容器中访问。
ORIGINAL_UMASK=$(umask)
umask 0002
mkdir -p ~/.local/share/linux-mcp-server/logs
sudo chown -R 1001 .local/share/linux-mcp-server/logs
cp ~/.ssh/id_ed25519 ~/.local/share/linux-mcp-server/
sudo chown 1001 ~/.local/share/linux-mcp-server/id_ed25519
umask ${ORIGINAL_UMASK}
{
"mcpServers": {
"Linux Tools": {
"command": "podman",
"args": [
"run",
"--rm",
"--interactive",
"--userns", "keep-id:uid=1001,gid=0",
"-e", "LINUX_MCP_KEY_PASSPHRASE",
"-e", "LINUX_MCP_USER",
"-v", "/home/tljones/.ssh/id_ed25519:/var/lib/mcp/.ssh/id_ed25519:ro,Z",
"-v", "/home/tljones/.local/share/linux-mcp-server/logs:/var/lib/mcp/.local/share/linux-mcp-server/logs:rw,Z",
"quay.io/redhat-services-prod/rhel-lightspeed-tenant/linux-mcp-server:latest"
],
"env": {
"LINUX_MCP_KEY_PASSPHRASE": "<secret>",
"LINUX_MCP_USER": "tljones"
}
}
}
}
</details>
<details>
<summary>本地</summary>
{
"mcpServers": {
"Linux Tools": {
"command": "[venv]/bin/linux-mcp-server",
}
}
}
</details>
extensions:
linux-tools:
enabled: true
type: stdio
name: linux-tools
description: Linux tools
cmd: podman
args:
- run
- --rm
- --interactive
--userns,
"keep-id:uid=1001,gid=0",
- -e
- LINUX_MCP_KEY_PASSPHRASE
- -e
- LINUX_MCP_USER
- -v
- /home/tljones/.ssh/id_ed25519:/var/lib/mcp/.ssh/id_ed25519:ro
- -v
- /home/tljones/.local/share/linux-mcp-server/logs:/var/lib/mcp/.local/share/linux-mcp-server/logs:rw
- quay.io/redhat-services-prod/rhel-lightspeed-tenant/linux-mcp-server:latest
envs: {}
env_keys:
- LINUX_MCP_KEY_PASSPHRASE
- LINUX_MCP_USER
timeout: 30
bundled: null
available_tools: []
</details>
<details>
<summary>本地</summary>
extensions:
linux-tools:
enabled: true
type: stdio
name: linux-tools
description: Linux tools
cmd: [venv]/bin/linux-mcp-server
envs: {}
env_keys:
- LINUX_MCP_KEY_PASSPHRASE
- LINUX_MCP_USER
timeout: 30
bundled: null
available_tools: []
</details>
所有服务器操作都以人类可读和JSON格式记录,并具有自动每日轮换和可配置保留期。日志存储在~/.local/share/linux-mcp-server/logs/。
所有工具都支持一个可选的host参数,用于通过SSH进行远程执行:
~/.ssh/发现SSH密钥,或使用LINUX_MCP_SSH_KEY_PATH要求:
pip安装从虚拟环境中运行:
[path to virtual environment]/bin/linux-mcp-server
或者从Python用户目录运行:
~/.local/bin/linux-mcp-server
uv安装uv tool run linux-mcp-server
有关详细使用说明、可用工具和示例故障排除会话,请参阅使用。
有关完整的Claude Desktop集成说明,包括特定平台的配置文件位置和替代配置,请参阅Claude Desktop集成。
get_system_information - 操作系统版本、内核、主机名、运行时间get_cpu_information - CPU详情和负载平均值get_memory_information - 内存使用情况和交换分区详情get_disk_usage - 文件系统使用情况和挂载点get_hardware_information - 硬件详情(CPU架构、PCI/USB设备、内存硬件)list_services - 列出所有systemd服务及其状态get_service_status - 特定服务的详细状态get_service_logs - 特定服务的最近日志list_processes - 正在运行的进程及其CPU/内存使用情况get_process_info - 特定进程的详细信息get_journal_logs - 使用过滤器查询systemd日志get_audit_logs - 读取审计日志(如果有)read_log_file - 读取特定日志文件(受白名单控制)get_network_interfaces - 网络接口信息get_network_connections - 活动网络连接get_listening_ports - 系统上监听的端口list_block_devices - 块设备和分区list_directories - 在指定路径下列出目录,带有各种排序选项graph TB
Client["客户端层<br/>MCP客户端(例如Claude Desktop)"]
subgraph Server["MCP服务器"]
FastMCP[FastMCP服务器]
subgraph Tools["工具类别"]
direction LR
subgraph Row1[" "]
SystemInfo[系统信息]
Services[服务]
Processes[进程]
end
subgraph Row2[" "]
Logs[日志及审计]
Network[网络]
Storage[存储]
end
end
Executor[SSH执行器]
Logger[审计日志]
end
subgraph Targets["执行目标"]
direction LR
Local[本地系统]
Remote[远程主机<br/>SSH]
end
Client -->|MCP协议| FastMCP
FastMCP --> Tools
Tools --> Executor
Executor --> Targets
FastMCP -.-> Logger
Executor -.-> Logger
style Client fill:#4a9eff,stroke:#2563eb,color:#fff
style FastMCP fill:#f59e0b,stroke:#d97706,color:#fff
style SystemInfo fill:#64748b,stroke:#475569,color:#fff
style Services fill:#64748b,stroke:#475569,color:#fff
style Processes fill:#64748b,stroke:#475569,color:#fff
style Logs fill:#64748b,stroke:#475569,color:#fff
style Network fill:#64748b,stroke:#475569,color:#fff
style Storage fill:#64748b,stroke:#475569,color:#fff
style Executor fill:#10b981,stroke:#059669,color:#fff
style Logger fill:#8b5cf6,stroke:#7c3aed,color:#fff
style Local fill:#eab308,stroke:#ca8a04,color:#fff
style Remote fill:#eab308,stroke:#ca8a04,color:#fff
style Row1 fill:none,stroke:none
style Row2 fill:none,stroke:none