返回市场
mcp-系统d-核心转储

mcp-系统d-核心转储

作者:signal-slot2 星标更新:2025-03-07

项目介绍

systemd-coredump MCP 服务器

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

npm 版本 许可证: MIT

功能

  • 列出系统中所有可用的核心转储
  • 获取特定核心转储的详细信息
  • 将核心转储文件提取到指定位置
  • 从系统中删除核心转储

前提条件

  • 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. list_coredumps: 列出系统中所有可用的核心转储

    {
      "name": "list_coredumps"
    }
    
  2. get_coredump_info: 获取特定核心转储的详细信息

    {
      "name": "get_coredump_info",
      "arguments": {
        "id": "2023-04-20 12:34:56-12345"
      }
    }
    
  3. extract_coredump: 将核心转储提取到文件

    {
      "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_coredump_config: 获取系统的当前核心转储配置

    {
      "name": "get_coredump_config"
    }
    

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

    • 是否启用了核心转储
    • 当前的核心模式
    • 核心大小限制
    • systemd 是否处理核心转储
  6. set_coredump_enabled: 启用或禁用核心转储生成

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

    enabled 设置为 true 将启用核心转储,而 false 将禁用它们。 注意:这会更改当前 shell 的 ulimit 设置。对于永久性的系统范围更改,需要 root 权限并修改系统配置文件。

  7. get_stacktrace: 使用 GDB 从核心转储获取堆栈跟踪

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

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

可用资源

服务器暴露了两种类型的资源:

  1. 核心转储信息

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

    • URI 格式: stacktrace:///<id>
    • 返回从核心转储中提取的格式化堆栈跟踪

其中 <id> 是核心转储的唯一标识符,格式为:<时间戳>-<进程ID>

例如:

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

关于权限的注意事项

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

许可证

MIT