@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
@@ -1,6 +1,6 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-07-07T21:16:35.668Z
3
+ Generated at 2026-07-12T23:43:57.332Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
@@ -8,8 +8,8 @@ Generated at 2026-07-07T21:16:35.668Z
8
8
  - Adapter: `local-process`
9
9
  - Command: `npx -y @modelcontextprotocol/server-filesystem <safe-empty-temp-dir>`
10
10
  - Server: `secure-filesystem-server 0.2.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
 
@@ -25,20 +25,68 @@ Generated at 2026-07-07T21:16:35.668Z
25
25
 
26
26
  | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
27
  | --- | --- | --- | --- | --- | --- | --- | --- |
28
- | pass | 8 | 2 | 0 | 4 | 2 | 0 | 0 |
28
+ | pass | 9 | 2 | 0 | 5 | 2 | 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: attack-sim: Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low.; schema-quality: Found 18 quality finding(s) across 14 item(s): 0 warnings, 18 info.; security: Found 3 security finding(s): 0 high, 3 medium, 0 low.
33
+ - Top risks: attack-sim: Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low.; runtime-profile: Detected 0 potential egress target(s) and 31 potential state mutation(s) with high confidence.; schema-quality: Found 18 quality finding(s) across 14 item(s): 0 warnings, 18 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
- - Partial or flaky checks: security-lite, schema-quality, security, attack-sim
36
+ - Partial or flaky checks: security-lite, runtime-profile, schema-quality, security, attack-sim
37
37
  - Skipped checks: none
38
38
  - Unsupported checks: prompts, resources
39
- - Suggested next step: Review the caveated checks next: security-lite, schema-quality, security, attack-sim.
39
+ - Suggested next step: Review the caveated checks next: security-lite, runtime-profile, schema-quality, security, attack-sim.
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
+ - ℹ️ 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
+ ### State Mutations
51
+
52
+ The following state-modifying operations were identified from tool schemas:
53
+
54
+ | Resource | Operation | Scope | Source |
55
+ | --- | --- | --- | --- |
56
+ | filesystem | write | working_directory | tool_schema |
57
+ | filesystem | write | working_directory | description_analysis |
58
+ | filesystem | write | working_directory | description_analysis |
59
+ | filesystem | write | working_directory | description_analysis |
60
+ | filesystem | write | working_directory | tool_schema |
61
+ | filesystem | write | working_directory | description_analysis |
62
+ | filesystem | write | working_directory | description_analysis |
63
+ | filesystem | write | working_directory | description_analysis |
64
+ | filesystem | write | working_directory | tool_schema |
65
+ | filesystem | write | working_directory | description_analysis |
66
+ | filesystem | write | working_directory | description_analysis |
67
+ | filesystem | write | working_directory | description_analysis |
68
+ | filesystem | write | working_directory | tool_schema |
69
+ | filesystem | write | working_directory | description_analysis |
70
+ | filesystem | write | working_directory | description_analysis |
71
+ | filesystem | write | working_directory | tool_schema |
72
+ | filesystem | write | working_directory | description_analysis |
73
+ | filesystem | write | working_directory | tool_schema |
74
+ | filesystem | write | working_directory | description_analysis |
75
+ | filesystem | write | working_directory | description_analysis |
76
+ | filesystem | write | working_directory | tool_schema |
77
+ | filesystem | write | working_directory | description_analysis |
78
+ | filesystem | write | working_directory | tool_schema |
79
+ | filesystem | write | working_directory | description_analysis |
80
+ | filesystem | write | working_directory | tool_schema |
81
+ | filesystem | write | working_directory | description_analysis |
82
+ | filesystem | write | working_directory | description_analysis |
83
+ | filesystem | write | working_directory | tool_schema |
84
+ | filesystem | write | working_directory | description_analysis |
85
+ | filesystem | write | working_directory | tool_schema |
86
+ | filesystem | write | working_directory | description_analysis |
87
+
88
+ _Analyzed at 2026-07-12T23:43:58.202Z_
89
+
42
90
  ## Regressions and Recoveries
43
91
 
44
92
  _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
@@ -47,12 +95,13 @@ _Use the `diff` command against another run artifact to classify regressions and
47
95
 
48
96
  | Focus | Check | Status | Duration (ms) | Message |
49
97
  | --- | --- | --- | --- | --- |
50
- | healthy | conformance | pass | 4.97 | All 7 conformance checks passed. |
51
- | healthy | tools | pass | 4.94 | Advertised capability responded with the minimal expected shape (14 items). |
52
- | review | attack-sim | partial | 2.58 | Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low. |
53
- | review | schema-quality | partial | 2.06 | Found 18 quality finding(s) across 14 item(s): 0 warnings, 18 info. |
54
- | review | security | partial | 2.29 | Found 3 security finding(s): 0 high, 3 medium, 0 low. |
55
- | review | security-lite | partial | 0.06 | Found 3 security finding(s): 0 high, 3 medium, 0 low. |
98
+ | healthy | conformance | pass | 6.27 | All 7 conformance checks passed. |
99
+ | healthy | tools | pass | 5.52 | Advertised capability responded with the minimal expected shape (14 items). |
100
+ | review | attack-sim | partial | 2.24 | Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low. |
101
+ | review | runtime-profile | partial | 0.15 | Detected 0 potential egress target(s) and 31 potential state mutation(s) with high confidence. |
102
+ | review | schema-quality | partial | 2.32 | Found 18 quality finding(s) across 14 item(s): 0 warnings, 18 info. |
103
+ | review | security | partial | 2.06 | Found 3 security finding(s): 0 high, 3 medium, 0 low. |
104
+ | review | security-lite | partial | 0.07 | Found 3 security finding(s): 0 high, 3 medium, 0 low. |
56
105
  | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
57
106
  | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
58
107
 
@@ -94,6 +143,18 @@ Summary: Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low.
94
143
  - Identifiers: write_file, edit_file, create_directory
95
144
  - Diagnostics: [medium] Tool "write_file" combines broad parameters (path) with destructive or non-read-only behavior., [medium] Tool "edit_file" combines broad parameters (path) with destructive or non-read-only behavior., [medium] Tool "create_directory" combines broad parameters (path) with destructive or non-read-only behavior.
96
145
 
146
+ ### runtime-profile — partial
147
+
148
+ Summary: Detected 0 potential egress target(s) and 31 potential state mutation(s) with high confidence.
149
+
150
+ - Endpoint: `runtime-profile/analyze`
151
+ - Advertised: `true`
152
+ - Responded: `true`
153
+ - Minimal shape present: `true`
154
+ - Item count: `31`
155
+ - Identifiers: none
156
+ - Diagnostics: Egress entries: 0, State mutations: 31, Confidence: high
157
+
97
158
  ### schema-quality — partial
98
159
 
99
160
  Summary: Found 18 quality finding(s) across 14 item(s): 0 warnings, 18 info.
@@ -165,5 +226,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
165
226
 
166
227
  - Artifact type: `run`
167
228
  - Schema version: `1.0.0`
168
- - Run ID: `run_2026-07-07T211635668Z_9369cd63`
229
+ - Run ID: `run_2026-07-12T234357332Z_a8909e32`
169
230
  - 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-06T194947442Z_4e90392b",
6
- "createdAt": "2026-07-06T19:49:47.442Z",
7
- "toolVersion": "0.28.0",
5
+ "runId": "run_2026-07-12T234356515Z_3a972a27",
6
+ "createdAt": "2026-07-12T23:43:56.515Z",
7
+ "toolVersion": "1.31.0",
8
8
  "target": {
9
9
  "targetId": "filesystem-server",
10
10
  "adapter": "local-process",
@@ -30,10 +30,10 @@
30
30
  "nodeVersion": "v22.22.1"
31
31
  },
32
32
  "summary": {
33
- "total": 8,
33
+ "total": 9,
34
34
  "pass": 2,
35
35
  "fail": 0,
36
- "partial": 4,
36
+ "partial": 5,
37
37
  "unsupported": 2,
38
38
  "flaky": 0,
39
39
  "skipped": 0,
@@ -44,7 +44,7 @@
44
44
  "id": "tools",
45
45
  "capability": "tools",
46
46
  "status": "pass",
47
- "durationMs": 5.032166999999845,
47
+ "durationMs": 6.311417000000802,
48
48
  "message": "Advertised capability responded with the minimal expected shape (14 items).",
49
49
  "evidence": [
50
50
  {
@@ -327,7 +327,7 @@
327
327
  "id": "prompts",
328
328
  "capability": "prompts",
329
329
  "status": "unsupported",
330
- "durationMs": 0.0017920000000231084,
330
+ "durationMs": 0.0022499999995488906,
331
331
  "message": "Prompts are not advertised by the target.",
332
332
  "evidence": [
333
333
  {
@@ -343,7 +343,7 @@
343
343
  "id": "resources",
344
344
  "capability": "resources",
345
345
  "status": "unsupported",
346
- "durationMs": 0.0014160000000629225,
346
+ "durationMs": 0.0010419999998703133,
347
347
  "message": "Resources are not advertised by the target.",
348
348
  "evidence": [
349
349
  {
@@ -359,7 +359,7 @@
359
359
  "id": "security-lite",
360
360
  "capability": "security-lite",
361
361
  "status": "partial",
362
- "durationMs": 0.13637500000004366,
362
+ "durationMs": 0.15212500000052387,
363
363
  "message": "Found 3 security finding(s): 0 high, 3 medium, 0 low.",
364
364
  "evidence": [
365
365
  {
@@ -401,11 +401,220 @@
401
401
  }
402
402
  ]
403
403
  },
404
+ {
405
+ "id": "runtime-profile",
406
+ "capability": "runtime-profile",
407
+ "status": "partial",
408
+ "durationMs": 0.25437499999952706,
409
+ "message": "Detected 0 potential egress target(s) and 31 potential state mutation(s) with high confidence.",
410
+ "evidence": [
411
+ {
412
+ "endpoint": "runtime-profile/analyze",
413
+ "advertised": true,
414
+ "responded": true,
415
+ "minimalShapePresent": true,
416
+ "itemCount": 31,
417
+ "diagnostics": [
418
+ "Egress entries: 0",
419
+ "State mutations: 31",
420
+ "Confidence: high"
421
+ ],
422
+ "findings": [
423
+ {
424
+ "resource": "filesystem",
425
+ "operation": "write",
426
+ "scope": "working_directory",
427
+ "source": "tool_schema"
428
+ },
429
+ {
430
+ "resource": "filesystem",
431
+ "operation": "write",
432
+ "scope": "working_directory",
433
+ "source": "description_analysis"
434
+ },
435
+ {
436
+ "resource": "filesystem",
437
+ "operation": "write",
438
+ "scope": "working_directory",
439
+ "source": "description_analysis"
440
+ },
441
+ {
442
+ "resource": "filesystem",
443
+ "operation": "write",
444
+ "scope": "working_directory",
445
+ "source": "description_analysis"
446
+ },
447
+ {
448
+ "resource": "filesystem",
449
+ "operation": "write",
450
+ "scope": "working_directory",
451
+ "source": "tool_schema"
452
+ },
453
+ {
454
+ "resource": "filesystem",
455
+ "operation": "write",
456
+ "scope": "working_directory",
457
+ "source": "description_analysis"
458
+ },
459
+ {
460
+ "resource": "filesystem",
461
+ "operation": "write",
462
+ "scope": "working_directory",
463
+ "source": "description_analysis"
464
+ },
465
+ {
466
+ "resource": "filesystem",
467
+ "operation": "write",
468
+ "scope": "working_directory",
469
+ "source": "description_analysis"
470
+ },
471
+ {
472
+ "resource": "filesystem",
473
+ "operation": "write",
474
+ "scope": "working_directory",
475
+ "source": "tool_schema"
476
+ },
477
+ {
478
+ "resource": "filesystem",
479
+ "operation": "write",
480
+ "scope": "working_directory",
481
+ "source": "description_analysis"
482
+ },
483
+ {
484
+ "resource": "filesystem",
485
+ "operation": "write",
486
+ "scope": "working_directory",
487
+ "source": "description_analysis"
488
+ },
489
+ {
490
+ "resource": "filesystem",
491
+ "operation": "write",
492
+ "scope": "working_directory",
493
+ "source": "description_analysis"
494
+ },
495
+ {
496
+ "resource": "filesystem",
497
+ "operation": "write",
498
+ "scope": "working_directory",
499
+ "source": "tool_schema"
500
+ },
501
+ {
502
+ "resource": "filesystem",
503
+ "operation": "write",
504
+ "scope": "working_directory",
505
+ "source": "description_analysis"
506
+ },
507
+ {
508
+ "resource": "filesystem",
509
+ "operation": "write",
510
+ "scope": "working_directory",
511
+ "source": "description_analysis"
512
+ },
513
+ {
514
+ "resource": "filesystem",
515
+ "operation": "write",
516
+ "scope": "working_directory",
517
+ "source": "tool_schema"
518
+ },
519
+ {
520
+ "resource": "filesystem",
521
+ "operation": "write",
522
+ "scope": "working_directory",
523
+ "source": "description_analysis"
524
+ },
525
+ {
526
+ "resource": "filesystem",
527
+ "operation": "write",
528
+ "scope": "working_directory",
529
+ "source": "tool_schema"
530
+ },
531
+ {
532
+ "resource": "filesystem",
533
+ "operation": "write",
534
+ "scope": "working_directory",
535
+ "source": "description_analysis"
536
+ },
537
+ {
538
+ "resource": "filesystem",
539
+ "operation": "write",
540
+ "scope": "working_directory",
541
+ "source": "description_analysis"
542
+ },
543
+ {
544
+ "resource": "filesystem",
545
+ "operation": "write",
546
+ "scope": "working_directory",
547
+ "source": "tool_schema"
548
+ },
549
+ {
550
+ "resource": "filesystem",
551
+ "operation": "write",
552
+ "scope": "working_directory",
553
+ "source": "description_analysis"
554
+ },
555
+ {
556
+ "resource": "filesystem",
557
+ "operation": "write",
558
+ "scope": "working_directory",
559
+ "source": "tool_schema"
560
+ },
561
+ {
562
+ "resource": "filesystem",
563
+ "operation": "write",
564
+ "scope": "working_directory",
565
+ "source": "description_analysis"
566
+ },
567
+ {
568
+ "resource": "filesystem",
569
+ "operation": "write",
570
+ "scope": "working_directory",
571
+ "source": "tool_schema"
572
+ },
573
+ {
574
+ "resource": "filesystem",
575
+ "operation": "write",
576
+ "scope": "working_directory",
577
+ "source": "description_analysis"
578
+ },
579
+ {
580
+ "resource": "filesystem",
581
+ "operation": "write",
582
+ "scope": "working_directory",
583
+ "source": "description_analysis"
584
+ },
585
+ {
586
+ "resource": "filesystem",
587
+ "operation": "write",
588
+ "scope": "working_directory",
589
+ "source": "tool_schema"
590
+ },
591
+ {
592
+ "resource": "filesystem",
593
+ "operation": "write",
594
+ "scope": "working_directory",
595
+ "source": "description_analysis"
596
+ },
597
+ {
598
+ "resource": "filesystem",
599
+ "operation": "write",
600
+ "scope": "working_directory",
601
+ "source": "tool_schema"
602
+ },
603
+ {
604
+ "resource": "filesystem",
605
+ "operation": "write",
606
+ "scope": "working_directory",
607
+ "source": "description_analysis"
608
+ }
609
+ ]
610
+ }
611
+ ]
612
+ },
404
613
  {
405
614
  "id": "conformance",
406
615
  "capability": "conformance",
407
616
  "status": "pass",
408
- "durationMs": 5.456833000000188,
617
+ "durationMs": 6.402625000000626,
409
618
  "message": "All 7 conformance checks passed.",
410
619
  "evidence": [
411
620
  {
@@ -431,7 +640,7 @@
431
640
  "id": "schema-quality",
432
641
  "capability": "schema-quality",
433
642
  "status": "partial",
434
- "durationMs": 2.5004579999999805,
643
+ "durationMs": 3.0576670000000377,
435
644
  "message": "Found 18 quality finding(s) across 14 item(s): 0 warnings, 18 info.",
436
645
  "evidence": [
437
646
  {
@@ -591,7 +800,7 @@
591
800
  "id": "security",
592
801
  "capability": "security",
593
802
  "status": "partial",
594
- "durationMs": 2.2048749999999018,
803
+ "durationMs": 3.176499999999578,
595
804
  "message": "Found 3 security finding(s): 0 high, 3 medium, 0 low.",
596
805
  "evidence": [
597
806
  {
@@ -637,7 +846,7 @@
637
846
  "id": "attack-sim",
638
847
  "capability": "attack-sim",
639
848
  "status": "partial",
640
- "durationMs": 2.602374999999938,
849
+ "durationMs": 2.8183340000005046,
641
850
  "message": "Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low.",
642
851
  "evidence": [
643
852
  {
@@ -671,7 +880,8 @@
671
880
  "annotations": {
672
881
  "readOnlyHint": false,
673
882
  "destructiveHint": true,
674
- "idempotentHint": true
883
+ "idempotentHint": true,
884
+ "openWorldHint": false
675
885
  },
676
886
  "description": "Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories."
677
887
  },
@@ -692,7 +902,8 @@
692
902
  "annotations": {
693
903
  "readOnlyHint": false,
694
904
  "destructiveHint": true,
695
- "idempotentHint": false
905
+ "idempotentHint": false,
906
+ "openWorldHint": false
696
907
  },
697
908
  "description": "Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories."
698
909
  },
@@ -713,7 +924,8 @@
713
924
  "annotations": {
714
925
  "readOnlyHint": false,
715
926
  "destructiveHint": false,
716
- "idempotentHint": true
927
+ "idempotentHint": true,
928
+ "openWorldHint": false
717
929
  },
718
930
  "description": "Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories."
719
931
  },
@@ -770,16 +982,208 @@
770
982
  "weight": 0.1,
771
983
  "score": 100,
772
984
  "details": [
773
- "Connect: 662ms",
774
- "p95 latency: 5ms (3 operations)"
985
+ "Connect: 784ms",
986
+ "p95 latency: 6ms (3 operations)"
775
987
  ]
776
988
  }
777
989
  ]
778
990
  },
779
991
  "performanceMetrics": {
780
- "connectMs": 661.862083,
781
- "toolsListMs": 5.032166999999845,
782
- "promptsListMs": 0.0017920000000231084,
783
- "resourcesListMs": 0.0014160000000629225
992
+ "connectMs": 783.9879579999997,
993
+ "toolsListMs": 6.311417000000802,
994
+ "promptsListMs": 0.0022499999995488906,
995
+ "resourcesListMs": 0.0010419999998703133
996
+ },
997
+ "runtimeProfile": {
998
+ "stateMutations": [
999
+ {
1000
+ "resource": "filesystem",
1001
+ "operation": "write",
1002
+ "scope": "working_directory",
1003
+ "source": "tool_schema"
1004
+ },
1005
+ {
1006
+ "resource": "filesystem",
1007
+ "operation": "write",
1008
+ "scope": "working_directory",
1009
+ "source": "description_analysis"
1010
+ },
1011
+ {
1012
+ "resource": "filesystem",
1013
+ "operation": "write",
1014
+ "scope": "working_directory",
1015
+ "source": "description_analysis"
1016
+ },
1017
+ {
1018
+ "resource": "filesystem",
1019
+ "operation": "write",
1020
+ "scope": "working_directory",
1021
+ "source": "description_analysis"
1022
+ },
1023
+ {
1024
+ "resource": "filesystem",
1025
+ "operation": "write",
1026
+ "scope": "working_directory",
1027
+ "source": "tool_schema"
1028
+ },
1029
+ {
1030
+ "resource": "filesystem",
1031
+ "operation": "write",
1032
+ "scope": "working_directory",
1033
+ "source": "description_analysis"
1034
+ },
1035
+ {
1036
+ "resource": "filesystem",
1037
+ "operation": "write",
1038
+ "scope": "working_directory",
1039
+ "source": "description_analysis"
1040
+ },
1041
+ {
1042
+ "resource": "filesystem",
1043
+ "operation": "write",
1044
+ "scope": "working_directory",
1045
+ "source": "description_analysis"
1046
+ },
1047
+ {
1048
+ "resource": "filesystem",
1049
+ "operation": "write",
1050
+ "scope": "working_directory",
1051
+ "source": "tool_schema"
1052
+ },
1053
+ {
1054
+ "resource": "filesystem",
1055
+ "operation": "write",
1056
+ "scope": "working_directory",
1057
+ "source": "description_analysis"
1058
+ },
1059
+ {
1060
+ "resource": "filesystem",
1061
+ "operation": "write",
1062
+ "scope": "working_directory",
1063
+ "source": "description_analysis"
1064
+ },
1065
+ {
1066
+ "resource": "filesystem",
1067
+ "operation": "write",
1068
+ "scope": "working_directory",
1069
+ "source": "description_analysis"
1070
+ },
1071
+ {
1072
+ "resource": "filesystem",
1073
+ "operation": "write",
1074
+ "scope": "working_directory",
1075
+ "source": "tool_schema"
1076
+ },
1077
+ {
1078
+ "resource": "filesystem",
1079
+ "operation": "write",
1080
+ "scope": "working_directory",
1081
+ "source": "description_analysis"
1082
+ },
1083
+ {
1084
+ "resource": "filesystem",
1085
+ "operation": "write",
1086
+ "scope": "working_directory",
1087
+ "source": "description_analysis"
1088
+ },
1089
+ {
1090
+ "resource": "filesystem",
1091
+ "operation": "write",
1092
+ "scope": "working_directory",
1093
+ "source": "tool_schema"
1094
+ },
1095
+ {
1096
+ "resource": "filesystem",
1097
+ "operation": "write",
1098
+ "scope": "working_directory",
1099
+ "source": "description_analysis"
1100
+ },
1101
+ {
1102
+ "resource": "filesystem",
1103
+ "operation": "write",
1104
+ "scope": "working_directory",
1105
+ "source": "tool_schema"
1106
+ },
1107
+ {
1108
+ "resource": "filesystem",
1109
+ "operation": "write",
1110
+ "scope": "working_directory",
1111
+ "source": "description_analysis"
1112
+ },
1113
+ {
1114
+ "resource": "filesystem",
1115
+ "operation": "write",
1116
+ "scope": "working_directory",
1117
+ "source": "description_analysis"
1118
+ },
1119
+ {
1120
+ "resource": "filesystem",
1121
+ "operation": "write",
1122
+ "scope": "working_directory",
1123
+ "source": "tool_schema"
1124
+ },
1125
+ {
1126
+ "resource": "filesystem",
1127
+ "operation": "write",
1128
+ "scope": "working_directory",
1129
+ "source": "description_analysis"
1130
+ },
1131
+ {
1132
+ "resource": "filesystem",
1133
+ "operation": "write",
1134
+ "scope": "working_directory",
1135
+ "source": "tool_schema"
1136
+ },
1137
+ {
1138
+ "resource": "filesystem",
1139
+ "operation": "write",
1140
+ "scope": "working_directory",
1141
+ "source": "description_analysis"
1142
+ },
1143
+ {
1144
+ "resource": "filesystem",
1145
+ "operation": "write",
1146
+ "scope": "working_directory",
1147
+ "source": "tool_schema"
1148
+ },
1149
+ {
1150
+ "resource": "filesystem",
1151
+ "operation": "write",
1152
+ "scope": "working_directory",
1153
+ "source": "description_analysis"
1154
+ },
1155
+ {
1156
+ "resource": "filesystem",
1157
+ "operation": "write",
1158
+ "scope": "working_directory",
1159
+ "source": "description_analysis"
1160
+ },
1161
+ {
1162
+ "resource": "filesystem",
1163
+ "operation": "write",
1164
+ "scope": "working_directory",
1165
+ "source": "tool_schema"
1166
+ },
1167
+ {
1168
+ "resource": "filesystem",
1169
+ "operation": "write",
1170
+ "scope": "working_directory",
1171
+ "source": "description_analysis"
1172
+ },
1173
+ {
1174
+ "resource": "filesystem",
1175
+ "operation": "write",
1176
+ "scope": "working_directory",
1177
+ "source": "tool_schema"
1178
+ },
1179
+ {
1180
+ "resource": "filesystem",
1181
+ "operation": "write",
1182
+ "scope": "working_directory",
1183
+ "source": "description_analysis"
1184
+ }
1185
+ ],
1186
+ "analyzedAt": "2026-07-12T23:43:57.308Z",
1187
+ "confidence": "high"
784
1188
  }
785
1189
  }