关于 Journald MCP Server
Journald MCP Server 让系统管理员通过 MCP 检查 systemd 日志,支持按时间、单元、标识符和消息筛选,并可解析自然语言日期范围。
主要功能
- 01列出单元和 syslog 标识符
- 02按时间范围筛选条目
- 03按单元或标识符筛选
- 04不区分大小写搜索消息
- 05解析自然语言日期
适用场景
- 01排查近期服务错误
- 02查看指定单元的日志
- 03搜索时间范围内的消息
MCP 相关
该服务提供用于查询单元、标识符和首条日志日期的资源,并提供获取筛选日志或近期日志的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Journald MCP 服务
一个用于访问 systemd 日志的 MCP 服务。
功能
- 列出日志中的 systemd 单元
- 列出日志中的 syslog 标识符
- 获取第一条日志条目的日期和时间
- 按日期时间范围(since/until)筛选日志条目
- 按 systemd 单元或 syslog 标识符筛选
- 按消息内容筛选(不区分大小写的子字符串匹配)
- 解析自然语言日期和时间(例如,“2 hours ago”“yesterday at 3pm”)
- 列出特定时间范围内的单元和标识符
安装
# Install dependencies
uv sync
用法
以非 root 用户身份运行:授予用户 systemd-journal 组访问权限 usermod -aG systemd-journal $USER
使用以下命令运行服务:
uv run server.py [OPTIONS]
CLI 选项
--transport:要使用的传输协议(stdio、sse或streamable-http)。默认值:stdio--port:HTTP 传输的监听端口(stdio传输时忽略)。默认值:3002--log-level:日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)。默认值:INFO
示例
-
使用 stdio 传输运行(默认,适用于通过 stdin/stdout 通信的 MCP 客户端):
python server.py -
使用 HTTP 传输并指定自定义端口运行:
python server.py --transport streamable-http --port 8080 -
使用 SSE 传输运行:
python server.py --transport sse --port 3000 -
使用调试日志运行:
python server.py --log-level DEBUG
MCP 集成
该服务提供以下 MCP 资源和工具:
资源
journal://units:列出日志中的唯一 systemd 单元(所有可访问时间范围)journal://syslog-identifiers:列出日志中的唯一 syslog 标识符(所有可访问时间范围)journal://first-entry-datetime:获取日志中第一条条目的日期和时间journal://units/{since}/{until}:列出指定时间范围内的唯一 systemd 单元journal://syslog-identifiers/{since}/{until}:列出指定时间范围内的唯一 syslog 标识符
工具
-
get_journal_entries:按日期和时间筛选日志条目- 参数:
since(可选)、until(可选)、unit(可选)、identifier(可选)、message_contains(可选)、limit(默认值:100) - 返回:包含时间戳、单元、标识符和消息的条目列表
- 示例:获取过去 2 小时内包含“error”的日志:
since="2 hours ago", message_contains="error"
- 参数:
-
get_recent_logs:获取过去 N 分钟内的最新日志- 参数:
minutes(默认值:60)、unit(可选)、limit(默认值:50) - 返回:格式化后的最新日志消息字符串
- 参数:
日期和时间输入格式
该服务通过 dateparser 库解析自然语言日期和时间。支持的格式包括:
- 相对时间:“2 hours ago”“yesterday at 3pm”“last week”“now”
- 绝对时间:“2024-01-15 14:30”“2024-01-15T14:30:00”
- 混合格式:“today at 9am”“tomorrow 3pm”
所有时间均按 UTC 解释,并以便于阅读的格式返回:“YYYY-MM-DD HH:MM:SS UTC”
开发
本项目使用:
- Python 3.12+
- MCP FastMCP
- systemd-python 访问日志
- Click 提供 CLI 界面
- dateparser 解析自然语言日期和时间
项目结构
journald-mcp-server/
├── journald_mcp_server/ # Main package
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ └── datetime_utils.py # Datetime parsing and formatting utilities
├── tests/ # Test suite
│ ├── __init__.py
│ └── test_server.py
├── server.py # Entry point wrapper
├── pyproject.toml
└── README.md
运行测试
python -m pytest tests/
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。