@kryptosai/mcp-observatory 0.28.0 → 1.28.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.
Files changed (108) hide show
  1. package/COMMERCIAL.md +26 -5
  2. package/README.md +65 -12
  3. package/dist/src/action-receipt.d.ts +20 -0
  4. package/dist/src/action-receipt.js +85 -0
  5. package/dist/src/action-receipt.js.map +1 -0
  6. package/dist/src/audit.d.ts +64 -0
  7. package/dist/src/audit.js +359 -0
  8. package/dist/src/audit.js.map +1 -0
  9. package/dist/src/checks/attack-sim.d.ts +2 -0
  10. package/dist/src/checks/attack-sim.js +12 -0
  11. package/dist/src/checks/attack-sim.js.map +1 -1
  12. package/dist/src/cli.js +8 -1
  13. package/dist/src/cli.js.map +1 -1
  14. package/dist/src/commands/attack-sim.js +54 -2
  15. package/dist/src/commands/attack-sim.js.map +1 -1
  16. package/dist/src/commands/audit.d.ts +2 -0
  17. package/dist/src/commands/audit.js +132 -0
  18. package/dist/src/commands/audit.js.map +1 -0
  19. package/dist/src/commands/init-ci.d.ts +2 -0
  20. package/dist/src/commands/init-ci.js +71 -11
  21. package/dist/src/commands/init-ci.js.map +1 -1
  22. package/dist/src/commands/legacy.js +2 -0
  23. package/dist/src/commands/legacy.js.map +1 -1
  24. package/dist/src/commands/receipt.d.ts +2 -0
  25. package/dist/src/commands/receipt.js +113 -0
  26. package/dist/src/commands/receipt.js.map +1 -0
  27. package/dist/src/commands/scan.js +23 -5
  28. package/dist/src/commands/scan.js.map +1 -1
  29. package/dist/src/commands/score.js +63 -0
  30. package/dist/src/commands/score.js.map +1 -1
  31. package/dist/src/commands/setup-ci-conversion.d.ts +2 -1
  32. package/dist/src/commands/setup-ci-conversion.js +22 -8
  33. package/dist/src/commands/setup-ci-conversion.js.map +1 -1
  34. package/dist/src/commands/test.js +18 -1
  35. package/dist/src/commands/test.js.map +1 -1
  36. package/dist/src/findings.d.ts +1 -0
  37. package/dist/src/findings.js +1 -0
  38. package/dist/src/findings.js.map +1 -1
  39. package/dist/src/index.d.ts +2 -0
  40. package/dist/src/index.js +2 -0
  41. package/dist/src/index.js.map +1 -1
  42. package/dist/src/receipt.d.ts +100 -0
  43. package/dist/src/receipt.js +375 -0
  44. package/dist/src/receipt.js.map +1 -0
  45. package/dist/src/reporters/attack-sim.js +6 -1
  46. package/dist/src/reporters/attack-sim.js.map +1 -1
  47. package/dist/src/reporters/sarif.js +11 -1
  48. package/dist/src/reporters/sarif.js.map +1 -1
  49. package/dist/src/security-profiles.d.ts +13 -0
  50. package/dist/src/security-profiles.js +59 -0
  51. package/dist/src/security-profiles.js.map +1 -0
  52. package/dist/src/telemetry.d.ts +7 -0
  53. package/dist/src/telemetry.js.map +1 -1
  54. package/docs/10x-agentic-growth-sprint.md +47 -0
  55. package/docs/agent-ecosystem-promotion-plan.md +1 -1
  56. package/docs/agentic-contributor-outreach.md +52 -0
  57. package/docs/code-scanning-demo.md +2 -2
  58. package/docs/commercial-boundary.md +83 -0
  59. package/docs/contributor-proof-cards/README.md +1 -1
  60. package/docs/examples/nsa-mcp-audit-report.md +372 -0
  61. package/docs/examples/nsa-mcp-results.sarif +930 -0
  62. package/docs/examples/nsa-mcp-score.json +13 -0
  63. package/docs/feishu-lark-mcp.md +1 -1
  64. package/docs/github-code-scanning-for-mcp.md +1 -1
  65. package/docs/government-enterprise-pilot.md +93 -0
  66. package/docs/mcp-receipts.md +109 -0
  67. package/docs/mcp-server-safety-index.md +26 -25
  68. package/docs/nsa-mcp-audit-ci.md +88 -0
  69. package/docs/procurement-one-pager.md +74 -0
  70. package/docs/proof.md +2 -2
  71. package/docs/public-guidance-crosswalk.md +48 -0
  72. package/docs/safety-index/artifacts/antv-chart-server.json +41 -23
  73. package/docs/safety-index/artifacts/antv-chart-server.md +23 -10
  74. package/docs/safety-index/artifacts/browsermcp-server.json +38 -20
  75. package/docs/safety-index/artifacts/browsermcp-server.md +23 -10
  76. package/docs/safety-index/artifacts/context7-server.json +85 -28
  77. package/docs/safety-index/artifacts/context7-server.md +35 -22
  78. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +460 -36
  79. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +31 -18
  80. package/docs/safety-index/artifacts/everything-server.json +38 -20
  81. package/docs/safety-index/artifacts/everything-server.md +25 -12
  82. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +155 -20
  83. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +26 -13
  84. package/docs/safety-index/artifacts/filesystem-server.json +116 -22
  85. package/docs/safety-index/artifacts/filesystem-server.md +27 -14
  86. package/docs/safety-index/artifacts/kubernetes-server.json +252 -27
  87. package/docs/safety-index/artifacts/kubernetes-server.md +44 -18
  88. package/docs/safety-index/artifacts/memory-server.json +39 -21
  89. package/docs/safety-index/artifacts/memory-server.md +24 -11
  90. package/docs/safety-index/artifacts/opentofu-server.json +38 -20
  91. package/docs/safety-index/artifacts/opentofu-server.md +24 -11
  92. package/docs/safety-index/artifacts/playwright-mcp-server.json +140 -20
  93. package/docs/safety-index/artifacts/playwright-mcp-server.md +26 -13
  94. package/docs/safety-index/artifacts/promptopia-server.json +41 -23
  95. package/docs/safety-index/artifacts/promptopia-server.md +26 -13
  96. package/docs/safety-index/artifacts/puppeteer-server.json +77 -34
  97. package/docs/safety-index/artifacts/puppeteer-server.md +45 -32
  98. package/docs/safety-index/artifacts/ref-tools-server.json +38 -20
  99. package/docs/safety-index/artifacts/ref-tools-server.md +22 -9
  100. package/docs/safety-index/artifacts/sequential-thinking-server.json +39 -21
  101. package/docs/safety-index/artifacts/sequential-thinking-server.md +23 -10
  102. package/docs/security-due-diligence.md +87 -0
  103. package/docs/setup-ci-doctor.md +11 -1
  104. package/docs/tool-call-receipts.md +1 -2
  105. package/examples/insecure-mcp-server/mcp-observatory.target.json +13 -0
  106. package/examples/insecure-mcp-server/server.mjs +62 -0
  107. package/package.json +12 -1
  108. package/scripts/postinstall.mjs +22 -7
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "artifactType": "run",
3
3
  "schemaVersion": "1.0.0",
