@kryptosai/mcp-observatory 0.26.1 → 0.28.0

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 (152) hide show
  1. package/COMMERCIAL.md +13 -9
  2. package/CONTRIBUTORS.md +39 -0
  3. package/PRIVACY.md +5 -5
  4. package/README.md +83 -30
  5. package/TERMS.md +1 -1
  6. package/dist/src/adapters/http.js +1 -5
  7. package/dist/src/adapters/http.js.map +1 -1
  8. package/dist/src/cassette.js +3 -2
  9. package/dist/src/cassette.js.map +1 -1
  10. package/dist/src/checks/attack-sim.d.ts +18 -0
  11. package/dist/src/checks/attack-sim.js +304 -0
  12. package/dist/src/checks/attack-sim.js.map +1 -0
  13. package/dist/src/checks/schema-quality.js +1 -0
  14. package/dist/src/checks/schema-quality.js.map +1 -1
  15. package/dist/src/ci-issue.js +4 -3
  16. package/dist/src/ci-issue.js.map +1 -1
  17. package/dist/src/cli.js +17 -3
  18. package/dist/src/cli.js.map +1 -1
  19. package/dist/src/commands/attack-sim.d.ts +2 -0
  20. package/dist/src/commands/attack-sim.js +168 -0
  21. package/dist/src/commands/attack-sim.js.map +1 -0
  22. package/dist/src/commands/helpers.d.ts +3 -1
  23. package/dist/src/commands/helpers.js +2 -2
  24. package/dist/src/commands/helpers.js.map +1 -1
  25. package/dist/src/commands/init-ci.d.ts +3 -0
  26. package/dist/src/commands/init-ci.js +57 -11
  27. package/dist/src/commands/init-ci.js.map +1 -1
  28. package/dist/src/commands/legacy.js +24 -3
  29. package/dist/src/commands/legacy.js.map +1 -1
  30. package/dist/src/commands/scan.js +37 -10
  31. package/dist/src/commands/scan.js.map +1 -1
  32. package/dist/src/commands/serve.js +9 -1
  33. package/dist/src/commands/serve.js.map +1 -1
  34. package/dist/src/commands/setup-ci-conversion.d.ts +26 -0
  35. package/dist/src/commands/setup-ci-conversion.js +120 -0
  36. package/dist/src/commands/setup-ci-conversion.js.map +1 -0
  37. package/dist/src/commands/telemetry.js +20 -14
  38. package/dist/src/commands/telemetry.js.map +1 -1
  39. package/dist/src/commands/test.js +63 -4
  40. package/dist/src/commands/test.js.map +1 -1
  41. package/dist/src/findings.d.ts +20 -0
  42. package/dist/src/findings.js +272 -0
  43. package/dist/src/findings.js.map +1 -0
  44. package/dist/src/history.js +3 -2
  45. package/dist/src/history.js.map +1 -1
  46. package/dist/src/index.d.ts +3 -0
  47. package/dist/src/index.js +3 -0
  48. package/dist/src/index.js.map +1 -1
  49. package/dist/src/integrations/smithery.js +5 -1
  50. package/dist/src/integrations/smithery.js.map +1 -1
  51. package/dist/src/reporters/attack-sim.d.ts +2 -0
  52. package/dist/src/reporters/attack-sim.js +84 -0
  53. package/dist/src/reporters/attack-sim.js.map +1 -0
  54. package/dist/src/reporters/pr-comment.js +20 -6
  55. package/dist/src/reporters/pr-comment.js.map +1 -1
  56. package/dist/src/reporters/sarif.d.ts +4 -1
  57. package/dist/src/reporters/sarif.js +58 -37
  58. package/dist/src/reporters/sarif.js.map +1 -1
  59. package/dist/src/runner.d.ts +3 -0
  60. package/dist/src/runner.js +5 -0
  61. package/dist/src/runner.js.map +1 -1
  62. package/dist/src/score.js +1 -1
  63. package/dist/src/score.js.map +1 -1
  64. package/dist/src/storage.d.ts +1 -0
  65. package/dist/src/storage.js +28 -2
  66. package/dist/src/storage.js.map +1 -1
  67. package/dist/src/telemetry.d.ts +6 -0
  68. package/dist/src/telemetry.js +17 -1
  69. package/dist/src/telemetry.js.map +1 -1
  70. package/dist/src/types.d.ts +1 -1
  71. package/dist/src/utils/files.d.ts +1 -0
  72. package/dist/src/utils/files.js +21 -0
  73. package/dist/src/utils/files.js.map +1 -0
  74. package/dist/src/utils/ids.js +18 -5
  75. package/dist/src/utils/ids.js.map +1 -1
  76. package/dist/src/utils/url.d.ts +2 -0
  77. package/dist/src/utils/url.js +15 -0
  78. package/dist/src/utils/url.js.map +1 -0
  79. package/dist/src/validate.js +1 -1
  80. package/dist/src/validate.js.map +1 -1
  81. package/docs/agent-ecosystem-promotion-plan.md +244 -0
  82. package/docs/agent-runtime-quickstart.md +98 -0
  83. package/docs/agent-tasks.md +95 -0
  84. package/docs/automatic-ci-integration.md +33 -0
  85. package/docs/campaign-attribution.md +58 -0
  86. package/docs/code-scanning-demo.md +57 -0
  87. package/docs/code-scanning-launch-outreach.md +55 -0
  88. package/docs/contributor-proof-cards/README.md +33 -0
  89. package/docs/contributor-recognition.md +92 -0
  90. package/docs/feishu-lark-mcp.md +3 -3
  91. package/docs/github-code-scanning-for-mcp.md +94 -0
  92. package/docs/launch.md +64 -0
  93. package/docs/mcp-attack-simulator.md +57 -0
  94. package/docs/mcp-server-safety-index.md +18 -12
  95. package/docs/metrics-dashboard.md +2 -2
  96. package/docs/openclaw-agent-template/SOUL.md +156 -0
  97. package/docs/proof.md +7 -4
  98. package/docs/receipt-graph.md +54 -0
  99. package/docs/safety-index/artifacts/antv-chart-server.json +21 -21
  100. package/docs/safety-index/artifacts/antv-chart-server.md +10 -10
  101. package/docs/safety-index/artifacts/browsermcp-server.json +17 -17
  102. package/docs/safety-index/artifacts/browsermcp-server.md +10 -10
  103. package/docs/safety-index/artifacts/context7-server.json +17 -17
  104. package/docs/safety-index/artifacts/context7-server.md +10 -10
  105. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +2014 -0
  106. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +163 -0
  107. package/docs/safety-index/artifacts/everything-server.json +131 -56
  108. package/docs/safety-index/artifacts/everything-server.md +24 -24
  109. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +26 -18
  110. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +10 -10
  111. package/docs/safety-index/artifacts/filesystem-server.json +128 -20
  112. package/docs/safety-index/artifacts/filesystem-server.md +10 -10
  113. package/docs/safety-index/artifacts/kubernetes-server.attack.json +1559 -0
  114. package/docs/safety-index/artifacts/kubernetes-server.attack.md +43 -0
  115. package/docs/safety-index/artifacts/kubernetes-server.attack.sarif +2857 -0
  116. package/docs/safety-index/artifacts/kubernetes-server.json +1348 -0
  117. package/docs/safety-index/artifacts/kubernetes-server.md +150 -0
  118. package/docs/safety-index/artifacts/memory-server.json +75 -32
  119. package/docs/safety-index/artifacts/memory-server.md +35 -28
  120. package/docs/safety-index/artifacts/opentofu-server.json +25 -17
  121. package/docs/safety-index/artifacts/opentofu-server.md +11 -11
  122. package/docs/safety-index/artifacts/playwright-mcp-server.json +56 -20
  123. package/docs/safety-index/artifacts/playwright-mcp-server.md +12 -12
  124. package/docs/safety-index/artifacts/promptopia-server.json +28 -20
  125. package/docs/safety-index/artifacts/promptopia-server.md +11 -11
  126. package/docs/safety-index/artifacts/puppeteer-server.json +42 -30
  127. package/docs/safety-index/artifacts/puppeteer-server.md +28 -28
  128. package/docs/safety-index/artifacts/ref-tools-server.json +17 -17
  129. package/docs/safety-index/artifacts/ref-tools-server.md +9 -9
  130. package/docs/safety-index/artifacts/sequential-thinking-server.json +20 -21
  131. package/docs/safety-index/artifacts/sequential-thinking-server.md +10 -10
  132. package/docs/safety-index/targets.json +90 -14
  133. package/docs/setup-ci-doctor.md +2 -0
  134. package/docs/target-contribution-guide.md +139 -0
  135. package/docs/target-gallery.md +49 -0
  136. package/docs/target-registry.md +120 -0
  137. package/docs/tool-call-receipts.md +116 -0
  138. package/package.json +52 -9
  139. package/schemas/run-artifact.schema.json +1 -0
  140. package/scripts/postinstall.mjs +123 -0
  141. package/docs/certification-campaign-template.md +0 -181
  142. package/docs/certification-distribution.md +0 -145
  143. package/docs/certification-pr-campaign.md +0 -68
  144. package/docs/clone-to-ci-campaign.md +0 -62
  145. package/docs/directory-listing-copy.md +0 -85
  146. package/docs/distribution-launch.md +0 -76
  147. package/docs/ecosystem-distribution-kit.md +0 -79
  148. package/docs/enterprise-outreach-playbook.md +0 -83
  149. package/docs/paid-pilot-offer.md +0 -74
  150. package/docs/project-case-study.md +0 -140
  151. package/docs/public-post-drafts.md +0 -98
  152. package/docs/publish-readiness.md +0 -79
