denpex-mcp 0.2.16 → 0.2.18

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.
Files changed (3) hide show
  1. package/README.md +17 -15
  2. package/dist/index.js +7920 -3717
  3. package/package.json +57 -55
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Denpex MCP server
2
2
 
3
- Diagnose GPU/ML training failures — CUDA OOM, NCCL timeouts, Xid faults, NaN loss,
4
- checkpoint corruption — **without leaving your AI tool**. Ask Claude Desktop, Cursor,
3
+ Diagnose GPU/ML training failures. CUDA OOM, NCCL timeouts, Xid faults, NaN loss,
4
+ checkpoint corruption, **without leaving your AI tool**. Ask Claude Desktop, Cursor,
5
5
  or Claude Code to *"diagnose the crash in `./logs/train.err`"* and Denpex reads the log
6
6
  straight off disk and hands back the root cause and the fix.
7
7
 
8
8
  - 🩺 **Root cause + escalating fix** (primary → fallback → emergency), verification command, and prevention.
9
- - 🧭 **Find the culprit rank** in a distributed/NCCL hang, and route GPU Xid faults to the right node action — offline, instantly.
9
+ - 🧭 **Find the culprit rank** in a distributed/NCCL hang, and route GPU Xid faults to the right node action, offline, instantly.
10
10
  - 📚 **Bundled failure encyclopedia** (500+ documented classes) searchable by error code or symptom.
11
11
  - 🔒 **Zero-egress mode** (`DENPEX_LOCAL=1`): diagnose entirely on-host, nothing leaves the machine. Plus client-side PII scrubbing even in cloud mode.
12
12
 
@@ -18,10 +18,12 @@ straight off disk and hands back the root cause and the fix.
18
18
 
19
19
  Sign in at **[denpex.com/dashboard](https://denpex.com/dashboard) → API Keys** and create a key (`dpx_…`).
20
20
  The key unlocks authenticated cloud diagnosis, your diagnosis history, quota, and fleet
21
- incidents. *Without a key, `diagnose_crash` uses the same canonical anonymous engine as
22
- the homepage's three free diagnoses. Anonymous clarifications reuse the server-issued,
23
- log-bound refinement token automatically (or accept it explicitly after an MCP restart),
24
- so answering Denpex does not spend another diagnosis and cannot be forged with a public
21
+ incidents. *Without a key, the first `diagnose_crash` cloud run is frictionless and uses
22
+ the same canonical anonymous engine as the homepage. Later new anonymous diagnoses need
23
+ the browser check at [denpex.com](https://denpex.com/#instant-diagnosis), which MCP cannot
24
+ complete, or an API key. Anonymous clarifications reuse the server-issued, log-bound
25
+ refinement token automatically (or accept it explicitly after an MCP restart), so
26
+ answering Denpex does not spend another diagnosis and cannot be forged with a public
25
27
  boolean header. Set `DENPEX_LOCAL=1` explicitly for zero-egress;
26
28
  `lookup_failure` and `analyze_cascade` remain available from the bundled offline data.*
27
29
 
@@ -75,7 +77,7 @@ claude mcp add denpex -e DENPEX_API_KEY=dpx_your_key_here -- npx -y denpex-mcp
75
77
 
76
78
  ### 3. Use it
77
79
 
78
- > "My training job crashed — diagnose the log at `./logs/rank0.err`."
80
+ > "My training job crashed, diagnose the log at `./logs/rank0.err`."
79
81
  > "What does Xid 79 mean?"
80
82
  > "This 64-GPU run is hung. Which rank failed first?" *(→ `analyze_cascade`)*
81
83
 
@@ -85,7 +87,7 @@ Or pick the **`diagnose-training-crash`** prompt your client surfaces.
85
87
 
86
88
  ## Offline / air-gapped mode
87
89
 
88
- Diagnose entirely on-host — no network, no logs leaving the cluster. Ideal for VPCs,
90
+ Diagnose entirely on-host, no network, no logs leaving the cluster. Ideal for VPCs,
89
91
  secure data centers, and privacy-sensitive labs. Add `DENPEX_LOCAL=1`:
90
92
 
91
93
  ```json
@@ -115,20 +117,20 @@ are unavailable offline.
115
117
  | `recent_diagnoses` | Recall your recent diagnoses and their fixes. | API key |
116
118
  | `ask_followup` | Conversational follow-up on a diagnosis. | Team plan / trial |
117
119
  | `check_versions` | Flag known-bad CUDA/PyTorch/NCCL/driver combos. | Team plan / trial |
118
- | `compare_runs` | "It worked yesterday" — isolate what changed between a good run and a bad one. | Team plan / trial |
120
+ | `compare_runs` | "It worked yesterday", isolate what changed between a good run and a bad one. | Team plan / trial |
119
121
  | `diff_environments` | Diff torch/CUDA/NCCL/driver versions and env vars between two runs. | Team plan / trial |
120
122
  | `validate_checkpoint` | Find the newest checkpoint that is actually safe to resume from. | Team plan / trial |
121
- | `preflight_check` | "Is this cluster safe to launch on?" — blockers before you burn GPU-hours. | Scale plan |
123
+ | `preflight_check` | "Is this cluster safe to launch on?", blockers before you burn GPU-hours. | Scale plan |
122
124
  | `node_health` | Score every monitored node, worst first. | Scale plan |
123
125
  | `predict_failures` | Nodes trending toward a failure that has not happened yet. | Scale plan |
124
126
  | `list_incidents` | Incidents Denpex's monitor caught & escalated on your fleet. | Scale plan |
125
127
 
126
- Gated tools degrade gracefully — they tell you exactly which plan unlocks them and which
128
+ Gated tools degrade gracefully, they tell you exactly which plan unlocks them and which
127
129
  tools work on your current plan. The failure encyclopedia is also exposed as resources at
128
130
  `denpex://failures/{slug}`.
129
131
 
130
132
  **Structured output.** Every tool above returns `structuredContent` alongside its
131
- markdown, validated against a declared output schema — so an agent branches on
133
+ markdown, validated against a declared output schema, so an agent branches on
132
134
  `confidenceBand === "low"` or iterates `rankedHypotheses` instead of regexing prose.
133
135
  Two fields deserve attention when you write the agent loop:
134
136
 
@@ -145,7 +147,7 @@ Two fields deserve attention when you write the agent loop:
145
147
 
146
148
  | Variable | Default | Purpose |
147
149
  |----------|---------|---------|
148
- | `DENPEX_API_KEY` | — | Your `dpx_…` key. Enables cloud tools. |
150
+ | `DENPEX_API_KEY` |, | Your `dpx_…` key. Enables cloud tools. |
149
151
  | `DENPEX_API_URL` | `https://api.denpex.com` | Override the API base (self-host / staging). |
150
152
  | `DENPEX_LOCAL` | `0` | `1` → diagnose entirely on-host (zero egress). |
151
153
  | `DENPEX_PRIVACY` | `off` | `mask` / `strict` → scrub PII from logs **before** they leave the machine. |
@@ -163,4 +165,4 @@ npm run inspector # interactive protocol inspector (MCP Inspector)
163
165
 
164
166
  The offline corpus (`src/data/denpex_patterns.json`) and canonical engine
165
167
  (`src/offline/canonical-engine.mjs`) are generated from the repo's single source of truth
166
- during `npm run build` — never hand-edit either artifact.
168
+ during `npm run build`, never hand-edit either artifact.