一个用于与 systemd-coredump 功能交互的模型上下文协议(MCP)服务器。这使得 MCP 能力的应用程序能够访问、管理和分析系统核心转储。
coredumpctl 命令行工具npm install -g @taskjp/server-systemd-coredump
npm install @taskjp/server-systemd-coredump
cd systemd-coredump-server
npm install
npm run build
将服务器添加到您的 MCP 设置配置文件中:
"systemd-coredump": {
"command": "systemd-coredump-server",
"args": [],
"disabled": false,
"autoApprove": []
}
"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: 列出系统中所有可用的核心转储
{
"name": "list_coredumps"
}
get_coredump_info: 获取特定核心转储的详细信息
{
"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"
}
此工具返回有关当前核心转储配置的信息,包括:
set_coredump_enabled: 启用或禁用核心转储生成
{
"name": "set_coredump_enabled",
"arguments": {
"enabled": true
}
}
将 enabled 设置为 true 将启用核心转储,而 false 将禁用它们。
注意:这会更改当前 shell 的 ulimit 设置。对于永久性的系统范围更改,需要 root 权限并修改系统配置文件。
get_stacktrace: 使用 GDB 从核心转储获取堆栈跟踪
{
"name": "get_stacktrace",
"arguments": {
"id": "2023-04-20 12:34:56-12345"
}
}
此工具使用 GDB 从核心转储中提取格式化的堆栈跟踪。 注意:需要在系统上安装 GDB 调试器。
服务器暴露了两种类型的资源:
核心转储信息
coredump:///<id>堆栈跟踪
stacktrace:///<id>其中 <id> 是核心转储的唯一标识符,格式为:<时间戳>-<进程ID>。
例如:
coredump:///2023-04-20 12:34:56-12345
stacktrace:///2023-04-20 12:34:56-12345
某些操作可能需要提升权限,特别是在提取或删除核心转储时。确保运行 MCP 服务器的用户具有访问系统核心转储的适当权限。
MIT