@kryptosai/mcp-observatory 1.31.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 (151) hide show
  1. package/PRIVACY.md +16 -0
  2. package/README.md +5 -11
  3. package/README.zh-CN.md +4 -10
  4. package/dist/src/cli.js +4 -2
  5. package/dist/src/cli.js.map +1 -1
  6. package/dist/src/commands/diff.js +24 -2
  7. package/dist/src/commands/diff.js.map +1 -1
  8. package/dist/src/commands/enforce.d.ts +2 -2
  9. package/dist/src/commands/enforce.js +5 -8
  10. package/dist/src/commands/enforce.js.map +1 -1
  11. package/dist/src/commands/scan.js.map +1 -1
  12. package/dist/src/commands/telemetry.js +41 -1
  13. package/dist/src/commands/telemetry.js.map +1 -1
  14. package/dist/src/commands/test.js +2 -2
  15. package/dist/src/commands/test.js.map +1 -1
  16. package/dist/src/diff.d.ts +5 -2
  17. package/dist/src/diff.js +23 -2
  18. package/dist/src/diff.js.map +1 -1
  19. package/dist/src/index.d.ts +1 -0
  20. package/dist/src/index.js +1 -0
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/permission-delta.d.ts +2 -0
  23. package/dist/src/permission-delta.js +99 -0
  24. package/dist/src/permission-delta.js.map +1 -0
  25. package/dist/src/reporters/common.d.ts +1 -0
  26. package/dist/src/reporters/common.js +3 -1
  27. package/dist/src/reporters/common.js.map +1 -1
  28. package/dist/src/reporters/html.js +30 -1
  29. package/dist/src/reporters/html.js.map +1 -1
  30. package/dist/src/reporters/markdown.js +21 -2
  31. package/dist/src/reporters/markdown.js.map +1 -1
  32. package/dist/src/reporters/pr-comment.js +1 -1
  33. package/dist/src/reporters/pr-comment.js.map +1 -1
  34. package/dist/src/reporters/terminal.js +9 -3
  35. package/dist/src/reporters/terminal.js.map +1 -1
  36. package/dist/src/risk-taxonomy.d.ts +16 -0
  37. package/dist/src/risk-taxonomy.js +95 -0
  38. package/dist/src/risk-taxonomy.js.map +1 -0
  39. package/dist/src/schema-diff.d.ts +2 -1
  40. package/dist/src/schema-diff.js +28 -3
  41. package/dist/src/schema-diff.js.map +1 -1
  42. package/dist/src/telemetry.d.ts +17 -0
  43. package/dist/src/telemetry.js +70 -2
  44. package/dist/src/telemetry.js.map +1 -1
  45. package/dist/src/types.d.ts +15 -0
  46. package/dist/src/validate.js +44 -2
  47. package/dist/src/validate.js.map +1 -1
  48. package/docs/mcp-server-safety-index.md +77 -15
  49. package/docs/safety-index/artifacts/antv-chart-server.json +1452 -19
  50. package/docs/safety-index/artifacts/antv-chart-server.md +156 -10
  51. package/docs/safety-index/artifacts/brave-search-server.json +341 -0
  52. package/docs/safety-index/artifacts/brave-search-server.md +201 -0
  53. package/docs/safety-index/artifacts/browsermcp-server.json +83 -18
  54. package/docs/safety-index/artifacts/browsermcp-server.md +46 -12
  55. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +592 -21
  56. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +96 -14
  57. package/docs/safety-index/artifacts/clay-server.json +66 -0
  58. package/docs/safety-index/artifacts/clay-server.md +106 -0
  59. package/docs/safety-index/artifacts/cloudflare-server.json +66 -0
  60. package/docs/safety-index/artifacts/cloudflare-server.md +106 -0
  61. package/docs/safety-index/artifacts/context7-server.json +85 -18
  62. package/docs/safety-index/artifacts/context7-server.md +52 -11
  63. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +1565 -34
  64. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +178 -17
  65. package/docs/safety-index/artifacts/docker-server.json +395 -0
  66. package/docs/safety-index/artifacts/docker-server.md +204 -0
  67. package/docs/safety-index/artifacts/everything-server.json +145 -18
  68. package/docs/safety-index/artifacts/everything-server.md +56 -11
  69. package/docs/safety-index/artifacts/exa-server.json +400 -0
  70. package/docs/safety-index/artifacts/exa-server.md +207 -0
  71. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +625 -18
  72. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +95 -11
  73. package/docs/safety-index/artifacts/fetch-server.json +66 -0
  74. package/docs/safety-index/artifacts/fetch-server.md +106 -0
  75. package/docs/safety-index/artifacts/figma-server.json +1766 -0
  76. package/docs/safety-index/artifacts/figma-server.md +256 -0
  77. package/docs/safety-index/artifacts/filesystem-mcp-server.json +428 -24
  78. package/docs/safety-index/artifacts/filesystem-mcp-server.md +75 -14
  79. package/docs/safety-index/artifacts/filesystem-server.json +426 -22
  80. package/docs/safety-index/artifacts/filesystem-server.md +73 -12
  81. package/docs/safety-index/artifacts/firecrawl-server.json +4056 -0
  82. package/docs/safety-index/artifacts/firecrawl-server.md +243 -0
  83. package/docs/safety-index/artifacts/github-mcp-server.json +374 -21
  84. package/docs/safety-index/artifacts/github-mcp-server.md +71 -15
  85. package/docs/safety-index/artifacts/gitlab-server.json +229 -0
  86. package/docs/safety-index/artifacts/gitlab-server.md +753 -0
  87. package/docs/safety-index/artifacts/gmail-server.json +66 -0
  88. package/docs/safety-index/artifacts/gmail-server.md +106 -0
  89. package/docs/safety-index/artifacts/google-calendar-server.json +66 -0
  90. package/docs/safety-index/artifacts/google-calendar-server.md +106 -0
  91. package/docs/safety-index/artifacts/google-drive-server.json +66 -0
  92. package/docs/safety-index/artifacts/google-drive-server.md +106 -0
  93. package/docs/safety-index/artifacts/google-sheets-server.json +66 -0
  94. package/docs/safety-index/artifacts/google-sheets-server.md +106 -0
  95. package/docs/safety-index/artifacts/google-tasks-server.json +66 -0
  96. package/docs/safety-index/artifacts/google-tasks-server.md +106 -0
  97. package/docs/safety-index/artifacts/huggingface-server.json +66 -0
  98. package/docs/safety-index/artifacts/huggingface-server.md +106 -0
  99. package/docs/safety-index/artifacts/jina-server.json +66 -0
  100. package/docs/safety-index/artifacts/jina-server.md +106 -0
  101. package/docs/safety-index/artifacts/kubernetes-server.json +1054 -27
  102. package/docs/safety-index/artifacts/kubernetes-server.md +137 -18
  103. package/docs/safety-index/artifacts/linear-server.json +1494 -0
  104. package/docs/safety-index/artifacts/linear-server.md +237 -0
  105. package/docs/safety-index/artifacts/memory-server.json +191 -18
  106. package/docs/safety-index/artifacts/memory-server.md +51 -9
  107. package/docs/safety-index/artifacts/mongodb-server.json +66 -0
  108. package/docs/safety-index/artifacts/mongodb-server.md +106 -0
  109. package/docs/safety-index/artifacts/neon-server.json +66 -0
  110. package/docs/safety-index/artifacts/neon-server.md +103 -0
  111. package/docs/safety-index/artifacts/notion-server.json +7151 -0
  112. package/docs/safety-index/artifacts/notion-server.md +236 -0
  113. package/docs/safety-index/artifacts/onesignal-server.json +66 -0
  114. package/docs/safety-index/artifacts/onesignal-server.md +106 -0
  115. package/docs/safety-index/artifacts/opentofu-server.json +31 -19
  116. package/docs/safety-index/artifacts/opentofu-server.md +28 -10
  117. package/docs/safety-index/artifacts/playwright-mcp-server.json +415 -24
  118. package/docs/safety-index/artifacts/playwright-mcp-server.md +84 -20
  119. package/docs/safety-index/artifacts/postgres-server.json +330 -0
  120. package/docs/safety-index/artifacts/postgres-server.md +208 -0
  121. package/docs/safety-index/artifacts/promptopia-server.json +96 -19
  122. package/docs/safety-index/artifacts/promptopia-server.md +43 -9
  123. package/docs/safety-index/artifacts/puppeteer-server.json +118 -29
  124. package/docs/safety-index/artifacts/puppeteer-server.md +61 -19
  125. package/docs/safety-index/artifacts/qdrant-server.json +66 -0
  126. package/docs/safety-index/artifacts/qdrant-server.md +106 -0
  127. package/docs/safety-index/artifacts/reddit-server.json +66 -0
  128. package/docs/safety-index/artifacts/reddit-server.md +106 -0
  129. package/docs/safety-index/artifacts/ref-tools-server.json +95 -18
  130. package/docs/safety-index/artifacts/ref-tools-server.md +45 -12
  131. package/docs/safety-index/artifacts/sentry-server.json +66 -0
  132. package/docs/safety-index/artifacts/sentry-server.md +106 -0
  133. package/docs/safety-index/artifacts/sequential-thinking-server.json +59 -18
  134. package/docs/safety-index/artifacts/sequential-thinking-server.md +41 -9
  135. package/docs/safety-index/artifacts/slack-server.json +66 -0
  136. package/docs/safety-index/artifacts/slack-server.md +102 -0
  137. package/docs/safety-index/artifacts/sqlite-server.json +67 -0
  138. package/docs/safety-index/artifacts/sqlite-server.md +106 -0
  139. package/docs/safety-index/artifacts/stripe-server.json +66 -0
  140. package/docs/safety-index/artifacts/stripe-server.md +106 -0
  141. package/docs/safety-index/artifacts/supabase-server.json +66 -0
  142. package/docs/safety-index/artifacts/supabase-server.md +102 -0
  143. package/docs/safety-index/artifacts/tavily-search-server.json +66 -0
  144. package/docs/safety-index/artifacts/tavily-search-server.md +106 -0
  145. package/docs/safety-index/artifacts/ui5-mcp-server.json +842 -0
  146. package/docs/safety-index/artifacts/ui5-mcp-server.md +232 -0
  147. package/docs/safety-index/artifacts/vercel-ai-server.json +66 -0
  148. package/docs/safety-index/artifacts/vercel-ai-server.md +106 -0
  149. package/docs/safety-index/targets.json +552 -0
  150. package/package.json +1 -1
  151. package/schemas/run-artifact.schema.json +56 -1
