systems-manager

Knuckles-Team/systems-manager

3.3

If you are the rightful owner of systems-manager and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Systems-Manager is a versatile CLI and MCP server tool designed to manage systems across multiple operating systems, offering features like application management, system optimization, and hardware statistics retrieval.

Tools
11
Resources
0
Prompts
0

Systems-Manager

PyPI - Version PyPI - Downloads GitHub Repo stars GitHub forks GitHub contributors PyPI - License GitHub

GitHub last commit (by committer) GitHub pull requests GitHub closed pull requests GitHub issues

GitHub top language GitHub language count GitHub repo size GitHub repo file count (file type) PyPI - Wheel PyPI - Implementation

Version: 1.1.13

Systems-Manager is a powerful CLI and MCP server tool to manage your system across multiple operating systems. It supports updating, installing, and optimizing applications, managing Windows features, installing Nerd Fonts, and retrieving system and hardware statistics. It now supports Ubuntu, Debian, Red Hat, Oracle Linux, SLES, Arch, and Windows, with Snap fallback for Linux application installations.

This repository is actively maintained - Contributions are welcome!

Features

  • Multi-OS Support: Works on Windows, Ubuntu, Debian, Red Hat, Oracle Linux, SLES, and Arch.
  • Application Management: Install and update applications using native package managers (apt, dnf, zypper, pacman, winget) with automatic Snap fallback for Linux.
  • Font Installation: Install specific Nerd Fonts (default: Hack) or all available fonts from the latest release.
  • Windows Feature Management: List, enable, or disable Windows optional features (Windows only).
  • System Optimization: Clean and optimize system resources (e.g., trash/recycle bin, autoremove, defragmentation on Windows).
  • System and Hardware Stats: Retrieve detailed OS and hardware information using psutil.
  • Logging: Optional logging to a specified file or default systems_manager.log in the script directory.
  • FastMCP Server: Expose all functionality via a Model Context Protocol (MCP) server over stdio or HTTP for integration with AI or automation systems.

Available MCP tools:

  • install_applications: Install applications with Snap fallback (Linux).
  • update: Update system and applications.
  • clean: Clean system resources (e.g., trash/recycle bin).
  • optimize: Optimize system (e.g., autoremove, defrag on Windows).
  • install_python_modules: Install Python modules via pip.
  • install_fonts: Install specified Nerd Fonts (default: Hack) or all fonts.
  • get_os_stats: Retrieve OS statistics.
  • get_hardware_stats: Retrieve hardware statistics.
  • list_windows_features: List Windows features (Windows only).
  • enable_windows_features: Enable Windows features (Windows only).
  • disable_windows_features: Disable Windows features (Windows only).
  • run_command: Run elevated commands on shell (Enable at your own risk).
Usage:
Short FlagLong FlagDescription
-h--helpSee usage for script
-c--cleanClean Recycle/Trash bin
-e--enable-featuresEnable Windows features (comma-separated, Windows only)
-d--disable-featuresDisable Windows features (comma-separated, Windows only)
-l--list-featuresList all Windows features and their status (Windows only)
-f--fontsInstall Nerd Fonts (comma-separated, e.g., Hack,Meslo or 'all'; default: Hack)
-i--installInstall applications (comma-separated, e.g., python3,git)
-p--pythonInstall Python modules (comma-separated)
-s--silentSuppress output to stdout
-u--updateUpdate applications and Operating System
-o--optimizeOptimize system (e.g., autoremove, clean cache, defrag)
--os-statsPrint OS statistics (e.g., system, release, version)
--hw-statsPrint hardware statistics (e.g., CPU, memory, disk)
--log-fileLog to specified file (default: systems_manager.log)
systems-manager --fonts Hack,Meslo --update --clean --python geniusbot --install python3,git --enable-features Microsoft-Hyper-V-All,Containers --log-file /path/to/log.log

MCP CLI

