mcpbeat Sign in

Dell AI Agent Skill

Skill for interacting with Dell Enterprise Hub (DEH) - discovering models, exploring hardware platforms, generating deployment snippets, etc.

3k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
11
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/huggingface/dell-ai --skill dell-ai

The instruction itself

21 sections, as written by the author

Dell AI

dell-ai interacts with the Dell Enterprise Hub (DEH) — discovering models, exploring hardware platforms, generating deployment snippets, managing app catalog entries, checking system compatibility, etc.

When to use

  • User wants to find AI models available on Dell Enterprise Hub
  • User wants to find AI models available on DEH for their hardware platform
  • User needs to check which Dell hardware platforms support a given model
  • User wants to generate Docker or Kubernetes deployment commands for a model and then run it.
  • User wants a goodput-optimized deployment snippet (balanced, long-context, high-concurrency, performance).
  • User wants to deploy a model or app directly onto the local node (not just generate a snippet)
  • User wants to tear down / undeploy a running deployment
  • User wants to check the status of deployed endpoints, checkpoints, and running containers/deployments
  • User wants to explore or deploy applications from the Dell app catalog
  • User needs to check system compatibility with Dell AI platforms
  • User asks about Dell AI, Dell Enterprise Hub, or DEH
  • User wants to authenticate with Dell AI using a Hugging Face token
  • User wants to manage local/global environment variables for dell-ai
  • User wants to check their system info or check system compatibility against Dell AI validated configs

Installation

uv pip install dell-ai

Authentication

Uses a Hugging Face token. Auto-loads from HF token cache, or accepts one directly.

from dell_ai import DellAIClient

client = DellAIClient()                        # Uses cached HF token
client = DellAIClient(token="your_hf_token")   # Or explicit token

client.is_authenticated()  # Returns bool
client.get_user_info()     # Returns dict with name, email, orgs, etc.

Models

Search and list models

list_models returns List[str] of IDs. search_models accepts the same filters but returns full Model objects.

# List model IDs (all filters are optional and combinable)
models = client.list_models(
    query="llama",                    # Search name/description
    multimodal=True,                  # True for multimodal, False for text-only
    min_size=7000,                    # Min params in millions
    max_size=70000,                   # Max params in millions
    license_filter="apache",          # License substring match
    platform_id="xe9680-nvidia-h200", # Only models compatible with this platform
)

# Full Model objects with same filters
results = client.search_models(query="llama", multimodal=True)
# Model fields: repo_name, description, license, size, is_multimodal,
#               has_system_prompt, creator_type, status, configs_deploy

Get model details and compatible platforms

# Returns Model object
model = client.get_model("meta-llama/Llama-4-Maverick-17B-128E-Instruct")

platforms = client.get_compatible_platforms("google/gemma-3-27b-it")
# Returns List[PlatformCompatibility] with platform_id and configs (List[ModelConfig])
for p in platforms:
    print(p.platform_id, [c.model_dump() for c in p.configs])

Check model access (gated repos)

# Returns True, or raises GatedRepoAccessError / AuthenticationError
client.check_model_access("meta-llama/Llama-4-Maverick-17B-128E-Instruct")

Get model Deployment Snippets

Automatically validates model access and model-platform compatibility.

Provide either num_gpus (manual sizing) or goodput (server-optimized) —

the two are mutually exclusive, and exactly one is required.

# Basic deployment snippet with manual GPU sizing
snippet = client.get_deployment_snippet(
    model_id="meta-llama/Llama-4-Maverick-17B-128E-Instruct",
    platform_id="xe9680-nvidia-h200",
    engine="docker",       # "docker" or "kubernetes"
    num_gpus=8,
    num_replicas=1,
)
print(snippet)  # Ready-to-use docker command or k8s manifest

# Goodput-optimized: DEH returns the GPU count and optimized params for the
# scenario. Omit num_gpus when using goodput.
snippet = client.get_deployment_snippet(
    model_id="nvidia/MiniMax-M2.7-NVFP4",
    platform_id="xe9680-nvidia-h200",
    engine="docker",
    goodput="balanced",    # balanced | long-context | high-concurrency | performance
)

