@kryptosai/mcp-observatory 0.27.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 (160) hide show
  1. package/COMMERCIAL.md +28 -2
  2. package/CONTRIBUTORS.md +39 -0
  3. package/README.md +114 -22
  4. package/dist/src/action-receipt.d.ts +20 -0
  5. package/dist/src/action-receipt.js +85 -0
  6. package/dist/src/action-receipt.js.map +1 -0
  7. package/dist/src/adapters/http.js +1 -5
  8. package/dist/src/adapters/http.js.map +1 -1
  9. package/dist/src/audit.d.ts +64 -0
  10. package/dist/src/audit.js +359 -0
  11. package/dist/src/audit.js.map +1 -0
  12. package/dist/src/cassette.js +3 -2
  13. package/dist/src/cassette.js.map +1 -1
  14. package/dist/src/checks/attack-sim.d.ts +20 -0
  15. package/dist/src/checks/attack-sim.js +316 -0
  16. package/dist/src/checks/attack-sim.js.map +1 -0
  17. package/dist/src/ci-issue.js +4 -3
  18. package/dist/src/ci-issue.js.map +1 -1
  19. package/dist/src/cli.js +25 -4
  20. package/dist/src/cli.js.map +1 -1
  21. package/dist/src/commands/attack-sim.d.ts +2 -0
  22. package/dist/src/commands/attack-sim.js +220 -0
  23. package/dist/src/commands/attack-sim.js.map +1 -0
  24. package/dist/src/commands/audit.d.ts +2 -0
  25. package/dist/src/commands/audit.js +132 -0
  26. package/dist/src/commands/audit.js.map +1 -0
  27. package/dist/src/commands/init-ci.d.ts +3 -0
  28. package/dist/src/commands/init-ci.js +78 -13
  29. package/dist/src/commands/init-ci.js.map +1 -1
  30. package/dist/src/commands/legacy.js +8 -1
  31. package/dist/src/commands/legacy.js.map +1 -1
  32. package/dist/src/commands/receipt.d.ts +2 -0
  33. package/dist/src/commands/receipt.js +113 -0
  34. package/dist/src/commands/receipt.js.map +1 -0
  35. package/dist/src/commands/scan.js +30 -6
  36. package/dist/src/commands/scan.js.map +1 -1
  37. package/dist/src/commands/score.js +63 -0
  38. package/dist/src/commands/score.js.map +1 -1
  39. package/dist/src/commands/serve.js +9 -1
  40. package/dist/src/commands/serve.js.map +1 -1
  41. package/dist/src/commands/setup-ci-conversion.d.ts +3 -1
  42. package/dist/src/commands/setup-ci-conversion.js +23 -8
  43. package/dist/src/commands/setup-ci-conversion.js.map +1 -1
  44. package/dist/src/commands/telemetry.js +20 -14
  45. package/dist/src/commands/telemetry.js.map +1 -1
  46. package/dist/src/commands/test.js +31 -2
  47. package/dist/src/commands/test.js.map +1 -1
  48. package/dist/src/findings.d.ts +1 -0
  49. package/dist/src/findings.js +42 -1
  50. package/dist/src/findings.js.map +1 -1
  51. package/dist/src/history.js +3 -2
  52. package/dist/src/history.js.map +1 -1
  53. package/dist/src/index.d.ts +4 -0
  54. package/dist/src/index.js +4 -0
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/integrations/smithery.js +5 -1
  57. package/dist/src/integrations/smithery.js.map +1 -1
  58. package/dist/src/receipt.d.ts +100 -0
  59. package/dist/src/receipt.js +375 -0
  60. package/dist/src/receipt.js.map +1 -0
  61. package/dist/src/reporters/attack-sim.d.ts +2 -0
  62. package/dist/src/reporters/attack-sim.js +89 -0
  63. package/dist/src/reporters/attack-sim.js.map +1 -0
  64. package/dist/src/reporters/pr-comment.js +20 -6
  65. package/dist/src/reporters/pr-comment.js.map +1 -1
  66. package/dist/src/reporters/sarif.js +11 -1
  67. package/dist/src/reporters/sarif.js.map +1 -1
  68. package/dist/src/runner.d.ts +3 -0
  69. package/dist/src/runner.js +5 -0
  70. package/dist/src/runner.js.map +1 -1
  71. package/dist/src/score.js +1 -1
  72. package/dist/src/score.js.map +1 -1
  73. package/dist/src/security-profiles.d.ts +13 -0
  74. package/dist/src/security-profiles.js +59 -0
  75. package/dist/src/security-profiles.js.map +1 -0
  76. package/dist/src/storage.js +3 -2
  77. package/dist/src/storage.js.map +1 -1
  78. package/dist/src/telemetry.d.ts +10 -0
  79. package/dist/src/telemetry.js +17 -1
  80. package/dist/src/telemetry.js.map +1 -1
  81. package/dist/src/types.d.ts +1 -1
  82. package/dist/src/utils/files.d.ts +1 -0
  83. package/dist/src/utils/files.js +21 -0
  84. package/dist/src/utils/files.js.map +1 -0
  85. package/dist/src/utils/ids.js +18 -5
  86. package/dist/src/utils/ids.js.map +1 -1
  87. package/dist/src/utils/url.d.ts +2 -0
  88. package/dist/src/utils/url.js +15 -0
  89. package/dist/src/utils/url.js.map +1 -0
  90. package/dist/src/validate.js +1 -1
  91. package/dist/src/validate.js.map +1 -1
  92. package/docs/10x-agentic-growth-sprint.md +47 -0
  93. package/docs/agent-ecosystem-promotion-plan.md +244 -0
  94. package/docs/agent-tasks.md +95 -0
  95. package/docs/agentic-contributor-outreach.md +52 -0
  96. package/docs/automatic-ci-integration.md +33 -0
  97. package/docs/campaign-attribution.md +58 -0
  98. package/docs/code-scanning-demo.md +57 -0
  99. package/docs/commercial-boundary.md +83 -0
  100. package/docs/contributor-proof-cards/README.md +33 -0
  101. package/docs/contributor-recognition.md +92 -0
  102. package/docs/examples/nsa-mcp-audit-report.md +372 -0
  103. package/docs/examples/nsa-mcp-results.sarif +930 -0
  104. package/docs/examples/nsa-mcp-score.json +13 -0
  105. package/docs/feishu-lark-mcp.md +1 -1
  106. package/docs/github-code-scanning-for-mcp.md +1 -1
  107. package/docs/government-enterprise-pilot.md +93 -0
  108. package/docs/launch.md +64 -0
  109. package/docs/mcp-attack-simulator.md +57 -0
  110. package/docs/mcp-receipts.md +109 -0
  111. package/docs/mcp-server-safety-index.md +29 -22
  112. package/docs/nsa-mcp-audit-ci.md +88 -0
  113. package/docs/procurement-one-pager.md +74 -0
  114. package/docs/proof.md +5 -2
  115. package/docs/public-guidance-crosswalk.md +48 -0
  116. package/docs/receipt-graph.md +54 -0
  117. package/docs/safety-index/artifacts/antv-chart-server.json +40 -22
  118. package/docs/safety-index/artifacts/antv-chart-server.md +22 -9
  119. package/docs/safety-index/artifacts/browsermcp-server.json +36 -18
  120. package/docs/safety-index/artifacts/browsermcp-server.md +22 -9
  121. package/docs/safety-index/artifacts/context7-server.json +83 -26
  122. package/docs/safety-index/artifacts/context7-server.md +33 -20
  123. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +2438 -0
  124. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +176 -0
  125. package/docs/safety-index/artifacts/everything-server.json +150 -57
  126. package/docs/safety-index/artifacts/everything-server.md +36 -23
  127. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +162 -19
  128. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +25 -12
  129. package/docs/safety-index/artifacts/filesystem-server.json +221 -19
  130. package/docs/safety-index/artifacts/filesystem-server.md +24 -11
  131. package/docs/safety-index/artifacts/kubernetes-server.attack.json +1559 -0
  132. package/docs/safety-index/artifacts/kubernetes-server.attack.md +43 -0
  133. package/docs/safety-index/artifacts/kubernetes-server.attack.sarif +2857 -0
  134. package/docs/safety-index/artifacts/kubernetes-server.json +1573 -0
  135. package/docs/safety-index/artifacts/kubernetes-server.md +176 -0
  136. package/docs/safety-index/artifacts/memory-server.json +93 -32
  137. package/docs/safety-index/artifacts/memory-server.md +45 -25
  138. package/docs/safety-index/artifacts/opentofu-server.json +44 -18
  139. package/docs/safety-index/artifacts/opentofu-server.md +23 -10
  140. package/docs/safety-index/artifacts/playwright-mcp-server.json +177 -21
  141. package/docs/safety-index/artifacts/playwright-mcp-server.md +27 -14
  142. package/docs/safety-index/artifacts/promptopia-server.json +45 -19
  143. package/docs/safety-index/artifacts/promptopia-server.md +21 -8
  144. package/docs/safety-index/artifacts/puppeteer-server.json +77 -22
  145. package/docs/safety-index/artifacts/puppeteer-server.md +28 -15
  146. package/docs/safety-index/artifacts/ref-tools-server.json +36 -18
  147. package/docs/safety-index/artifacts/ref-tools-server.md +21 -8
  148. package/docs/safety-index/artifacts/sequential-thinking-server.json +38 -21
  149. package/docs/safety-index/artifacts/sequential-thinking-server.md +22 -9
  150. package/docs/safety-index/targets.json +90 -14
  151. package/docs/security-due-diligence.md +87 -0
  152. package/docs/setup-ci-doctor.md +13 -1
  153. package/docs/target-gallery.md +49 -0
  154. package/docs/target-registry.md +5 -1
  155. package/docs/tool-call-receipts.md +115 -0
  156. package/examples/insecure-mcp-server/mcp-observatory.target.json +13 -0
  157. package/examples/insecure-mcp-server/server.mjs +62 -0
  158. package/package.json +31 -2
  159. package/schemas/run-artifact.schema.json +1 -0
  160. package/scripts/postinstall.mjs +138 -0