@@ -0,0 +1,753 @@
1
+ # MCP Observatory Run Report
2
+
3
+ Generated at 2026-07-12T23:44:32.356Z
4
+
5
+ ## Target and Environment Metadata
6
+
7
+ - Target: `gitlab-server`
8
+ - Adapter: `local-process`
9
+ - Command: `npx -y @modelcontextprotocol/server-gitlab`
10
+ - Server: `gitlab-mcp-server 0.5.1`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
+
14
+ ## Executive Summary
15
+
16
+ **Health Score: 75/100 (C)**
17
+
18
+ | Dimension | Score | Weight |
19
+ | --- | --- | --- |
20
+ | Protocol Compliance | 60/100 | 30% |
21
+ | Schema Quality | 100/100 | 20% |
22
+ | Security | 100/100 | 20% |
23
+ | Reliability | 33/100 | 20% |
24
+ | Performance | 100/100 | 10% |
25
+
26
+ | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
+ | --- | --- | --- | --- | --- | --- | --- | --- |
28
+ | fail | 7 | 3 | 1 | 1 | 2 | 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: conformance: 5/7 conformance checks passed, 2 failed.; tools: Advertised capability failed during tools/list: [
34
+ {
35
+ "code": "invalid_value",
36
+ "values": [
37
+ "object"
38
+ ],
39
+ "path": [
40
+ "tools",
41
+ 0,
42
+ "inputSchema",
43
+ "type"
44
+ ],
45
+ "message": "Invalid input: expected \"object\""
46
+ },
47
+ {
48
+ "code": "invalid_value",
49
+ "values": [
50
+ "object"
51
+ ],
52
+ "path": [
53
+ "tools",
54
+ 1,
55
+ "inputSchema",
56
+ "type"
57
+ ],
58
+ "message": "Invalid input: expected \"object\""
59
+ },
60
+ {
61
+ "code": "invalid_value",
62
+ "values": [
63
+ "object"
64
+ ],
65
+ "path": [
66
+ "tools",
67
+ 2,
68
+ "inputSchema",
69
+ "type"
70
+ ],
71
+ "message": "Invalid input: expected \"object\""
72
+ },
73
+ {
74
+ "code": "invalid_value",
75
+ "values": [
76
+ "object"
77
+ ],
78
+ "path": [
79
+ "tools",
80
+ 3,
81
+ "inputSchema",
82
+ "type"
83
+ ],
84
+ "message": "Invalid input: expected \"object\""
85
+ },
86
+ {
87
+ "code": "invalid_value",
88
+ "values": [
89
+ "object"
90
+ ],
91
+ "path": [
92
+ "tools",
93
+ 4,
94
+ "inputSchema",
95
+ "type"
96
+ ],
97
+ "message": "Invalid input: expected \"object\""
98
+ },
99
+ {
100
+ "code": "invalid_value",
101
+ "values": [
102
+ "object"
103
+ ],
104
+ "path": [
105
+ "tools",
106
+ 5,
107
+ "inputSchema",
108
+ "type"
109
+ ],
110
+ "message": "Invalid input: expected \"object\""
111
+ },
112
+ {
113
+ "code": "invalid_value",
114
+ "values": [
115
+ "object"
116
+ ],
117
+ "path": [
118
+ "tools",
119
+ 6,
120
+ "inputSchema",
121
+ "type"
122
+ ],
123
+ "message": "Invalid input: expected \"object\""
124
+ },
125
+ {
126
+ "code": "invalid_value",
127
+ "values": [
128
+ "object"
129
+ ],
130
+ "path": [
131
+ "tools",
132
+ 7,
133
+ "inputSchema",
134
+ "type"
135
+ ],
136
+ "message": "Invalid input: expected \"object\""
137
+ },
138
+ {
139
+ "code": "invalid_value",
140
+ "values": [
141
+ "object"
142
+ ],
143
+ "path": [
144
+ "tools",
145
+ 8,
146
+ "inputSchema",
147
+ "type"
148
+ ],
149
+ "message": "Invalid input: expected \"object\""
150
+ }
151
+ ]
152
+ - Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
153
+ - Failing checks: tools
154
+ - Partial or flaky checks: conformance
155
+ - Skipped checks: none
156
+ - Unsupported checks: prompts, resources
157
+ - Suggested next step: Start with the failing checks: tools.
158
+ - CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
159
+
160
+ ## What Was Not Tested
161
+
162
+ - 🔒 network_egress: No outbound network calls were attempted during scan
163
+ - 🔒 filesystem_mutation: Filesystem write operations were not exercised
164
+ - ℹ️ credential_access: Credential scanning was performed (see security findings)
165
+ - ℹ️ destructive_payloads: Destructive payloads were not attempted (safe-mode only)
166
+
167
+ ## Regressions and Recoveries
168
+
169
+ _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
170
+
171
+ ## Full Capability Status Table
172
+
173
+ | Focus | Check | Status | Duration (ms) | Message |
174
+ | --- | --- | --- | --- | --- |
175
+ | healthy | attack-sim | pass | 0.20 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
176
+ | healthy | schema-quality | pass | 0.13 | All 0 item(s) have good schema quality. |
177
+ | healthy | security | pass | 0.25 | No security issues detected. |
178
+ | review | conformance | partial | 0.57 | 5/7 conformance checks passed, 2 failed. |
179
+ | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
180
+ | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
181
+ | act now | tools | fail | 1.05 | Advertised capability failed during tools/list: [
182
+ {
183
+ "code": "invalid_value",
184
+ "values": [
185
+ "object"
186
+ ],
187
+ "path": [
188
+ "tools",
189
+ 0,
190
+ "inputSchema",
191
+ "type"
192
+ ],
193
+ "message": "Invalid input: expected \"object\""
194
+ },
195
+ {
196
+ "code": "invalid_value",
197
+ "values": [
198
+ "object"
199
+ ],
200
+ "path": [
201
+ "tools",
202
+ 1,
203
+ "inputSchema",
204
+ "type"
205
+ ],
206
+ "message": "Invalid input: expected \"object\""
207
+ },
208
+ {
209
+ "code": "invalid_value",
210
+ "values": [
211
+ "object"
212
+ ],
213
+ "path": [
214
+ "tools",
215
+ 2,
216
+ "inputSchema",
217
+ "type"
218
+ ],
219
+ "message": "Invalid input: expected \"object\""
220
+ },
221
+ {
222
+ "code": "invalid_value",
223
+ "values": [
224
+ "object"
225
+ ],
226
+ "path": [
227
+ "tools",
228
+ 3,
229
+ "inputSchema",
230
+ "type"
231
+ ],
232
+ "message": "Invalid input: expected \"object\""
233
+ },
234
+ {
235
+ "code": "invalid_value",
236
+ "values": [
237
+ "object"
238
+ ],
239
+ "path": [
240
+ "tools",
241
+ 4,
242
+ "inputSchema",
243
+ "type"
244
+ ],
245
+ "message": "Invalid input: expected \"object\""
246
+ },
247
+ {
248
+ "code": "invalid_value",
249
+ "values": [
250
+ "object"
251
+ ],
252
+ "path": [
253
+ "tools",
254
+ 5,
255
+ "inputSchema",
256
+ "type"
257
+ ],
258
+ "message": "Invalid input: expected \"object\""
259
+ },
260
+ {
261
+ "code": "invalid_value",
262
+ "values": [
263
+ "object"
264
+ ],
265
+ "path": [
266
+ "tools",
267
+ 6,
268
+ "inputSchema",
269
+ "type"
270
+ ],
271
+ "message": "Invalid input: expected \"object\""
272
+ },
273
+ {
274
+ "code": "invalid_value",
275
+ "values": [
276
+ "object"
277
+ ],
278
+ "path": [
279
+ "tools",
280
+ 7,
281
+ "inputSchema",
282
+ "type"
283
+ ],
284
+ "message": "Invalid input: expected \"object\""
285
+ },
286
+ {
287
+ "code": "invalid_value",
288
+ "values": [
289
+ "object"
290
+ ],
291
+ "path": [
292
+ "tools",
293
+ 8,
294
+ "inputSchema",
295
+ "type"
296
+ ],
297
+ "message": "Invalid input: expected \"object\""
298
+ }
299
+ ] |
300
+
301
+ ## Evidence Snippets
302
+
303
+ ### attack-sim — pass
304
+
305
+ Summary: Safe attack simulation found no high-risk MCP attack-readiness findings.
306
+
307
+ - Endpoint: `attack-sim/safe`
308
+ - Advertised: `true`
309
+ - Responded: `true`
310
+ - Minimal shape present: `true`
311
+ - Item count: `0`
312
+ - Identifiers: none
313
+ - Diagnostics: none
314
+
315
+ ### schema-quality — pass
316
+
317
+ Summary: All 0 item(s) have good schema quality.
318
+
319
+ - Endpoint: `schema-quality/scan`
320
+ - Advertised: `true`
321
+ - Responded: `true`
322
+ - Minimal shape present: `true`
323
+ - Item count: `0`
324
+ - Identifiers: none
325
+ - Diagnostics: none
326
+
327
+ ### security — pass
328
+
329
+ Summary: No security issues detected.
330
+
331
+ - Endpoint: `security/scan`
332
+ - Advertised: `true`
333
+ - Responded: `true`
334
+ - Minimal shape present: `true`
335
+ - Item count: `0`
336
+ - Identifiers: none
337
+ - Diagnostics: none
338
+
339
+ ### conformance — partial
340
+
341
+ Summary: 5/7 conformance checks passed, 2 failed.
342
+
343
+ - Endpoint: `conformance/check`
344
+ - Advertised: `true`
345
+ - Responded: `true`
346
+ - Minimal shape present: `false`
347
+ - Item count: `7`
348
+ - Identifiers: tools-capability-match, tool-response-content
349
+ - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [FAIL] tools-capability-match: Advertised tools but tools/list failed: [
350
+ {
351
+ "code": "invalid_value",
352
+ "values": [
353
+ "object"
354
+ ],
355
+ "path": [
356
+ "tools",
357
+ 0,
358
+ "inputSchema",
359
+ "type"
360
+ ],
361
+ "message": "Invalid input: expected \"object\""
362
+ },
363
+ {
364
+ "code": "invalid_value",
365
+ "values": [
366
+ "object"
367
+ ],
368
+ "path": [
369
+ "tools",
370
+ 1,
371
+ "inputSchema",
372
+ "type"
373
+ ],
374
+ "message": "Invalid input: expected \"object\""
375
+ },
376
+ {
377
+ "code": "invalid_value",
378
+ "values": [
379
+ "object"
380
+ ],
381
+ "path": [
382
+ "tools",
383
+ 2,
384
+ "inputSchema",
385
+ "type"
386
+ ],
387
+ "message": "Invalid input: expected \"object\""
388
+ },
389
+ {
390
+ "code": "invalid_value",
391
+ "values": [
392
+ "object"
393
+ ],
394
+ "path": [
395
+ "tools",
396
+ 3,
397
+ "inputSchema",
398
+ "type"
399
+ ],
400
+ "message": "Invalid input: expected \"object\""
401
+ },
402
+ {
403
+ "code": "invalid_value",
404
+ "values": [
405
+ "object"
406
+ ],
407
+ "path": [
408
+ "tools",
409
+ 4,
410
+ "inputSchema",
411
+ "type"
412
+ ],
413
+ "message": "Invalid input: expected \"object\""
414
+ },
415
+ {
416
+ "code": "invalid_value",
417
+ "values": [
418
+ "object"
419
+ ],
420
+ "path": [
421
+ "tools",
422
+ 5,
423
+ "inputSchema",
424
+ "type"
425
+ ],
426
+ "message": "Invalid input: expected \"object\""
427
+ },
428
+ {
429
+ "code": "invalid_value",
430
+ "values": [
431
+ "object"
432
+ ],
433
+ "path": [
434
+ "tools",
435
+ 6,
436
+ "inputSchema",
437
+ "type"
438
+ ],
439
+ "message": "Invalid input: expected \"object\""
440
+ },
441
+ {
442
+ "code": "invalid_value",
443
+ "values": [
444
+ "object"
445
+ ],
446
+ "path": [
447
+ "tools",
448
+ 7,
449
+ "inputSchema",
450
+ "type"
451
+ ],
452
+ "message": "Invalid input: expected \"object\""
453
+ },
454
+ {
455
+ "code": "invalid_value",
456
+ "values": [
457
+ "object"
458
+ ],
459
+ "path": [
460
+ "tools",
461
+ 8,
462
+ "inputSchema",
463
+ "type"
464
+ ],
465
+ "message": "Invalid input: expected \"object\""
466
+ }
467
+ ] (+4 more)
468
+
469
+ ### prompts — unsupported
470
+
471
+ Summary: Prompts are not advertised by the target.
472
+
473
+ - Endpoint: `prompts/list`
474
+ - Advertised: `false`
475
+ - Responded: `false`
476
+ - Minimal shape present: `false`
477
+ - Item count: `0`
478
+ - Identifiers: none
479
+ - Diagnostics: none
480
+
481
+ ### resources — unsupported
482
+
483
+ Summary: Resources are not advertised by the target.
484
+
485
+ - Endpoint: `resources/list | resources/templates/list`
486
+ - Advertised: `false`
487
+ - Responded: `false`
488
+ - Minimal shape present: `false`
489
+ - Item count: `0`
490
+ - Identifiers: none
491
+ - Diagnostics: none
492
+
493
+ ### tools — fail
494
+
495
+ Summary: Advertised capability failed during tools/list: [
496
+ {
497
+ "code": "invalid_value",
498
+ "values": [
499
+ "object"
500
+ ],
501
+ "path": [
502
+ "tools",
503
+ 0,
504
+ "inputSchema",
505
+ "type"
506
+ ],
507
+ "message": "Invalid input: expected \"object\""
508
+ },
509
+ {
510
+ "code": "invalid_value",
511
+ "values": [
512
+ "object"
513
+ ],
514
+ "path": [
515
+ "tools",
516
+ 1,
517
+ "inputSchema",
518
+ "type"
519
+ ],
520
+ "message": "Invalid input: expected \"object\""
521
+ },
522
+ {
523
+ "code": "invalid_value",
524
+ "values": [
525
+ "object"
526
+ ],
527
+ "path": [
528
+ "tools",
529
+ 2,
530
+ "inputSchema",
531
+ "type"
532
+ ],
533
+ "message": "Invalid input: expected \"object\""
534
+ },
535
+ {
536
+ "code": "invalid_value",
537
+ "values": [
538
+ "object"
539
+ ],
540
+ "path": [
541
+ "tools",
542
+ 3,
543
+ "inputSchema",
544
+ "type"
545
+ ],
546
+ "message": "Invalid input: expected \"object\""
547
+ },
548
+ {
549
+ "code": "invalid_value",
550
+ "values": [
551
+ "object"
552
+ ],
553
+ "path": [
554
+ "tools",
555
+ 4,
556
+ "inputSchema",
557
+ "type"
558
+ ],
559
+ "message": "Invalid input: expected \"object\""
560
+ },
561
+ {
562
+ "code": "invalid_value",
563
+ "values": [
564
+ "object"
565
+ ],
566
+ "path": [
567
+ "tools",
568
+ 5,
569
+ "inputSchema",
570
+ "type"
571
+ ],
572
+ "message": "Invalid input: expected \"object\""
573
+ },
574
+ {
575
+ "code": "invalid_value",
576
+ "values": [
577
+ "object"
578
+ ],
579
+ "path": [
580
+ "tools",
581
+ 6,
582
+ "inputSchema",
583
+ "type"
584
+ ],
585
+ "message": "Invalid input: expected \"object\""
586
+ },
587
+ {
588
+ "code": "invalid_value",
589
+ "values": [
590
+ "object"
591
+ ],
592
+ "path": [
593
+ "tools",
594
+ 7,
595
+ "inputSchema",
596
+ "type"
597
+ ],
598
+ "message": "Invalid input: expected \"object\""
599
+ },
600
+ {
601
+ "code": "invalid_value",
602
+ "values": [
603
+ "object"
604
+ ],
605
+ "path": [
606
+ "tools",
607
+ 8,
608
+ "inputSchema",
609
+ "type"
610
+ ],
611
+ "message": "Invalid input: expected \"object\""
612
+ }
613
+ ]
614
+
615
+ - Endpoint: `tools/list`
616
+ - Advertised: `true`
617
+ - Responded: `false`
618
+ - Minimal shape present: `false`
619
+ - Item count: `0`
620
+ - Identifiers: none
621
+ - Diagnostics: [
622
+ {
623
+ "code": "invalid_value",
624
+ "values": [
625
+ "object"
626
+ ],
627
+ "path": [
628
+ "tools",
629
+ 0,
630
+ "inputSchema",
631
+ "type"
632
+ ],
633
+ "message": "Invalid input: expected \"object\""
634
+ },
635
+ {
636
+ "code": "invalid_value",
637
+ "values": [
638
+ "object"
639
+ ],
640
+ "path": [
641
+ "tools",
642
+ 1,
643
+ "inputSchema",
644
+ "type"
645
+ ],
646
+ "message": "Invalid input: expected \"object\""
647
+ },
648
+ {
649
+ "code": "invalid_value",
650
+ "values": [
651
+ "object"
652
+ ],
653
+ "path": [
654
+ "tools",
655
+ 2,
656
+ "inputSchema",
657
+ "type"
658
+ ],
659
+ "message": "Invalid input: expected \"object\""
660
+ },
661
+ {
662
+ "code": "invalid_value",
663
+ "values": [
664
+ "object"
665
+ ],
666
+ "path": [
667
+ "tools",
668
+ 3,
669
+ "inputSchema",
670
+ "type"
671
+ ],
672
+ "message": "Invalid input: expected \"object\""
673
+ },
674
+ {
675
+ "code": "invalid_value",
676
+ "values": [
677
+ "object"
678
+ ],
679
+ "path": [
680
+ "tools",
681
+ 4,
682
+ "inputSchema",
683
+ "type"
684
+ ],
685
+ "message": "Invalid input: expected \"object\""
686
+ },
687
+ {
688
+ "code": "invalid_value",
689
+ "values": [
690
+ "object"
691
+ ],
692
+ "path": [
693
+ "tools",
694
+ 5,
695
+ "inputSchema",
696
+ "type"
697
+ ],
698
+ "message": "Invalid input: expected \"object\""
699
+ },
700
+ {
701
+ "code": "invalid_value",
702
+ "values": [
703
+ "object"
704
+ ],
705
+ "path": [
706
+ "tools",
707
+ 6,
708
+ "inputSchema",
709
+ "type"
710
+ ],
711
+ "message": "Invalid input: expected \"object\""
712
+ },
713
+ {
714
+ "code": "invalid_value",
715
+ "values": [
716
+ "object"
717
+ ],
718
+ "path": [
719
+ "tools",
720
+ 7,
721
+ "inputSchema",
722
+ "type"
723
+ ],
724
+ "message": "Invalid input: expected \"object\""
725
+ },
726
+ {
727
+ "code": "invalid_value",
728
+ "values": [
729
+ "object"
730
+ ],
731
+ "path": [
732
+ "tools",
733
+ 8,
734
+ "inputSchema",
735
+ "type"
736
+ ],
737
+ "message": "Invalid input: expected \"object\""
738
+ }
739
+ ], GitLab MCP Server running on stdio
740
+
741
+ ## Reproduction Commands
742
+
743
+ ```bash
744
+ npm run cli -- run --target <path-to-target-config.json>
745
+ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
746
+ ```
747
+
748
+ ## Artifact Provenance
749
+
750
+ - Artifact type: `run`
751
+ - Schema version: `1.0.0`
752
+ - Run ID: `run_2026-07-12T234432356Z_5fb3b8bf`
753
+ - Gate: `fail`