@@ -2,9 +2,9 @@
2
2
  "artifactType": "run",
3
3
  "schemaVersion": "1.0.0",
4
4
  "gate": "fail",
5
- "runId": "run_2026-06-24T020732035Z_b86ac3a9",
6
- "createdAt": "2026-06-24T02:07:32.035Z",
7
- "toolVersion": "0.24.0",
5
+ "runId": "run_2026-07-06T014703410Z_c94b3464",
6
+ "createdAt": "2026-07-06T01:47:03.410Z",
7
+ "toolVersion": "0.26.1",
8
8
  "target": {
9
9
  "targetId": "playwright-mcp-server",
10
10
  "adapter": "local-process",
@@ -22,11 +22,11 @@
22
22
  "whyItMatters": "Popular browser automation servers need explicit review around navigation, screenshots, and code evaluation."
23
23
  },
24
24
  "serverName": "Playwright",
25
- "serverVersion": "1.61.0-alpha-1781023400000"
25
+ "serverVersion": "1.62.0-alpha-2026-06-29"
26
26
  },
27
27
  "environment": {
28
- "platform": "darwin 25.5.0",
29
- "nodeVersion": "v22.22.1"
28
+ "platform": "darwin 24.0.0",
29
+ "nodeVersion": "v25.8.1"
30
30
  },