@@ -0,0 +1,176 @@
1
+ # MCP Observatory Run Report
2
+
3
+ Generated at 2026-07-06T19:49:58.878Z
4
+
5
+ ## Target and Environment Metadata
6
+
7
+ - Target: `kubernetes-server`
8
+ - Adapter: `local-process`
9
+ - Command: `npx -y mcp-server-kubernetes`
10
+ - Server: `kubernetes 3.9.3`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
+
14
+ ## Executive Summary
15
+
16
+ **Health Score: 72/100 (C)**
17
+
18
+ | Dimension | Score | Weight |
19
+ | --- | --- | --- |
20
+ | Protocol Compliance | 100/100 | 30% |
21
+ | Schema Quality | 60/100 | 20% |
22
+ | Security | 0/100 | 20% |
23
+ | Reliability | 100/100 | 20% |
24
+ | Performance | 100/100 | 10% |
25
+
26
+ | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
+ | --- | --- | --- | --- | --- | --- | --- | --- |
28
+ | fail | 8 | 4 | 3 | 1 | 0 | 0 | 0 |
29
+
30
+ ## At a Glance
31
+
32
+ - Safety verdict: **Blocked** — One or more checks can break agent dependence and should be fixed before production use.
33
+ - Top risks: schema-quality: Found 7 quality finding(s) across 29 item(s): 0 warnings, 7 info.; attack-sim: Safe attack simulation found 5 finding(s): 3 high, 2 medium, 0 low.; security: Found 8 security finding(s): 3 high, 3 medium, 2 low.
34
+ - Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
35
+ - Failing checks: security-lite, security, attack-sim
36
+ - Partial or flaky checks: schema-quality
37
+ - Skipped checks: none
38
+ - Unsupported checks: none
39
+ - Suggested next step: Start with the failing checks: security-lite, security, attack-sim.
40
+ - CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
41
+
42
+ ## Regressions and Recoveries
43
+
44
+ _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
45
+
46
+ ## Full Capability Status Table
47
+
48
+ | Focus | Check | Status | Duration (ms) | Message |
49
+ | --- | --- | --- | --- | --- |
50
+ | healthy | conformance | pass | 1.69 | All 7 conformance checks passed. |
51
+ | healthy | prompts | pass | 0.30 | Advertised capability responded with the minimal expected shape (1 item). |
52
+ | healthy | resources | pass | 0.38 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
53
+ | healthy | tools | pass | 1.26 | Advertised capability responded with the minimal expected shape (23 items). |
54
+ | review | schema-quality | partial | 0.49 | Found 7 quality finding(s) across 29 item(s): 0 warnings, 7 info. |
55
+ | act now | attack-sim | fail | 0.75 | Safe attack simulation found 5 finding(s): 3 high, 2 medium, 0 low. |
56
+ | act now | security | fail | 0.28 | Found 8 security finding(s): 3 high, 3 medium, 2 low. |
57
+ | act now | security-lite | fail | 0.06 | Found 8 security finding(s): 3 high, 3 medium, 2 low. |
58
+
59
+ ## Evidence Snippets
60
+
61
+ ### conformance — pass
62
+
63
+ Summary: All 7 conformance checks passed.
64
+
65
+ - Endpoint: `conformance/check`
66
+ - Advertised: `true`
67
+ - Responded: `true`
68
+ - Minimal shape present: `true`
69
+ - Item count: `7`
70
+ - Identifiers: none
71
+ - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 23 tool(s). (+4 more)
72
+
73
+ ### prompts — pass
74
+
75
+ Summary: Advertised capability responded with the minimal expected shape (1 item).
76
+
77
+ - Endpoint: `prompts/list`
78
+ - Advertised: `true`
79
+ - Responded: `true`
80
+ - Minimal shape present: `true`
81
+ - Item count: `1`
82
+ - Identifiers: k8s-diagnose
83
+ - Diagnostics: Starting Kubernetes MCP server v3.9.3, handling commands..., Telemetry: Disabled, (node:13988) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (+1 more)
84
+
85
+ ### resources — pass
86
+
87
+ Summary: Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.
88
+
89
+ - Endpoint: `resources/list`
90
+ - Advertised: `true`
91
+ - Responded: `true`
92
+ - Minimal shape present: `true`
93
+ - Item count: `5`
94
+ - Identifiers: k8s://default/pods, k8s://default/deployments, k8s://default/services, k8s://namespaces, k8s://nodes
95
+ - Diagnostics: Starting Kubernetes MCP server v3.9.3, handling commands..., Telemetry: Disabled, (node:13988) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (+1 more)
96
+ - Endpoint: `resources/templates/list`
97
+ - Advertised: `true`
98
+ - Responded: `false`
99
+ - Minimal shape present: `false`
100
+ - Item count: `0`
101
+ - Identifiers: none
102
+ - Diagnostics: MCP error -32601: Method not found, Starting Kubernetes MCP server v3.9.3, handling commands..., Telemetry: Disabled (+2 more)
103
+
104
+ ### tools — pass
105
+
106
+ Summary: Advertised capability responded with the minimal expected shape (23 items).
107
+
108
+ - Endpoint: `tools/list`
109
+ - Advertised: `true`
110
+ - Responded: `true`
111
+ - Minimal shape present: `true`
112
+ - Item count: `23`
113
+ - Identifiers: cleanup, kubectl_get, kubectl_describe, kubectl_apply, kubectl_delete (+18 more)
114
+ - Diagnostics: Starting Kubernetes MCP server v3.9.3, handling commands..., Telemetry: Disabled, (node:13988) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (+1 more)
115
+
116
+ ### schema-quality — partial
117
+
118
+ Summary: Found 7 quality finding(s) across 29 item(s): 0 warnings, 7 info.
119
+
120
+ - Endpoint: `schema-quality/scan`
121
+ - Advertised: `true`
122
+ - Responded: `true`
123
+ - Minimal shape present: `true`
124
+ - Item count: `7`
125
+ - Identifiers: port_forward, stop_port_forward, list_api_resources
126
+ - Diagnostics: [info] tool "port_forward": Property 'resourceType' missing description, [info] tool "port_forward": Property 'resourceName' missing description, [info] tool "port_forward": Property 'localPort' missing description (+4 more)
127
+
128
+ ### attack-sim — fail
129
+
130
+ Summary: Safe attack simulation found 5 finding(s): 3 high, 2 medium, 0 low.
131
+
132
+ - Endpoint: `attack-sim/safe`
133
+ - Advertised: `true`
134
+ - Responded: `true`
135
+ - Minimal shape present: `true`
136
+ - Item count: `5`
137
+ - Identifiers: kubectl_apply, kubectl_delete, kubectl_create, exec_in_pod, kubectl_generic
138
+ - Diagnostics: [medium] Tool "kubectl_apply" combines broad parameters (filename) with destructive or non-read-only behavior., [medium] Tool "kubectl_delete" combines broad parameters (filename) with destructive or non-read-only behavior., [high] Tool "kubectl_create" combines broad parameters (filename, command) with destructive or non-read-only behavior. (+2 more)
139
+
140
+ ### security — fail
141
+
142
+ Summary: Found 8 security finding(s): 3 high, 3 medium, 2 low.
143
+
144
+ - Endpoint: `security/scan`
145
+ - Advertised: `true`
146
+ - Responded: `true`
147
+ - Minimal shape present: `true`
148
+ - Item count: `8`
149
+ - Identifiers: cleanup, kubectl_apply, kubectl_delete, kubectl_create, kubectl_reconnect (+2 more)
150
+ - Diagnostics: [low] Tool "cleanup" has an empty schema but is marked as destructive., [medium] Tool "kubectl_apply" accepts filesystem paths and has destructive capabilities., [medium] Tool "kubectl_delete" accepts filesystem paths and has destructive capabilities. (+5 more)
151
+
152
+ ### security-lite — fail
153
+
154
+ Summary: Found 8 security finding(s): 3 high, 3 medium, 2 low.
155
+
156
+ - Endpoint: `security/scan-lite`
157
+ - Advertised: `true`
158
+ - Responded: `true`
159
+ - Minimal shape present: `true`
160
+ - Item count: `8`
161
+ - Identifiers: cleanup, kubectl_apply, kubectl_delete, kubectl_create, kubectl_reconnect (+2 more)
162
+ - Diagnostics: [low] Tool "cleanup" has an empty schema but is marked as destructive., [medium] Tool "kubectl_apply" accepts filesystem paths and has destructive capabilities., [medium] Tool "kubectl_delete" accepts filesystem paths and has destructive capabilities. (+5 more)
163
+
164
+ ## Reproduction Commands
165
+
166
+ ```bash
167
+ npm run cli -- run --target <path-to-target-config.json>
168
+ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
169
+ ```
170
+
171
+ ## Artifact Provenance
172
+
173
+ - Artifact type: `run`
174
+ - Schema version: `1.0.0`
175
+ - Run ID: `run_2026-07-06T194958878Z_b41bb221`
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-06-24T020723256Z_467de620",
6
- "createdAt": "2026-06-24T02:07:23.256Z",
7
- "toolVersion": "0.24.0",
5
+ "runId": "run_2026-07-06T194946771Z_35b0da26",
6
+ "createdAt": "2026-07-06T19:49:46.771Z",
7
+ "toolVersion": "0.28.0",
8
8
  "target": {
9
9
  "targetId": "memory-server",
10
10
  "adapter": "local-process",
@@ -29,11 +29,11 @@
29
29
  "nodeVersion": "v22.22.1"
30
30
  },
