systemd-coredump MCP 服务器
用于与 systemd-coredump 功能交互的模型上下文协议 (MCP) 服务器。这使得支持 MCP 的应用程序能够访问、管理和分析系统核心转储。
特征
- 列出系统中所有可用的 coredump
- 获取有关特定核心转储的详细信息
- 将 coredump 文件提取到指定位置
- 从系统中删除核心转储
先决条件
- Node.js 18+ 和 npm
- 必须在系统上安装并配置 systemd-coredump
coredumpctl
命令行实用程序必须可用
安装
来自 npm(推荐)
全局安装
npm install -g @taskjp/server-systemd-coredump
本地安装
npm install @taskjp/server-systemd-coredump
来自源
- 克隆存储库或下载源代码
- 安装依赖项:
cd systemd-coredump-server
npm install
- 构建服务器:
配置
将服务器添加到您的 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": []
}
用法
可用工具
该服务器提供以下工具:
- list_coredumps :列出系统中所有可用的 coredump
{
"name": "list_coredumps"
}
- get_coredump_info :获取有关特定 coredump 的详细信息
{
"name": "get_coredump_info",
"arguments": {
"id": "2023-04-20 12:34:56-12345"
}
}
- extract_coredump :将核心转储提取到文件
{
"name": "extract_coredump",
"arguments": {
"id": "2023-04-20 12:34:56-12345",
"outputPath": "/path/to/output/core.dump"
}
}
- remove_coredump :从系统中删除核心转储
{
"name": "remove_coredump",
"arguments": {
"id": "2023-04-20 12:34:56-12345"
}
}
- get_coredump_config :获取系统当前的核心转储配置
{
"name": "get_coredump_config"
}
此工具返回有关当前核心转储配置的信息,包括:- 是否启用核心转储
- 当前的核心模式
- 核心尺寸限制
- systemd 是否正在处理核心转储
- set_coredump_enabled :启用或禁用核心转储生成
{
"name": "set_coredump_enabled",
"arguments": {
"enabled": true
}
}
将enabled
设置为true
将启用核心转储,设置为false
将禁用核心转储。注意:这将更改当前 shell 的 ulimit 设置。要进行永久性的系统级更改,需要 root 权限并修改系统配置文件。 - get_stacktrace :使用 GDB 从 coredump 获取堆栈跟踪
{
"name": "get_stacktrace",
"arguments": {
"id": "2023-04-20 12:34:56-12345"
}
}
此工具使用 GDB 从核心转储中提取格式化的堆栈跟踪信息。注意:需要在系统上安装 GDB 调试器。
可用资源
服务器公开两种类型的资源:
- 核心转储信息
- URI 格式:
coredump:///<id>
- 返回包含详细核心转储信息的 JSON
- 堆栈跟踪
- URI 格式:
stacktrace:///<id>
- 从核心转储返回格式化的堆栈跟踪
其中<id>
是核心转储的唯一标识符,格式为: <timestamp>-<pid>
。
例如:
coredump:///2023-04-20 12:34:56-12345
stacktrace:///2023-04-20 12:34:56-12345
关于权限的说明
某些操作可能需要提升权限,尤其是在提取或删除核心转储时。请确保运行 MCP 服务器的用户拥有访问系统核心转储的相应权限。
执照
麻省理工学院