Enterprise MCP for SUSE Linux administration with OBS, openQA, multi-SP support, and contribution pipeline
Project description
MCP SUSE Enterprise
Enterprise MCP server for SUSE Linux administration with OBS, openQA, multi-SP support, and contribution pipeline.
Installation
# Install from PyPI
pip install mcp-suse-enterprise
# Or run directly with uvx
uvx mcp-suse-enterprise
Configuration
Environment Variables
# SSH Connection
export MCP_SUSE_HOST=sles-server.example.com
export MCP_SUSE_USER=admin
export MCP_SUSE_PORT=22
export MCP_SUSE_KEY_PATH=~/.ssh/id_ed25519
# OBS (Open Build Service)
export OBS_API_URL=https://api.opensuse.org
export OBS_USERNAME=myuser
export OBS_API_KEY=your-api-key
# openQA
export OPENQA_URL=https://openqa.opensuse.org
export OPENQA_API_KEY=your-key
export OPENQA_API_SECRET=your-secret
# Logging
export MCP_SUSE_LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
YAML Configuration
Create ~/.config/mcp-suse-enterprise/config.yaml:
profiles:
- name: production
hostname: sles-prod.example.com
port: 22
user: admin
auth_method: key
key_path: ~/.ssh/id_ed25519
security_mode: read-only
is_default: true
- name: staging
hostname: sles-staging.example.com
user: tester
auth_method: password
security_mode: execute
obs:
api_url: https://api.opensuse.org
username: myuser
api_key: secret-key
openqa:
url: https://openqa.opensuse.org
api_key: qa-key
api_secret: qa-secret
log_level: INFO
ssh_pool_size: 5
Environment variables take priority over YAML values.
Tools by Namespace
suse.util.* (Always available)
suse.util.sanitize-text- Sanitize text for shell executionsuse.util.metrics- Server metrics and invocation statssuse.util.list-profiles- List connection profilessuse.util.detect-version- Detect SUSE distributionsuse.util.test-connection- Test SSH connectivitysuse.util.security-check- Check tool risk level
suse.admin.* (Requires SSH)
suse.admin.service-status- Get systemd service statussuse.admin.service-restart- Restart a service (sudo)suse.admin.logs- Get system logs (journalctl)suse.admin.firewall-status- Firewall status
suse.zypper.* (Requires SSH)
suse.zypper.search- Search packagessuse.zypper.info- Package informationsuse.zypper.list-repos- List repositoriessuse.zypper.list-patches- List available patchessuse.zypper.list-patterns- List patternssuse.zypper.deps- Query dependenciessuse.zypper.dup-dry-run- Distribution upgrade dry-run
suse.obs.* (Requires OBS credentials)
suse.obs.list-projects- List OBS projectssuse.obs.list-packages- List packages in projectsuse.obs.build-status- Get build statussuse.obs.build-log- Get build logsuse.obs.branch- Branch a packagesuse.obs.submit-request- Create submit request
suse.openqa.* (Requires openQA credentials)
suse.openqa.list-jobs- List test jobssuse.openqa.get-job- Get job detailssuse.openqa.trigger-job- Trigger test jobsuse.openqa.job-modules- Get test modulessuse.openqa.list-suites- List test suites
suse.sle.* (Requires OBS credentials)
suse.sle.list-branches- List branch projectssuse.sle.release-status- Consolidated release status
Supported Distributions
- SLES 15 SP5, SP6
- openSUSE Leap 15.5, 15.6, 16.0
- openSUSE Tumbleweed
Security
- Default mode:
read-only(write operations require confirmation) - Shell injection detection on all inputs
- API keys never exposed in error messages
- Structured JSON audit logging to stderr
MCP Client Configuration
Add to your MCP client config (e.g., Claude Desktop):
{
"mcpServers": {
"suse": {
"command": "uvx",
"args": ["mcp-suse-enterprise"],
"env": {
"MCP_SUSE_HOST": "your-suse-host.com",
"MCP_SUSE_USER": "admin",
"MCP_SUSE_KEY_PATH": "~/.ssh/id_ed25519"
}
}
}
}
Important Notes
- Do NOT run simultaneously with
mcp-suseMVP against the same host - Logs are emitted as JSON to stderr (stdout is reserved for MCP protocol)
- Connection pool reuses SSH connections for performance
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_suse_enterprise-0.1.0.tar.gz.
File metadata
- Download URL: mcp_suse_enterprise-0.1.0.tar.gz
- Upload date:
- Size: 42.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61d1e5553cd92bb4ed73b4f63fdf477a3bbce24a9a5a57000cf065ded40566a1
|
|
| MD5 |
73289e5b6c730527b64e5b1b560e3eaa
|
|
| BLAKE2b-256 |
41a455279d248f7d49d4bbedb95fb034c9b86fedde842b44ea244d13fd72ab34
|
File details
Details for the file mcp_suse_enterprise-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_suse_enterprise-0.1.0-py3-none-any.whl
- Upload date:
- Size: 45.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68054e41f7d19f680a6db77ac6d07d599473a89add5349da677730d4fdf738ae
|
|
| MD5 |
eb68482bbdf74aca84a241b589425c57
|
|
| BLAKE2b-256 |
2684fbf5137cc44aa8fc34c98c8070ec23f024520515a04c5b8a4f5bf68f8929
|