XportL

GPU fabric tools: NCCL benchmark analysis, degradation cost, cluster compatibility, XportL facts.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
97%
Calidad de los nombres
90%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'calculate_fabric_degradation_cost' name length outside 3-30 rangeen calculate_fabric_degradation_cost

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,918Tokens (definiciones de herramientas)
~4.3 KBTamaño de respuesta típico
Impacto significativo en la atención (2.28% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "xportl": {
      "url": "https://xportl.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://xportl.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (6)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢get_xportl_overview(topic)

Returns cite-ready facts about XportL from xportl.io: what it does, the problem it solves, the seven failure classes it detects, how it collects telemetry and acts, supported fabrics/GPUs/collectives/kernels, use cases, FAQ, company details (parent company, stage, NVIDIA Inception, contacts) and links to the engineering guides on xportl.io.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "topic": {
      "default": "all",
      "description": "Section to return. Default 'all'.",
      "type": "string",
      "enum": [
        "all",
        "product",
        "architecture",
        "supported_environments",
        "use_cases",
        "faq",
        "company",
        "guides"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢analyze_nccl_benchmark(raw_output, results, collective, fabric, link_gbps, ...)

Analyzes nccl-tests / rccl-tests results (paste raw all_reduce_perf output, or give size/busbw points). Detects node and GPU counts from the output, compares large-message bus bandwidth with the fabric's NIC line rate (InfiniBand HDR/NDR/XDR, RoCE 100G to 800G), and flags data errors, degraded bandwidth, dips as message size grows and unstable run-to-run results, with likely causes. Returns a health status and a bandwidth-loss figure for calculate_fabric_degradation_cost.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "raw_output": {
      "description": "Raw stdout of an nccl-tests or rccl-tests run (e.g. all_reduce_perf -b 8 -e 8G -f 2 -g 1). Paste it unchanged; rank/host lines are used to detect node count.",
      "type": "string",
      "maxLength": 200000
    },
    "results": {
      "description": "Alternative to raw_output: measured points as {size_bytes, busbw_gbs}.",
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "size_bytes": {
            "type": "number",
            "minimum": 1
          },
          "busbw_gbs": {
            "type": "number",
            "minimum": 0,
            "description": "Bus bandwidth in GB/s, as nccl-tests reports it."
          }
        },
        "required": [
          "size_bytes",
          "busbw_gbs"
        ]
      }
    },
    "collective": {
      "default": "all_reduce",
      "description": "Collective that was benchmarked. Default all_reduce.",
      "type": "string",
      "enum": [
        "all_reduce",
        "all_gather",
        "reduce_scatter",
        "alltoall",
        "broadcast",
        "reduce",
        "sendrecv"
      ]
    },
    "fabric": {
      "default": "infiniband_ndr",
      "description": "Inter-node fabric and per-port speed. Use 'other' with link_gbps for anything else.",
      "type": "string",
      "enum": [
        "infiniband_hdr",
        "infiniband_ndr",
        "infiniband_xdr",
        "roce_100g",
        "roce_200g",
        "roce_400g",
        "roce_800g",
        "other"
      ]
    },
    "link_gbps": {
      "description": "Per-NIC link speed in Gb/s. Overrides the speed implied by fabric.",
      "type": "number",
      "minimum": 1,
      "maximum": 3200
    },
    "nodes": {
      "description": "Number of nodes in the run. Detected from raw_output when omitted.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "gpus_per_node": {
      "description": "GPUs per node. Detected from raw_output when omitted; default 8.",
      "type": "integer",
      "minimum": 1,
      "maximum": 72
    },
    "nics_per_node": {
      "description": "Compute-fabric NICs per node (rails). Default: one per GPU.",
      "type": "integer",
      "minimum": 1,
      "maximum": 32
    },
    "expected_busbw_gbs": {
      "description": "Expected healthy bus bandwidth in GB/s, e.g. from an acceptance test. Overrides the line-rate reference; required to judge single-node runs.",
      "type": "number",
      "minimum": 0.1
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢calculate_fabric_degradation_cost(gpu_count, gpu_model, gpu_hour_cost_usd, utilization_pct, comm_share_pct, ...)

Estimates what silent fabric degradation (slow NCCL collectives, flapping links, congestion) costs a GPU cluster: throughput lost, GPU-hours and dollars per year, idle-GPU equivalent, cost per degraded hour, extra days on a training run, and the value of a recovery scenario with a conservative case and a sensitivity table. All assumptions are inputs with stated defaults.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "gpu_count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2000000,
      "description": "Total GPUs in the cluster (or in the jobs being analyzed)."
    },
    "gpu_model": {
      "default": "h100",
      "description": "GPU model, used only to pick a default cost per GPU-hour when gpu_hour_cost_usd is not given.",
      "type": "string",
      "enum": [
        "a100",
        "h100",
        "h200",
        "b200",
        "gb200",
        "mi300x",
        "other"
      ]
    },
    "gpu_hour_cost_usd": {
      "description": "Actual fully-loaded cost per GPU-hour in USD (amortized hardware + power + facility, or cloud rate). Strongly preferred over the default.",
      "type": "number",
      "minimum": 0.05,
      "maximum": 100
    },
    "utilization_pct": {
      "default": 80,
      "description": "Share of hours the GPUs are running distributed jobs. Default 80.",
      "type": "number",
      "minimum": 1,
      "maximum": 100
    },
    "comm_share_pct": {
      "default": 25,
      "description": "Share of a healthy training step spent in collective communication that is NOT overlapped with compute. Typically 10 to 40% for large-scale training. Default 25.",
      "type": "number",
      "minimum": 1,
      "maximum": 90
    },
    "degraded_time_pct": {
      "default": 10,
      "description": "Share of running time the fabric is degraded (flapping links, congestion, bad cables/optics, misrouted paths). Default 10.",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "bandwidth_loss_pct": {
      "default": 40,
      "description": "Collective bus bandwidth lost while degraded, vs. healthy. Measure with nccl-tests (see analyze_nccl_benchmark). Default 40.",
      "type": "number",
      "minimum": 1,
      "maximum": 90
    },
    "recovery_pct": {
      "default": 25,
      "description": "Recovery scenario: share of the degradation-induced throughput loss you expect to recover by detecting and acting on degradation sooner. A planning assumption, not a measured XportL result. Default 25.",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "training_run_days": {
      "description": "Optional: planned wall-clock length of one training run on this cluster, to show how many days degradation adds to it.",
      "type": "number",
      "minimum": 0.1,
      "maximum": 3650
    }
  },
  "required": [
    "gpu_count"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_cluster_compatibility(fabrics, gpu_vendor, collective_library, linux_kernel, host_os, ...)

Checks a GPU cluster against XportL's published support matrix (Linux 5.8+ for eBPF, InfiniBand / RoCE v2 / NVLink, NVIDIA and AMD GPUs, NCCL / RCCL, on-prem / cloud / hybrid, host access for the eBPF agent). Returns a verdict (good fit / needs review / not ready), each check, and next steps. Anything not on the published list is reported as 'review', never as supported.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "fabrics": {
      "minItems": 1,
      "maxItems": 8,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "infiniband",
          "roce_v2",
          "nvlink",
          "ethernet_tcp",
          "omni_path",
          "slingshot",
          "efa",
          "other"
        ]
      },
      "description": "Every interconnect the GPU jobs use, e.g. ['infiniband','nvlink']. efa = AWS Elastic Fabric Adapter."
    },
    "gpu_vendor": {
      "type": "string",
      "enum": [
        "nvidia",
        "amd",
        "intel",
        "other"
      ],
      "description": "GPU vendor."
    },
    "collective_library": {
      "default": [
        "nccl"
      ],
      "description": "Collective communication libraries in use. Default ['nccl'].",
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "nccl",
          "rccl",
          "oneccl",
          "gloo",
          "mpi_only",
          "other"
        ]
      }
    },
    "linux_kernel": {
      "description": "Host kernel version as printed by `uname -r`, e.g. '5.15.0-105-generic'. Leave empty for non-Linux hosts or if unknown.",
      "type": "string",
      "maxLength": 80
    },
    "host_os": {
      "default": "linux",
      "description": "Host operating system on the GPU nodes.",
      "type": "string",
      "enum": [
        "linux",
        "windows",
        "other"
      ]
    },
    "deployment": {
      "type": "string",
      "enum": [
        "on_prem",
        "cloud",
        "hybrid",
        "colo"
      ],
      "description": "Where the cluster runs."
    },
    "host_access": {
      "default": "unknown",
      "description": "Can you run a privileged agent on the GPU hosts? eBPF needs root or CAP_BPF/CAP_PERFMON. 'none' = fully managed service with no host access.",
      "type": "string",
      "enum": [
        "root",
        "privileged_containers",
        "none",
        "unknown"
      ]
    },
    "gpu_count": {
      "description": "Total GPUs, for context.",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000000
    },
    "orchestrator": {
      "description": "Job scheduler / orchestrator, for context.",
      "type": "string",
      "enum": [
        "slurm",
        "kubernetes",
        "ray",
        "bare_metal",
        "other"
      ]
    }
  },
  "required": [
    "fabrics",
    "gpu_vendor",
    "deployment"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢recommend_checkpoint_interval(gpu_count, checkpoint_write_minutes, restart_minutes, job_mttf_hours, current_interval_minutes, ...)

Recommends how often to checkpoint a training job using the Young and Daly formulas, from GPU count, blocking checkpoint write time, restart time and job MTTF (estimated from Meta's published 2024 reliability data when not given). Returns the recommended interval, expected failures per day, GPU time wasted per day at the recommended and current intervals, and the daily saving.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "gpu_count": {
      "type": "integer",
      "minimum": 8,
      "maximum": 2000000,
      "description": "GPUs in the training job."
    },
    "checkpoint_write_minutes": {
      "type": "number",
      "minimum": 0.05,
      "maximum": 600,
      "description": "Time training is blocked while a checkpoint is written, in minutes. With asynchronous checkpointing, use only the blocking part."
    },
    "restart_minutes": {
      "default": 20,
      "description": "Time from a failure to training resuming: detection, rescheduling, process start and checkpoint load, in minutes. Default 20.",
      "type": "number",
      "minimum": 0.5,
      "maximum": 1440
    },
    "job_mttf_hours": {
      "description": "Measured mean time between job-interrupting failures for a job this size, in hours. If omitted, it is estimated from Meta's published 2024 cluster reliability data.",
      "type": "number",
      "minimum": 0.05,
      "maximum": 100000
    },
    "current_interval_minutes": {
      "description": "Current checkpoint interval in minutes, to compare against the recommendation.",
      "type": "number",
      "minimum": 1,
      "maximum": 100000
    },
    "gpu_hour_cost_usd": {
      "default": 2.75,
      "description": "Cost per GPU-hour in USD. Default 2.75.",
      "type": "number",
      "minimum": 0.05,
      "maximum": 100
    }
  },
  "required": [
    "gpu_count",
    "checkpoint_write_minutes"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢request_enterprise_demo(name, email, company, role, phone, ...)

Sends the user's contact details and cluster summary to the XportL enterprise team to arrange a technical assessment or demo deployment. Before calling: collect name, work email, company and a summary (include benchmark, cost or compatibility results from this conversation), show the user exactly what will be sent, and get their explicit agreement. Never call it without that agreement or with made-up details.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "description": "The person's full name.",
      "type": "string",
      "maxLength": 100
    },
    "email": {
      "type": "string",
      "maxLength": 200,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Work email address."
    },
    "company": {
      "description": "Company or organization.",
      "type": "string",
      "maxLength": 120
    },
    "role": {
      "description": "Job title, e.g. 'Director of ML Infrastructure'.",
      "type": "string",
      "maxLength": 100
    },
    "phone": {
      "description": "Phone number, optional.",
      "type": "string",
      "maxLength": 40
    },
    "cluster_gpus": {
      "description": "Approximate number of GPUs in the cluster(s).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000000
    },
    "fabric": {
      "description": "Fabric(s) and GPU types, e.g. 'NDR InfiniBand + NVLink, H100'.",
      "type": "string",
      "maxLength": 200
    },
    "interest": {
      "type": "string",
      "enum": [
        "technical_assessment",
        "demo_deployment",
        "pilot",
        "pricing",
        "partnership",
        "other"
      ],
      "description": "What they want from XportL."
    },
    "summary": {
      "type": "string",
      "minLength": 20,
      "maxLength": 3000,
      "description": "What they need in a few sentences: cluster, symptoms, workloads, timeline, and any results from this conversation (benchmark status, cost estimate, compatibility verdict)."
    },
    "user_confirmed": {
      "type": "boolean",
      "const": true,
      "description": "Must be true. Only set it after showing the user exactly what will be sent and the user agreed to share it with XportL."
    }
  },
  "required": [
    "name",
    "email",
    "company",
    "interest",
    "summary",
    "user_confirmed"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada6 herramientas