@debugbundle/mcp 1.5.4 → 1.6.1

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.
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @debugbundle/mcp
2
2
 
3
- Model Context Protocol server for DebugBundle.
3
+ MCP server for production debugging bundles and incident workflows for AI agents. DebugBundle lets agents inspect incidents, deterministic bundles, reproductions, probes, hosted health checks, alerts, webhooks, projects, and setup state through the same management surface as the API and CLI.
4
4
 
5
5
  ## Install
6
6
 
7
- Run directly with npm:
7
+ Run the stdio server directly with npm:
8
8
 
9
9
  ```bash
10
10
  npx @debugbundle/mcp
@@ -19,7 +19,7 @@ debugbundle-mcp
19
19
 
20
20
  Supported Node.js versions: 22.x through 26.x.
21
21
 
22
- ## MCP Client Configuration
22
+ ## MCP Client Config
23
23
 
24
24
  ```json
25
25
  {
@@ -32,11 +32,55 @@ Supported Node.js versions: 22.x through 26.x.
32
32
  }
33
33
  ```
34
34
 
35
- The server uses stdio transport and exposes the same DebugBundle incident, incident-context, bundle, hosted health-check, webhook, alert, token, project, member, billing, GitHub, probe, and diagnostic tools documented at https://debugbundle.com/docs/mcp. Hosted verification supports the active V1 proof path through `verify_cloud` with `trigger5xx: true` and the configured-client-error proof path with `trigger4xxStatus: 403`, incident triage can start with the one-call `get_incident_context` tool, hosted health-check triage can start with `list_health_checks`, and `doctor` accepts `privacy: true` to return the same deterministic redaction preview as `debugbundle doctor --privacy`.
35
+ Use `npx -y @debugbundle/mcp` in clients that require noninteractive package execution.
36
+
37
+ ## Install Matrix
38
+
39
+ | Environment | Recommended path | Notes |
40
+ | --- | --- | --- |
41
+ | Generic local MCP client | `npx @debugbundle/mcp` | stdio transport |
42
+ | Claude Desktop local MCP | local MCP server config | uses local machine auth/config |
43
+ | Cursor | MCP config with `npx @debugbundle/mcp` | stdio transport |
44
+ | VS Code / GitHub MCP Registry | `com.debugbundle/mcp` | official registry metadata |
45
+ | OpenClaw / ClawHub | DebugBundle skill plus MCP config | use the published skill for workflow guidance |
46
+ | CI/headless agents | `DEBUGBUNDLE_MEMBER_TOKEN` | never use a project token |
47
+ | Self-hosted DebugBundle | `DEBUGBUNDLE_API_URL` plus member auth | points the server at your API base URL |
48
+
49
+ DebugBundle does not expose a hosted remote MCP endpoint today; this package is the local stdio path.
36
50
 
37
51
  ## Authentication
38
52
 
39
- Local use reuses CLI auth state from `~/.debugbundle/auth.json` when available. Headless or marketplace-managed clients can set `DEBUGBUNDLE_MEMBER_TOKEN` in the MCP server environment. Individual tool calls can still pass `bearerToken` explicitly when needed.
53
+ | Mode | Use | Notes |
54
+ | --- | --- | --- |
55
+ | CLI auth state | Local developer machines | Reuses `~/.debugbundle/auth.json` when available. |
56
+ | `DEBUGBUNDLE_MEMBER_TOKEN` | Headless or marketplace-managed clients | Member tokens are for CLI/API/MCP read and management operations. |
57
+ | Per-tool `bearerToken` | Explicit advanced automation | Overrides default auth for that call only. |
58
+ | Project token | SDK ingestion only | Do not use project tokens for MCP retrieval or management. |
59
+
60
+ ## What Agents Can Do
61
+
62
+ - List active incidents and fetch full incident context.
63
+ - Fetch deterministic debug bundles and reproduction artifacts.
64
+ - Inspect hosted health checks, probes, alerts, webhooks, projects, members, billing, capture policy, and GitHub automation state.
65
+ - Run local and hosted verification through tools such as `verify_local`, `verify_cloud`, `doctor`, `smoke`, and `analyze`.
66
+ - Resolve or reopen incidents after verification.
67
+
68
+ ## Links
69
+
70
+ - Docs: https://debugbundle.com/docs/mcp
71
+ - Agent workflows: https://debugbundle.com/docs/agent-workflows
72
+ - LLM index: https://debugbundle.com/llms.txt
73
+ - MCP tool schema: https://debugbundle.com/schemas/mcp-tools.json
74
+ - Official MCP Registry metadata: https://github.com/debugbundle/debugbundle/blob/main/apps/mcp/server.json
75
+
76
+ ## Security And Trust
77
+
78
+ - Official MCP Registry name: `com.debugbundle/mcp`.
79
+ - Official npm package: `@debugbundle/mcp`.
80
+ - Source repository: https://github.com/debugbundle/debugbundle/tree/main/apps/mcp
81
+ - License: AGPL-3.0-only.
82
+ - The server uses stdio transport and local process credentials. It does not include hidden hosted management auth.
83
+ - Public examples must use placeholders only; never paste real member tokens, project tokens, webhook secrets, or customer configuration into marketplace listings.
40
84
 
41
85
  ## License
42
86
 
package/dist/main.cjs CHANGED
@@ -15938,6 +15938,8 @@ var CaptureRuleSuggestionSchema = external_exports.object({
15938
15938
  confidence: CaptureRuleSuggestionConfidenceSchema,
15939
15939
  reason: external_exports.string().min(1).max(500),
15940
15940
  requires_confirmation: external_exports.boolean(),
15941
+ created_rule_id: external_exports.string().min(1).max(120).nullable().default(null),
15942
+ created_rule_enabled: external_exports.boolean().nullable().default(null),
15941
15943
  rule: CaptureRuleCreateSchema
15942
15944
  });
15943
15945
  var CaptureRuleSuggestionsResponseSchema = external_exports.object({
@@ -18059,9 +18061,12 @@ function buildSkill() {
18059
18061
  "description: >-",
18060
18062
  " Investigate runtime incidents, inspect debug bundles, generate reproductions,",
18061
18063
  " run improvement analysis, and inspect operational controls using the DebugBundle",
18062
- " CLI and local project scaffold. Use when the user reports a bug, runtime",
18063
- " failure, production incident, endpoint downtime, health-check issue, missing",
18064
- " notification, webhook delivery failure, probe request, or noisy incident.",
18064
+ " CLI and local project scaffold. Use when runtime errors/failures or captured",
18065
+ " operational evidence are relevant: production/customer-facing incidents,",
18066
+ " endpoint downtime, health-check failures, notification or webhook failures,",
18067
+ " probes, noisy captured incidents, or explicit DebugBundle artifact requests. Do not use for",
18068
+ " deterministic local source, UI, layout, copy, calculation, refactor, or",
18069
+ " test-only issues unless runtime evidence is needed.",
18065
18070
  "metadata:",
18066
18071
  " author: debugbundle",
18067
18072
  ' version: "1.0"',
@@ -18069,11 +18074,22 @@ function buildSkill() {
18069
18074
  "",
18070
18075
  "# DebugBundle",
18071
18076
  "",
18072
- "Use DebugBundle before starting a fresh bug investigation.",
18077
+ "Use DebugBundle when runtime evidence is relevant to the task.",
18078
+ "",
18079
+ "## When To Use DebugBundle",
18080
+ "",
18081
+ "Use the incident/artifact workflow when the user reports:",
18082
+ "",
18083
+ "- production or customer-facing incidents, runtime failures, regressions, broken deploys, or unknown errors likely to have generated captured events",
18084
+ "- endpoint downtime or a failing hosted health check",
18085
+ "- missing, duplicate, or failed alerts, webhooks, GitHub dispatches, probes, or other operational delivery",
18086
+ "- a specific DebugBundle incident id, bundle, reproduction, report, or noisy captured incident",
18087
+ "",
18088
+ "For deterministic local source-code, UI, layout, copy, calculation, refactor, or test-only issues, inspect source and tests first. Do not check DebugBundle incidents unless the user asks, the issue involves live runtime behavior, or captured evidence is needed.",
18073
18089
  "",
18074
18090
  "## Investigation Quickstart",
18075
18091
  "",
18076
- "When the user reports a bug, runtime failure, production incident, regression, broken deploy, or unknown error, start here before reading arbitrary source files.",
18092
+ "When the issue matches the runtime/incident criteria above, start here before reading arbitrary source files.",
18077
18093
  "",
18078
18094
  "1. Run `debugbundle doctor --json` to learn whether the project is local-only or connected and whether the local scaffold is healthy.",
18079
18095
  "2. If `debugbundle doctor --json` reports `mode=local-only`, start with `debugbundle incidents --source local --status active --json`.",
@@ -18093,7 +18109,7 @@ function buildSkill() {
18093
18109
  "",
18094
18110
  "## Core Workflow",
18095
18111
  "",
18096
- "1. Check DebugBundle incidents first to avoid re-investigating a known failure.",
18112
+ "1. For qualifying runtime/incident work, check DebugBundle incidents first to avoid re-investigating a known failure.",
18097
18113
  "2. Inspect the incident bundle and reproduction artifact before proposing a fix.",
18098
18114
  "3. Run `debugbundle analyze --type improvement --local` after local processing when you need a deterministic change plan.",
18099
18115
  "4. Apply the narrowest fix, then validate it with the repository test workflow from `.debugbundle/profile.json`.",
@@ -18148,6 +18164,7 @@ function buildSkill() {
18148
18164
  "- Availability checks: `https://debugbundle.com/docs/availability-checks`",
