Skip to main content
Glama

SUSE Linux MCP Server

A Model Context Protocol (MCP) server that bridges AI assistants with the SUSE Linux ecosystem. Enables safe, reliable access to the openSUSE Wiki, OBS (Open Build Service), and SUSE repositories for AI-assisted system management.

Supports all SUSE variants: openSUSE Tumbleweed, Leap, MicroOS, Slowroll, SLES, SLED, and SLE Micro. Immutable variants use transactional-update automatically.

Resources (URI-based Access)

URI Scheme

Example

Returns

opensuse-wiki://

opensuse-wiki://Installation_guide

Markdown-formatted Wiki page

Package Information

URI Scheme

Example

Returns

suse-repo://

suse-repo://vim

Official repository package details

obs://*/spec

obs://vim/spec

OBS spec file with safety analysis

obs://*/info

obs://vim/info

OBS package metadata

System Packages (SUSE only)

URI Scheme

Example

Returns

zypper://installed

zypper://installed

Installed packages list

zypper://orphans

zypper://orphans

Orphaned packages

zypper://explicit

zypper://explicit

Explicitly installed packages

zypper://patterns

zypper://patterns

Zypper patterns

zypper://database/freshness

zypper://database/freshness

Package database sync status

System Monitoring and Logs

URI Scheme

Example

Returns

system://info

system://info

System information (kernel, memory, uptime)

system://disk

system://disk

Disk space usage statistics

system://services/failed

system://services/failed

Failed systemd services

system://logs/boot

system://logs/boot

Recent boot logs

system://health

system://health

System health check

zypper://log/recent

zypper://log/recent

Recent package transactions

zypper://log/failed

zypper://log/failed

Failed package transactions

News and Updates

URI Scheme

Example

Returns

opensuse-news://latest

opensuse-news://latest

Latest openSUSE news

opensuse-news://critical

opensuse-news://critical

Critical news requiring manual intervention

opensuse-news://since-update

opensuse-news://since-update

News since last system update

Configuration

URI Scheme

Example

Returns

config://zypper

config://zypper

Parsed zypper.conf configuration

config://rpm-macros

config://rpm-macros

Parsed RPM macros configuration

mirrors://active

mirrors://active

Currently configured repositories

mirrors://health

mirrors://health

Repository health status

Related MCP server: Kerneldev MCP

Tools

Tool

Description

search_opensuse_wiki

Query openSUSE Wiki with ranked results

search_obs

Search OBS packages

get_official_package_info

Get official package details

check_updates_dry_run

Check for available updates

install_obs_package

Install OBS package with security checks

audit_obs_security

Security audit for OBS packages (spec analysis, full audit)

remove_packages

Remove packages (single or batch)

manage_orphans

List or remove orphaned packages

query_file_ownership

File-package ownership queries

verify_package_integrity

Check file integrity

manage_patterns

List and inspect zypper patterns

manage_install_reason

Manage install reasons (explicit/dependency)

get_system_info

System info (kernel, memory, uptime)

analyze_storage

Disk usage and cache statistics

diagnose_system

System diagnostics

fetch_news

Fetch openSUSE news

query_package_history

Query zypp transaction history

optimize_mirrors

Repository management (status, test, suggest, health)

analyze_zypper_conf

Parse zypper.conf settings

analyze_rpm_macros

Parse RPM macros configuration

check_database_freshness

Check package database sync status

run_system_health_check

Comprehensive system health check

Prompts

Prompt

Purpose

troubleshoot_issue

Diagnose system errors using openSUSE Wiki

audit_obs_package

Pre-installation security audit of OBS packages

analyze_dependencies

Dependency analysis and install order

safe_system_update

Safe update workflow with pre-flight checks

cleanup_system

System cleanup (orphans, cache, integrity)

package_investigation

Deep package research before installation

mirror_optimization

Test and configure fastest mirrors

system_health_check

Comprehensive system diagnostic

Installation

Prerequisites

  • Python 3.11+

  • uv (recommended) or pip

Quick Start

uv run suse-ops-server

Configuration

Add to your MCP client configuration (Claude, Cursor, or any STDIO-compatible client):

{
  "mcpServers": {
    "suse-linux": {
      "command": "uv",
      "args": ["run", "suse-ops-server"]
    }
  }
}

Container

podman build -f Containerfile .
podman run -i suse-mcp-server

License

This project is dual-licensed under your choice of:

Available Tools

22 tools
analyze_rpm_macrosA
Read-only

[CONFIG] Parse and analyze rpm macros. Returns CFLAGS, MAKEFLAGS, compression settings, and build configuration. Only works on SUSE Linux. Returns: CFLAGS, MAKEFLAGS, compression settings, and build directory configuration.

