suse-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@suse-mcp run a system health check"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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)
Documentation and Search
URI Scheme | Example | Returns |
|
| Markdown-formatted Wiki page |
Package Information
URI Scheme | Example | Returns |
|
| Official repository package details |
|
| OBS spec file with safety analysis |
|
| OBS package metadata |
System Packages (SUSE only)
URI Scheme | Example | Returns |
|
| Installed packages list |
|
| Orphaned packages |
|
| Explicitly installed packages |
|
| Zypper patterns |
|
| Package database sync status |
System Monitoring and Logs
URI Scheme | Example | Returns |
|
| System information (kernel, memory, uptime) |
|
| Disk space usage statistics |
|
| Failed systemd services |
|
| Recent boot logs |
|
| System health check |
|
| Recent package transactions |
|
| Failed package transactions |
News and Updates
URI Scheme | Example | Returns |
|
| Latest openSUSE news |
|
| Critical news requiring manual intervention |
|
| News since last system update |
Configuration
URI Scheme | Example | Returns |
|
| Parsed zypper.conf configuration |
|
| Parsed RPM macros configuration |
|
| Currently configured repositories |
|
| Repository health status |
Related MCP server: Kerneldev MCP
Tools
Tool | Description |
| Query openSUSE Wiki with ranked results |
| Search OBS packages |
| Get official package details |
| Check for available updates |
| Install OBS package with security checks |
| Security audit for OBS packages (spec analysis, full audit) |
| Remove packages (single or batch) |
| List or remove orphaned packages |
| File-package ownership queries |
| Check file integrity |
| List and inspect zypper patterns |
| Manage install reasons (explicit/dependency) |
| System info (kernel, memory, uptime) |
| Disk usage and cache statistics |
| System diagnostics |
| Fetch openSUSE news |
| Query zypp transaction history |
| Repository management (status, test, suggest, health) |
| Parse zypper.conf settings |
| Parse RPM macros configuration |
| Check package database sync status |
| Comprehensive system health check |
Prompts
Prompt | Purpose |
| Diagnose system errors using openSUSE Wiki |
| Pre-installation security audit of OBS packages |
| Dependency analysis and install order |
| Safe update workflow with pre-flight checks |
| System cleanup (orphans, cache, integrity) |
| Deep package research before installation |
| Test and configure fastest mirrors |
| Comprehensive system diagnostic |
Installation
Prerequisites
Python 3.11+
uv (recommended) or pip
Quick Start
uv run suse-ops-serverConfiguration
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-serverLicense
This project is dual-licensed under your choice of:
GPL-3.0-only - See LICENSE-GPL
MIT License - See LICENSE-MIT
Available Tools
22 toolsanalyze_rpm_macrosARead-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_storageARead-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_confARead-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_securityARead-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_freshnessARead-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_runARead-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_systemARead-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_newsARead-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_infoARead-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_infoARead-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_packageADestructive
[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_patternsARead-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_mirrorsARead-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_ownershipARead-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_historyARead-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_packagesADestructive
[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_checkARead-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_obsARead-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_wikiARead-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_integrityARead-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
Scored across 22 tools
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.
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.
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.
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
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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.13MIT
- AlicenseNot gradedqualityDmaintenanceAn 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.7GPL 2.0
- AlicenseBqualityDmaintenanceAn MCP server for managing Ubuntu/Linux systems, enabling AI assistants to execute commands, manage services, files, logs, and packages via local or SSH connection.47MIT
- FlicenseNot gradedqualityDmaintenanceA single MCP server that exposes safe, permission-checked tools for AI assistants to reach file systems, databases, APIs, Git, cloud services, and business applications.-