4
- "gate": "pass",
5
- "runId": "run_2026-07-06T014701216Z_1c0434b0",
6
- "createdAt": "2026-07-06T01:47:01.216Z",
7
- "toolVersion": "0.26.1",
4
+ "gate": "fail",
5
+ "runId": "run_2026-07-06T194953996Z_3a6d7344",
6
+ "createdAt": "2026-07-06T19:49:53.996Z",
7
+ "toolVersion": "0.28.0",
8
8
  "target": {
9
9
  "targetId": "puppeteer-server",
10
10
  "adapter": "local-process",
@@ -25,25 +25,25 @@
25
25
  "serverVersion": "0.1.0"
26
26
  },
27
27
  "environment": {
28
- "platform": "darwin 24.0.0",
29
- "nodeVersion": "v25.8.1"
28
+ "platform": "darwin 25.5.0",
29
+ "nodeVersion": "v22.22.1"
30
30
  },
31
31
  "summary": {
32
- "total": 7,
33
- "pass": 5,
34
- "fail": 0,
35
- "partial": 1,
32
+ "total": 8,
33
+ "pass": 4,
34
+ "fail": 1,
35
+ "partial": 2,
36
36
  "unsupported": 1,
37
37
  "flaky": 0,
38
38
  "skipped": 0,
39
- "gate": "pass"
39
+ "gate": "fail"
40
40
  },
