Skip to main content
Glama

mark_as_dependency

Mark Arch Linux packages as dependencies to enable automatic orphan removal when no other packages depend on them, helping maintain a clean system.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
package_nameYesName of the package to mark as dependency

Implementation Reference

  • Core handler function that executes the pacman command to mark a package as a dependency, with error handling and Arch Linux checks.
    async def mark_as_dependency(package_name: str) -> Dict[str, Any]: """ Mark a package as a dependency. Args: package_name: Name of package to mark Returns: Dict with operation status """ if not IS_ARCH: return create_error_response( "NotSupported", "Package marking is only available on Arch Linux" ) if not check_command_exists("pacman"): return create_error_response( "CommandNotFound", "pacman command not found" ) logger.info(f"Marking {package_name} as dependency") try: exit_code, stdout, stderr = await run_command( ["sudo", "pacman", "-D", "--asdeps", package_name], timeout=10, check=False, skip_sudo_check=True ) if exit_code != 0: return create_error_response( "CommandError", f"Failed to mark package as dependency: {stderr}" ) logger.info(f"Successfully marked {package_name} as dependency") return { "success": True, "package": package_name, "marked_as": "dependency" } except Exception as e: logger.error(f"Failed to mark package: {e}") return create_error_response( "CommandError", f"Failed to mark package as dependency: {str(e)}" )
  • MCP tool registration in list_tools(), defining the tool name, description, and input schema (package_name: str).
    Tool( name="mark_as_dependency", 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.", inputSchema={ "type": "object", "properties": { "package_name": { "type": "string", "description": "Name of the package to mark as dependency" } }, "required": ["package_name"] } ),
  • Dispatch logic in call_tool() that validates platform and invokes the mark_as_dependency handler with arguments.
    elif name == "mark_as_dependency": if not IS_ARCH: return [TextContent(type="text", text="Error: mark_as_dependency only available on Arch Linux systems")] package_name = arguments["package_name"] result = await mark_as_dependency(package_name) return [TextContent(type="text", text=json.dumps(result, indent=2))]
  • ToolMetadata schema defining category, platform, permissions, workflow, and related tools for discovery and usage.
    "mark_as_dependency": ToolMetadata( name="mark_as_dependency", category="maintenance", platform="arch", permission="write", workflow="organize", related_tools=["list_explicit_packages", "list_orphan_packages"], prerequisite_tools=[]

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nihalxkumar/arch-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server