31
31
  "summary": {
32
32
  "total": 7,
@@ -43,7 +43,7 @@
43
43
  "id": "tools",
44
44
  "capability": "tools",
45
45
  "status": "pass",
46
- "durationMs": 59.043541999999434,
46
+ "durationMs": 3.186707999999271,
47
47
  "message": "Advertised capability responded with the minimal expected shape (23 items).",
48
48
  "evidence": [
49
49
  {
@@ -439,10 +439,20 @@
439
439
  "fullPage": {
440
440
  "description": "When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Cannot be used with element screenshots.",
441
441
  "type": "boolean"
442
+ },
443
+ "scale": {
444
+ "default": "css",
445
+ "description": "Image resolution scale. \"css\" produces a screenshot sized in CSS pixels (smaller, consistent across devices). \"device\" produces a high-resolution screenshot using device pixels (larger, accounts for the device pixel ratio). Default is css.",
446
+ "type": "string",
447
+ "enum": [
448
+ "css",
449
+ "device"
450
+ ]
442
451
  }
443
452
  },
444
453
  "required": [
445
- "type"
454
+ "type",
455
+ "scale"
446
456
  ],
447
457
  "$schema": "https://json-schema.org/draft/2020-12/schema",
448
458
  "additionalProperties": false
@@ -641,7 +651,7 @@
641
651
  "id": "prompts",
642
652
  "capability": "prompts",
643
653
  "status": "unsupported",
644
- "durationMs": 0.006790999999793712,
654
+ "durationMs": 0.0010409999995317776,
645
655
  "message": "Prompts are not advertised by the target.",
646
656
  "evidence": [
647
657
  {
@@ -657,7 +667,7 @@
657
667
  "id": "resources",
658
668
  "capability": "resources",
659
669
  "status": "unsupported",
660
- "durationMs": 0.007708000001002802,
670
+ "durationMs": 0.002291000000695931,
661
671
  "message": "Resources are not advertised by the target.",
662
672
  "evidence": [
663
673
  {
@@ -673,7 +683,7 @@
673
683
  "id": "security-lite",
674
684
  "capability": "security-lite",
675
685
  "status": "fail",
676
- "durationMs": 0.24841600000218023,
686
+ "durationMs": 0.06658400000014808,
677
687
  "message": "Found 6 security finding(s): 2 high, 2 medium, 2 low.",
678
688
  "evidence": [
679
689
  {
@@ -741,7 +751,7 @@
741
751
  "id": "conformance",
742
752
  "capability": "conformance",
743
753
  "status": "pass",
744
- "durationMs": 3062.4197910000003,
754
+ "durationMs": 567.6830420000006,
745
755
  "message": "All 7 conformance checks passed.",
746
756
  "evidence": [
747
757
  {
@@ -767,7 +777,7 @@
767
777
  "id": "schema-quality",
768
778
  "capability": "schema-quality",
769
779
  "status": "partial",
770
- "durationMs": 7.270583000001352,
780
+ "durationMs": 1.3853339999986929,
771
781
  "message": "Found 4 quality finding(s) across 23 item(s): 0 warnings, 4 info.",
772
782
  "evidence": [
773
783
  {
@@ -787,6 +797,32 @@
787
797
  "[info] tool \"browser_run_code_unsafe\": Has properties but no 'required' array declared",
788
798
  "[info] tool \"browser_snapshot\": Has properties but no 'required' array declared",
789
799
  "[info] tool \"browser_wait_for\": Has properties but no 'required' array declared"
800
+ ],
801
+ "findings": [
802
+ {
803
+ "itemType": "tool",
804
+ "itemName": "browser_file_upload",
805
+ "issue": "Has properties but no 'required' array declared",
806
+ "severity": "info"
807
+ },
808
+ {
809
+ "itemType": "tool",
810
+ "itemName": "browser_run_code_unsafe",
811
+ "issue": "Has properties but no 'required' array declared",
812
+ "severity": "info"
813
+ },
814
+ {
815
+ "itemType": "tool",
816
+ "itemName": "browser_snapshot",
817
+ "issue": "Has properties but no 'required' array declared",
818
+ "severity": "info"
819
+ },
820
+ {
821
+ "itemType": "tool",
822
+ "itemName": "browser_wait_for",
823
+ "issue": "Has properties but no 'required' array declared",
824
+ "severity": "info"
825
+ }
790
826
  ]
791
827
  }
792
828
  ]
@@ -795,7 +831,7 @@
795
831
  "id": "security",
796
832
  "capability": "security",
797
833
  "status": "fail",
798
- "durationMs": 25.690708999998606,
834
+ "durationMs": 1.2317499999990105,
799
835
  "message": "Found 6 security finding(s): 2 high, 2 medium, 2 low.",
800
836
  "evidence": [
801
837
  {
@@ -904,16 +940,16 @@
904
940
  "weight": 0.1,
905
941
  "score": 100,
906
942
  "details": [
907
- "Connect: 5774ms",
908
- "p95 latency: 59ms (3 operations)"
943
+ "Connect: 793ms",
944
+ "p95 latency: 3ms (3 operations)"
909
945
  ]
910
946
  }
911
947
  ]
912
948
  },
913
949
  "performanceMetrics": {
914
- "connectMs": 5773.640125,
915
- "toolsListMs": 59.043541999999434,
916
- "promptsListMs": 0.006790999999793712,
917
- "resourcesListMs": 0.007708000001002802
950
+ "connectMs": 793.3979579999996,
951
+ "toolsListMs": 3.186707999999271,
952
+ "promptsListMs": 0.0010409999995317776,
953
+ "resourcesListMs": 0.002291000000695931
918
954
  }
919
955
  }
@@ -1,15 +1,15 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-06-24T02:07:32.035Z
3
+ Generated at 2026-07-06T01:47:03.410Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
7
7
  - Target: `playwright-mcp-server`
8
8
  - Adapter: `local-process`
9
9
  - Command: `npx -y @playwright/mcp`
10
- - Server: `Playwright 1.61.0-alpha-1781023400000`
11
- - Platform: `darwin 25.5.0`
12
- - Node: `v22.22.1`
10
+ - Server: `Playwright 1.62.0-alpha-2026-06-29`
11
+ - Platform: `darwin 24.0.0`
12
+ - Node: `v25.8.1`
13
13
 
14
14
  ## Executive Summary
15
15
 
@@ -47,13 +47,13 @@ _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 | 3062.42 | All 7 conformance checks passed. |
51
- | healthy | tools | pass | 59.04 | Advertised capability responded with the minimal expected shape (23 items). |
52
- | review | schema-quality | partial | 7.27 | Found 4 quality finding(s) across 23 item(s): 0 warnings, 4 info. |
53
- | confirm intent | prompts | unsupported | 0.01 | Prompts are not advertised by the target. |
54
- | confirm intent | resources | unsupported | 0.01 | Resources are not advertised by the target. |
55
- | act now | security | fail | 25.69 | Found 6 security finding(s): 2 high, 2 medium, 2 low. |
56
- | act now | security-lite | fail | 0.25 | Found 6 security finding(s): 2 high, 2 medium, 2 low. |
50
+ | healthy | conformance | pass | 567.68 | All 7 conformance checks passed. |
51
+ | healthy | tools | pass | 3.19 | Advertised capability responded with the minimal expected shape (23 items). |
52
+ | review | schema-quality | partial | 1.39 | Found 4 quality finding(s) across 23 item(s): 0 warnings, 4 info. |
53
+ | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
54
+ | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
55
+ | act now | security | fail | 1.23 | Found 6 security finding(s): 2 high, 2 medium, 2 low. |
56
+ | act now | security-lite | fail | 0.07 | Found 6 security finding(s): 2 high, 2 medium, 2 low. |
57
57
 
58
58
  ## Evidence Snippets
59
59
 
@@ -152,5 +152,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
152
152
 
153
153
  - Artifact type: `run`
154
154
  - Schema version: `1.0.0`
155
- - Run ID: `run_2026-06-24T020732035Z_b86ac3a9`
155
+ - Run ID: `run_2026-07-06T014703410Z_c94b3464`
156
156
  - Gate: `fail`
@@ -2,9 +2,9 @@
2
2
  "artifactType": "run",
3
3
  "schemaVersion": "1.0.0",
4
4
  "gate": "pass",
5
- "runId": "run_2026-06-24T020725699Z_7cde9d35",
6
- "createdAt": "2026-06-24T02:07:25.699Z",
7
- "toolVersion": "0.24.0",
5
+ "runId": "run_2026-07-06T014655135Z_d970b9ce",
6
+ "createdAt": "2026-07-06T01:46:55.135Z",
7
+ "toolVersion": "0.26.1",
8
8
  "target": {
9
9
  "targetId": "promptopia-server",
10
10
  "adapter": "local-process",
@@ -25,8 +25,8 @@
25
25
  "serverVersion": "1.1.0"
26
26
  },
27
27
  "environment": {
28
- "platform": "darwin 25.5.0",
29
- "nodeVersion": "v22.22.1"
28
+ "platform": "darwin 24.0.0",
29
+ "nodeVersion": "v25.8.1"
30
30
  },
31
31
  "summary": {
32
32
  "total": 7,
@@ -43,7 +43,7 @@
43
43
  "id": "tools",
44
44
  "capability": "tools",
45
45
  "status": "pass",
46
- "durationMs": 1.030083999999988,
46
+ "durationMs": 3.150707999999213,
47
47
  "message": "Advertised capability responded with the minimal expected shape (7 items).",
48
48
  "evidence": [
49
49
  {
@@ -62,7 +62,7 @@
62
62
  "add_multi_message_prompt"
63
63
  ],
64
64
  "diagnostics": [
65
- "Watching for changes in prompts directory: /Users/williamweishuhn/Documents/New project/mcp-observatory/examples/promptopia-prompts",
65
+ "Watching for changes in prompts directory: /Users/sanghoon/mcp-observatory/examples/promptopia-prompts",
66
66
  "promptopia-mcp MCP server running (v1.1.0)"
67
67
  ],
68
68
  "schemas": {
@@ -267,7 +267,7 @@
267
267
  "id": "prompts",
268
268
  "capability": "prompts",
269
269
  "status": "pass",
270
- "durationMs": 1.1311249999998836,
270
+ "durationMs": 1.210667000000285,
271
271
  "message": "Advertised capability responded with the minimal expected shape (1 item).",
272
272
  "evidence": [
273
273
  {
@@ -280,7 +280,7 @@
280
280
  "demo_welcome"
281
281
  ],
282
282
  "diagnostics": [
283
- "Watching for changes in prompts directory: /Users/williamweishuhn/Documents/New project/mcp-observatory/examples/promptopia-prompts",
283
+ "Watching for changes in prompts directory: /Users/sanghoon/mcp-observatory/examples/promptopia-prompts",
284
284
  "promptopia-mcp MCP server running (v1.1.0)"
285
285
  ]
286
286
  }
@@ -290,7 +290,7 @@
290
290
  "id": "resources",
291
291
  "capability": "resources",
292
292
  "status": "unsupported",
293
- "durationMs": 0.004041000000142958,
293
+ "durationMs": 0.0029999999997016857,
294
294
  "message": "Resources are not advertised by the target.",
295
295
  "evidence": [
296
296
  {
@@ -306,7 +306,7 @@
306
306
  "id": "security-lite",
307
307
  "capability": "security-lite",
308
308
  "status": "pass",
309
- "durationMs": 0.02937500000007276,
309
+ "durationMs": 0.027833000000100583,
310
310
  "message": "No security issues detected (lightweight scan).",
311
311
  "evidence": [
312
312
  {
@@ -322,7 +322,7 @@
322
322
  "id": "conformance",
323
323
  "capability": "conformance",
324
324
  "status": "pass",
325
- "durationMs": 1.6614580000004935,
325
+ "durationMs": 1.6946659999994154,
326
326
  "message": "All 7 conformance checks passed.",
327
327
  "evidence": [
328
328
  {
@@ -348,7 +348,7 @@
348
348
  "id": "schema-quality",
349
349
  "capability": "schema-quality",
350
350
  "status": "partial",
351
- "durationMs": 0.6617910000004485,
351
+ "durationMs": 0.7350839999999152,
352
352
  "message": "Found 1 quality finding(s) across 8 item(s): 0 warnings, 1 info.",
353
353
  "evidence": [
354
354
  {
@@ -362,6 +362,14 @@
362
362
  ],
363
363
  "diagnostics": [
364
364
  "[info] prompt \"demo_welcome\": Argument 'name' missing description"
365
+ ],
366
+ "findings": [
367
+ {
368
+ "itemType": "prompt",
369
+ "itemName": "demo_welcome",
370
+ "issue": "Argument 'name' missing description",
371
+ "severity": "info"
372
+ }
365
373
  ]
366
374
  }
367
375
  ]
@@ -370,7 +378,7 @@
370
378
  "id": "security",
371
379
  "capability": "security",
372
380
  "status": "pass",
373
- "durationMs": 0.1859999999996944,
381
+ "durationMs": 0.317124999999578,
374
382
  "message": "No security issues detected.",
375
383
  "evidence": [
376
384
  {
@@ -427,16 +435,16 @@
427
435
  "weight": 0.1,
428
436
  "score": 100,
429
437
  "details": [
430
- "Connect: 829ms",
431
- "p95 latency: 1ms (3 operations)"
438
+ "Connect: 910ms",
439
+ "p95 latency: 3ms (3 operations)"
432
440
  ]
433
441
  }
434
442
  ]
435
443
  },
436
444
  "performanceMetrics": {
437
- "connectMs": 829.2160830000003,
438
- "toolsListMs": 1.030083999999988,
439
- "promptsListMs": 1.1311249999998836,
440
- "resourcesListMs": 0.004041000000142958
445
+ "connectMs": 910.1913339999992,
446
+ "toolsListMs": 3.150707999999213,
447
+ "promptsListMs": 1.210667000000285,
448
+ "resourcesListMs": 0.0029999999997016857
441
449
  }
442
450
  }
@@ -1,6 +1,6 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-06-24T02:07:25.699Z
3
+ Generated at 2026-07-06T01:46:55.135Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
@@ -8,8 +8,8 @@ Generated at 2026-06-24T02:07:25.699Z
8
8
  - Adapter: `local-process`
9
9
  - Command: `npx -y promptopia-mcp`
10
10
  - Server: `promptopia-mcp 1.1.0`
11
- - Platform: `darwin 25.5.0`
12
- - Node: `v22.22.1`
11
+ - Platform: `darwin 24.0.0`
12
+ - Node: `v25.8.1`
13
13
 
14
14
  ## Executive Summary
15
15
 
@@ -47,12 +47,12 @@ _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 | 1.66 | All 7 conformance checks passed. |
51
- | healthy | prompts | pass | 1.13 | Advertised capability responded with the minimal expected shape (1 item). |
52
- | healthy | security | pass | 0.19 | No security issues detected. |
50
+ | healthy | conformance | pass | 1.69 | All 7 conformance checks passed. |
51
+ | healthy | prompts | pass | 1.21 | Advertised capability responded with the minimal expected shape (1 item). |
52
+ | healthy | security | pass | 0.32 | No security issues detected. |
53
53
  | healthy | security-lite | pass | 0.03 | No security issues detected (lightweight scan). |
54
- | healthy | tools | pass | 1.03 | Advertised capability responded with the minimal expected shape (7 items). |
55
- | review | schema-quality | partial | 0.66 | Found 1 quality finding(s) across 8 item(s): 0 warnings, 1 info. |
54
+ | healthy | tools | pass | 3.15 | Advertised capability responded with the minimal expected shape (7 items). |
55
+ | review | schema-quality | partial | 0.74 | Found 1 quality finding(s) across 8 item(s): 0 warnings, 1 info. |
56
56
  | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
57
57
 
58
58
  ## Evidence Snippets
@@ -79,7 +79,7 @@ Summary: Advertised capability responded with the minimal expected shape (1 item
79
79
  - Minimal shape present: `true`
80
80
  - Item count: `1`
81
81
  - Identifiers: demo_welcome
82
- - Diagnostics: Watching for changes in prompts directory: /Users/williamweishuhn/Documents/New project/mcp-observatory/examples/promptopia-prompts, promptopia-mcp MCP server running (v1.1.0)
82
+ - Diagnostics: Watching for changes in prompts directory: /Users/sanghoon/mcp-observatory/examples/promptopia-prompts, promptopia-mcp MCP server running (v1.1.0)
83
83
 
84
84
  ### security — pass
85
85
 
@@ -115,7 +115,7 @@ Summary: Advertised capability responded with the minimal expected shape (7 item
115
115
  - Minimal shape present: `true`
116
116
  - Item count: `7`
117
117
  - Identifiers: add_prompt, update_prompt, get_prompt, list_prompts, delete_prompt (+2 more)
118
- - Diagnostics: Watching for changes in prompts directory: /Users/williamweishuhn/Documents/New project/mcp-observatory/examples/promptopia-prompts, promptopia-mcp MCP server running (v1.1.0)
118
+ - Diagnostics: Watching for changes in prompts directory: /Users/sanghoon/mcp-observatory/examples/promptopia-prompts, promptopia-mcp MCP server running (v1.1.0)
119
119
 
120
120
  ### schema-quality — partial
121
121
 
@@ -152,5 +152,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
152
152
 
153
153
  - Artifact type: `run`
154
154
  - Schema version: `1.0.0`
155
- - Run ID: `run_2026-06-24T020725699Z_7cde9d35`
155
+ - Run ID: `run_2026-07-06T014655135Z_d970b9ce`
156
156
  - Gate: `pass`
@@ -2,9 +2,9 @@
2
2
  "artifactType": "run",
3
3
  "schemaVersion": "1.0.0",
4
4
  "gate": "pass",
5
- "runId": "run_2026-06-24T020730285Z_85ad0698",
6
- "createdAt": "2026-06-24T02:07:30.285Z",
7
- "toolVersion": "0.24.0",
5
+ "runId": "run_2026-07-06T014701216Z_1c0434b0",
6
+ "createdAt": "2026-07-06T01:47:01.216Z",
7
+ "toolVersion": "0.26.1",
8
8
  "target": {
9
9
  "targetId": "puppeteer-server",
10
10
  "adapter": "local-process",
@@ -25,14 +25,14 @@
25
25
  "serverVersion": "0.1.0"
26
26
  },
27
27
  "environment": {
28
- "platform": "darwin 25.5.0",
29
- "nodeVersion": "v22.22.1"
28
+ "platform": "darwin 24.0.0",
29
+ "nodeVersion": "v25.8.1"
30
30
  },
31
31
  "summary": {
32
32
  "total": 7,
33
- "pass": 4,
33
+ "pass": 5,
34
34
  "fail": 0,
35
- "partial": 2,
35
+ "partial": 1,
36
36
  "unsupported": 1,
37
37
  "flaky": 0,
38
38
  "skipped": 0,
@@ -43,7 +43,7 @@
43
43
  "id": "tools",
44
44
  "capability": "tools",
45
45
  "status": "pass",
46
- "durationMs": 0.41391699999985576,
46
+ "durationMs": 0.5711250000003929,
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.0010000000002037268,
195
+ "durationMs": 0.0006670000002486631,
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.864040999998906,
211
+ "durationMs": 0.5291250000009313,
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.041500000001178705,
240
+ "durationMs": 0.04550000000017462,
241
241
  "message": "No security issues detected (lightweight scan).",
242
242
  "evidence": [
243
243
  {
@@ -252,26 +252,24 @@
252
252
  {
253
253
  "id": "conformance",
254
254
  "capability": "conformance",
255
- "status": "partial",
256
- "durationMs": 2.417708999999377,
257
- "message": "6/7 conformance checks passed, 1 failed.",
255
+ "status": "pass",
256
+ "durationMs": 571.27225,
257
+ "message": "All 7 conformance checks passed.",
258
258
  "evidence": [
259
259
  {
260
260
  "endpoint": "conformance/check",
261
261
  "advertised": true,
262
262
  "responded": true,
263
- "minimalShapePresent": false,
263
+ "minimalShapePresent": true,
264
264
  "itemCount": 7,
265
- "identifiers": [
266
- "tool-response-content"
267
- ],
265
+ "identifiers": [],
268
266
  "diagnostics": [
269
267
  "[pass] capabilities-present: Server returned capabilities object.",
270
268
  "[pass] server-info: Server provided initialization info.",
271
269
  "[pass] tools-capability-match: tools/list returned 8 tool(s).",
272
270
  "[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
273
271
  "[pass] resources-capability-match: resources/list returned 1 resource(s).",
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.",
272
+ "[pass] tool-response-content: Tool \"puppeteer_connect_active_tab\" response has valid content array.",
275
273
  "[pass] error-handling: Server returned proper error code -32601 for unknown method."
276
274
  ]
277
275
  }
@@ -281,7 +279,7 @@
281
279
  "id": "schema-quality",
282
280
  "capability": "schema-quality",
283
281
  "status": "partial",
284
- "durationMs": 0.33158299999922747,
282
+ "durationMs": 0.4983749999992142,
285
283
  "message": "Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info.",
286
284
  "evidence": [
287
285
  {
@@ -297,6 +295,20 @@
297
295
  "diagnostics": [
298
296
  "[info] tool \"puppeteer_navigate\": Property 'url' missing description",
299
297
  "[warning] resource \"Browser console logs\": Missing description"
298
+ ],
299
+ "findings": [
300
+ {
301
+ "itemType": "tool",
302
+ "itemName": "puppeteer_navigate",
303
+ "issue": "Property 'url' missing description",
304
+ "severity": "info"
305
+ },
306
+ {
307
+ "itemType": "resource",
308
+ "itemName": "Browser console logs",
309
+ "issue": "Missing description",
310
+ "severity": "warning"
311
+ }
300
312
  ]
301
313
  }
302
314
  ]
@@ -305,7 +317,7 @@
305
317
  "id": "security",
306
318
  "capability": "security",
307
319
  "status": "pass",
308
- "durationMs": 0.18262499999946158,
320
+ "durationMs": 0.22308300000076997,
309
321
  "message": "No security issues detected.",
310
322
  "evidence": [
311
323
  {
@@ -319,15 +331,15 @@
319
331
  }
320
332
  ],
321
333
  "healthScore": {
322
- "overall": 77,
323
- "grade": "C",
334
+ "overall": 89,
335
+ "grade": "B",
324
336
  "dimensions": [
325
337
  {
326
338
  "name": "Protocol Compliance",
327
339
  "weight": 0.3,
328
- "score": 60,
340
+ "score": 100,
329
341
  "details": [
330
- "conformance: partial (60/100)"
342
+ "conformance: pass (100/100)"
331
343
  ]
332
344
  },
333
345
  {
@@ -362,16 +374,16 @@
362
374
  "weight": 0.1,
363
375
  "score": 100,
364
376
  "details": [
365
- "Connect: 812ms",
377
+ "Connect: 771ms",
366
378
  "p95 latency: 1ms (3 operations)"
367
379
  ]
368
380
  }
369
381
  ]
370
382
  },
371
383
  "performanceMetrics": {
372
- "connectMs": 812.1966250000005,
373
- "toolsListMs": 0.41391699999985576,
374
- "promptsListMs": 0.0010000000002037268,
375
- "resourcesListMs": 0.864040999998906
384
+ "connectMs": 770.8425420000003,
385
+ "toolsListMs": 0.5711250000003929,
386
+ "promptsListMs": 0.0006670000002486631,
387
+ "resourcesListMs": 0.5291250000009313
376
388
  }
377
389
  }