@kryptosai/mcp-observatory 1.32.0 → 1.32.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 (117) hide show
  1. package/README.md +4 -10
  2. package/README.zh-CN.md +4 -10
  3. package/dist/src/cli.js +1 -1
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/commands/enforce.d.ts +2 -2
  6. package/dist/src/commands/enforce.js +5 -8
  7. package/dist/src/commands/enforce.js.map +1 -1
  8. package/dist/src/commands/scan.js.map +1 -1
  9. package/dist/src/commands/test.js +2 -2
  10. package/dist/src/commands/test.js.map +1 -1
  11. package/dist/src/telemetry.js +2 -1
  12. package/dist/src/telemetry.js.map +1 -1
  13. package/dist/src/validate.js +5 -6
  14. package/dist/src/validate.js.map +1 -1
  15. package/docs/mcp-server-safety-index.md +68 -8
  16. package/docs/safety-index/artifacts/antv-chart-server.json +1452 -19
  17. package/docs/safety-index/artifacts/antv-chart-server.md +156 -10
  18. package/docs/safety-index/artifacts/brave-search-server.json +341 -0
  19. package/docs/safety-index/artifacts/brave-search-server.md +201 -0
  20. package/docs/safety-index/artifacts/browsermcp-server.json +83 -18
  21. package/docs/safety-index/artifacts/browsermcp-server.md +46 -12
  22. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +592 -21
  23. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +96 -14
  24. package/docs/safety-index/artifacts/clay-server.json +66 -0
  25. package/docs/safety-index/artifacts/clay-server.md +106 -0
  26. package/docs/safety-index/artifacts/cloudflare-server.json +66 -0
  27. package/docs/safety-index/artifacts/cloudflare-server.md +106 -0
  28. package/docs/safety-index/artifacts/context7-server.json +85 -18
  29. package/docs/safety-index/artifacts/context7-server.md +52 -11
  30. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +1565 -34
  31. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +178 -17
  32. package/docs/safety-index/artifacts/docker-server.json +395 -0
  33. package/docs/safety-index/artifacts/docker-server.md +204 -0
  34. package/docs/safety-index/artifacts/everything-server.json +145 -18
  35. package/docs/safety-index/artifacts/everything-server.md +56 -11
  36. package/docs/safety-index/artifacts/exa-server.json +400 -0
  37. package/docs/safety-index/artifacts/exa-server.md +207 -0
  38. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +625 -18
  39. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +95 -11
  40. package/docs/safety-index/artifacts/fetch-server.json +66 -0
  41. package/docs/safety-index/artifacts/fetch-server.md +106 -0
  42. package/docs/safety-index/artifacts/figma-server.json +1766 -0
  43. package/docs/safety-index/artifacts/figma-server.md +256 -0
  44. package/docs/safety-index/artifacts/filesystem-mcp-server.json +428 -24
  45. package/docs/safety-index/artifacts/filesystem-mcp-server.md +75 -14
  46. package/docs/safety-index/artifacts/filesystem-server.json +426 -22
  47. package/docs/safety-index/artifacts/filesystem-server.md +73 -12
  48. package/docs/safety-index/artifacts/firecrawl-server.json +4056 -0
  49. package/docs/safety-index/artifacts/firecrawl-server.md +243 -0
  50. package/docs/safety-index/artifacts/github-mcp-server.json +374 -21
  51. package/docs/safety-index/artifacts/github-mcp-server.md +71 -15
  52. package/docs/safety-index/artifacts/gitlab-server.json +229 -0
  53. package/docs/safety-index/artifacts/gitlab-server.md +753 -0
  54. package/docs/safety-index/artifacts/gmail-server.json +66 -0
  55. package/docs/safety-index/artifacts/gmail-server.md +106 -0
  56. package/docs/safety-index/artifacts/google-calendar-server.json +66 -0
  57. package/docs/safety-index/artifacts/google-calendar-server.md +106 -0
  58. package/docs/safety-index/artifacts/google-drive-server.json +66 -0
  59. package/docs/safety-index/artifacts/google-drive-server.md +106 -0
  60. package/docs/safety-index/artifacts/google-sheets-server.json +66 -0
  61. package/docs/safety-index/artifacts/google-sheets-server.md +106 -0
  62. package/docs/safety-index/artifacts/google-tasks-server.json +66 -0
  63. package/docs/safety-index/artifacts/google-tasks-server.md +106 -0
  64. package/docs/safety-index/artifacts/huggingface-server.json +66 -0
  65. package/docs/safety-index/artifacts/huggingface-server.md +106 -0
  66. package/docs/safety-index/artifacts/jina-server.json +66 -0
  67. package/docs/safety-index/artifacts/jina-server.md +106 -0
  68. package/docs/safety-index/artifacts/kubernetes-server.json +1054 -27
  69. package/docs/safety-index/artifacts/kubernetes-server.md +137 -18
  70. package/docs/safety-index/artifacts/linear-server.json +1494 -0
  71. package/docs/safety-index/artifacts/linear-server.md +237 -0
  72. package/docs/safety-index/artifacts/memory-server.json +191 -18
  73. package/docs/safety-index/artifacts/memory-server.md +51 -9
  74. package/docs/safety-index/artifacts/mongodb-server.json +66 -0
  75. package/docs/safety-index/artifacts/mongodb-server.md +106 -0
  76. package/docs/safety-index/artifacts/neon-server.json +66 -0
  77. package/docs/safety-index/artifacts/neon-server.md +103 -0
  78. package/docs/safety-index/artifacts/notion-server.json +7151 -0
  79. package/docs/safety-index/artifacts/notion-server.md +236 -0
  80. package/docs/safety-index/artifacts/onesignal-server.json +66 -0
  81. package/docs/safety-index/artifacts/onesignal-server.md +106 -0
  82. package/docs/safety-index/artifacts/opentofu-server.json +31 -19
  83. package/docs/safety-index/artifacts/opentofu-server.md +28 -10
  84. package/docs/safety-index/artifacts/playwright-mcp-server.json +415 -24
  85. package/docs/safety-index/artifacts/playwright-mcp-server.md +84 -20
  86. package/docs/safety-index/artifacts/postgres-server.json +330 -0
  87. package/docs/safety-index/artifacts/postgres-server.md +208 -0
  88. package/docs/safety-index/artifacts/promptopia-server.json +96 -19
  89. package/docs/safety-index/artifacts/promptopia-server.md +43 -9
  90. package/docs/safety-index/artifacts/puppeteer-server.json +118 -29
  91. package/docs/safety-index/artifacts/puppeteer-server.md +61 -19
  92. package/docs/safety-index/artifacts/qdrant-server.json +66 -0
  93. package/docs/safety-index/artifacts/qdrant-server.md +106 -0
  94. package/docs/safety-index/artifacts/reddit-server.json +66 -0
  95. package/docs/safety-index/artifacts/reddit-server.md +106 -0
  96. package/docs/safety-index/artifacts/ref-tools-server.json +95 -18
  97. package/docs/safety-index/artifacts/ref-tools-server.md +45 -12
  98. package/docs/safety-index/artifacts/sentry-server.json +66 -0
  99. package/docs/safety-index/artifacts/sentry-server.md +106 -0
  100. package/docs/safety-index/artifacts/sequential-thinking-server.json +59 -18
  101. package/docs/safety-index/artifacts/sequential-thinking-server.md +41 -9
  102. package/docs/safety-index/artifacts/slack-server.json +66 -0
  103. package/docs/safety-index/artifacts/slack-server.md +102 -0
  104. package/docs/safety-index/artifacts/sqlite-server.json +67 -0
  105. package/docs/safety-index/artifacts/sqlite-server.md +106 -0
  106. package/docs/safety-index/artifacts/stripe-server.json +66 -0
  107. package/docs/safety-index/artifacts/stripe-server.md +106 -0
  108. package/docs/safety-index/artifacts/supabase-server.json +66 -0
  109. package/docs/safety-index/artifacts/supabase-server.md +102 -0
  110. package/docs/safety-index/artifacts/tavily-search-server.json +66 -0
  111. package/docs/safety-index/artifacts/tavily-search-server.md +106 -0
  112. package/docs/safety-index/artifacts/ui5-mcp-server.json +24 -24
  113. package/docs/safety-index/artifacts/ui5-mcp-server.md +13 -13
  114. package/docs/safety-index/artifacts/vercel-ai-server.json +66 -0
  115. package/docs/safety-index/artifacts/vercel-ai-server.md +106 -0
  116. package/docs/safety-index/targets.json +535 -0
  117. package/package.json +1 -1