Inputs: no named parameters.

analyze_storageA
Read-only

[MONITORING] Unified storage analysis tool. Actions: disk_usage (check disk space for critical paths), cache_stats (analyze zypp package cache). Works on any system for disk_usage, SUSE only for cache_stats.

Inputs: action (required).

analyze_zypper_confA
Read-only

[CONFIG] Parse and analyze zypper.conf with optional focus. Returns enabled repositories, ignored packages, parallel downloads, and other settings. Only works on SUSE Linux. Examples: focus='full' (default) returns all settings; focus='ignored_packages' returns only ignored packages with warnings for critical ones; focus='parallel_downloads' returns only parallel downloads setting with optimization recommendations.

Inputs: focus.

audit_obs_securityA
Read-only

[SECURITY] Comprehensive security audit for OBS packages. Actions: spec_analysis (scan spec file for security red flags), full_audit (fetch and audit an OBS package by name). Examples: audit_obs_security(action='spec_analysis', spec_content='...'), audit_obs_security(action='full_audit', package_name='vim'). Always audit OBS packages before installing.

Inputs: action (required), project, package_name, spec_content.

check_database_freshnessA
Read-only

[MAINTENANCE] Check when package databases were last synchronized. Warns if databases are stale (> 24 hours). Only works on SUSE Linux. When to use: Check if zypper cache is stale and needs 'zypper refresh'.

Inputs: no named parameters.

check_updates_dry_runA
Read-only

[LIFECYCLE] Check for available system updates without applying them. Only works on SUSE Linux systems. Safe read-only operation that shows pending updates. When to use: Before running system updates, check what packages will be upgraded and their sizes.

Inputs: no named parameters.

diagnose_systemA
Read-only

[MONITORING] Unified system diagnostics for systemd-based systems. Actions: failed_services (check for failed systemd services), boot_logs (retrieve recent boot logs). Works on systemd-based systems only.

Inputs: action (required), lines.

fetch_newsA
Read-only

[DISCOVERY] Unified news fetching from openSUSE. Actions: latest (get recent news), critical (find news requiring manual intervention), since_update (news since last system update). Works on any system for latest/critical, SUSE only for since_update.

Inputs: action (required), limit, since_date.

get_official_package_infoA
Read-only

[DISCOVERY] Get information about an official SUSE repository package. Uses local zypper if available, otherwise queries the OBS API. Always prefer official packages over OBS community packages. Example query: 'python3' returns version, dependencies, install size, and repository location.

Inputs: package_name (required).

get_system_infoA
Read-only

[MONITORING] Get comprehensive system information including kernel version, architecture, hostname, uptime, and memory statistics. Works on any system. Returns SUSE variant, kernel, architecture, and memory info.

Inputs: no named parameters.

install_obs_packageA
Destructive

[LIFECYCLE] Install a package from OBS with security checks. Workflow: 1. Fetch OBS metadata 2. Analyze spec file for security issues 3. Block installation if critical issues found 4. Add OBS repo and install via zypper. Only works on SUSE Linux. Requires sudo access.

Inputs: package_name (required).

manage_install_reasonA

[MAINTENANCE] Unified tool for managing package install reasons. Supports three actions: 'list' (list all explicitly installed packages), 'mark_explicit' (prevent package from being removed as orphan), and 'mark_dependency' (allow package to be auto-removed with orphans). Only works on SUSE Linux. Examples: action='list' → returns all user-installed packages; action='mark_explicit', package_name='python-pip' → keeps package even when dependencies change; action='mark_dependency', package_name='lib32-gcc-libs' → allows auto-removal with orphans.

Inputs: action (required), package_name.

manage_orphansA

[MAINTENANCE] Unified tool for managing orphaned packages (dependencies no longer required). Supports two actions: 'list' (show orphaned packages) and 'remove' (remove orphaned packages). Only works on SUSE Linux. Requires sudo access for removal. Examples: action='list' → shows all orphaned packages with disk usage; action='remove', dry_run=true → preview what would be removed; action='remove', dry_run=false, exclude=['pkg1'] → remove all orphans except 'pkg1'.

Inputs: action (required), dry_run, exclude.

manage_patternsA
Read-only

[ORGANIZATION] Unified zypper pattern management. Actions: list_patterns (all patterns), pattern_info (details about a specific pattern). Examples: manage_patterns(action='list_patterns'), manage_patterns(action='pattern_info', pattern_name='base')

Inputs: action (required), pattern_name.

optimize_mirrorsA
Read-only