Not every (model, platform, scenario) combination has an optimized config; the

API is the source of truth and raises ResourceNotFoundError with a message

like No optimized config for "balanced" scenario on this SKU. when it doesn't.

Goodput scenarios reference data

Global, static reference data: scenario definitions, SLO field docs, and SLO

targets per SKU. Cached on disk after the first call.

ref = client.get_goodput_scenarios()
# GoodputReference fields:
#   scenarios            -> List[Scenario] (id, label, description)
#   slo_field_descriptions -> Dict[str, str]
#   slos_by_sku          -> Dict[SkuId, Dict[scenario, Slo]] (sparse)
# Slo fields: max_model_context, virtual_users, input_tokens [min,max], output_tokens [min,max]

slo = ref.slos_by_sku.get("xe9680-nvidia-h100", {}).get("balanced")

Platforms

platforms = client.list_platforms()  # Returns List[str] of SKU IDs

platform = client.get_platform("xe9680-nvidia-h200")
# Fields: id, name, platform_type, vendor, accelerator_type, accelerator,
#   gpuram, gpuinterconnect, totalgpucount, product_name

sys_infos = client.get_platform_system_info("xe9680-nvidia-h200")  # List[SystemInfo]

Applications

List and inspect apps

apps = client.list_apps()  # Returns List[str] of app names

app = client.get_app("openwebui")
# App fields: id, name, license, description, features, instructions,
#   tags, recommendedModels, components

Explore configurable parameters

for component in app.components:
    for param in component.config:
        print(f"  {param.name}: {param.helmPath} ({param.type}), default={param.default}")
    for secret in component.secrets:
        print(f"  [secret] {secret.name}: {secret.helmPath}")

Generate app deployment snippet

Each config item requires: helmPath, type ("string", "boolean", "number", or "json"), and value.

config = [
    {"helmPath": "main.config.storageClassName", "type": "string", "value": "gp2"},
    {"helmPath": "main.config.enableOpenAI", "type": "boolean", "value": True},
]
snippet = client.get_app_snippet("openwebui", config)
print(snippet)  # Helm install command

Deploying models and applications (local execution)

Beyond generating snippets, dell-ai can execute them on the local node using

the locally available engine: docker (Docker CLI), kubernetes (`kubectl

apply`), or Helm (apps). The relevant tool must be installed and configured.

Deployments run detached (background) by default. For Docker, dell-ai

automatically:

  • converts interactive flags (-it) to detached (-d) and captures the

container ID and inferred endpoint URL,

  • remaps the host port to a free one if the snippet's port is already in use,
  • allocates and pins free GPU indices.

On success, metadata (endpoint, engine, container/deployment ID, assigned GPUs)

is written to the deployment registry (see below).

Provide either num_gpus or goodput — mutually exclusive, exactly one

required (same rule as snippet generation).

# Deploy a model on the local node
result = client.deploy_model(
    model_id="meta-llama/Llama-4-Maverick-17B-128E-Instruct",
    platform_id="xe9680-nvidia-h200",
    engine="docker",              # "docker" or "kubernetes"
    num_gpus=8,                   # or goodput="balanced" (omit num_gpus)
    num_replicas=1,
    detach=True,                  # False = run in foreground
    # local_dir="/data/weights",           # mount local weights (Docker only)
    # hf_cache_dir="~/.cache/huggingface",  # or reuse an HF cache (mutually exclusive)
)
# result dict: success(bool), engine, endpoint, container_id | k8s_deployment, error?

# Deploy an app (Helm)
result = client.deploy_app(app_id="openwebui", config=[...], detach=True)

deploy_model / deploy_app do not raise on runtime failure — they return

{"success": False, "error": ...}. They still raise ValidationError,

ResourceNotFoundError, or GatedRepoAccessError for bad parameters or access.

CLI equivalents:

# Manual GPU sizing / goodput
dell-ai models deploy -m <model_id> -p <platform_id> -e docker --gpus 8
dell-ai models deploy -m <model_id> -p <platform_id> -e docker --goodput balanced