@@ -0,0 +1,201 @@
1
+ # MCP Observatory Run Report
2
+
3
+ Generated at 2026-07-12T23:44:31.584Z
4
+
5
+ ## Target and Environment Metadata
6
+
7
+ - Target: `brave-search-server`
8
+ - Adapter: `local-process`
9
+ - Command: `npx -y @modelcontextprotocol/server-brave-search`
10
+ - Server: `example-servers/brave-search 0.1.0`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
+
14
+ ## Executive Summary
15
+
16
+ **Health Score: 93/100 (A)**
17
+
18
+ | Dimension | Score | Weight |
19
+ | --- | --- | --- |
20
+ | Protocol Compliance | 100/100 | 30% |
21
+ | Schema Quality | 100/100 | 20% |
22
+ | Security | 100/100 | 20% |
23
+ | Reliability | 67/100 | 20% |
24
+ | Performance | 100/100 | 10% |
25
+
26
+ | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
+ | --- | --- | --- | --- | --- | --- | --- | --- |
28
+ | pass | 9 | 7 | 0 | 0 | 2 | 0 | 0 |
29
+
30
+ ## At a Glance
31
+
32
+ - Safety verdict: **Needs review** — The server is usable, but caveated checks should be reviewed before agents depend on it.
33
+ - Top risks: No high-priority risks detected.
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: none
37
+ - Skipped checks: none
38
+ - Unsupported checks: prompts, resources
39
+ - Suggested next step: Confirm that unsupported capabilities are intentional for this target: prompts, resources.
40
+ - CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
41
+
42
+ ## What Was Not Tested
43
+
44
+ - 🔒 filesystem_mutation: Filesystem write operations were not exercised
45
+ - â„šī¸ credential_access: Credential scanning was performed (see security findings)
46
+ - â„šī¸ destructive_payloads: Destructive payloads were not attempted (safe-mode only)
47
+
48
+ ## Runtime Profile
49
+
50
+ ### Egress Manifest
51
+
52
+ The following targets were identified as potentially reachable by this server (confidence: **medium**):
53
+
54
+ | Target | Protocol | Source | Confidence |
55
+ | --- | --- | --- | --- |
56
+ | brave_web_search | unknown | description_analysis | low |
57
+ | brave_local_search | unknown | description_analysis | low |
58
+
59
+ _Analyzed at 2026-07-12T23:44:32.348Z_
60
+
61
+ ## Regressions and Recoveries
62
+
63
+ _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
64
+
65
+ ## Full Capability Status Table
66
+
67
+ | Focus | Check | Status | Duration (ms) | Message |
68
+ | --- | --- | --- | --- | --- |
69
+ | healthy | attack-sim | pass | 0.31 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
70
+ | healthy | conformance | pass | 0.51 | All 7 conformance checks passed. |
71
+ | healthy | runtime-profile | pass | 0.06 | Detected 2 potential egress target(s) and 0 potential state mutation(s) with low confidence. |
72
+ | healthy | schema-quality | pass | 0.22 | All 2 item(s) have good schema quality. |
73
+ | healthy | security | pass | 0.13 | No security issues detected. |
74
+ | healthy | security-lite | pass | 0.02 | No security issues detected (lightweight scan). |
75
+ | healthy | tools | pass | 0.41 | Advertised capability responded with the minimal expected shape (2 items). |
76
+ | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
77
+ | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
78
+
79
+ ## Evidence Snippets
80
+
81
+ ### attack-sim — pass
82
+
83
+ Summary: Safe attack simulation found no high-risk MCP attack-readiness findings.
84
+
85
+ - Endpoint: `attack-sim/safe`
86
+ - Advertised: `true`
87
+ - Responded: `true`
88
+ - Minimal shape present: `true`
89
+ - Item count: `0`
90
+ - Identifiers: none
91
+ - Diagnostics: none
92
+
93
+ ### conformance — pass
94
+
95
+ Summary: All 7 conformance checks passed.
96
+
97
+ - Endpoint: `conformance/check`
98
+ - Advertised: `true`
99
+ - Responded: `true`
100
+ - Minimal shape present: `true`
101
+ - Item count: `7`
102
+ - Identifiers: none
103
+ - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 2 tool(s). (+4 more)
104
+
105
+ ### runtime-profile — pass
106
+
107
+ Summary: Detected 2 potential egress target(s) and 0 potential state mutation(s) with low confidence.
108
+
109
+ - Endpoint: `runtime-profile/analyze`
110
+ - Advertised: `true`
111
+ - Responded: `true`
112
+ - Minimal shape present: `true`
113
+ - Item count: `2`
114
+ - Identifiers: none
115
+ - Diagnostics: Egress entries: 2, State mutations: 0, Confidence: medium
116
+
117
+ ### schema-quality — pass
118
+
119
+ Summary: All 2 item(s) have good schema quality.
120
+
121
+ - Endpoint: `schema-quality/scan`
122
+ - Advertised: `true`
123
+ - Responded: `true`
124
+ - Minimal shape present: `true`
125
+ - Item count: `0`
126
+ - Identifiers: none
127
+ - Diagnostics: none
128
+
129
+ ### security — pass
130
+
131
+ Summary: No security issues detected.
132
+
133
+ - Endpoint: `security/scan`
134
+ - Advertised: `true`
135
+ - Responded: `true`
136
+ - Minimal shape present: `true`
137
+ - Item count: `0`
138
+ - Identifiers: none
139
+ - Diagnostics: none
140
+
141
+ ### security-lite — pass
142
+
143
+ Summary: No security issues detected (lightweight scan).
144
+
145
+ - Endpoint: `security/scan-lite`
146
+ - Advertised: `true`
147
+ - Responded: `true`
148
+ - Minimal shape present: `true`
149
+ - Item count: `0`
150
+ - Identifiers: none
151
+ - Diagnostics: none
152
+
153
+ ### tools — pass
154
+
155
+ Summary: Advertised capability responded with the minimal expected shape (2 items).
156
+
157
+ - Endpoint: `tools/list`
158
+ - Advertised: `true`
159
+ - Responded: `true`
160
+ - Minimal shape present: `true`
161
+ - Item count: `2`
162
+ - Identifiers: brave_web_search, brave_local_search
163
+ - Diagnostics: Brave Search MCP Server running on stdio
164
+
165
+ ### prompts — unsupported
166
+
167
+ Summary: Prompts are not advertised by the target.
168
+
169
+ - Endpoint: `prompts/list`
170
+ - Advertised: `false`
171
+ - Responded: `false`
172
+ - Minimal shape present: `false`
173
+ - Item count: `0`
174
+ - Identifiers: none
175
+ - Diagnostics: none
176
+
177
+ ### resources — unsupported
178
+
179
+ Summary: Resources are not advertised by the target.
180
+
181
+ - Endpoint: `resources/list | resources/templates/list`
182
+ - Advertised: `false`
183
+ - Responded: `false`
184
+ - Minimal shape present: `false`
185
+ - Item count: `0`
186
+ - Identifiers: none
187
+ - Diagnostics: none
188
+
189
+ ## Reproduction Commands
190
+
191
+ ```bash
192
+ npm run cli -- run --target <path-to-target-config.json>
193
+ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
194
+ ```
195
+
196
+ ## Artifact Provenance
197
+
198
+ - Artifact type: `run`
199
+ - Schema version: `1.0.0`
200
+ - Run ID: `run_2026-07-12T234431584Z_0c1cf559`
201
+ - Gate: `pass`
@@ -2,9 +2,9 @@
2
2
  "artifactType": "run",