[MIRRORS] Smart repository management. Actions: 'status' (list configured repos), 'test' (test repo speeds), 'health' (full health check). Examples: optimize_mirrors(action='status', auto_test=True) lists and tests all repos; optimize_mirrors(action='health') checks for issues and gives recommendations.

Inputs: action (required), limit, country, auto_test, +1 more.

query_file_ownershipA
Read-only

[ORGANIZATION] Unified tool for querying file-package ownership relationships. Supports three modes: 'file_to_package' (find which package owns a file), 'package_to_files' (list all files in a package with optional filtering), and 'filename_search' (search for files across all packages). Only works on SUSE Linux. Examples: mode='file_to_package', query='/usr/bin/python' → returns 'python' package; mode='package_to_files', query='systemd', filter_pattern='.service' → lists all systemd service files; mode='filename_search', query='.desktop' → finds all packages with desktop entries.

Inputs: mode (required), query (required), filter_pattern.

query_package_historyA
Read-only

[HISTORY] Unified tool for querying package history from zypp logs. Supports four query types: 'all' (recent transactions), 'package' (specific package install/upgrade history), 'failures' (failed transactions), and 'sync' (database sync history). Only works on SUSE Linux. Examples: query_type='all', limit=50 → recent transactions; query_type='package', package_name='docker' → when docker was installed; query_type='failures' → find errors; query_type='sync', limit=20 → sync history.

Inputs: query_type (required), limit, package_name.

remove_packagesA
Destructive

[LIFECYCLE] Unified tool for removing packages (single or multiple). Accepts either a single package name or a list of packages. Supports removal with dependencies and forced removal. Only works on SUSE Linux. Requires sudo access. Examples: packages='firefox', remove_dependencies=true → removes Firefox with its dependencies; packages=['pkg1', 'pkg2', 'pkg3'] → batch removal of multiple packages; packages='lib', force=true → force removal ignoring dependencies (dangerous!).

Inputs: packages (required), force, remove_dependencies.

run_system_health_checkA
Read-only

[MONITORING] Run a comprehensive system health check. Integrates multiple diagnostics to provide a complete overview of system status, including disk space, failed services, updates, orphan packages, and more. Only works on SUSE Linux. Comprehensive check: Updates available, disk space, failed services, database freshness, orphans, and critical news.

Inputs: no named parameters.

search_obsA
Read-only

[DISCOVERY] Search the Open Build Service (OBS) for packages. Returns package info including project, repository, and description. Always check official repos first using get_official_package_info. Use case: Search OBS for community-maintained packages not in official repositories.

Inputs: query (required), limit, sort_by.

search_opensuse_wikiA
Read-only

[DISCOVERY] Search the openSUSE Wiki for documentation. Returns a list of matching pages with titles, snippets, and URLs. Prefer Wiki results over general web knowledge for SUSE-specific issues. Example: Search for 'zypper' to find documentation on package management.

Inputs: query (required), limit.

verify_package_integrityA
Read-only

[MAINTENANCE] Verify the integrity of installed package files. Detects modified, missing, or corrupted files. Only works on SUSE Linux. When to use: After system crash or disk errors, verify 'linux' package files match expected checksums.

Inputs: package_name (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 22 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes, and descriptions are thorough with examples. Minor overlap exists between run_system_health_check and individual diagnostic tools (e.g., check_updates_dry_run, analyze_storage), but the descriptions clarify when to use the comprehensive tool vs. the specific one.

    Naming Consistency4/5

    All tool names follow a consistent verb_noun snake_case pattern (e.g., check_updates_dry_run, manage_orphans, query_file_ownership). Minor deviations like run_system_health_check (where 'check' is a noun) and check_updates_dry_run are still understandable and do not break the overall pattern.

    Tool Count3/5

    At 22 tools, the server feels heavy, but the broad domain of SUSE system management justifies a larger toolset. However, several tools are closely related (e.g., multiple manage_* tools, multiple analyze_* tools), which adds slight redundancy without necessarily adding value.

    Completeness2/5

    The toolset is strong on diagnostics, discovery, and analysis, but lacks critical lifecycle operations. There is no tool to apply system updates (only a dry-run check), and no tool to install official repository packages—only OBS packages can be installed. This creates significant gaps for real-world package management workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A MCP server for Windows/Linux that provides 90+ tools enabling AI assistants to systematically manage local systems, including system probing, command execution, file editing, network diagnostics, and more.
      13
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server for intelligent Linux kernel configuration management and building. Enables AI assistants to generate, manage, and optimize kernel configurations and build kernels with comprehensive error detection.
      7
      GPL 2.0