核心转储管理服务

一个用于与systemd-coredump功能交互的MCP服务器,支持访问、管理和分析系统核心转储。

  • by signal-slot
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 signal-slot/mcp-systemd-coredump

使用说明

systemd核心转储MCP服务器

用于与systemd核心转储功能交互的模型上下文协议(MCP)服务器。这使得支持MCP的应用程序能够访问、管理和分析系统核心转储。

特性

  • 列出系统中所有可用的核心转储
  • 获取有关特定岩心堆的详细信息
  • 将coredump文件解压缩到指定位置
  • 从系统中删除堆芯

先决条件

  • Node.js 18+和npm
  • 必须在系统上安装和配置systemd coredump
  • coredumpctl 命令行实用程序必须可用

安装

来自npm(推荐)

全球安装

npm install -g @taskjp/server-systemd-coredump

本地安装

npm install @taskjp/server-systemd-coredump

来源

  1. 克隆存储库或下载源代码
  2. 安装依赖项:
cd systemd-coredump-server
npm install
  1. 构建服务器:
npm run build

配置

将服务器添加到MCP设置配置文件中:

如果从npm全局安装:

"systemd-coredump": {
  "command": "systemd-coredump-server",
  "args": [],
  "disabled": false,
  "autoApprove": []
}

如果从npm本地安装:

"systemd-coredump": {
  "command": "node",
  "args": ["node_modules/@taskjp/server-systemd-coredump/build/index.js"],
  "disabled": false,
  "autoApprove": []
}

如果从源代码安装:

"systemd-coredump": {
  "command": "node",
  "args": ["/path/to/systemd-coredump-server/build/index.js"],
  "disabled": false,
  "autoApprove": []
}

用法

可用工具

服务器提供以下工具:

  1. 列表_缩减:列出系统中所有可用的核心转储

    {
      "name": "list_coredumps"
    }
    
  2. get_coredum_info:获取特定堆芯的详细信息

    {
      "name": "get_coredump_info",
      "arguments": {
        "id": "2023-04-20 12:34:56-12345"
      }
    }
    
  3. 抽出式压缩机:将核心转储提取到文件中

    {
      "name": "extract_coredump",
      "arguments": {
        "id": "2023-04-20 12:34:56-12345",
        "outputPath": "/path/to/output/core.dump"
      }
    }
    
  4. remove_coredump:从系统中删除堆芯

    {
      "name": "remove_coredump",
      "arguments": {
        "id": "2023-04-20 12:34:56-12345"
      }
    }
    
  5. get_redump_config:获取系统的当前堆芯转储配置

    {
      "name": "get_coredump_config"
    }
    

    此工具返回有关当前堆芯转储配置的信息,包括:

    • 是否启用堆芯转储
    • 当前的核心模式
    • 核心尺寸限制
    • systemd是否正在处理堆芯转储
  6. set_coredum_enabled已启用:启用或禁用核心转储生成

    {
      "name": "set_coredump_enabled",
      "arguments": {
        "enabled": true
      }
    }
    

    设置 enabled 向 true 将启用堆芯转储,同时 false 将禁用它们。 注意:这将更改当前shell的ulimit设置。适用于全系统永久性 需要更改、root权限和修改系统配置文件。

  7. get_stacktrace:使用GDB从coredump获取堆栈跟踪

    {
      "name": "get_stacktrace",
      "arguments": {
        "id": "2023-04-20 12:34:56-12345"
      }
    }
    

    此工具使用GDB从coredump中提取格式化的堆栈跟踪。 注意:需要在系统上安装GDB调试器。

可用资源

服务器公开了两种类型的资源:

  1. 核心转储信息

    • URI格式: coredump:///<id>
    • 返回包含详细核心转储信息的JSON
  2. 堆栈跟踪

    • URI格式: stacktrace:///<id>
    • 从coredump返回格式化的堆栈跟踪

哪里 <id> 是核心转储的唯一标识符,格式为: <timestamp>-<pid>.

例如:

coredump:///2023-04-20 12:34:56-12345
stacktrace:///2023-04-20 12:34:56-12345

关于权限的说明

某些操作可能需要提升权限,特别是在提取或删除核心转储时。确保运行MCP服务器的用户具有访问系统核心转储的适当权限。

许可证

麻省理工学院