3
3
  "schemaVersion": "1.0.0",
4
4
  "gate": "pass",
5
- "runId": "run_2026-07-06T194954693Z_39638a36",
6
- "createdAt": "2026-07-06T19:49:54.694Z",
7
- "toolVersion": "0.28.0",
5
+ "runId": "run_2026-07-12T234409514Z_67c87a4e",
6
+ "createdAt": "2026-07-12T23:44:09.514Z",
7
+ "toolVersion": "1.31.0",
8
8
  "target": {
9
9
  "targetId": "browsermcp-server",
10
10
  "adapter": "local-process",
@@ -29,10 +29,10 @@
29
29
  "nodeVersion": "v22.22.1"
30
30
  },
31
31
  "summary": {
32
- "total": 8,
32
+ "total": 9,
33
33
  "pass": 7,
34
34
  "fail": 0,
35
- "partial": 0,
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.8151659999984986,
46
+ "durationMs": 0.9639999999999418,
47
47
  "message": "Advertised capability responded with the minimal expected shape (12 items).",
48
48
  "evidence": [
49
49
  {
@@ -242,7 +242,7 @@
242
242
  "id": "prompts",
243
243
  "capability": "prompts",
244
244
  "status": "unsupported",
245
- "durationMs": 0.0005419999997684499,
245
+ "durationMs": 0.0009160000008705538,
246
246
  "message": "Prompts are not advertised by the target.",
247
247
  "evidence": [
248
248
  {
@@ -258,7 +258,7 @@
258
258
  "id": "resources",
259
259
  "capability": "resources",
260
260
  "status": "pass",
261
- "durationMs": 0.4444999999996071,
261
+ "durationMs": 0.4857090000004973,
262
262
  "message": "Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.",
263
263
  "evidence": [
264
264
  {
@@ -285,7 +285,7 @@
285
285
  "id": "security-lite",
286
286
  "capability": "security-lite",
287
287
  "status": "pass",
288
- "durationMs": 0.025958000000173342,
288
+ "durationMs": 0.027999999998428393,
289
289
  "message": "No security issues detected (lightweight scan).",
290
290
  "evidence": [
291
291
  {
@@ -297,11 +297,52 @@
297
297
  }
298
298
  ]
299
299
  },
300
+ {
301
+ "id": "runtime-profile",
302
+ "capability": "runtime-profile",
303
+ "status": "partial",
304
+ "durationMs": 0.08887500000128057,
305
+ "message": "Detected 3 potential egress target(s) and 0 potential state mutation(s) with high confidence.",
306
+ "evidence": [
307
+ {
308
+ "endpoint": "runtime-profile/analyze",
309
+ "advertised": true,
310
+ "responded": true,
311
+ "minimalShapePresent": true,
312
+ "itemCount": 3,
313
+ "diagnostics": [
314
+ "Egress entries: 3",
315
+ "State mutations: 0",
316
+ "Confidence: high"
317
+ ],
318
+ "findings": [
319
+ {
320
+ "target": "url",
321
+ "protocol": "unknown",
322
+ "source": "tool_schema",
323
+ "confidence": "high"
324
+ },
325
+ {
326
+ "target": "The URL to navigate to",
327
+ "protocol": "unknown",
328
+ "source": "description_analysis",
329
+ "confidence": "medium"
330
+ },
331
+ {
332
+ "target": "browser_navigate",
333
+ "protocol": "unknown",
334
+ "source": "description_analysis",
335
+ "confidence": "low"
336
+ }
337
+ ]
338
+ }
339
+ ]
340
+ },
300
341
  {
301
342
  "id": "conformance",
302
343
  "capability": "conformance",
303
344
  "status": "pass",
304
- "durationMs": 1.574958000001061,
345
+ "durationMs": 1.643000000000029,
305
346
  "message": "All 7 conformance checks passed.",
306
347
  "evidence": [
307
348
  {
@@ -327,7 +368,7 @@
327
368
  "id": "schema-quality",
328
369
  "capability": "schema-quality",
329
370
  "status": "pass",
330
- "durationMs": 0.36616700000013225,
371
+ "durationMs": 0.4385839999995369,
331
372
  "message": "All 12 item(s) have good schema quality.",
332
373
  "evidence": [
333
374
  {
@@ -344,7 +385,7 @@
344
385
  "id": "security",
345
386
  "capability": "security",
346
387
  "status": "pass",
347
- "durationMs": 0.15450000000055297,
388
+ "durationMs": 0.15845899999840185,
348
389
  "message": "No security issues detected.",
349
390
  "evidence": [
350
391
  {
@@ -360,7 +401,7 @@
360
401
  "id": "attack-sim",
361
402
  "capability": "attack-sim",
362
403
  "status": "pass",
363
- "durationMs": 0.5073330000013812,
404
+ "durationMs": 0.5191660000018601,
364
405
  "message": "Safe attack simulation found no high-risk MCP attack-readiness findings.",
365
406
  "evidence": [
366
407
  {
@@ -419,16 +460,40 @@
419
460
  "weight": 0.1,
420
461
  "score": 100,
421
462
  "details": [
422
- "Connect: 652ms",
463
+ "Connect: 869ms",
423
464
  "p95 latency: 1ms (3 operations)"
424
465
  ]
425
466
  }
426
467
  ]
427
468
  },
428
469
  "performanceMetrics": {
429
- "connectMs": 651.8255829999998,
430
- "toolsListMs": 0.8151659999984986,
431
- "promptsListMs": 0.0005419999997684499,
432
- "resourcesListMs": 0.4444999999996071
470
+ "connectMs": 868.9238330000007,
471
+ "toolsListMs": 0.9639999999999418,
472
+ "promptsListMs": 0.0009160000008705538,
473
+ "resourcesListMs": 0.4857090000004973
474
+ },
475
+ "runtimeProfile": {
476
+ "egress": [
477
+ {
478
+ "target": "url",
479
+ "protocol": "unknown",
480
+ "source": "tool_schema",
481
+ "confidence": "high"
482
+ },
483
+ {
484
+ "target": "The URL to navigate to",
485
+ "protocol": "unknown",
486
+ "source": "description_analysis",
487
+ "confidence": "medium"
488
+ },
489
+ {
490
+ "target": "browser_navigate",
491
+ "protocol": "unknown",
492
+ "source": "description_analysis",
493
+ "confidence": "low"
494
+ }
495
+ ],
496
+ "analyzedAt": "2026-07-12T23:44:10.385Z",
497
+ "confidence": "high"
433
498
  }
434
499
  }
@@ -1,6 +1,6 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-07-06T19:49:54.694Z
3
+ Generated at 2026-07-12T23:44:09.514Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
@@ -25,20 +25,41 @@ Generated at 2026-07-06T19:49:54.694Z
25
25
 
26
26
  | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
27
  | --- | --- | --- | --- | --- | --- | --- | --- |
28
- | pass | 8 | 7 | 0 | 0 | 1 | 0 | 0 |
28
+ | pass | 9 | 7 | 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: No high-priority risks detected.
33
+ - Top risks: runtime-profile: Detected 3 potential egress target(s) and 0 potential state mutation(s) with high confidence.
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
- - Partial or flaky checks: none
36
+ - Partial or flaky checks: runtime-profile
37
37
  - Skipped checks: none
38
38
  - Unsupported checks: prompts
39
- - Suggested next step: Confirm that unsupported capabilities are intentional for this target: prompts.
39
+ - Suggested next step: Review the caveated checks next: runtime-profile.
40
40
  - CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
41
41
 
42
+ ## What Was Not Tested
43
+
44
+ - 🔒 network_egress: No outbound network calls were attempted during scan
45
+ - 🔒 filesystem_mutation: Filesystem write operations were not exercised
46
+ - â„šī¸ credential_access: Credential scanning was performed (see security findings)
47
+ - â„šī¸ destructive_payloads: Destructive payloads were not attempted (safe-mode only)
48
+
49
+ ## Runtime Profile
50
+
51
+ ### Egress Manifest
52
+
53
+ The following targets were identified as potentially reachable by this server (confidence: **high**):
54
+
55
+ | Target | Protocol | Source | Confidence |
56
+ | --- | --- | --- | --- |
57
+ | url | unknown | tool_schema | high |
58
+ | The URL to navigate to | unknown | description_analysis | medium |
59
+ | browser_navigate | unknown | description_analysis | low |
60
+
61
+ _Analyzed at 2026-07-12T23:44:10.385Z_
62
+
42
63
  ## Regressions and Recoveries
43
64
 
44
65
  _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
@@ -47,13 +68,14 @@ _Use the `diff` command against another run artifact to classify regressions and
47
68
 
48
69
  | Focus | Check | Status | Duration (ms) | Message |
49
70
  | --- | --- | --- | --- | --- |
50
- | healthy | attack-sim | pass | 0.51 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
51
- | healthy | conformance | pass | 1.57 | All 7 conformance checks passed. |
52
- | healthy | resources | pass | 0.44 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
53
- | healthy | schema-quality | pass | 0.37 | All 12 item(s) have good schema quality. |
54
- | healthy | security | pass | 0.15 | No security issues detected. |
71
+ | healthy | attack-sim | pass | 0.52 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
72
+ | healthy | conformance | pass | 1.64 | All 7 conformance checks passed. |
73
+ | healthy | resources | pass | 0.49 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
74
+ | healthy | schema-quality | pass | 0.44 | All 12 item(s) have good schema quality. |
75
+ | healthy | security | pass | 0.16 | No security issues detected. |
55
76
  | healthy | security-lite | pass | 0.03 | No security issues detected (lightweight scan). |
56
- | healthy | tools | pass | 0.82 | Advertised capability responded with the minimal expected shape (12 items). |
77
+ | healthy | tools | pass | 0.96 | Advertised capability responded with the minimal expected shape (12 items). |
78
+ | review | runtime-profile | partial | 0.09 | Detected 3 potential egress target(s) and 0 potential state mutation(s) with high confidence. |
57
79
  | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
58
80
 
59
81
  ## Evidence Snippets
@@ -149,6 +171,18 @@ Summary: Advertised capability responded with the minimal expected shape (12 ite
149
171
  - Identifiers: browser_navigate, browser_go_back, browser_go_forward, browser_snapshot, browser_click (+7 more)
150
172
  - Diagnostics: none
151
173
 
174
+ ### runtime-profile — partial
175
+
176
+ Summary: Detected 3 potential egress target(s) and 0 potential state mutation(s) with high confidence.
177
+
178
+ - Endpoint: `runtime-profile/analyze`
179
+ - Advertised: `true`
180
+ - Responded: `true`
181
+ - Minimal shape present: `true`
182
+ - Item count: `3`
183
+ - Identifiers: none
184
+ - Diagnostics: Egress entries: 3, State mutations: 0, Confidence: high
185
+
152
186
  ### prompts — unsupported
153
187
 
154
188
  Summary: Prompts are not advertised by the target.
@@ -172,5 +206,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
172
206
 
173
207
  - Artifact type: `run`
174
208
  - Schema version: `1.0.0`
175
- - Run ID: `run_2026-07-06T194954693Z_39638a36`
209
+ - Run ID: `run_2026-07-12T234409514Z_67c87a4e`
176
210
  - Gate: `pass`