MCP server providing package management capabilities for Alpine Linux (APK) and Debian/Debian-derivative systems (APT). Enables searching, installing, listing, and managing packages through MCP tools.
The Package Manager MCP server defines 5 tools with reasonable structure and descriptions. Tool names follow verb-noun conventions (install_package, search_packages, list_installed_packages, refresh_repositories). Descriptions are present and moderately detailed (150-300 chars), explaining WHAT each tool does and WHEN to use it. Input schemas are visible with proper JSON Schema structure including types and descriptions. However, there are notable gaps: (1) output schemas are NOT documented anywhere in the provided code or definitions, we cannot verify what fields are returned; (2) some parameter descriptions lack specificity on validation rules and constraints; (3) no error handling guidance visible in tool descriptions to help LLMs recover from failures; (4) tool annotations (readOnlyHint, destructiveHint) are declared in the spec but not visible in the actual schema definitions; (5) the refresh_repositories tool has an empty required array but no properties defined, raising clarity concerns. The descriptions are above the 20-character minimum and avoid example values, which is good. Parameter naming is consistent (package_name, version, query, repository). Overall competent but missing critical production patterns like output schema documentation and error recovery guidance.
Install packages using the package manager (APK for Alpine Linux or APT for Debian/Debian-derivative systems). This tool executes 'apk add' or 'apt-get install' commands with proper error handling. Use this when you need to install the latest version of software packages, libraries, or development tools on the system. If you need to install a specific version, use the install_package_with_version tool.
Install a specific version of a package. This tool searches package repositories to find the requested package version, then installs it using exact version matching. Use this when you need to install a specific version of a package rather than the latest available version.
List all installed packages on the system using 'apk list -I' (Alpine) or 'apt list --installed' (Debian). This tool retrieves a complete inventory of all currently installed packages, including their versions, names, and other metadata.
Refresh registered repository indexes using 'apk update' (Alpine) or 'apt-get update' (Debian). This tool synchronizes the local package database with remote repositories, ensuring you have access to the latest package information and versions. Use this before installing packages to get the most up-to-date package lists.
Search for packages in repositories using 'apk search --exact --all' (Alpine) or 'apt-cache search' (Debian). This tool queries package repositories to find packages matching your search query and returns information about available packages including their names, versions, and descriptions.
Output schemas are not documented. We cannot determine what fields list_installed_packages, search_packages, or install_package return. LLMs cannot plan downstream operations or extract necessary IDs.
Tools performing state mutations (install_package, install_package_with_version, refresh_repositories) are classified as WRITE but lack tool annotations (destructiveHint in schema). MCP 2026-07-28 requires structured annotations for LLM safety.
No error handling guidance in tool descriptions. Descriptions don't explain what LLM should do if package not found, version mismatch, permission denied, or network failure occurs. This violates recovery-guide pattern.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 63 | <=2025-11-25 | v2 |
| 2026-03-09 | C | 63 | - | v1 |
refresh_repositories has an empty schema (properties={}, required=[]) which is degenerate. Unclear if this is intentional or incomplete definition.
list_installed_packages and search_packages return potentially large result sets (all installed packages, or all search results) but no pagination parameters (page, offset, limit) or result limits documented. Context window risks.
Parameter descriptions reference behavior not formalized in schema (e.g., 'If no exact match is found, the tool will return a list of available versions' in install_package_with_version). Output schema needed to document this.