18149
18165
  "- Probes: `https://debugbundle.com/docs/probes`",
18150
18166
  "- Capture policy and rules: `https://debugbundle.com/docs/capture-policy`",
18167
+ "- Managing noise: `https://debugbundle.com/docs/managing-noise`",
18151
18168
  "- Alerts: `https://debugbundle.com/docs/alerts` and `https://debugbundle.com/docs/cli/alerts`",
18152
18169
  "- Webhooks: `https://debugbundle.com/docs/webhooks` and `https://debugbundle.com/docs/cli/webhooks`",
18153
18170
  "- API ingestion: `https://debugbundle.com/docs/api/ingestion`",
@@ -18276,6 +18293,7 @@ function buildCliReference() {
18276
18293
  "- Webhooks: `https://debugbundle.com/docs/webhooks`, `https://debugbundle.com/docs/cli/webhooks`, and `https://debugbundle.com/docs/api/webhooks`",
18277
18294
  "- Probes: `https://debugbundle.com/docs/probes` and `https://debugbundle.com/docs/api/probes`",
18278
18295
  "- Capture policy and rules: `https://debugbundle.com/docs/capture-policy`",
18296
+ "- Managing noise: `https://debugbundle.com/docs/managing-noise`",
18279
18297
  "- Availability checks: `https://debugbundle.com/docs/availability-checks`",
18280
18298
  "- MCP tool catalog: `https://debugbundle.com/docs/mcp/tools`",
18281
18299
  "",
@@ -18318,7 +18336,7 @@ function buildMcpReference() {
18318
18336
  return [
18319
18337
  "# DebugBundle MCP Reference",
18320
18338
  "",
18321
- "Use the same incident-first workflow through MCP when an agent is operating in connected mode.",
18339
+ "Use the same runtime-evidence-gated workflow through MCP when an agent is operating in connected mode.",
18322
18340
  "",
18323
18341
  "## Investigation Tools",
18324
18342
  "",
@@ -18332,8 +18350,9 @@ function buildMcpReference() {
18332
18350
  "- `analyze` \u2014 run local agent-oriented analysis from local bundles and skill schemas.",
18333
18351
  "",
18334
18352
  "- Prefer bundle retrieval tools before reading raw repository files.",
18335
- "- Use MCP bundle access when the current issue originated in production.",
18336
- "- Resolve fixed or intentionally generated incidents with `resolve_incident` or `resolve_incidents` so open incidents stay actionable.",
18353
+ "- Use MCP bundle access when the current issue originated in production or otherwise needs captured runtime evidence.",
18354
+ "- For deterministic local source, UI, layout, copy, calculation, refactor, or test-only issues, inspect source and tests first unless the user asks for DebugBundle evidence.",
18355
+ "- Resolve fixed or intentionally generated incidents with `resolve_incident` or `resolve_incidents` so active incidents stay actionable.",
18337
18356
  "- Fall back to local CLI processing when the project is local-only.",
18338
18357
  "",
18339
18358
  "## Noise and Capture Policy Tools",
@@ -18380,6 +18399,7 @@ function buildMcpReference() {
18380
18399
  "- Availability checks: `https://debugbundle.com/docs/availability-checks`",
18381
18400
  "- Probes: `https://debugbundle.com/docs/probes`",
18382
18401
  "- Capture policy and rules: `https://debugbundle.com/docs/capture-policy`",
18402
+ "- Managing noise: `https://debugbundle.com/docs/managing-noise`",
18383
18403
  "- Alerts: `https://debugbundle.com/docs/alerts`",
18384
18404
  "- Webhooks: `https://debugbundle.com/docs/webhooks`",
18385
18405
  "- API ingestion: `https://debugbundle.com/docs/api/ingestion`",
@@ -18485,13 +18505,21 @@ function buildSkillEvals() {
18485
18505
  skill: "debugbundle",
18486
18506
  evaluations: [
18487
18507
  {
18488
- name: "incident_first_workflow",
18508
+ name: "runtime_incident_workflow",
18489
18509
  prompt: "The user reports a production checkout failure. Confirm the skill tells the agent to inspect DebugBundle artifacts first.",
18490
18510
  expected_behavior: [
18491
- "Check incidents before reading arbitrary source files.",
18511
+ "Check incidents before reading arbitrary source files for qualifying runtime or production incidents.",
18492
18512
  "Read the skill workflow before proposing a fix."
18493
18513
  ]
18494
18514
  },
18515
+ {
18516
+ name: "local_source_issue_gate",
18517
+ prompt: "The user reports a deterministic UI calculation glitch in local code with no runtime incident or report. Confirm the skill avoids checking DebugBundle incidents by default.",
18518
+ expected_behavior: [
18519
+ "Inspect source and tests first for deterministic local UI, layout, copy, calculation, refactor, or test-only issues.",
18520
+ "Do not check DebugBundle incidents unless the user asks, live runtime behavior is involved, or captured evidence is needed."
18521
+ ]
18522
+ },
18495
18523
  {
18496
18524
  name: "profile_validation_task",
18497
18525
  prompt: "The generated profile is shallow. Confirm the skill teaches the agent how to validate and enrich it.",
@@ -19085,7 +19113,7 @@ function createCaptureRuleApi(httpClient) {
19085
19113
  bearerToken: input.bearerToken,
19086
19114
  body: input.create
19087
19115
  });
19088
- if (response.status !== 201) {
19116
+ if (response.status !== 200 && response.status !== 201) {
19089
19117
  throw toApiError(response.status, response.body, "Failed to create capture rule from suggestion.");
19090
19118
  }
19091
19119
  const parsed = CaptureRuleResponseSchema.safeParse(response.body);
@@ -23748,6 +23776,26 @@ function selectPrimarySignalEnvelope(envelopes, sourceEventId) {
23748
23776
  (envelope) => envelope.event_type === "backend_exception" || envelope.event_type === "frontend_exception" || envelope.event_type === "request_event"
23749
23777
  ) ?? null;
23750
23778
  }
23779
+ function deriveBundleSdk(envelopes, sourceEventId) {
23780
+ const sourceEnvelope = envelopes.find((envelope) => envelope.event_id === sourceEventId);
23781
+ if (sourceEnvelope !== void 0) {
23782
+ return {
23783
+ name: sourceEnvelope.sdk_name,
23784
+ version: sourceEnvelope.sdk_version
23785
+ };
23786
+ }
23787
+ const latestCapturedEnvelope = selectLatestEnvelope(envelopes, (envelope) => envelope.event_type !== "probe_event");
23788
+ if (latestCapturedEnvelope !== null) {
23789
+ return {
23790
+ name: latestCapturedEnvelope.sdk_name,
23791
+ version: latestCapturedEnvelope.sdk_version
23792
+ };
23793
+ }
23794
+ return {
23795
+ name: "unknown",
23796
+ version: "unknown"
23797
+ };
23798
+ }
23751
23799
  function mapSignalType(eventType) {
23752
23800
  if (eventType === "request_event") {
23753
23801
  return "request_failure";
@@ -24365,6 +24413,7 @@ function buildBundle(input) {
24365
24413
  const firstSeenAt = new Date(input.incident.first_seen_at).toISOString();
24366
24414
  const lastSeenAt = new Date(input.incident.last_seen_at).toISOString();
24367
24415
  const capturedAt = primarySignalEnvelope !== null ? toIsoTimestamp(primarySignalEnvelope.occurred_at) : toIsoTimestamp(input.bundleMetadata.source_occurred_at);
24416
+ const bundleSdk = deriveBundleSdk(sourceEnvelopes, input.bundleMetadata.source_event_id);
24368
24417
  const serviceRuntime = input.incident.service_runtime ?? selectLatestEnvelope(sourceEnvelopes, (envelope) => envelope.event_type !== "probe_event")?.service.runtime ?? null;
24369
24418
  const serviceFramework = input.incident.service_framework ?? selectLatestEnvelope(sourceEnvelopes, (envelope) => envelope.event_type !== "probe_event")?.service.framework ?? null;
24370
24419
  const customerVisible = frontendContext !== null;
@@ -24383,10 +24432,7 @@ function buildBundle(input) {
24383
24432
  bundle_id: `bnd_${input.incident.incident_id}`,
24384
24433
  bundle_type: "failure",
24385
24434
  captured_at: capturedAt,
24386
- sdk: {
24387
- name: "debugbundle-worker",
24388
- version: "0.1.0"
24389
- },
24435
+ sdk: bundleSdk,
24390
24436
  project: {
24391
24437
  id: input.incident.project_id,
24392
24438
  slug: input.incident.project_id,
@@ -30591,9 +30637,9 @@ var zodToJsonSchema = (schema, options) => {
30591
30637
  var package_default = {
30592
30638
  name: "@debugbundle/mcp",
30593
30639
  mcpName: "com.debugbundle/mcp",
30594
- version: "1.5.4",
30640
+ version: "1.6.1",
30595
30641
  private: false,
30596
- description: "Model Context Protocol server for DebugBundle",
30642
+ description: "MCP server for production debugging bundles and incident workflows for AI agents",
30597
30643
  license: "AGPL-3.0-only",
30598
30644
  repository: {
30599
30645
  type: "git",
@@ -30604,7 +30650,18 @@ var package_default = {
30604
30650
  bugs: {
30605
30651
  url: "https://github.com/debugbundle/debugbundle/issues"
30606
30652
  },
30607
- keywords: ["debugbundle", "debugging", "ai-agent", "mcp", "model-context-protocol"],
30653
+ keywords: [
30654
+ "debugbundle",
30655
+ "debugging",
30656
+ "production-debugging",
30657
+ "incident-management",
30658
+ "debug-bundles",
30659
+ "ai-agent",
30660
+ "ai-agent-debugging",
30661
+ "mcp",
30662
+ "model-context-protocol",
30663
+ "observability"
30664
+ ],
30608
30665
  engines: {
30609
30666
  node: ">=22 <27"
30610
30667
  },
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@debugbundle/mcp",
3
3
  "mcpName": "com.debugbundle/mcp",
4
- "version": "1.5.4",
4
+ "version": "1.6.1",
5
5
  "private": false,
6
- "description": "Model Context Protocol server for DebugBundle",
6
+ "description": "MCP server for production debugging bundles and incident workflows for AI agents",
7
7
  "license": "AGPL-3.0-only",
8
8
  "repository": {
9
9
  "type": "git",
@@ -14,7 +14,18 @@
14
14
  "bugs": {
15
15
  "url": "https://github.com/debugbundle/debugbundle/issues"
16
16
  },
17
- "keywords": ["debugbundle", "debugging", "ai-agent", "mcp", "model-context-protocol"],
17
+ "keywords": [
18
+ "debugbundle",
19
+ "debugging",
20
+ "production-debugging",
21
+ "incident-management",
22
+ "debug-bundles",
23
+ "ai-agent",
24
+ "ai-agent-debugging",
25
+ "mcp",
26
+ "model-context-protocol",
27
+ "observability"
28
+ ],
18
29
  "engines": {
19
30
  "node": ">=22 <27"
20
31
  },
package/server.json CHANGED
@@ -2,19 +2,19 @@
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "com.debugbundle/mcp",
4
4
  "title": "DebugBundle",
5
- "description": "Investigate DebugBundle incidents, bundles, reproductions, hosted health checks, probes, alerts, webhooks, projects, members, billing, GitHub automation, and local setup from MCP clients.",
5
+ "description": "DebugBundle MCP server for incidents, bundles, reproductions, health checks, probes, and ops.",
6
6
  "repository": {
7
7
  "url": "https://github.com/debugbundle/debugbundle",
8
8
  "source": "github",
9
9
  "subfolder": "apps/mcp"
10
10
  },
11
- "version": "1.5.4",
11
+ "version": "1.6.1",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "registryBaseUrl": "https://registry.npmjs.org",
16
16
  "identifier": "@debugbundle/mcp",
17
- "version": "1.5.4",
17
+ "version": "1.6.1",
18
18
  "transport": {
19
19
  "type": "stdio"
20
20
  },