通过MCP调用SysOM诊断的配置方法

更新时间:
复制为 MD 格式

SysOM MCP是一套基于 Model Context Protocol(MCP)的系统诊断工具集。它将多个 SysOM 诊断服务聚合到统一的 MCP Server 中,对外提供标准 MCP 调用接口,使你可以直接运行诊断服务,或接入 AI 智能助手(如 Qwen Code)用自然语言完成系统诊断、性能分析与问题排查。

核心能力一览

诊断项

诊断名称

诊断介绍

内存

内存全景分析

内存全景分析功能适用于内存占用较高但无法明确识别具体内存占用情况的场景。

Java内存诊断

通过融合应用层(JVM)与操作系统层的内存视图,帮助用户快速定位容器化 Java 应用中内存使用不符合预期和 OOMKilled 的根本原因。

OOM诊断

通过OOM(Out Of Memory)内存诊断功能,对操作系统发生OOM的原因进行分析和界定

IO

IO流量分析

IO流量分析主要分析系统中IO流量的归属,通常用于解决IO Burst问题。

IO一键诊断

IO一键诊断专注于高频出现的IO高延迟、IO BurstIO Wait等问题。该功能支持对各种IO问题类型的识别,并调用相应的子工具对IO数据进行分析,从而提供结论和建议。帮助用户在实际使用场景中有效分析和解决IO相关问题。

网络

网络丢包诊断

操作系统内核网络丢包是指在数据包通过网络传输过程中,通过丢包诊断来分析在操作系统内核层面发生的丢失现象并提出相应的解决方案。

网络抖动诊断

帮助您在ECS实例遇到网络抖动问题时,进行分析并确定抖动的具体原因。

调度

调度抖动诊断

调度抖动诊断功能旨在分析CPU长时间不进行任务切换导致用户态业务进程长期得不到调度引发的问题(例如内存回收等场景)。

系统负载诊断

系统负载诊断的目的是分析系统在一分钟内的平均负载(load1指标)异常原因及其详细信息,并提供相应的处理建议。

宕机

宕机诊断

通过宕机生成的系统日志和转储文件,分析宕机原因

操作步骤

环境要求

  • Python 3.11+

  • uv 包管理工具

若需使用 Qwen Code,需要配置Node.js + npm。

安装与依赖准备

git clone https://github.com/alibaba/sysom\_mcp.git # 克隆项目
cd sysom_mcp
curl -LsSf https://astral.sh/uv/install.sh | sh  # 安装 uv
uv sync                                          # 安装依赖

配置认证信息

在项目根目录创建 .env 文件(默认 AccessKey 模式):

type='access_key'
ACCESS_KEY_ID=your_access_key_id
ACCESS_KEY_SECRET=your_access_key_secret
如需 STS、RAM Role ARN 等其他认证方式,请参考项目内 ENV_CONFIG.md

启动 SysOM MCP Server

SysOM MCP 支持两种运行模式:stdioSSE

  • stdio 模式(MCP 标准:JSON-RPC over stdio)

    适用于“由 MCP Client 拉起并通过标准输入输出通信”的场景(例如后面 AI 助手接入时就会用它):

    uv run python sysom_main_mcp.py --stdio
  • SSE 模式(HTTP/SSE 服务)

    适用于希望把服务作为网络端点暴露出来的场景:

    uv run python sysom_main_mcp.py --sse --host 0.0.0.0 --port 7140

注意事项

密钥安全

MCP Server在运行时会使用AccessKey调用阿里云OpenAPI,但不会以任何形式存储您AccessKey,也不会将其用于设计功能之外的任何其他用途。

访问控制

  • 当您选择通过 SSE(Server-Sent Events)协议访问 MCP Server 时,您必须自行负责该服务接入点的访问控制和安全防护。

  • 强烈建议将 MCP Server 部署在内部网络或授信环境中(例如您的私有VPC内),避免直接暴露于公共互联网。

  • 切勿在没有任何身份验证或访问控制机制的情况下,将配置了 AccessKey 的 MCP Server SSE 端点暴露在公共互联网上,这会带来极高的安全风险。

通过 AI 智能助手接入 SysOM MCP

以 Qwen Code 为例,让 AI 助手通过 MCP 协议调用 SysOM MCP 提供的诊断工具。可实现使用自然语言描述问题后,AI 决定调用哪些工具、如何组合输出诊断结论。

  1. 安装 Qwen Code:确保本机有 Node.js + npm,然后执行以下命令进行安装。

    # 可选:配置 npm 镜像源加速
    npm config set registry https://registry.npmmirror.com
    
    # 安装 Qwen Code
    npm install -g @qwen-code/qwen-code@latest
  2. 参考阿里云百炼文档开通服务并获取API Key

  3. 配置 Qwen Code MCP Server,编辑 Qwen Code 配置文件(通常位于 ~/.qwen/settings.json),加入 SysOM MCP 作为 MCP Server:

    {
      "mcpServers": {
        "sysom_mcp": {
          "command": "uv",
          "args": ["run", "python", "sysom_main_mcp.py", "--stdio"],
          "env": {
            "ACCESS_KEY_ID": "your_access_key_id",
            "ACCESS_KEY_SECRET": "your_access_key_secret",
            "DASHSCOPE_API_KEY": "your_dashscope_api_key"
          },
          "cwd": "<项目目录>",
          "timeout": 30000,
          "trust": false
        }
      }
    }
    

    配置要点:

    • command/args:通过 uv run ... --stdio 方式让 Qwen Code 自动拉起 SysOM MCP(stdio 通信)

    • cwd:必须替换为 sysom_mcp 的实际目录

    • env:填入真实的密钥环境变量

    • trust=false:首次使用时需要人工确认信任该 MCP Server

    • timeout:默认 30 秒,可按实际诊断耗时调整