get_journal_entriesLABSCO SUMMARY
journalctl's useful filters, reachable from the conversation.
The filters are the point: unit, identifier, time window and a message match, all in one call, with 'since' and 'until' accepting phrases like '2 hours ago'. It reads the journal on the host it runs on, so it answers questions about that machine and no other.
What it is
A Python server over the systemd journal on a Linux host: filtered entry queries, plus resources that list the units and syslog identifiers the journal knows about.
What you get
- Journal entries filtered by time range, systemd unit, syslog identifier and case-insensitive message match, combined in one call
- Time bounds written in plain language — '2 hours ago', 'yesterday at 3pm'
- The last N minutes of logs in a single call
- Each entry returned with its timestamp, unit, identifier and message
- The units and syslog identifiers present in the journal, for all time or within a range
- Stdio, SSE or streamable-HTTP transport, picked at launch with
--transport
Requirements
A Linux host running systemd, and read access to the journal — add the account to the systemd-journal group if it is not root (usermod -aG systemd-journal $USER). Dependencies install with uv sync; the server starts as uv run server.py.
Setup effort
Build from source
USE CASES
Finding what broke in the last couple of hours
Ask for entries since '2 hours ago' whose message contains 'error', across every unit at once.
Following one service
Filter to a single systemd unit and a time window, and read the entries back with their timestamps.
Catching up on a box you just logged into
Pull the last few minutes of journal output without composing a filter first.
Working out which unit to look at
List the units and syslog identifiers the journal holds, optionally only within the window you care about.
2 tools
Listed in project docs. Your client may show a different list.
get_recent_logsBEFORE YOU INSTALL
What to know first
Tools you get
2 tools named in the project's documentation.
Requires
Python 3.12+
INSTALLATION
Connect your client
Server setup
git clone https://github.com/james116blue/journald-mcp-server
cd journald-mcp-server
uv syncRun as non-root: Give the user systemd-journal group access usermod -aG systemd-journal $USER
Add it to your MCP client as a local stdio server whose command is uv run server.py, started in the cloned folder — stdio is the default transport. The README publishes no client configuration block.