Short FlagLong FlagDescription
-h--helpDisplay help information
-t--transportTransport method: 'stdio', 'http', or 'sse' [legacy] (default: stdio)
-s--hostHost address for HTTP transport (default: 0.0.0.0)
-p--portPort number for HTTP transport (default: 8000)
--auth-typeAuthentication type: 'none', 'static', 'jwt', 'oauth-proxy', 'oidc-proxy', 'remote-oauth' (default: none)
--token-jwks-uriJWKS URI for JWT verification
--token-issuerIssuer for JWT verification
--token-audienceAudience for JWT verification
--oauth-upstream-auth-endpointUpstream authorization endpoint for OAuth Proxy
--oauth-upstream-token-endpointUpstream token endpoint for OAuth Proxy
--oauth-upstream-client-idUpstream client ID for OAuth Proxy
--oauth-upstream-client-secretUpstream client secret for OAuth Proxy
--oauth-base-urlBase URL for OAuth Proxy
--oidc-config-urlOIDC configuration URL
--oidc-client-idOIDC client ID
--oidc-client-secretOIDC client secret
--oidc-base-urlBase URL for OIDC Proxy
--remote-auth-serversComma-separated list of authorization servers for Remote OAuth
--remote-base-urlBase URL for Remote OAuth
--allowed-client-redirect-urisComma-separated list of allowed client redirect URIs
--eunomia-typeEunomia authorization type: 'none', 'embedded', 'remote' (default: none)
--eunomia-policy-filePolicy file for embedded Eunomia (default: mcp_policies.json)
--eunomia-remote-urlURL for remote Eunomia server

Using as an MCP Server

The MCP Server can be run in two modes: stdio (for local testing) or http (for networked access). To start the server, use the following commands:

Run in stdio mode (default):
systems-manager-mcp --transport "stdio"
Run in HTTP mode:
systems-manager-mcp --transport "http"  --host "0.0.0.0"  --port "8000"

Dependencies

The following Python packages are automatically installed if missing:

  • distro: For Linux distribution detection.
  • psutil: For system and hardware statistics.
  • requests: For downloading Nerd Fonts.
  • fastmcp: For MCP server functionality (required for systems-manager-mcp).

Deploy MCP Server as a Service

The MCP server can be deployed using Docker, with configurable authentication, middleware, and Eunomia authorization.

Using Docker Run
docker pull knucklessg1/systems-manager:latest

docker run -d \
  --name systems-manager-mcp \
  -p 8004:8004 \
  -e HOST=0.0.0.0 \
  -e PORT=8004 \
  -e TRANSPORT=http \
  -e AUTH_TYPE=none \
  -e EUNOMIA_TYPE=none \
  knucklessg1/systems-manager:latest

For advanced authentication (e.g., JWT, OAuth Proxy, OIDC Proxy, Remote OAuth) or Eunomia, add the relevant environment variables:

docker run -d \
  --name systems-manager-mcp \
  -p 8004:8004 \
  -e HOST=0.0.0.0 \
  -e PORT=8004 \
  -e TRANSPORT=http \
  -e AUTH_TYPE=oidc-proxy \
  -e OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration \
  -e OIDC_CLIENT_ID=your-client-id \
  -e OIDC_CLIENT_SECRET=your-client-secret \
  -e OIDC_BASE_URL=https://your-server.com \
  -e ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/* \
  -e EUNOMIA_TYPE=embedded \
  -e EUNOMIA_POLICY_FILE=/app/mcp_policies.json \
  knucklessg1/systems-manager:latest
Using Docker Compose

Create a docker-compose.yml file:

services:
  systems-manager-mcp:
    image: knucklessg1/systems-manager:latest
    environment:
      - HOST=0.0.0.0
      - PORT=8004
      - TRANSPORT=http
      - AUTH_TYPE=none
      - EUNOMIA_TYPE=none
    ports:
      - 8004:8004

For advanced setups with authentication and Eunomia:

services:
  systems-manager-mcp:
    image: knucklessg1/systems-manager:latest
    environment:
      - HOST=0.0.0.0
      - PORT=8004
      - TRANSPORT=http
      - AUTH_TYPE=oidc-proxy
      - OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration
      - OIDC_CLIENT_ID=your-client-id
      - OIDC_CLIENT_SECRET=your-client-secret
      - OIDC_BASE_URL=https://your-server.com
      - ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/*
      - EUNOMIA_TYPE=embedded
      - EUNOMIA_POLICY_FILE=/app/mcp_policies.json
    ports:
      - 8004:8004
    volumes:
      - ./mcp_policies.json:/app/mcp_policies.json

Run the service:

docker-compose up -d
Configure mcp.json for AI Integration
{
  "mcpServers": {
    "systems_manager": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "systems-manager",
        "systems-manager-mcp"
      ],
      "env": {
        "SYSTEMS_MANAGER_SILENT": "False",
        "SYSTEMS_MANAGER_LOG_FILE": "~/Documents/systems_manager_mcp.log"
      },
      "timeout": 200000
    }
  }
}

Installation Instructions:

Install Python Package

python -m pip install systems-manager

or

uv pip install --upgrade systems-manager
Repository Owners:

GitHub followers GitHub User's stars