41
41
  "checks": [
42
42
  {
43
43
  "id": "tools",
44
44
  "capability": "tools",
45
45
  "status": "pass",
46
- "durationMs": 0.5711250000003929,
46
+ "durationMs": 0.4152910000011616,
47
47
  "message": "Advertised capability responded with the minimal expected shape (8 items).",
48
48
  "evidence": [
49
49
  {
@@ -192,7 +192,7 @@
192
192
  "id": "prompts",
193
193
  "capability": "prompts",
194
194
  "status": "unsupported",
195
- "durationMs": 0.0006670000002486631,
195
+ "durationMs": 0.00045900000077381264,
196
196
  "message": "Prompts are not advertised by the target.",
197
197
  "evidence": [
198
198
  {
@@ -208,7 +208,7 @@
208
208
  "id": "resources",
209
209
  "capability": "resources",
210
210
  "status": "pass",
211
- "durationMs": 0.5291250000009313,
211
+ "durationMs": 0.6513340000001335,
212
212
  "message": "Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.",
213
213
  "evidence": [
214
214
  {
@@ -237,7 +237,7 @@
237
237
  "id": "security-lite",
238
238
  "capability": "security-lite",
239
239
  "status": "pass",
240
- "durationMs": 0.04550000000017462,
240
+ "durationMs": 0.036249999999199645,
241
241
  "message": "No security issues detected (lightweight scan).",
242
242
  "evidence": [
243
243
  {
@@ -252,24 +252,26 @@
252
252
  {
253
253
  "id": "conformance",
254
254
  "capability": "conformance",
255
- "status": "pass",
256
- "durationMs": 571.27225,
257
- "message": "All 7 conformance checks passed.",
255
+ "status": "partial",
256
+ "durationMs": 2.328292000000147,
257
+ "message": "6/7 conformance checks passed, 1 failed.",
258
258
  "evidence": [
259
259
  {
260
260
  "endpoint": "conformance/check",
261
261
  "advertised": true,
262
262
  "responded": true,
263
- "minimalShapePresent": true,
263
+ "minimalShapePresent": false,
264
264
  "itemCount": 7,
265
- "identifiers": [],
265
+ "identifiers": [
266
+ "tool-response-content"
267
+ ],
266
268
  "diagnostics": [
267
269
  "[pass] capabilities-present: Server returned capabilities object.",
268
270
  "[pass] server-info: Server provided initialization info.",
269
271
  "[pass] tools-capability-match: tools/list returned 8 tool(s).",
270
272
  "[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
271
273
  "[pass] resources-capability-match: resources/list returned 1 resource(s).",
272
- "[pass] tool-response-content: Tool \"puppeteer_connect_active_tab\" response has valid content array.",
274
+ "[FAIL] tool-response-content: Tool response content check failed: MCP error -32603: Could not find Chrome (ver. 131.0.6778.204). This can occur if either\n 1. you did not perform an installation before running the script (e.g. `npx puppeteer browsers install chrome`) or\n 2. your cache path is incorrectly configured (which is: /Users/williamweishuhn/.cache/puppeteer).\nFor (2), check out our guide on configuring puppeteer at https://pptr.dev/guides/configuration.",
273
275
  "[pass] error-handling: Server returned proper error code -32601 for unknown method."
274
276
  ]
275
277
  }
@@ -279,7 +281,7 @@
279
281
  "id": "schema-quality",
280
282
  "capability": "schema-quality",
281
283
  "status": "partial",
282
- "durationMs": 0.4983749999992142,
284
+ "durationMs": 0.26704199999949196,
283
285
  "message": "Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info.",
284
286
  "evidence": [
285
287
  {
@@ -317,7 +319,7 @@
317
319
  "id": "security",
318
320
  "capability": "security",
319
321
  "status": "pass",
320
- "durationMs": 0.22308300000076997,
322
+ "durationMs": 0.1486669999994774,
321
323
  "message": "No security issues detected.",
322
324
  "evidence": [
323
325
  {
@@ -328,18 +330,58 @@
328
330
  "itemCount": 0
329
331
  }
330
332
  ]
333
+ },
334
+ {
335
+ "id": "attack-sim",
336
+ "capability": "attack-sim",
337
+ "status": "fail",
338
+ "durationMs": 0.35720799999944575,
339
+ "message": "Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.",
340
+ "evidence": [
341
+ {
342
+ "endpoint": "attack-sim/safe",
343
+ "advertised": true,
344
+ "responded": true,
345
+ "minimalShapePresent": true,
346
+ "itemCount": 1,
347
+ "identifiers": [
348
+ "puppeteer_evaluate"
349
+ ],
350
+ "diagnostics": [
351
+ "[high] Tool \"puppeteer_evaluate\" combines broad parameters (script) with destructive or non-read-only behavior."
352
+ ],
353
+ "findings": [
354
+ {
355
+ "ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
356
+ "attackClass": "permission-boundary",
357
+ "severity": "high",
358
+ "itemType": "tool",
359
+ "itemName": "puppeteer_evaluate",
360
+ "message": "Tool \"puppeteer_evaluate\" combines broad parameters (script) with destructive or non-read-only behavior.",
361
+ "evidence": {
362
+ "broadParams": [
363
+ "script"
364
+ ],
365
+ "description": "Execute JavaScript in the browser console"
366
+ },
367
+ "recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
368
+ "recommendedAction": "quarantine"
369
+ }
370
+ ]
371
+ }
372
+ ]
331
373
  }
332
374
  ],
333
375
  "healthScore": {
334
- "overall": 89,
335
- "grade": "B",
376
+ "overall": 70,
377
+ "grade": "C",
336
378
  "dimensions": [
337
379
  {
338
380
  "name": "Protocol Compliance",
339
381
  "weight": 0.3,
340
- "score": 100,
382
+ "score": 60,
341
383
  "details": [
342
- "conformance: pass (100/100)"
384
+ "conformance: partial (60/100)"
343
385
  ]
344
386
  },
345
387
  {
@@ -353,10 +395,11 @@
353
395
  {
354
396
  "name": "Security",
355
397
  "weight": 0.2,
356
- "score": 100,
398
+ "score": 67,
357
399
  "details": [
358
400
  "security-lite: pass (100/100)",
359
- "security: pass (100/100)"
401
+ "security: pass (100/100)",
402
+ "attack-sim: fail (0/100)"
360
403
  ]
361
404
  },
362
405
  {
@@ -374,16 +417,16 @@
374
417
  "weight": 0.1,
375
418
  "score": 100,
376
419
  "details": [
377
- "Connect: 771ms",
420
+ "Connect: 685ms",
378
421
  "p95 latency: 1ms (3 operations)"
379
422
  ]
380
423
  }
381
424
  ]
382
425
  },
383
426
  "performanceMetrics": {
384
- "connectMs": 770.8425420000003,
385
- "toolsListMs": 0.5711250000003929,
386
- "promptsListMs": 0.0006670000002486631,
387
- "resourcesListMs": 0.5291250000009313
427
+ "connectMs": 685.0922919999994,
428
+ "toolsListMs": 0.4152910000011616,
429
+ "promptsListMs": 0.00045900000077381264,
430
+ "resourcesListMs": 0.6513340000001335
388
431
  }
389
432
  }
@@ -1,6 +1,6 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-07-06T01:47:01.216Z
3
+ Generated at 2026-07-06T19:49:53.996Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
@@ -8,35 +8,35 @@ Generated at 2026-07-06T01:47:01.216Z
8
8
  - Adapter: `local-process`
9
9
  - Command: `npx -y puppeteer-mcp-server`
10
10
  - Server: `example-servers/puppeteer 0.1.0`
11
- - Platform: `darwin 24.0.0`
12
- - Node: `v25.8.1`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
13
 
14
14
  ## Executive Summary
15
15
 
16
- **Health Score: 89/100 (B)**
16
+ **Health Score: 70/100 (C)**
17
17
 
18
18
  | Dimension | Score | Weight |
19
19
  | --- | --- | --- |
20
- | Protocol Compliance | 100/100 | 30% |
20
+ | Protocol Compliance | 60/100 | 30% |
21
21
  | Schema Quality | 60/100 | 20% |
22
- | Security | 100/100 | 20% |
22
+ | Security | 67/100 | 20% |
23
23
  | Reliability | 83/100 | 20% |
24
24
  | Performance | 100/100 | 10% |
25
25
 
26
26
  | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
27
  | --- | --- | --- | --- | --- | --- | --- | --- |
28
- | pass | 7 | 5 | 0 | 1 | 1 | 0 | 0 |
28
+ | fail | 8 | 4 | 1 | 2 | 1 | 0 | 0 |
29
29
 
30
30
  ## At a Glance
31
31
 
32
- - Safety verdict: **Needs review** — The server is usable, but caveated checks should be reviewed before agents depend on it.
33
- - Top risks: schema-quality: Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info.
32
+ - Safety verdict: **Blocked** — One or more checks can break agent dependence and should be fixed before production use.
33
+ - Top risks: conformance: 6/7 conformance checks passed, 1 failed.; schema-quality: Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info.; attack-sim: Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.
34
34
  - Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
35
- - Failing checks: none
36
- - Partial or flaky checks: schema-quality
35
+ - Failing checks: attack-sim
36
+ - Partial or flaky checks: conformance, schema-quality
37
37
  - Skipped checks: none
38
38
  - Unsupported checks: prompts
39
- - Suggested next step: Review the caveated checks next: schema-quality.
39
+ - Suggested next step: Start with the failing checks: attack-sim.
40
40
  - CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
41
41
 
42
42
  ## Regressions and Recoveries
@@ -47,28 +47,17 @@ _Use the `diff` command against another run artifact to classify regressions and
47
47
 
48
48
  | Focus | Check | Status | Duration (ms) | Message |
49
49
  | --- | --- | --- | --- | --- |
50
- | healthy | conformance | pass | 571.27 | All 7 conformance checks passed. |
51
- | healthy | resources | pass | 0.53 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
52
- | healthy | security | pass | 0.22 | No security issues detected. |
53
- | healthy | security-lite | pass | 0.05 | No security issues detected (lightweight scan). |
54
- | healthy | tools | pass | 0.57 | Advertised capability responded with the minimal expected shape (8 items). |
55
- | review | schema-quality | partial | 0.50 | Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info. |
50
+ | healthy | resources | pass | 0.65 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
51
+ | healthy | security | pass | 0.15 | No security issues detected. |
52
+ | healthy | security-lite | pass | 0.04 | No security issues detected (lightweight scan). |
53
+ | healthy | tools | pass | 0.42 | Advertised capability responded with the minimal expected shape (8 items). |
54
+ | review | conformance | partial | 2.33 | 6/7 conformance checks passed, 1 failed. |
55
+ | review | schema-quality | partial | 0.27 | Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info. |
56
56
  | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
57
+ | act now | attack-sim | fail | 0.36 | Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low. |
57
58
 
58
59
  ## Evidence Snippets
59
60
 
60
- ### conformance — pass
61
-
62
- Summary: All 7 conformance checks passed.
63
-
64
- - Endpoint: `conformance/check`
65
- - Advertised: `true`
66
- - Responded: `true`
67
- - Minimal shape present: `true`
68
- - Item count: `7`
69
- - Identifiers: none
70
- - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 8 tool(s). (+4 more)
71
-
72
61
  ### resources — pass
73
62
 
74
63
  Summary: Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.
@@ -124,6 +113,18 @@ Summary: Advertised capability responded with the minimal expected shape (8 item
124
113
  - Identifiers: puppeteer_connect_active_tab, puppeteer_navigate, puppeteer_screenshot, puppeteer_click, puppeteer_fill (+3 more)
125
114
  - Diagnostics: none
126
115
 
116
+ ### conformance — partial
117
+
118
+ Summary: 6/7 conformance checks passed, 1 failed.
119
+
120
+ - Endpoint: `conformance/check`
121
+ - Advertised: `true`
122
+ - Responded: `true`
123
+ - Minimal shape present: `false`
124
+ - Item count: `7`
125
+ - Identifiers: tool-response-content
126
+ - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 8 tool(s). (+4 more)
127
+
127
128
  ### schema-quality — partial
128
129
 
129
130
  Summary: Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info.
@@ -148,6 +149,18 @@ Summary: Prompts are not advertised by the target.
148
149
  - Identifiers: none
149
150
  - Diagnostics: none
150
151
 
152
+ ### attack-sim — fail
153
+
154
+ Summary: Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.
155
+
156
+ - Endpoint: `attack-sim/safe`
157
+ - Advertised: `true`
158
+ - Responded: `true`
159
+ - Minimal shape present: `true`
160
+ - Item count: `1`
161
+ - Identifiers: puppeteer_evaluate
162
+ - Diagnostics: [high] Tool "puppeteer_evaluate" combines broad parameters (script) with destructive or non-read-only behavior.
163
+
151
164
  ## Reproduction Commands
152
165
 
153
166
  ```bash
@@ -159,5 +172,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
159
172
 
160
173
  - Artifact type: `run`
161
174
  - Schema version: `1.0.0`
162
- - Run ID: `run_2026-07-06T014701216Z_1c0434b0`
163
- - Gate: `pass`
175
+ - Run ID: `run_2026-07-06T194953996Z_3a6d7344`
176
+ - Gate: `fail`
@@ -2,9 +2,9 @@
2
2
  "artifactType": "run",
3
3
  "schemaVersion": "1.0.0",
4
4
  "gate": "pass",
5
- "runId": "run_2026-07-06T014658081Z_d215bf43",
6
- "createdAt": "2026-07-06T01:46:58.081Z",
7
- "toolVersion": "0.26.1",
5
+ "runId": "run_2026-07-06T194951606Z_e657d5a4",
6
+ "createdAt": "2026-07-06T19:49:51.606Z",
7
+ "toolVersion": "0.28.0",
8
8
  "target": {
9
9
  "targetId": "ref-tools-server",
10
10
  "adapter": "local-process",
@@ -25,12 +25,12 @@
25
25
  "serverVersion": "3.0.3"
26
26
  },
27
27
  "environment": {
28
- "platform": "darwin 24.0.0",
29
- "nodeVersion": "v25.8.1"
28
+ "platform": "darwin 25.5.0",
29
+ "nodeVersion": "v22.22.1"
30
30
  },
31
31
  "summary": {
32
- "total": 7,
33
- "pass": 6,
32
+ "total": 8,
33
+ "pass": 7,
34
34
  "fail": 0,
35
35
  "partial": 0,
36
36
  "unsupported": 1,
@@ -43,7 +43,7 @@
43
43
  "id": "tools",
44
44
  "capability": "tools",
45
45
  "status": "pass",
46
- "durationMs": 0.7155000000002474,
46
+ "durationMs": 0.8886670000001686,
47
47
  "message": "Advertised capability responded with the minimal expected shape (2 items).",
48
48
  "evidence": [
49
49
  {
@@ -92,7 +92,7 @@
92
92
  "id": "prompts",
93
93
  "capability": "prompts",
94
94
  "status": "pass",
95
- "durationMs": 0.22549999999955617,
95
+ "durationMs": 0.19312499999978172,
96
96
  "message": "Advertised capability responded with the minimal expected shape (2 items).",
97
97
  "evidence": [
98
98
  {
@@ -115,7 +115,7 @@
115
115
  "id": "resources",
116
116
  "capability": "resources",
117
117
  "status": "unsupported",
118
- "durationMs": 0.0021660000002157176,
118
+ "durationMs": 0.0022499999995488906,
119
119
  "message": "Resources are not advertised by the target.",
120
120
  "evidence": [
121
121
  {
@@ -131,7 +131,7 @@
131
131
  "id": "security-lite",
132
132
  "capability": "security-lite",
133
133
  "status": "pass",
134
- "durationMs": 0.01762499999949796,
134
+ "durationMs": 0.016125000000101863,
135
135
  "message": "No security issues detected (lightweight scan).",
136
136
  "evidence": [
137
137
  {
@@ -147,7 +147,7 @@
147
147
  "id": "conformance",
148
148
  "capability": "conformance",
149
149
  "status": "pass",
150
- "durationMs": 0.5051670000002559,
150
+ "durationMs": 0.5073750000001382,
151
151
  "message": "All 7 conformance checks passed.",
152
152
  "evidence": [
153
153
  {
@@ -173,7 +173,7 @@
173
173
  "id": "schema-quality",
174
174
  "capability": "schema-quality",
175
175
  "status": "pass",
176
- "durationMs": 0.40233400000033726,
176
+ "durationMs": 0.4954999999999927,
177
177
  "message": "All 4 item(s) have good schema quality.",
178
178
  "evidence": [
179
179
  {
@@ -190,7 +190,7 @@
190
190
  "id": "security",
191
191
  "capability": "security",
192
192
  "status": "pass",
193
- "durationMs": 0.16862500000024738,
193
+ "durationMs": 0.19070799999917654,
194
194
  "message": "No security issues detected.",
195
195
  "evidence": [
196
196
  {
@@ -201,6 +201,23 @@
201
201
  "itemCount": 0
202
202
  }
203
203
  ]
204
+ },
205
+ {
206
+ "id": "attack-sim",
207
+ "capability": "attack-sim",
208
+ "status": "pass",
209
+ "durationMs": 0.24504199999955745,
210
+ "message": "Safe attack simulation found no high-risk MCP attack-readiness findings.",
211
+ "evidence": [
212
+ {
213
+ "endpoint": "attack-sim/safe",
214
+ "advertised": true,
215
+ "responded": true,
216
+ "minimalShapePresent": true,
217
+ "itemCount": 0,
218
+ "identifiers": []
219
+ }
220
+ ]
204
221
  }
205
222
  ],
206
223
  "healthScore": {
@@ -229,7 +246,8 @@
229
246
  "score": 100,
230
247
  "details": [
231
248
  "security-lite: pass (100/100)",
232
- "security: pass (100/100)"
249
+ "security: pass (100/100)",
250
+ "attack-sim: pass (100/100)"
233
251
  ]
234
252
  },
235
253
  {
@@ -247,16 +265,16 @@
247
265
  "weight": 0.1,
248
266
  "score": 100,
249
267
  "details": [
250
- "Connect: 652ms",
268
+ "Connect: 579ms",
251
269
  "p95 latency: 1ms (3 operations)"
252
270
  ]
253
271
  }
254
272
  ]
255
273
  },
256
274
  "performanceMetrics": {
257
- "connectMs": 652.1516670000001,
258
- "toolsListMs": 0.7155000000002474,
259
- "promptsListMs": 0.22549999999955617,
260
- "resourcesListMs": 0.0021660000002157176
275
+ "connectMs": 579.0028749999992,
276
+ "toolsListMs": 0.8886670000001686,
277
+ "promptsListMs": 0.19312499999978172,
278
+ "resourcesListMs": 0.0022499999995488906
261
279
  }
262
280
  }
@@ -1,6 +1,6 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-07-06T01:46:58.081Z
3
+ Generated at 2026-07-06T19:49:51.606Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
@@ -8,8 +8,8 @@ Generated at 2026-07-06T01:46:58.081Z
8
8
  - Adapter: `local-process`
9
9
  - Command: `npx -y ref-tools-mcp`
10
10
  - Server: `Ref 3.0.3`
11
- - Platform: `darwin 24.0.0`
12
- - Node: `v25.8.1`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
13
 
14
14
  ## Executive Summary
15
15
 
@@ -25,7 +25,7 @@ Generated at 2026-07-06T01:46:58.081Z
25
25
 
26
26
  | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
27
  | --- | --- | --- | --- | --- | --- | --- | --- |
28
- | pass | 7 | 6 | 0 | 0 | 1 | 0 | 0 |
28
+ | pass | 8 | 7 | 0 | 0 | 1 | 0 | 0 |
29
29
 
30
30
  ## At a Glance
31
31
 
@@ -47,16 +47,29 @@ _Use the `diff` command against another run artifact to classify regressions and
47
47
 
48
48
  | Focus | Check | Status | Duration (ms) | Message |
49
49
  | --- | --- | --- | --- | --- |
50
+ | healthy | attack-sim | pass | 0.25 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
50
51
  | healthy | conformance | pass | 0.51 | All 7 conformance checks passed. |
51
- | healthy | prompts | pass | 0.23 | Advertised capability responded with the minimal expected shape (2 items). |
52
- | healthy | schema-quality | pass | 0.40 | All 4 item(s) have good schema quality. |
53
- | healthy | security | pass | 0.17 | No security issues detected. |
52
+ | healthy | prompts | pass | 0.19 | Advertised capability responded with the minimal expected shape (2 items). |
53
+ | healthy | schema-quality | pass | 0.50 | All 4 item(s) have good schema quality. |
54
+ | healthy | security | pass | 0.19 | No security issues detected. |
54
55
  | healthy | security-lite | pass | 0.02 | No security issues detected (lightweight scan). |
55
- | healthy | tools | pass | 0.72 | Advertised capability responded with the minimal expected shape (2 items). |
56
+ | healthy | tools | pass | 0.89 | Advertised capability responded with the minimal expected shape (2 items). |
56
57
  | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
57
58
 
58
59
  ## Evidence Snippets
59
60
 
61
+ ### attack-sim — pass
62
+
63
+ Summary: Safe attack simulation found no high-risk MCP attack-readiness findings.
64
+
65
+ - Endpoint: `attack-sim/safe`
66
+ - Advertised: `true`
67
+ - Responded: `true`
68
+ - Minimal shape present: `true`
69
+ - Item count: `0`
70
+ - Identifiers: none
71
+ - Diagnostics: none
72
+
60
73
  ### conformance — pass
61
74
 
62
75
  Summary: All 7 conformance checks passed.
@@ -152,5 +165,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
152
165
 
153
166
  - Artifact type: `run`
154
167
  - Schema version: `1.0.0`
155
- - Run ID: `run_2026-07-06T014658081Z_d215bf43`
168
+ - Run ID: `run_2026-07-06T194951606Z_e657d5a4`
156
169
  - Gate: `pass`