项目简介

Linux系统诊断MCP服务器是一个功能强大的后端服务,专为通过大语言模型(LLM)客户端进行Linux系统管理、诊断和故障排除而设计。它遵循Model Context Protocol (MCP),允许LLM客户端以标准化的方式获取系统上下文信息并调用预定义的功能。所有操作均为只读,确保系统安全。

主要功能点

  • 系统信息概览: 获取操作系统版本、内核、主机名、启动时间、CPU和内存使用情况、磁盘占用等。
  • 服务状态管理: 列出所有systemd服务,查询特定服务的详细状态和日志。
  • 进程监控: 查看当前运行的进程列表、CPU和内存占用,获取特定进程的详细信息。
  • 日志与审计: 查询systemd日志(journalctl)、读取审计日志或白名单中的指定日志文件。
  • 网络诊断: 获取网络接口信息、活动网络连接以及监听端口。
  • 存储与磁盘分析: 列出块设备、分区,按大小、名称或修改日期排序查看目录。
  • 远程SSH执行: 支持通过SSH密钥认证在远程Linux主机上安全执行诊断命令。
  • 多主机会话: 在同一MCP会话中灵活切换并管理不同的本地或远程Linux主机。

安装步骤

  1. 推荐安装: 通过Python包管理器 'pip' 安装。
    pip install linux-mcp-server
  2. 或直接运行 (无需安装): 使用 'uvx' 工具直接运行。
    uvx linux-mcp-server

服务器配置 (LLM客户端使用)

您的LLM客户端需要以下JSON格式的配置来连接并使用Linux系统诊断MCP服务器。请根据您LLM客户端的配置界面填写相应信息。

{
  "name": "linux-diagnostics",
  "command": "linux-mcp-server",
  "args": [],
  "description": "用于Linux系统管理和诊断的MCP服务器"
}

重要环境变量配置: 在启动MCP服务器的Shell环境中,您可以设置以下环境变量以自定义其行为:

  • 'LINUX_MCP_ALLOWED_LOG_PATHS': 一个逗号分隔的日志文件路径列表,用于 'read_log_file' 工具,限制LLM客户端可读取的日志文件。例如:'/var/log/syslog,/var/log/auth.log'。
  • 'LINUX_MCP_SSH_KEY_PATH': SSH私钥文件的绝对路径,用于远程SSH连接。如果未设置,服务器将尝试在当前用户 '~/.ssh/' 目录下自动发现密钥(如 'id_ed25519', 'id_rsa')。
  • 'LINUX_MCP_LOG_LEVEL': 服务器的日志级别(例如 'INFO', 'DEBUG', 'WARNING', 'ERROR'),默认为 'INFO'。
  • 'LINUX_MCP_LOG_DIR': 服务器审计日志的存储目录,默认为 '~/.local/share/linux-mcp-server/logs/'。
  • 'LINUX_MCP_LOG_RETENTION_DAYS': 审计日志的保留天数,默认为10天。
  • 'LINUX_MCP_SEARCH_FOR_SSH_KEY': 设置为 'yes' 允许服务器在默认SSH目录中搜索密钥,默认为 'no'。

基本使用方法

  1. 启动服务器: 在您的终端中运行:
    linux-mcp-server
    服务器启动后,它将监听客户端连接。
  2. 连接LLM客户端: 根据您LLM客户端的说明,使用上述“服务器配置”信息进行连接。一旦连接成功,您的LLM客户端就可以通过调用服务器提供的工具来查询Linux系统信息、执行诊断任务或进行故障排除。例如,您可以让LLM客户端调用 'get_system_info' 来获取系统基本信息,或调用 'list_services' 来查看系统服务状态。对于远程操作,只需在工具调用时提供 'host' 和 'username' 参数即可。

信息

分类

开发者工具