Skip to main content

mcp-systemd-crunchtools

MCP server for systemd unit management via D-Bus. Manages the full lifecycle of any systemd unit — not just Podman-managed containers: listing, status, lifecycle control, unit file authoring and decommissioning, journal queries, failed-unit and job triage, timers, host info, and login sessions.

Installation

# uvx (zero-install)
uvx mcp-systemd-crunchtools

# pip
pip install mcp-systemd-crunchtools

# Container
podman run \
  -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket \
  -v /etc/systemd/system:/etc/systemd/system:Z \
  --security-opt label=type:container_runtime_t \
  quay.io/crunchtools/mcp-systemd

The D-Bus socket mount is required for every tool. The /etc/systemd/system mount is only required for unit_file_write_tool and unit_file_remove_tool — omit it to run the server read/lifecycle-only.

Configuration

Variable Required Default Description
DBUS_SYSTEM_BUS_SOCKET No /run/dbus/system_bus_socket D-Bus system bus socket path
SYSTEMD_UNIT_DIR No /etc/systemd/system Directory unit_file_write/remove operate on
SYSTEMD_EXTRA_PROTECTED_UNITS No Comma-separated units added to the built-in denylist

Protected units

unit_stop, unit_restart, unit_disable, unit_mask, and unit_file_remove refuse to act on a small built-in denylist of core system units (dbus, sshd, networking, logind, journald). This cannot be bypassed — it exists so an agent can't take down the box it's running on. Add more units with SYSTEMD_EXTRA_PROTECTED_UNITS.

Claude Code Integration

claude mcp add mcp-systemd-crunchtools \
  -- uvx mcp-systemd-crunchtools

Tools (21)

Units (3)

Tool Description
unit_list List loaded units or installed unit files
unit_status Curated status (active state, PID, memory, CPU)
unit_show Full property dump (deps, exec settings, cgroup)

Lifecycle (9)

Tool Description
unit_start Start a unit
unit_stop Stop a unit (protected-list guarded)
unit_restart Restart a unit (protected-list guarded)
unit_reload Reload a unit's config without restarting
unit_enable Enable a unit to start on boot
unit_disable Disable a unit from starting on boot (protected-list guarded)
unit_mask Mask a unit (protected-list guarded)
unit_unmask Unmask a unit
daemon_reload Reload systemd's unit file cache

Unit files (2)

Tool Description
unit_file_write Write a new unit file (backs up any file it overwrites)
unit_file_remove Decommission: stop, disable, back up, remove (protected-list guarded)

Troubleshooting (3)

Tool Description
journal_query Filtered journal query (unit, priority, since/until, pattern, boot)
failed_units List units in the 'failed' state
list_jobs List pending/stuck jobs

Timers (1)

Tool Description
timer_list List timers with next/last elapse

System (2)

Tool Description
system_status Manager state: running/degraded, failed/job counts, version
hostinfo Hostname, kernel, OS

Sessions (1)

Tool Description
session_list Who's logged in right now

License

AGPL-3.0-or-later

Release files for mcp-systemd-crunchtools 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-systemd-crunchtools 0.1.0
File Size Uploaded
mcp_systemd_crunchtools-0.1.0.tar.gz 40.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-systemd-crunchtools 0.1.0
File Interpreter ABI Platform
mcp_systemd_crunchtools-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 71.9 kB

Release files / mcp_systemd_crunchtools-0.1.0.tar.gz

Download URL mcp_systemd_crunchtools-0.1.0.tar.gz
Size 40.4 kB
Tags Source
SHA-256 checksum
How to use checksums
3f906f8035c142a478bc48a52db9eb37133e34ea6338365b2e21fab44aa495ac
BLAKE2b-256 checksum
How to use checksums
89c8beead90a934e55774ba1c32de70bf32867243514f4e782cc7f28c350d4ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / mcp_systemd_crunchtools-0.1.0-py3-none-any.whl

Download URL mcp_systemd_crunchtools-0.1.0-py3-none-any.whl
Size 31.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
718fd71a945139b2d2aff7eb12e223ee7739000a543f564bc0746f3dd80721c0
BLAKE2b-256 checksum
How to use checksums
24d45873aa7cb12727a1537c4240eef6d955194044ee06d9f2b8ca94d2e3e0a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page