# Kubernetes / foreground
dell-ai models deploy -m <model_id> -p <platform_id> -e kubernetes --gpus 8
dell-ai models deploy -m <model_id> -p <platform_id> -e docker --no-detach

# Serve local weights instead of downloading (Docker only; path must exist; mutually exclusive)
dell-ai models deploy -m <model_id> -p <platform_id> -e docker --gpus 8 --local-dir /data/weights
dell-ai models deploy -m <model_id> -p <platform_id> -e docker --gpus 8 --hf-cache-dir ~/.cache/huggingface

# App (Helm)
dell-ai apps deploy openwebui --config '{"config":[{"helmPath":"main.config.storageClassName","type":"string","value":"gp2"}]}'

Deployment registry and teardown

Successful deployments are tracked in a registry so they can be listed,

inspected, and torn down. Two scopes:

  • Local.dell-ai-deployments.json (current working directory)
  • Global~/.config/dell-ai/deployments.json

Each entry is keyed by a deployment ID (defaults to the model ID; additional

instances of the same model are suffixed, e.g. org/model_1, each with its own

host port and GPU indices). Running DEH Docker containers are auto-discovered and

added; entries whose containers are gone are pruned automatically.

from dell_ai import deployments

deployments.list_deployments()             # dict keyed by deployment ID
deployments.get_deployment("org/model_1")    # single entry or None
deployments.delete_deployment("org/model_1") # remove registry entry (no container stop)

Tear down a deployment — stops the Docker container / Kubernetes deployment and

removes its registry entry:

dell-ai models undeploy -d <deployment_id>

undeploy acts on one deployment at a time. Always run

dell-ai status first to see if the target deployment ID exists.

Environment variables

dell-ai persists configuration as environment variables in two scopes,

auto-loaded into os.environ on CLI startup and DellAIClient init. Resolution

precedence: shell env → local → global.

  • Local.dell-ai-env.json (current working directory)
  • Global~/.config/dell-ai/env.json
from dell_ai import env

env.set_env_var("DELL_AI_CHECKPOINT", "/data/ckpt", is_global=False)
env.get_env_var("DELL_AI_CHECKPOINT")
env.list_env_vars()   # is_global: None=combined, True=global only, False=local only
env.delete_env_var("DELL_AI_CHECKPOINT", is_global=False)
dell-ai env set DELL_AI_CHECKPOINT /data/ckpt   # add --global for the global scope
dell-ai env get DELL_AI_CHECKPOINT
dell-ai env list                                # --local / --global to scope
dell-ai env delete DELL_AI_CHECKPOINT           # --global to delete from global

Checking deployment status

dell-ai status          # active deployments, checkpoints, running Docker/K8s
dell-ai status --clean  # also remove exited containers and stopped K8s deployments

Reports:

  • Active deployments — reads the deployment registry, probes each endpoint

(online + response time); auto-discovers running DEH containers.

  • Checkpoints — existence, type, and size of paths in DELL_AI_*_CHECKPOINT

environment variables.

  • Active Docker/K8s — running DEH containers and Kubernetes deployments.

Docker/Kubernetes scanning is skipped gracefully when docker / kubectl are

not available on the node.

System Utilities (CLI only, Linux)

dell-ai utils describe-system              # Get system info as JSON
dell-ai utils describe-system -o out.json  # Save to file
dell-ai utils describe-system | jq         # Pretty-print
dell-ai utils check-system                 # Check compatibility against Dell AI validated configs

Requires: lscpu, lspci, lsblk, dmidecode. For GPUs: nvidia-smi, nvidia-ctk. For K8s: kubectl.

Exceptions

All in dell_ai.exceptions:

  • AuthenticationError — Invalid or missing token
  • GatedRepoAccessError — No access to a gated model repository
  • ResourceNotFoundError — Model, platform, or app not found
  • ValidationError — Invalid parameters (may include valid_values)
  • APIError — General API errors

How to use it

Copy the folder

Take huggingface/dell-ai from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip, uv. Without those the skill loads but fails at the first command.