31
31
  "summary": {
32
- "total": 7,
33
- "pass": 4,
32
+ "total": 8,
33
+ "pass": 6,
34
34
  "fail": 0,
35
35
  "partial": 1,
36
- "unsupported": 2,
36
+ "unsupported": 1,
37
37
  "flaky": 0,
38
38
  "skipped": 0,
39
39
  "gate": "pass"
@@ -43,7 +43,7 @@
43
43
  "id": "tools",
44
44
  "capability": "tools",
45
45
  "status": "pass",
46
- "durationMs": 7.443624999999884,
46
+ "durationMs": 7.618457999999919,
47
47
  "message": "Advertised capability responded with the minimal expected shape (9 items).",
48
48
  "evidence": [
49
49
  {
@@ -295,7 +295,7 @@
295
295
  "id": "prompts",
296
296
  "capability": "prompts",
297
297
  "status": "unsupported",
298
- "durationMs": 0.0019579999998313724,
298
+ "durationMs": 0.0020410000001902517,
299
299
  "message": "Prompts are not advertised by the target.",
300
300
  "evidence": [
301
301
  {
@@ -310,16 +310,33 @@
310
310
  {
311
311
  "id": "resources",
312
312
  "capability": "resources",
313
- "status": "unsupported",
314
- "durationMs": 0.001374999999825377,
315
- "message": "Resources are not advertised by the target.",
313
+ "status": "pass",
314
+ "durationMs": 1.1717079999998532,
315
+ "message": "Advertised capability responded with the minimal expected shape (1 items).",
316
316
  "evidence": [
317
317
  {
318
- "endpoint": "resources/list | resources/templates/list",
319
- "advertised": false,
320
- "responded": false,
321
- "minimalShapePresent": false,
322
- "diagnostics": []
318
+ "endpoint": "resources/list",
319
+ "advertised": true,
320
+ "responded": true,
321
+ "minimalShapePresent": true,
322
+ "itemCount": 1,
323
+ "identifiers": [
324
+ "memory://knowledge-graph"
325
+ ],
326
+ "diagnostics": [
327
+ "Knowledge Graph MCP Server running on stdio"
328
+ ]
329
+ },
330
+ {
331
+ "endpoint": "resources/templates/list",
332
+ "advertised": true,
333
+ "responded": true,
334
+ "minimalShapePresent": true,
335
+ "itemCount": 0,
336
+ "identifiers": [],
337
+ "diagnostics": [
338
+ "Knowledge Graph MCP Server running on stdio"
339
+ ]
323
340
  }
324
341
  ]
325
342
  },
@@ -327,7 +344,7 @@
327
344
  "id": "security-lite",
328
345
  "capability": "security-lite",
329
346
  "status": "pass",
330
- "durationMs": 0.03662500000018554,
347
+ "durationMs": 0.04383400000006077,
331
348
  "message": "No security issues detected (lightweight scan).",
332
349
  "evidence": [
333
350
  {
@@ -343,7 +360,7 @@
343
360
  "id": "conformance",
344
361
  "capability": "conformance",
345
362
  "status": "pass",
346
- "durationMs": 9.77066700000023,
363
+ "durationMs": 9.354083000000173,
347
364
  "message": "All 7 conformance checks passed.",
348
365
  "evidence": [
349
366
  {
@@ -358,7 +375,7 @@
358
375
  "[pass] server-info: Server provided initialization info.",
359
376
  "[pass] tools-capability-match: tools/list returned 9 tool(s).",
360
377
  "[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
361
- "[pass] resources-capability-match: Resources not advertised — endpoint check skipped.",
378
+ "[pass] resources-capability-match: resources/list returned 1 resource(s).",
362
379
  "[pass] tool-response-content: Tool \"read_graph\" response has valid content array.",
363
380
  "[pass] error-handling: Server returned proper error code -32601 for unknown method."
364
381
  ]
@@ -369,8 +386,8 @@
369
386
  "id": "schema-quality",
370
387
  "capability": "schema-quality",
371
388
  "status": "partial",
372
- "durationMs": 4.149374999999964,
373
- "message": "Found 4 quality finding(s) across 9 item(s): 0 warnings, 4 info.",
389
+ "durationMs": 4.083458000000064,
390
+ "message": "Found 4 quality finding(s) across 10 item(s): 0 warnings, 4 info.",
374
391
  "evidence": [
375
392
  {
376
393
  "endpoint": "schema-quality/scan",
@@ -389,6 +406,32 @@
389
406
  "[info] tool \"create_relations\": Property 'relations' missing description",
390
407
  "[info] tool \"add_observations\": Property 'observations' missing description",
391
408
  "[info] tool \"delete_observations\": Property 'deletions' missing description"
409
+ ],
410
+ "findings": [
411
+ {
412
+ "itemType": "tool",
413
+ "itemName": "create_entities",
414
+ "issue": "Property 'entities' missing description",
415
+ "severity": "info"
416
+ },
417
+ {
418
+ "itemType": "tool",
419
+ "itemName": "create_relations",
420
+ "issue": "Property 'relations' missing description",
421
+ "severity": "info"
422
+ },
423
+ {
424
+ "itemType": "tool",
425
+ "itemName": "add_observations",
426
+ "issue": "Property 'observations' missing description",
427
+ "severity": "info"
428
+ },
429
+ {
430
+ "itemType": "tool",
431
+ "itemName": "delete_observations",
432
+ "issue": "Property 'deletions' missing description",
433
+ "severity": "info"
434
+ }
392
435
  ]
393
436
  }
394
437
  ]
@@ -397,7 +440,7 @@
397
440
  "id": "security",
398
441
  "capability": "security",
399
442
  "status": "pass",
400
- "durationMs": 4.098707999999988,
443
+ "durationMs": 3.6132500000003347,
401
444
  "message": "No security issues detected.",
402
445
  "evidence": [
403
446
  {
@@ -408,10 +451,27 @@
408
451
  "itemCount": 0
409
452
  }
410
453
  ]
454
+ },
455
+ {
456
+ "id": "attack-sim",
457
+ "capability": "attack-sim",
458
+ "status": "pass",
459
+ "durationMs": 3.8723329999997986,
460
+ "message": "Safe attack simulation found no high-risk MCP attack-readiness findings.",
461
+ "evidence": [
462
+ {
463
+ "endpoint": "attack-sim/safe",
464
+ "advertised": true,
465
+ "responded": true,
466
+ "minimalShapePresent": true,
467
+ "itemCount": 0,
468
+ "identifiers": []
469
+ }
470
+ ]
411
471
  }
412
472
  ],
413
473
  "healthScore": {
414
- "overall": 85,
474
+ "overall": 89,
415
475
  "grade": "B",
416
476
  "dimensions": [
417
477
  {
@@ -436,17 +496,18 @@
436
496
  "score": 100,
437
497
  "details": [
438
498
  "security-lite: pass (100/100)",
439
- "security: pass (100/100)"
499
+ "security: pass (100/100)",
500
+ "attack-sim: pass (100/100)"
440
501
  ]
441
502
  },
442
503
  {
443
504
  "name": "Reliability",
444
505
  "weight": 0.2,
445
- "score": 67,
506
+ "score": 83,
446
507
  "details": [
447
508
  "tools: pass (100/100)",
448
509
  "prompts: unsupported (50/100)",
449
- "resources: unsupported (50/100)"
510
+ "resources: pass (100/100)"
450
511
  ]
451
512
  },
452
513
  {
@@ -454,16 +515,16 @@
454
515
  "weight": 0.1,
455
516
  "score": 100,
456
517
  "details": [
457
- "Connect: 703ms",
458
- "p95 latency: 7ms (3 operations)"
518
+ "Connect: 628ms",
519
+ "p95 latency: 8ms (3 operations)"
459
520
  ]
460
521
  }
461
522
  ]
462
523
  },
463
524
  "performanceMetrics": {
464
- "connectMs": 703.391959,
465
- "toolsListMs": 7.443624999999884,
466
- "promptsListMs": 0.0019579999998313724,
467
- "resourcesListMs": 0.001374999999825377
525
+ "connectMs": 628.0643749999999,
526
+ "toolsListMs": 7.618457999999919,
527
+ "promptsListMs": 0.0020410000001902517,
528
+ "resourcesListMs": 1.1717079999998532
468
529
  }
469
530
  }
@@ -1,6 +1,6 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-06-24T02:07:23.256Z
3
+ Generated at 2026-07-06T19:49:46.771Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
@@ -13,29 +13,29 @@ Generated at 2026-06-24T02:07:23.256Z
13
13
 
14
14
  ## Executive Summary
15
15
 
16
- **Health Score: 85/100 (B)**
16
+ **Health Score: 89/100 (B)**
17
17
 
18
18
  | Dimension | Score | Weight |
19
19
  | --- | --- | --- |
20
20
  | Protocol Compliance | 100/100 | 30% |
21
21
  | Schema Quality | 60/100 | 20% |
22
22
  | Security | 100/100 | 20% |
23
- | Reliability | 67/100 | 20% |
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 | 4 | 0 | 1 | 2 | 0 | 0 |
28
+ | pass | 8 | 6 | 0 | 1 | 1 | 0 | 0 |
29
29
 
30
30
  ## At a Glance
31
31
 
32
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 4 quality finding(s) across 9 item(s): 0 warnings, 4 info.
33
+ - Top risks: schema-quality: Found 4 quality finding(s) across 10 item(s): 0 warnings, 4 info.
34
34
  - Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
35
35
  - Failing checks: none
36
36
  - Partial or flaky checks: schema-quality
37
37
  - Skipped checks: none
38
- - Unsupported checks: prompts, resources
38
+ - Unsupported checks: prompts
39
39
  - Suggested next step: Review the caveated checks next: schema-quality.
40
40
  - CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
41
41
 
@@ -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 | conformance | pass | 9.77 | All 7 conformance checks passed. |
51
- | healthy | security | pass | 4.10 | No security issues detected. |
50
+ | healthy | attack-sim | pass | 3.87 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
51
+ | healthy | conformance | pass | 9.35 | All 7 conformance checks passed. |
52
+ | healthy | resources | pass | 1.17 | Advertised capability responded with the minimal expected shape (1 items). |
53
+ | healthy | security | pass | 3.61 | No security issues detected. |
52
54
  | healthy | security-lite | pass | 0.04 | No security issues detected (lightweight scan). |
53
- | healthy | tools | pass | 7.44 | Advertised capability responded with the minimal expected shape (9 items). |
54
- | review | schema-quality | partial | 4.15 | Found 4 quality finding(s) across 9 item(s): 0 warnings, 4 info. |
55
+ | healthy | tools | pass | 7.62 | Advertised capability responded with the minimal expected shape (9 items). |
56
+ | review | schema-quality | partial | 4.08 | Found 4 quality finding(s) across 10 item(s): 0 warnings, 4 info. |
55
57
  | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
56
- | 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.
@@ -69,6 +82,25 @@ Summary: All 7 conformance checks passed.
69
82
  - Identifiers: none
70
83
  - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 9 tool(s). (+4 more)
71
84
 
85
+ ### resources — pass
86
+
87
+ Summary: Advertised capability responded with the minimal expected shape (1 items).
88
+
89
+ - Endpoint: `resources/list`
90
+ - Advertised: `true`
91
+ - Responded: `true`
92
+ - Minimal shape present: `true`
93
+ - Item count: `1`
94
+ - Identifiers: memory://knowledge-graph
95
+ - Diagnostics: Knowledge Graph MCP Server running on stdio
96
+ - Endpoint: `resources/templates/list`
97
+ - Advertised: `true`
98
+ - Responded: `true`
99
+ - Minimal shape present: `true`
100
+ - Item count: `0`
101
+ - Identifiers: none
102
+ - Diagnostics: Knowledge Graph MCP Server running on stdio
103
+
72
104
  ### security — pass
73
105
 
74
106
  Summary: No security issues detected.
@@ -107,7 +139,7 @@ Summary: Advertised capability responded with the minimal expected shape (9 item
107
139
 
108
140
  ### schema-quality — partial
109
141
 
110
- Summary: Found 4 quality finding(s) across 9 item(s): 0 warnings, 4 info.
142
+ Summary: Found 4 quality finding(s) across 10 item(s): 0 warnings, 4 info.
111
143
 
112
144
  - Endpoint: `schema-quality/scan`
113
145
  - Advertised: `true`
@@ -129,18 +161,6 @@ Summary: Prompts are not advertised by the target.
129
161
  - Identifiers: none
130
162
  - Diagnostics: none
131
163
 
132
- ### resources — unsupported
133
-
134
- Summary: Resources are not advertised by the target.
135
-
136
- - Endpoint: `resources/list | resources/templates/list`
137
- - Advertised: `false`
138
- - Responded: `false`
139
- - Minimal shape present: `false`
140
- - Item count: `0`
141
- - Identifiers: none
142
- - Diagnostics: none
143
-
144
164
  ## Reproduction Commands
145
165
 
146
166
  ```bash
@@ -152,5 +172,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
152
172
 
153
173
  - Artifact type: `run`
154
174
  - Schema version: `1.0.0`
155
- - Run ID: `run_2026-06-24T020723256Z_467de620`
175
+ - Run ID: `run_2026-07-06T194946771Z_35b0da26`
156
176
  - Gate: `pass`