arch-ops-server 3.3.0__py3-none-any.whl → 3.3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ A Model Context Protocol server that bridges AI assistants with the Arch Linux
6
6
  ecosystem, providing access to the Arch Wiki, AUR, and official repositories.
7
7
  """
8
8
 
9
- __version__ = "3.3.0"
9
+ __version__ = "3.3.1"
10
10
 
11
11
  from .wiki import search_wiki, get_wiki_page, get_wiki_page_as_text
12
12
  from .aur import (
arch_ops_server/server.py CHANGED
@@ -630,7 +630,7 @@ async def list_tools() -> list[Tool]:
630
630
  # Wiki tools
631
631
  Tool(
632
632
  name="search_archwiki",
633
- description="[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.",
633
+ description="[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.",
634
634
  inputSchema={
635
635
  "type": "object",
636
636
  "properties": {
@@ -652,7 +652,7 @@ async def list_tools() -> list[Tool]:
652
652
  # AUR tools
653
653
  Tool(
654
654
  name="search_aur",
655
- description="[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.",
655
+ description="[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'.",
656
656
  inputSchema={
657
657
  "type": "object",
658
658
  "properties": {
@@ -679,7 +679,7 @@ async def list_tools() -> list[Tool]:
679
679
 
680
680
  Tool(
681
681
  name="get_official_package_info",
682
- description="[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.",
682
+ description="[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.",
683
683
  inputSchema={
684
684
  "type": "object",
685
685
  "properties": {
@@ -695,7 +695,7 @@ async def list_tools() -> list[Tool]:
695
695
 
696
696
  Tool(
697
697
  name="check_updates_dry_run",
698
- description="[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.",
698
+ description="[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.",
699
699
  inputSchema={
700
700
  "type": "object",
701
701
  "properties": {}
@@ -721,7 +721,7 @@ async def list_tools() -> list[Tool]:
721
721
 
722
722
  Tool(
723
723
  name="analyze_pkgbuild_safety",
724
- description="[SECURITY] Analyze PKGBUILD content for security issues and dangerous patterns. Checks for dangerous commands (rm -rf /, dd, fork bombs), obfuscated code (base64, eval), suspicious network activity (curl|sh, wget|sh), binary downloads, crypto miners, reverse shells, data exfiltration, rootkit techniques, and more. Returns risk score (0-100) and detailed findings. Use this tool to manually audit AUR packages before installation.",
724
+ description="[SECURITY] Analyze PKGBUILD content for security issues and dangerous patterns. Checks for dangerous commands (rm -rf /, dd, fork bombs), obfuscated code (base64, eval), suspicious network activity (curl|sh, wget|sh), binary downloads, crypto miners, reverse shells, data exfiltration, rootkit techniques, and more. Returns risk score (0-100) and detailed findings. Use this tool to manually audit AUR packages before installation. Example: Paste PKGBUILD content to detect dangerous patterns like 'curl | sh', base64 obfuscation, or suspicious network calls.",
725
725
  inputSchema={
726
726
  "type": "object",
727
727
  "properties": {
@@ -737,7 +737,7 @@ async def list_tools() -> list[Tool]:
737
737
 
738
738
  Tool(
739
739
  name="analyze_package_metadata_risk",
740
- description="[SECURITY] Analyze AUR package metadata for trustworthiness and security indicators. Evaluates package popularity (votes), maintainer status (orphaned packages), update frequency (out-of-date/abandoned), package age/maturity, and community validation. Returns trust score (0-100) with risk factors and trust indicators. Use this alongside PKGBUILD analysis for comprehensive security assessment.",
740
+ description="[SECURITY] Analyze AUR package metadata for trustworthiness and security indicators. Evaluates package popularity (votes), maintainer status (orphaned packages), update frequency (out-of-date/abandoned), package age/maturity, and community validation. Returns trust score (0-100) with risk factors and trust indicators. Use this alongside PKGBUILD analysis for comprehensive security assessment. Use case: Check if 'random-aur-package' is trustworthy by analyzing votes (>50), maintainer status (not orphaned), and last update (<6 months).",
741
741
  inputSchema={
742
742
  "type": "object",
743
743
  "properties": {
@@ -754,7 +754,7 @@ async def list_tools() -> list[Tool]:
754
754
  # Package Removal Tools
755
755
  Tool(
756
756
  name="remove_package",
757
- description="[LIFECYCLE] Remove a package from the system. Supports various removal strategies: basic removal, removal with dependencies, or forced removal. Only works on Arch Linux. Requires sudo access.",
757
+ description="[LIFECYCLE] Remove a package from the system. Supports various removal strategies: basic removal, removal with dependencies, or forced removal. Only works on Arch Linux. Requires sudo access. Example: Remove 'firefox' with dependencies using remove_dependencies=true, or force removal with force=true (dangerous!).",
758
758
  inputSchema={
759
759
  "type": "object",
760
760
  "properties": {
@@ -780,7 +780,7 @@ async def list_tools() -> list[Tool]:
780
780
 
781
781
  Tool(
782
782
  name="remove_packages_batch",
783
- description="[LIFECYCLE] Remove multiple packages in a single transaction. More efficient than removing packages one by one. Only works on Arch Linux. Requires sudo access.",
783
+ description="[LIFECYCLE] Remove multiple packages in a single transaction. More efficient than removing packages one by one. Only works on Arch Linux. Requires sudo access. Use case: Clean up multiple packages at once: ['package1', 'package2', 'package3'] with optional dependency removal.",
784
784
  inputSchema={
785
785
  "type": "object",
786
786
  "properties": {
@@ -803,7 +803,7 @@ async def list_tools() -> list[Tool]:
803
803
  # Orphan Package Management
804
804
  Tool(
805
805
  name="list_orphan_packages",
806
- description="[MAINTENANCE] List all orphaned packages (dependencies no longer required by any installed package). Shows package names and total disk space usage. Only works on Arch Linux.",
806
+ description="[MAINTENANCE] List all orphaned packages (dependencies no longer required by any installed package). Shows package names and total disk space usage. Only works on Arch Linux. When to use: After removing packages, find orphaned dependencies that are no longer needed.",
807
807
  inputSchema={
808
808
  "type": "object",
809
809
  "properties": {}
@@ -813,7 +813,7 @@ async def list_tools() -> list[Tool]:
813
813
 
814
814
  Tool(
815
815
  name="remove_orphans",
816
- description="[MAINTENANCE] Remove all orphaned packages to free up disk space. Supports dry-run mode to preview changes and package exclusion. Only works on Arch Linux. Requires sudo access.",
816
+ description="[MAINTENANCE] Remove all orphaned packages to free up disk space. Supports dry-run mode to preview changes and package exclusion. Only works on Arch Linux. Requires sudo access. Example: Use dry_run=true first to preview, then dry_run=false to actually remove. Exclude critical packages with exclude=['pkg1'].",
817
817
  inputSchema={
818
818
  "type": "object",
819
819
  "properties": {
@@ -836,7 +836,7 @@ async def list_tools() -> list[Tool]:
836
836
  # Package Ownership Tools
837
837
  Tool(
838
838
  name="find_package_owner",
839
- description="[ORGANIZATION] Find which package owns a specific file on the system. Useful for troubleshooting and understanding file origins. Only works on Arch Linux.",
839
+ description="[ORGANIZATION] Find which package owns a specific file on the system. Useful for troubleshooting and understanding file origins. Only works on Arch Linux. Example: '/usr/bin/python' → returns 'python' package that owns this file.",
840
840
  inputSchema={
841
841
  "type": "object",
842
842
  "properties": {
@@ -852,7 +852,7 @@ async def list_tools() -> list[Tool]:
852
852
 
853
853
  Tool(
854
854
  name="list_package_files",
855
- description="[ORGANIZATION] List all files owned by a package. Supports optional filtering by pattern. Only works on Arch Linux.",
855
+ description="[ORGANIZATION] List all files owned by a package. Supports optional filtering by pattern. Only works on Arch Linux. Use case: See all files installed by 'systemd' package, optionally filter with pattern='*.service'.",
856
856
  inputSchema={
857
857
  "type": "object",
858
858
  "properties": {
@@ -872,7 +872,7 @@ async def list_tools() -> list[Tool]:
872
872
 
873
873
  Tool(
874
874
  name="search_package_files",
875
- description="[ORGANIZATION] Search for files across all packages in repositories. Requires package database sync (pacman -Fy). Only works on Arch Linux.",
875
+ description="[ORGANIZATION] Search for files across all packages in repositories. Requires package database sync (pacman -Fy). Only works on Arch Linux. Example: Search for '*.desktop' to find all packages that install desktop entries.",
876
876
  inputSchema={
877
877
  "type": "object",
878
878
  "properties": {
@@ -889,7 +889,7 @@ async def list_tools() -> list[Tool]:
889
889
  # Package Verification
890
890
  Tool(
891
891
  name="verify_package_integrity",
892
- description="[MAINTENANCE] Verify the integrity of installed package files. Detects modified, missing, or corrupted files. Only works on Arch Linux.",
892
+ description="[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.",
893
893
  inputSchema={
894
894
  "type": "object",
895
895
  "properties": {
@@ -911,7 +911,7 @@ async def list_tools() -> list[Tool]:
911
911
  # Package Groups
912
912
  Tool(
913
913
  name="list_package_groups",
914
- description="[ORGANIZATION] List all available package groups (e.g., base, base-devel, gnome). Only works on Arch Linux.",
914
+ description="[ORGANIZATION] List all available package groups (e.g., base, base-devel, gnome). Only works on Arch Linux. Example: Returns groups like 'base', 'base-devel', 'gnome', 'kde-applications'.",
915
915
  inputSchema={
916
916
  "type": "object",
917
917
  "properties": {}
@@ -921,7 +921,7 @@ async def list_tools() -> list[Tool]:
921
921
 
922
922
  Tool(
923
923
  name="list_group_packages",
924
- description="[ORGANIZATION] List all packages in a specific group. Only works on Arch Linux.",
924
+ description="[ORGANIZATION] List all packages in a specific group. Only works on Arch Linux. Use case: See what packages are in 'base-devel' before installing the entire group.",
925
925
  inputSchema={
926
926
  "type": "object",
927
927
  "properties": {
@@ -938,7 +938,7 @@ async def list_tools() -> list[Tool]:
938
938
  # Install Reason Management
939
939
  Tool(
940
940
  name="list_explicit_packages",
941
- description="[MAINTENANCE] List all packages explicitly installed by the user (not installed as dependencies). Useful for creating backup lists or understanding system composition. Only works on Arch Linux.",
941
+ description="[MAINTENANCE] List all packages explicitly installed by the user (not installed as dependencies). Useful for creating backup lists or understanding system composition. Only works on Arch Linux. When to use: Find packages you explicitly installed (vs dependencies) for system documentation.",
942
942
  inputSchema={
943
943
  "type": "object",
944
944
  "properties": {}
@@ -948,7 +948,7 @@ async def list_tools() -> list[Tool]:
948
948
 
949
949
  Tool(
950
950
  name="mark_as_explicit",
951
- description="[MAINTENANCE] Mark a package as explicitly installed. Prevents it from being removed as an orphan. Only works on Arch Linux.",
951
+ description="[MAINTENANCE] Mark a package as explicitly installed. Prevents it from being removed as an orphan. Only works on Arch Linux. Example: Mark 'python-pip' as explicit if you want to keep it even when dependencies change.",
952
952
  inputSchema={
953
953
  "type": "object",
954
954
  "properties": {
@@ -964,7 +964,7 @@ async def list_tools() -> list[Tool]:
964
964
 
965
965
  Tool(
966
966
  name="mark_as_dependency",
967
- description="[MAINTENANCE] Mark a package as a dependency. Allows it to be removed as an orphan if no packages depend on it. Only works on Arch Linux.",
967
+ description="[MAINTENANCE] Mark a package as a dependency. Allows it to be removed as an orphan if no packages depend on it. Only works on Arch Linux. Use case: Mark 'lib32-gcc-libs' as dependency so it can be auto-removed with orphans later.",
968
968
  inputSchema={
969
969
  "type": "object",
970
970
  "properties": {
@@ -981,7 +981,7 @@ async def list_tools() -> list[Tool]:
981
981
  # System Diagnostic Tools
982
982
  Tool(
983
983
  name="get_system_info",
984
- description="[MONITORING] Get comprehensive system information including kernel version, architecture, hostname, uptime, and memory statistics. Works on any system.",
984
+ description="[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.",
985
985
  inputSchema={
986
986
  "type": "object",
987
987
  "properties": {}
@@ -991,7 +991,7 @@ async def list_tools() -> list[Tool]:
991
991
 
992
992
  Tool(
993
993
  name="check_disk_space",
994
- description="[MONITORING] Check disk space usage for critical filesystem paths including root, home, var, and pacman cache. Warns when space is low. Works on any system.",
994
+ description="[MONITORING] Check disk space usage for critical filesystem paths including root, home, var, and pacman cache. Warns when space is low. Works on any system. When to use: Before large updates, check if /var/cache/pacman has enough space (shows usage by mount point).",
995
995
  inputSchema={
996
996
  "type": "object",
997
997
  "properties": {}
@@ -1001,7 +1001,7 @@ async def list_tools() -> list[Tool]:
1001
1001
 
1002
1002
  Tool(
1003
1003
  name="get_pacman_cache_stats",
1004
- description="[MONITORING] Analyze pacman package cache statistics including size, package count, and cache age. Only works on Arch Linux.",
1004
+ description="[MONITORING] Analyze pacman package cache statistics including size, package count, and cache age. Only works on Arch Linux. Example output: Cache size 2.3GB, 450 packages, oldest package from 2023-01-15.",
1005
1005
  inputSchema={
1006
1006
  "type": "object",
1007
1007
  "properties": {}
@@ -1011,7 +1011,7 @@ async def list_tools() -> list[Tool]:
1011
1011
 
1012
1012
  Tool(
1013
1013
  name="check_failed_services",
1014
- description="[MONITORING] Check for failed systemd services. Useful for diagnosing system issues. Works on systemd-based systems.",
1014
+ description="[MONITORING] Check for failed systemd services. Useful for diagnosing system issues. Works on systemd-based systems. Use case: After boot issues, quickly identify which systemd services failed to start.",
1015
1015
  inputSchema={
1016
1016
  "type": "object",
1017
1017
  "properties": {}
@@ -1021,7 +1021,7 @@ async def list_tools() -> list[Tool]:
1021
1021
 
1022
1022
  Tool(
1023
1023
  name="get_boot_logs",
1024
- description="[MONITORING] Retrieve recent boot logs from journalctl. Useful for troubleshooting boot issues. Works on systemd-based systems.",
1024
+ description="[MONITORING] Retrieve recent boot logs from journalctl. Useful for troubleshooting boot issues. Works on systemd-based systems. Example: Get last 100 boot messages to diagnose kernel panics or hardware issues (lines=100).",
1025
1025
  inputSchema={
1026
1026
  "type": "object",
1027
1027
  "properties": {
@@ -1039,7 +1039,7 @@ async def list_tools() -> list[Tool]:
1039
1039
  # News Tools
1040
1040
  Tool(
1041
1041
  name="get_latest_news",
1042
- description="[DISCOVERY] Fetch recent Arch Linux news from RSS feed. Returns title, date, summary, and link for each news item.",
1042
+ description="[DISCOVERY] Fetch recent Arch Linux news from RSS feed. Returns title, date, summary, and link for each news item. When to use: Before system updates, check archlinux.org news for manual interventions required.",
1043
1043
  inputSchema={
1044
1044
  "type": "object",
1045
1045
  "properties": {
@@ -1060,7 +1060,7 @@ async def list_tools() -> list[Tool]:
1060
1060
 
1061
1061
  Tool(
1062
1062
  name="check_critical_news",
1063
- description="[DISCOVERY] Check for critical Arch Linux news requiring manual intervention. Scans recent news for keywords: 'manual intervention', 'action required', 'breaking change', etc.",
1063
+ description="[DISCOVERY] Check for critical Arch Linux news requiring manual intervention. Scans recent news for keywords: 'manual intervention', 'action required', 'breaking change', etc. Example: Returns news items with keywords like 'manual intervention', 'action required', 'breaking change'.",
1064
1064
  inputSchema={
1065
1065
  "type": "object",
1066
1066
  "properties": {
@@ -1077,7 +1077,7 @@ async def list_tools() -> list[Tool]:
1077
1077
 
1078
1078
  Tool(
1079
1079
  name="get_news_since_last_update",
1080
- description="[DISCOVERY] Get news posted since last pacman update. Parses /var/log/pacman.log for last update timestamp. Only works on Arch Linux.",
1080
+ description="[DISCOVERY] Get news posted since last pacman update. Parses /var/log/pacman.log for last update timestamp. Only works on Arch Linux. Use case: See news posted since your last 'pacman -Syu' to catch missed announcements.",
1081
1081
  inputSchema={
1082
1082
  "type": "object",
1083
1083
  "properties": {}
@@ -1088,7 +1088,7 @@ async def list_tools() -> list[Tool]:
1088
1088
  # Transaction Log Tools
1089
1089
  Tool(
1090
1090
  name="get_transaction_history",
1091
- description="[HISTORY] Get recent package transactions from pacman log. Shows installed, upgraded, and removed packages. Only works on Arch Linux.",
1091
+ description="[HISTORY] Get recent package transactions from pacman log. Shows installed, upgraded, and removed packages. Only works on Arch Linux. Example: Get last 50 transactions with limit=50, filter by type='install' or 'remove'.",
1092
1092
  inputSchema={
1093
1093
  "type": "object",
1094
1094
  "properties": {
@@ -1111,7 +1111,7 @@ async def list_tools() -> list[Tool]:
1111
1111
 
1112
1112
  Tool(
1113
1113
  name="find_when_installed",
1114
- description="[HISTORY] Find when a package was first installed and its upgrade history. Only works on Arch Linux.",
1114
+ description="[HISTORY] Find when a package was first installed and its upgrade history. Only works on Arch Linux. Use case: Check when 'docker' was installed and what version it was.",
1115
1115
  inputSchema={
1116
1116
  "type": "object",
1117
1117
  "properties": {
@@ -1127,7 +1127,7 @@ async def list_tools() -> list[Tool]:
1127
1127
 
1128
1128
  Tool(
1129
1129
  name="find_failed_transactions",
1130
- description="[HISTORY] Find failed package transactions in pacman log. Only works on Arch Linux.",
1130
+ description="[HISTORY] Find failed package transactions in pacman log. Only works on Arch Linux. When to use: After pacman errors, see which transactions failed and why.",
1131
1131
  inputSchema={
1132
1132
  "type": "object",
1133
1133
  "properties": {}
@@ -1137,7 +1137,7 @@ async def list_tools() -> list[Tool]:
1137
1137
 
1138
1138
  Tool(
1139
1139
  name="get_database_sync_history",
1140
- description="[HISTORY] Get database synchronization history. Shows when 'pacman -Sy' was run. Only works on Arch Linux.",
1140
+ description="[HISTORY] Get database synchronization history. Shows when 'pacman -Sy' was run. Only works on Arch Linux. Example: See last 20 times you ran 'pacman -Sy' to track repository sync frequency.",
1141
1141
  inputSchema={
1142
1142
  "type": "object",
1143
1143
  "properties": {
@@ -1155,7 +1155,7 @@ async def list_tools() -> list[Tool]:
1155
1155
  # Mirror Management Tools
1156
1156
  Tool(
1157
1157
  name="list_active_mirrors",
1158
- description="[MIRRORS] List currently configured mirrors from mirrorlist. Only works on Arch Linux.",
1158
+ description="[MIRRORS] List currently configured mirrors from mirrorlist. Only works on Arch Linux. Returns: Current mirrors from /etc/pacman.d/mirrorlist with their URLs and countries.",
1159
1159
  inputSchema={
1160
1160
  "type": "object",
1161
1161
  "properties": {}
@@ -1165,7 +1165,7 @@ async def list_tools() -> list[Tool]:
1165
1165
 
1166
1166
  Tool(
1167
1167
  name="test_mirror_speed",
1168
- description="[MIRRORS] Test mirror response time. Can test a specific mirror or all active mirrors. Only works on Arch Linux.",
1168
+ description="[MIRRORS] Test mirror response time. Can test a specific mirror or all active mirrors. Only works on Arch Linux. Example: Test specific mirror 'https://mirror.example.com' or all active mirrors if no URL provided.",
1169
1169
  inputSchema={
1170
1170
  "type": "object",
1171
1171
  "properties": {
@@ -1181,7 +1181,7 @@ async def list_tools() -> list[Tool]:
1181
1181
 
1182
1182
  Tool(
1183
1183
  name="suggest_fastest_mirrors",
1184
- description="[MIRRORS] Suggest optimal mirrors based on official mirror status from archlinux.org. Filters by country if specified.",
1184
+ description="[MIRRORS] Suggest optimal mirrors based on official mirror status from archlinux.org. Filters by country if specified. Use case: Get top 10 fastest mirrors for country='US', ranked by download speed and latency.",
1185
1185
  inputSchema={
1186
1186
  "type": "object",
1187
1187
  "properties": {
@@ -1202,7 +1202,7 @@ async def list_tools() -> list[Tool]:
1202
1202
 
1203
1203
  Tool(
1204
1204
  name="check_mirrorlist_health",
1205
- description="[MIRRORS] Verify mirror configuration health. Checks for common issues like no active mirrors, outdated mirrorlist, high latency. Only works on Arch Linux.",
1205
+ description="[MIRRORS] Verify mirror configuration health. Checks for common issues like no active mirrors, outdated mirrorlist, high latency. Only works on Arch Linux. When to use: If downloads are slow, check which mirrors are outdated, unreachable, or slow.",
1206
1206
  inputSchema={
1207
1207
  "type": "object",
1208
1208
  "properties": {}
@@ -1213,7 +1213,7 @@ async def list_tools() -> list[Tool]:
1213
1213
  # Configuration Tools
1214
1214
  Tool(
1215
1215
  name="analyze_pacman_conf",
1216
- description="[CONFIG] Parse and analyze pacman.conf. Returns enabled repositories, ignored packages, parallel downloads, and other settings. Only works on Arch Linux.",
1216
+ description="[CONFIG] Parse and analyze pacman.conf. Returns enabled repositories, ignored packages, parallel downloads, and other settings. Only works on Arch Linux. Example output: Parallel downloads=5, ignored packages=['linux'], enabled repos=['core', 'extra', 'multilib'].",
1217
1217
  inputSchema={
1218
1218
  "type": "object",
1219
1219
  "properties": {}
@@ -1223,7 +1223,7 @@ async def list_tools() -> list[Tool]:
1223
1223
 
1224
1224
  Tool(
1225
1225
  name="analyze_makepkg_conf",
1226
- description="[CONFIG] Parse and analyze makepkg.conf. Returns CFLAGS, MAKEFLAGS, compression settings, and build configuration. Only works on Arch Linux.",
1226
+ description="[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.",
1227
1227
  inputSchema={
1228
1228
  "type": "object",
1229
1229
  "properties": {}
@@ -1233,7 +1233,7 @@ async def list_tools() -> list[Tool]:
1233
1233
 
1234
1234
  Tool(
1235
1235
  name="check_ignored_packages",
1236
- description="[CONFIG] List packages ignored in updates from pacman.conf. Warns if critical system packages are ignored. Only works on Arch Linux.",
1236
+ description="[CONFIG] List packages ignored in updates from pacman.conf. Warns if critical system packages are ignored. Only works on Arch Linux. Use case: See which packages are in IgnorePkg/IgnoreGroup to understand why they don't update.",
1237
1237
  inputSchema={
1238
1238
  "type": "object",
1239
1239
  "properties": {}
@@ -1243,7 +1243,7 @@ async def list_tools() -> list[Tool]:
1243
1243
 
1244
1244
  Tool(
1245
1245
  name="get_parallel_downloads_setting",
1246
- description="[CONFIG] Get parallel downloads configuration from pacman.conf and provide recommendations. Only works on Arch Linux.",
1246
+ description="[CONFIG] Get parallel downloads configuration from pacman.conf and provide recommendations. Only works on Arch Linux. Example: Returns current ParallelDownloads value (default=5) from pacman.conf.",
1247
1247
  inputSchema={
1248
1248
  "type": "object",
1249
1249
  "properties": {}
@@ -1253,7 +1253,7 @@ async def list_tools() -> list[Tool]:
1253
1253
 
1254
1254
  Tool(
1255
1255
  name="check_database_freshness",
1256
- description="[MAINTENANCE] Check when package databases were last synchronized. Warns if databases are stale (> 24 hours). Only works on Arch Linux.",
1256
+ description="[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'.",
1257
1257
  inputSchema={
1258
1258
  "type": "object",
1259
1259
  "properties": {}
@@ -1263,7 +1263,7 @@ async def list_tools() -> list[Tool]:
1263
1263
 
1264
1264
  Tool(
1265
1265
  name="run_system_health_check",
1266
- description="[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.",
1266
+ description="[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.",
1267
1267
  inputSchema={
1268
1268
  "type": "object",
1269
1269
  "properties": {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arch-ops-server
3
- Version: 3.3.0
3
+ Version: 3.3.1
4
4
  Summary: MCP server bridging AI assistants with Arch Linux ecosystem (Wiki, AUR, official repos)
5
5
  Keywords: arch-linux,mcp,model-context-protocol,aur,pacman,wiki,ai-assistant
6
6
  Author: Nihal
@@ -1,4 +1,4 @@
1
- arch_ops_server/__init__.py,sha256=UiV6PqYZHQzRx_tOZG8G7gMBTXtWG9pkPtPgWn-crzw,4343
1
+ arch_ops_server/__init__.py,sha256=xU3wt-lx5HzqMfs2PKisoZOS8cDH0aV42Q7NQV8Be0w,4343
2
2
  arch_ops_server/aur.py,sha256=poYbh2DW7I1tZfCeNp_7e10fh9ZZx8HTnYZnKKZtflQ,49808
3
3
  arch_ops_server/config.py,sha256=4mtpS28vXSMeEVGrTWTMwZEzgIyfl0oCAYEzF7SKxE8,11076
4
4
  arch_ops_server/http_server.py,sha256=wZ3hY6o6EftbN1OZiTUau7861LB9ihKWap6gevev_No,31810
@@ -7,13 +7,13 @@ arch_ops_server/mirrors.py,sha256=Evt-g20cMOTZQl9FbbkbklFd0gKWz-I7vVNrmyQO19U,13
7
7
  arch_ops_server/news.py,sha256=E97eASR24tq_EaVDYuamIoBl4a7QtBkpscOaUPuU0W4,9359
8
8
  arch_ops_server/pacman.py,sha256=S1Gc53CA6o4--YavA03EkxL0dGCZNhoFFZjawlW_p20,38354
9
9
  arch_ops_server/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- arch_ops_server/server.py,sha256=aAYEzkxp1PY6Bqv1ZZNKuxZbTAE8N8A8a7X_zhUXs4k,89743
10
+ arch_ops_server/server.py,sha256=_fknIddhXAmh0Sb3cQzS0jlSwVUzJ0O67AoLsdm18Ag,93714
11
11
  arch_ops_server/system.py,sha256=JfBUB3KD0veulQ-IIK8IOC8Jn6lqtLMCtlnryiL1n7w,9221
12
12
  arch_ops_server/system_health_check.py,sha256=G_hgPaVz-6tQ_ZAoPEk7aX2rm4lIwbO0xdXcwdBDoaE,7196
13
13
  arch_ops_server/tool_metadata.py,sha256=Z0ZhtS1bxo9T_erJlGx9Xf0fKk4oZ0L6UQ8gJu7WEcA,20468
14
14
  arch_ops_server/utils.py,sha256=po7MVqCx-hsdx-lOgs7uGicjoUVMf6HvuNNYl2qyFH0,10112
15
15
  arch_ops_server/wiki.py,sha256=XB_emMGXYF3Vn5likRICkGOa72YDZvOhtZBgp_d1gg8,7350
16
- arch_ops_server-3.3.0.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
17
- arch_ops_server-3.3.0.dist-info/entry_points.txt,sha256=ZS2crFEqE9TteC4j2HmYS1wKvoBOCCXT2FJXJW5C4-E,117
18
- arch_ops_server-3.3.0.dist-info/METADATA,sha256=TTHK9ymnrPpDClCfPJ7krmYCFbVflLKp595jBiKbjpk,11356
19
- arch_ops_server-3.3.0.dist-info/RECORD,,
16
+ arch_ops_server-3.3.1.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
17
+ arch_ops_server-3.3.1.dist-info/entry_points.txt,sha256=ZS2crFEqE9TteC4j2HmYS1wKvoBOCCXT2FJXJW5C4-E,117
18
+ arch_ops_server-3.3.1.dist-info/METADATA,sha256=q7IUc0pN6tU8o4z9HsLjgexc_Rb6ZRFZiC0WPCvETl0,11356
19
+ arch_ops_server-3.3.1.dist-info/RECORD,,