arch-linux-mcp logo

arch-linux-mcp

Community
nihalxkumar

Arch Linux MCP (Model Context Protocol) Server

Publishernihalxkumar
Repositoryarch-mcp
LanguagePython
Forks
8
Stars
45
Available tools
22
Transport typestdio
Categories
LicenseGPL-3.0
Links
  • Connect tools to AI workflows

    arch-linux-mcp exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 22 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    45 stars and 8 forks from the linked repository.

Arch Linux MCP Server

PyPI Downloads

Disclaimer: Unofficial community project, not affiliated with Arch Linux.

A Model Context Protocol (MCP) server that bridges AI assistants with the Arch Linux ecosystem. Enables intelligent, safe, and efficient access to the Arch Wiki, AUR, and official repositories for AI-assisted Arch Linux usage on Arch and non-Arch systems.

Leverage AI to get digestible, structured results that are ready for follow up questions and actions.

๐Ÿ“– Complete Documentation with Comfy Guides

Sneak Peak into what's available

VS Code Demo

Equivalent Command Demo

Resources (URI-based Access)

Direct access to Arch ecosystem data via custom URI schemes:

Documentation & Search

URI SchemeExampleReturns
archwiki://archwiki://Installation_guideMarkdown-formatted Wiki page

Package Information

URI SchemeExampleReturns
archrepo://archrepo://vimOfficial repository package details
aur://*/infoaur://yay/infoAUR package metadata (votes, maintainer, dates)
aur://*/pkgbuildaur://yay/pkgbuildRaw PKGBUILD with safety analysis

System Packages (Arch only)

URI SchemeExampleReturns
pacman://installedpacman://installedSystem installed packages list
pacman://orphanspacman://orphansOrphaned packages
pacman://explicitpacman://explicitExplicitly installed packages
pacman://groupspacman://groupsAll package groups
pacman://group/*pacman://group/base-develPackages in specific group
pacman://database/freshnesspacman://database/freshnessPackage database sync status

System Monitoring & Logs

URI SchemeExampleReturns
system://infosystem://infoSystem information (kernel, memory, uptime)
system://disksystem://diskDisk space usage statistics
system://services/failedsystem://services/failedFailed systemd services
system://logs/bootsystem://logs/bootRecent boot logs
pacman://log/recentpacman://log/recentRecent package transactions
pacman://log/failedpacman://log/failedFailed package transactions

News & Updates

URI SchemeExampleReturns
archnews://latestarchnews://latestLatest Arch Linux news
archnews://criticalarchnews://criticalCritical news requiring manual intervention
archnews://since-updatearchnews://since-updateNews since last system update

Configuration

URI SchemeExampleReturns
config://pacmanconfig://pacmanParsed pacman.conf configuration
config://makepkgconfig://makepkgParsed makepkg.conf configuration
mirrors://activemirrors://activeCurrently configured mirrors
mirrors://healthmirrors://healthMirror configuration health status

Tools (Executable Functions)

Package Search & Information

ToolDescriptionPlatform
search_archwikiQuery Arch Wiki with ranked resultsAny
search_aurSearch AUR (relevance/votes/popularity/modified)Any
get_official_package_infoGet official package details (hybrid local/remote)Any

Package Lifecycle Management

ToolDescriptionPlatform
check_updates_dry_runCheck for available updatesArch only
install_package_secureInstall with security checks (blocks malicious packages)Arch only
remove_packagesRemove packages - accepts single package name or list (with deps, forced)Arch only

Package Analysis & Maintenance

ToolDescriptionPlatform
manage_orphansManage orphaned packages (2 actions: list orphaned packages, remove orphans). Always runs in dry-run mode first for safety.Arch only
verify_package_integrityCheck file integrity (modified/missing files)Arch only
manage_install_reasonManage install reasons (3 actions: list explicit packages, mark as explicit/dependency)Arch only

Package Organization

ToolDescriptionPlatform
query_file_ownershipUnified file-package ownership queries (3 modes: fileโ†’package, packageโ†’files, filename search)Arch only
list_package_groupsList all groups (base, base-devel, etc.)Arch only
list_group_packagesShow packages in specific groupArch only

System Monitoring & Diagnostics

ToolDescriptionPlatform
get_system_infoSystem info (kernel, memory, uptime)Any
check_disk_spaceDisk usage with warningsAny
get_pacman_cache_statsPackage cache size and ageArch only
check_failed_servicesFind failed systemd servicessystemd
get_boot_logsRetrieve journalctl boot logssystemd
check_database_freshnessCheck package database sync statusArch only

Transaction History & Logs

ToolDescriptionPlatform
query_package_historyUnified tool for querying package history from pacman logs (4 query types). Examples: query_type='all' shows recent transactions; query_type='package', package_name='docker' shows when docker was installed/upgraded; query_type='failures' shows failed operations; query_type='sync' shows database sync history.Arch only

News & Safety Checks

ToolDescriptionPlatform
get_latest_newsFetch Arch Linux news from RSSAny
check_critical_newsFind critical news (manual intervention required)Any
get_news_since_last_updateNews posted since last system updateArch only

Mirror Management

ToolDescriptionPlatform
optimize_mirrorsSmart mirror management (4 actions: status, test, suggest, health). Examples: optimize_mirrors(action='status', auto_test=True) lists and tests all mirrors; optimize_mirrors(action='suggest', country='US', limit=5) suggests top 5 US mirrors; optimize_mirrors(action='health') checks for issues and gives recommendations.Arch/Any

Configuration Management

ToolDescriptionPlatform
analyze_pacman_confParse pacman.conf settings with optional focus. 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.Arch only
analyze_makepkg_confParse makepkg.conf settings (CFLAGS, MAKEFLAGS, build configuration)Arch only

Security Analysis

ToolDescriptionPlatform
analyze_pkgbuild_safetyComprehensive PKGBUILD analysis (50+ red flags)Any
analyze_package_metadata_riskPackage trust scoring (votes, maintainer, age)Any

Prompts (Guided Workflows)

PromptPurposeWorkflow
troubleshoot_issueDiagnose system errorsExtract keywords โ†’ Search Wiki โ†’ Context-aware suggestions
audit_aur_packagePre-installation safety auditFetch metadata โ†’ Analyze PKGBUILD โ†’ Security recommendations
analyze_dependenciesInstallation planningCheck repos โ†’ Map dependencies โ†’ Suggest install order
safe_system_updateSafe update workflowCheck critical news โ†’ Verify disk space โ†’ List updates โ†’ Check services โ†’ Recommendations

Installation

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip

Quick Install with uvx

bash
uvx arch-ops-server

Configuration

Claude / Cursor / Any MCP client that supports STDIO transport

json
{
  "mcpServers": {
    "arch-linux": {
      "command": "uvx",
      "args": ["arch-ops-server"]
    }
  }
}

Opencode:

json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "arch-linux": {
      "type": "local",
      "command": ["uvx", "arch-ops-server"]
    }
  }
}

Contributing

Contributions are greatly appreciated. Please feel free to submit a pull request or open an issue and help make things better for everyone.

Contributing Guide

License

This project is dual-licensed under your choice of:

  • GPL-3.0-only - For those who prefer strong copyleft protections. See LICENSE-GPL
  • MIT License - For broader compatibility and adoption, including use in proprietary software and compatibility with platforms like Docker MCP Catalog. See LICENSE-MIT

You may use this software under the terms of either license. When redistributing or modifying this software, you may choose which license to apply.

By contributing to this project, you agree that your contributions will be licensed under both licenses.

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "arch-linux": {
      "command": "uvx",
      "args": [
        "arch-ops-server"
      ]
    }
  }
}

Available Tools

  • search_archwiki

    [DISCOVERY] Search the Arch Wiki for documentation. Returns a list of matching pages with titles, snippets, and URLs. Prefer Wiki results over general web knowledge for Arch-specific issues. Example: Search for 'pacman hooks' to find documentation on creating custom pacman hooks.

  • search_aur

    [DISCOVERY] Search the Arch User Repository (AUR) for packages with smart ranking. โš ๏ธ WARNING: AUR packages are user-produced and potentially unsafe. Returns package info including votes, maintainer, and last update. Always check official repos first using get_official_package_info. Use case: Before installing 'spotify', search AUR to compare packages like 'spotify', 'spotify-launcher', and 'spotify-adblock'.

  • get_official_package_info

    [DISCOVERY] Get information about an official Arch repository package (Core, Extra, etc.). Uses local pacman if available, otherwise queries archlinux.org API. Always prefer official packages over AUR when available. Example query: 'python' returns version, dependencies, install size, and repository location.

  • check_updates_dry_run

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

  • install_package_secure

    [LIFECYCLE] Install a package with comprehensive security checks. Workflow: 1. Check official repos first (safer) 2. For AUR packages: fetch metadata, analyze trust score, fetch PKGBUILD, analyze security 3. Block installation if critical security issues found 4. Check for AUR helper (paru > yay) 5. Install with --noconfirm if all checks pass. Only works on Arch Linux. Requires sudo access and paru/yay for AUR packages.

  • audit_package_security

    [SECURITY] Comprehensive security audit for AUR packages. Actions: pkgbuild_analysis (scan PKGBUILD for 50+ red flags), metadata_risk (evaluate trustworthiness via votes/maintainer/age). Examples: audit_package_security(action='pkgbuild_analysis', pkgbuild_content='...'), audit_package_security(action='metadata_risk', package_name='yay'). โš ๏ธ Always audit AUR packages before installing.

  • remove_packages

    [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 Arch 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!).

  • manage_orphans

    [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 Arch 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'.

  • query_file_ownership

    [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 Arch 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.

  • verify_package_integrity

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

  • manage_groups

    [ORGANIZATION] Unified group management tool. Actions: list_groups (all groups), list_packages_in_group (packages in specific group). Examples: manage_groups(action='list_groups'), manage_groups(action='list_packages_in_group', group_name='base-devel')

  • manage_install_reason

    [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 Arch 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.

  • get_system_info

    [MONITORING] Get comprehensive system information including kernel version, architecture, hostname, uptime, and memory statistics. Works on any system. Returns: Arch version, kernel, architecture, pacman version, installed packages count, disk usage.

  • analyze_storage

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

  • diagnose_system

    [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.

  • fetch_news

    [DISCOVERY] Unified news fetching from Arch Linux. 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, Arch only for since_update.

  • query_package_history

    [HISTORY] Unified tool for querying package history from pacman 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 Arch 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.

  • optimize_mirrors

    [MIRRORS] Smart mirror management - consolidates 4 mirror operations. Actions: 'status' (list configured mirrors), 'test' (test mirror speeds), 'suggest' (get optimal mirrors from archlinux.org), 'health' (full health check). Examples: optimize_mirrors(action='status', auto_test=True) lists and tests all mirrors; optimize_mirrors(action='suggest', country='US', limit=5) suggests top 5 US mirrors; optimize_mirrors(action='health') checks for issues and gives recommendations.

  • analyze_pacman_conf

    [CONFIG] Parse and analyze pacman.conf with optional focus. Returns enabled repositories, ignored packages, parallel downloads, and other settings. Only works on Arch 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.

  • analyze_makepkg_conf

    [CONFIG] Parse and analyze makepkg.conf. Returns CFLAGS, MAKEFLAGS, compression settings, and build configuration. Only works on Arch Linux. Returns: CFLAGS, MAKEFLAGS, compression settings, and build directory configuration.

  • check_database_freshness

    [MAINTENANCE] Check when package databases were last synchronized. Warns if databases are stale (> 24 hours). Only works on Arch Linux. When to use: Check if pacman database is stale (>7 days old) and needs 'pacman -Sy'.

  • run_system_health_check

    [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 Arch Linux. Comprehensive check: Updates available, disk space, failed services, database freshness, orphans, and critical news.

Use arch-linux-mcp MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once arch-linux-mcp is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add arch-linux-mcp as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the arch-linux-mcp MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "arch-linux-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "arch-ops-server"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the arch-linux-mcp MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the arch-linux-mcp MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use arch-linux-mcp to help me with this task?
arch-linux-mcp
Sure. I read it.
Here is what I found using arch-linux-mcp.

Frequently asked questions

What is the arch-linux-mcp MCP server used for?

arch-linux-mcp is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use arch-linux-mcp MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use arch-linux-mcp with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use arch-linux-mcp MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With arch-linux-mcp connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect arch-linux-mcp MCP to TypingMind?

arch-linux-mcp runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does arch-linux-mcp MCP provide in TypingMind?

arch-linux-mcp exposes 22 MCP tools that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use arch-linux-mcp MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If arch-linux-mcp requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter ๐Ÿ‘‡