The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Journald MCP Server listing page.
An MCP server for accessing systemd journal logs.
Run as non-root: Give the user systemd-journal group access usermod -aG systemd-journal $USER
Run the server with:
--transport: Transport protocol to use (stdio, sse, or streamable-http). Default: stdio--port: Port to listen on for HTTP transport (ignored for stdio transport). Default: 3002--log-level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL). Default: INFORun with stdio transport (default, for MCP clients that communicate via stdin/stdout):
Run with HTTP transport on custom port:
Run with SSE transport:
Run with debug logging:
The server provides the following MCP resources and tools:
journal://units: List unique systemd units from journal logs (all accessible time)journal://syslog-identifiers: List unique syslog identifiers from journal logs (all accessible time)journal://first-entry-datetime: Get the datetime of the first entry in the journaljournal://units/{since}/{until}: List unique systemd units within a specified time rangejournal://syslog-identifiers/{since}/{until}: List unique syslog identifiers within a specified time rangeget_journal_entries: Get journal entries with datetime filtering
since (optional), until (optional), unit (optional), identifier (optional), message_contains (optional), limit (default: 100)since="2 hours ago", message_contains="error"get_recent_logs: Get recent journal logs from the last N minutes
minutes (default: 60), unit (optional), limit (default: 50)The server uses natural language datetime parsing via the dateparser library. Supported formats include:
All times are interpreted as UTC and returned in human-readable format: "YYYY-MM-DD HH:MM:SS UTC"
This project uses: