@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.
- package/README.md +4 -10
- package/README.zh-CN.md +4 -10
- package/dist/src/cli.js +1 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/enforce.d.ts +2 -2
- package/dist/src/commands/enforce.js +5 -8
- package/dist/src/commands/enforce.js.map +1 -1
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/test.js +2 -2
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/telemetry.js +2 -1
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/validate.js +5 -6
- package/dist/src/validate.js.map +1 -1
- package/docs/mcp-server-safety-index.md +68 -8
- package/docs/safety-index/artifacts/antv-chart-server.json +1452 -19
- package/docs/safety-index/artifacts/antv-chart-server.md +156 -10
- package/docs/safety-index/artifacts/brave-search-server.json +341 -0
- package/docs/safety-index/artifacts/brave-search-server.md +201 -0
- package/docs/safety-index/artifacts/browsermcp-server.json +83 -18
- package/docs/safety-index/artifacts/browsermcp-server.md +46 -12
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +592 -21
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +96 -14
- package/docs/safety-index/artifacts/clay-server.json +66 -0
- package/docs/safety-index/artifacts/clay-server.md +106 -0
- package/docs/safety-index/artifacts/cloudflare-server.json +66 -0
- package/docs/safety-index/artifacts/cloudflare-server.md +106 -0
- package/docs/safety-index/artifacts/context7-server.json +85 -18
- package/docs/safety-index/artifacts/context7-server.md +52 -11
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +1565 -34
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +178 -17
- package/docs/safety-index/artifacts/docker-server.json +395 -0
- package/docs/safety-index/artifacts/docker-server.md +204 -0
- package/docs/safety-index/artifacts/everything-server.json +145 -18
- package/docs/safety-index/artifacts/everything-server.md +56 -11
- package/docs/safety-index/artifacts/exa-server.json +400 -0
- package/docs/safety-index/artifacts/exa-server.md +207 -0
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +625 -18
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +95 -11
- package/docs/safety-index/artifacts/fetch-server.json +66 -0
- package/docs/safety-index/artifacts/fetch-server.md +106 -0
- package/docs/safety-index/artifacts/figma-server.json +1766 -0
- package/docs/safety-index/artifacts/figma-server.md +256 -0
- package/docs/safety-index/artifacts/filesystem-mcp-server.json +428 -24
- package/docs/safety-index/artifacts/filesystem-mcp-server.md +75 -14
- package/docs/safety-index/artifacts/filesystem-server.json +426 -22
- package/docs/safety-index/artifacts/filesystem-server.md +73 -12
- package/docs/safety-index/artifacts/firecrawl-server.json +4056 -0
- package/docs/safety-index/artifacts/firecrawl-server.md +243 -0
- package/docs/safety-index/artifacts/github-mcp-server.json +374 -21
- package/docs/safety-index/artifacts/github-mcp-server.md +71 -15
- package/docs/safety-index/artifacts/gitlab-server.json +229 -0
- package/docs/safety-index/artifacts/gitlab-server.md +753 -0
- package/docs/safety-index/artifacts/gmail-server.json +66 -0
- package/docs/safety-index/artifacts/gmail-server.md +106 -0
- package/docs/safety-index/artifacts/google-calendar-server.json +66 -0
- package/docs/safety-index/artifacts/google-calendar-server.md +106 -0
- package/docs/safety-index/artifacts/google-drive-server.json +66 -0
- package/docs/safety-index/artifacts/google-drive-server.md +106 -0
- package/docs/safety-index/artifacts/google-sheets-server.json +66 -0
- package/docs/safety-index/artifacts/google-sheets-server.md +106 -0
- package/docs/safety-index/artifacts/google-tasks-server.json +66 -0
- package/docs/safety-index/artifacts/google-tasks-server.md +106 -0
- package/docs/safety-index/artifacts/huggingface-server.json +66 -0
- package/docs/safety-index/artifacts/huggingface-server.md +106 -0
- package/docs/safety-index/artifacts/jina-server.json +66 -0
- package/docs/safety-index/artifacts/jina-server.md +106 -0
- package/docs/safety-index/artifacts/kubernetes-server.json +1054 -27
- package/docs/safety-index/artifacts/kubernetes-server.md +137 -18
- package/docs/safety-index/artifacts/linear-server.json +1494 -0
- package/docs/safety-index/artifacts/linear-server.md +237 -0
- package/docs/safety-index/artifacts/memory-server.json +191 -18
- package/docs/safety-index/artifacts/memory-server.md +51 -9
- package/docs/safety-index/artifacts/mongodb-server.json +66 -0
- package/docs/safety-index/artifacts/mongodb-server.md +106 -0
- package/docs/safety-index/artifacts/neon-server.json +66 -0
- package/docs/safety-index/artifacts/neon-server.md +103 -0
- package/docs/safety-index/artifacts/notion-server.json +7151 -0
- package/docs/safety-index/artifacts/notion-server.md +236 -0
- package/docs/safety-index/artifacts/onesignal-server.json +66 -0
- package/docs/safety-index/artifacts/onesignal-server.md +106 -0
- package/docs/safety-index/artifacts/opentofu-server.json +31 -19
- package/docs/safety-index/artifacts/opentofu-server.md +28 -10
- package/docs/safety-index/artifacts/playwright-mcp-server.json +415 -24
- package/docs/safety-index/artifacts/playwright-mcp-server.md +84 -20
- package/docs/safety-index/artifacts/postgres-server.json +330 -0
- package/docs/safety-index/artifacts/postgres-server.md +208 -0
- package/docs/safety-index/artifacts/promptopia-server.json +96 -19
- package/docs/safety-index/artifacts/promptopia-server.md +43 -9
- package/docs/safety-index/artifacts/puppeteer-server.json +118 -29
- package/docs/safety-index/artifacts/puppeteer-server.md +61 -19
- package/docs/safety-index/artifacts/qdrant-server.json +66 -0
- package/docs/safety-index/artifacts/qdrant-server.md +106 -0
- package/docs/safety-index/artifacts/reddit-server.json +66 -0
- package/docs/safety-index/artifacts/reddit-server.md +106 -0
- package/docs/safety-index/artifacts/ref-tools-server.json +95 -18
- package/docs/safety-index/artifacts/ref-tools-server.md +45 -12
- package/docs/safety-index/artifacts/sentry-server.json +66 -0
- package/docs/safety-index/artifacts/sentry-server.md +106 -0
- package/docs/safety-index/artifacts/sequential-thinking-server.json +59 -18
- package/docs/safety-index/artifacts/sequential-thinking-server.md +41 -9
- package/docs/safety-index/artifacts/slack-server.json +66 -0
- package/docs/safety-index/artifacts/slack-server.md +102 -0
- package/docs/safety-index/artifacts/sqlite-server.json +67 -0
- package/docs/safety-index/artifacts/sqlite-server.md +106 -0
- package/docs/safety-index/artifacts/stripe-server.json +66 -0
- package/docs/safety-index/artifacts/stripe-server.md +106 -0
- package/docs/safety-index/artifacts/supabase-server.json +66 -0
- package/docs/safety-index/artifacts/supabase-server.md +102 -0
- package/docs/safety-index/artifacts/tavily-search-server.json +66 -0
- package/docs/safety-index/artifacts/tavily-search-server.md +106 -0
- package/docs/safety-index/artifacts/ui5-mcp-server.json +24 -24
- package/docs/safety-index/artifacts/ui5-mcp-server.md +13 -13
- package/docs/safety-index/artifacts/vercel-ai-server.json +66 -0
- package/docs/safety-index/artifacts/vercel-ai-server.md +106 -0
- package/docs/safety-index/targets.json +535 -0
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"artifactType": "run",
|
|
3
3
|
"schemaVersion": "1.0.0",
|
|
4
4
|
"gate": "fail",
|
|
5
|
-
"runId": "run_2026-07-
|
|
6
|
-
"createdAt": "2026-07-
|
|
7
|
-
"toolVersion": "
|
|
5
|
+
"runId": "run_2026-07-12T234407396Z_24f05cfd",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:07.396Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
8
|
"target": {
|
|
9
9
|
"targetId": "puppeteer-server",
|
|
10
10
|
"adapter": "local-process",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"nodeVersion": "v22.22.1"
|
|
30
30
|
},
|
|
31
31
|
"summary": {
|
|
32
|
-
"total":
|
|
33
|
-
"pass":
|
|
32
|
+
"total": 9,
|
|
33
|
+
"pass": 5,
|
|
34
34
|
"fail": 1,
|
|
35
35
|
"partial": 2,
|
|
36
36
|
"unsupported": 1,
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"id": "tools",
|
|
44
44
|
"capability": "tools",
|
|
45
45
|
"status": "pass",
|
|
46
|
-
"durationMs": 0.
|
|
46
|
+
"durationMs": 0.43404200000077253,
|
|
47
47
|
"message": "Advertised capability responded with the minimal expected shape (8 items).",
|
|
48
48
|
"evidence": [
|
|
49
49
|
{
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
"id": "prompts",
|
|
193
193
|
"capability": "prompts",
|
|
194
194
|
"status": "unsupported",
|
|
195
|
-
"durationMs": 0.
|
|
195
|
+
"durationMs": 0.0008749999997235136,
|
|
196
196
|
"message": "Prompts are not advertised by the target.",
|
|
197
197
|
"evidence": [
|
|
198
198
|
{
|
|
@@ -208,7 +208,7 @@
|
|
|
208
208
|
"id": "resources",
|
|
209
209
|
"capability": "resources",
|
|
210
210
|
"status": "pass",
|
|
211
|
-
"durationMs": 0.
|
|
211
|
+
"durationMs": 0.6497080000008282,
|
|
212
212
|
"message": "Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.",
|
|
213
213
|
"evidence": [
|
|
214
214
|
{
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"id": "security-lite",
|
|
238
238
|
"capability": "security-lite",
|
|
239
239
|
"status": "pass",
|
|
240
|
-
"durationMs": 0.
|
|
240
|
+
"durationMs": 0.03916700000081619,
|
|
241
241
|
"message": "No security issues detected (lightweight scan).",
|
|
242
242
|
"evidence": [
|
|
243
243
|
{
|
|
@@ -249,29 +249,80 @@
|
|
|
249
249
|
}
|
|
250
250
|
]
|
|
251
251
|
},
|
|
252
|
+
{
|
|
253
|
+
"id": "runtime-profile",
|
|
254
|
+
"capability": "runtime-profile",
|
|
255
|
+
"status": "partial",
|
|
256
|
+
"durationMs": 0.0698339999999007,
|
|
257
|
+
"message": "Detected 3 potential egress target(s) and 2 potential state mutation(s) with high confidence.",
|
|
258
|
+
"evidence": [
|
|
259
|
+
{
|
|
260
|
+
"endpoint": "runtime-profile/analyze",
|
|
261
|
+
"advertised": true,
|
|
262
|
+
"responded": true,
|
|
263
|
+
"minimalShapePresent": true,
|
|
264
|
+
"itemCount": 5,
|
|
265
|
+
"diagnostics": [
|
|
266
|
+
"Egress entries: 3",
|
|
267
|
+
"State mutations: 2",
|
|
268
|
+
"Confidence: high"
|
|
269
|
+
],
|
|
270
|
+
"findings": [
|
|
271
|
+
{
|
|
272
|
+
"target": "Optional URL of the target tab to connect to. If not provided, connects to the first available tab.",
|
|
273
|
+
"protocol": "unknown",
|
|
274
|
+
"source": "description_analysis",
|
|
275
|
+
"confidence": "medium"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"target": "url",
|
|
279
|
+
"protocol": "unknown",
|
|
280
|
+
"source": "tool_schema",
|
|
281
|
+
"confidence": "high"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"target": "puppeteer_navigate",
|
|
285
|
+
"protocol": "unknown",
|
|
286
|
+
"source": "description_analysis",
|
|
287
|
+
"confidence": "low"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"resource": "filesystem",
|
|
291
|
+
"operation": "write",
|
|
292
|
+
"scope": "working_directory",
|
|
293
|
+
"source": "description_analysis"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"resource": "filesystem",
|
|
297
|
+
"operation": "write",
|
|
298
|
+
"scope": "working_directory",
|
|
299
|
+
"source": "description_analysis"
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
}
|
|
303
|
+
]
|
|
304
|
+
},
|
|
252
305
|
{
|
|
253
306
|
"id": "conformance",
|
|
254
307
|
"capability": "conformance",
|
|
255
|
-
"status": "
|
|
256
|
-
"durationMs":
|
|
257
|
-
"message": "
|
|
308
|
+
"status": "pass",
|
|
309
|
+
"durationMs": 1074.559666000001,
|
|
310
|
+
"message": "All 7 conformance checks passed.",
|
|
258
311
|
"evidence": [
|
|
259
312
|
{
|
|
260
313
|
"endpoint": "conformance/check",
|
|
261
314
|
"advertised": true,
|
|
262
315
|
"responded": true,
|
|
263
|
-
"minimalShapePresent":
|
|
316
|
+
"minimalShapePresent": true,
|
|
264
317
|
"itemCount": 7,
|
|
265
|
-
"identifiers": [
|
|
266
|
-
"tool-response-content"
|
|
267
|
-
],
|
|
318
|
+
"identifiers": [],
|
|
268
319
|
"diagnostics": [
|
|
269
320
|
"[pass] capabilities-present: Server returned capabilities object.",
|
|
270
321
|
"[pass] server-info: Server provided initialization info.",
|
|
271
322
|
"[pass] tools-capability-match: tools/list returned 8 tool(s).",
|
|
272
323
|
"[pass] prompts-capability-match: Prompts not advertised â endpoint check skipped.",
|
|
273
324
|
"[pass] resources-capability-match: resources/list returned 1 resource(s).",
|
|
274
|
-
"[
|
|
325
|
+
"[pass] tool-response-content: Tool \"puppeteer_connect_active_tab\" response has valid content array.",
|
|
275
326
|
"[pass] error-handling: Server returned proper error code -32601 for unknown method."
|
|
276
327
|
]
|
|
277
328
|
}
|
|
@@ -281,7 +332,7 @@
|
|
|
281
332
|
"id": "schema-quality",
|
|
282
333
|
"capability": "schema-quality",
|
|
283
334
|
"status": "partial",
|
|
284
|
-
"durationMs": 0.
|
|
335
|
+
"durationMs": 0.4976669999996375,
|
|
285
336
|
"message": "Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info.",
|
|
286
337
|
"evidence": [
|
|
287
338
|
{
|
|
@@ -319,7 +370,7 @@
|
|
|
319
370
|
"id": "security",
|
|
320
371
|
"capability": "security",
|
|
321
372
|
"status": "pass",
|
|
322
|
-
"durationMs": 0.
|
|
373
|
+
"durationMs": 0.1350830000010319,
|
|
323
374
|
"message": "No security issues detected.",
|
|
324
375
|
"evidence": [
|
|
325
376
|
{
|
|
@@ -335,7 +386,7 @@
|
|
|
335
386
|
"id": "attack-sim",
|
|
336
387
|
"capability": "attack-sim",
|
|
337
388
|
"status": "fail",
|
|
338
|
-
"durationMs": 0.
|
|
389
|
+
"durationMs": 0.44333300000107556,
|
|
339
390
|
"message": "Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.",
|
|
340
391
|
"evidence": [
|
|
341
392
|
{
|
|
@@ -373,15 +424,15 @@
|
|
|
373
424
|
}
|
|
374
425
|
],
|
|
375
426
|
"healthScore": {
|
|
376
|
-
"overall":
|
|
377
|
-
"grade": "
|
|
427
|
+
"overall": 82,
|
|
428
|
+
"grade": "B",
|
|
378
429
|
"dimensions": [
|
|
379
430
|
{
|
|
380
431
|
"name": "Protocol Compliance",
|
|
381
432
|
"weight": 0.3,
|
|
382
|
-
"score":
|
|
433
|
+
"score": 100,
|
|
383
434
|
"details": [
|
|
384
|
-
"conformance:
|
|
435
|
+
"conformance: pass (100/100)"
|
|
385
436
|
]
|
|
386
437
|
},
|
|
387
438
|
{
|
|
@@ -417,16 +468,54 @@
|
|
|
417
468
|
"weight": 0.1,
|
|
418
469
|
"score": 100,
|
|
419
470
|
"details": [
|
|
420
|
-
"Connect:
|
|
471
|
+
"Connect: 891ms",
|
|
421
472
|
"p95 latency: 1ms (3 operations)"
|
|
422
473
|
]
|
|
423
474
|
}
|
|
424
475
|
]
|
|
425
476
|
},
|
|
426
477
|
"performanceMetrics": {
|
|
427
|
-
"connectMs":
|
|
428
|
-
"toolsListMs": 0.
|
|
429
|
-
"promptsListMs": 0.
|
|
430
|
-
"resourcesListMs": 0.
|
|
478
|
+
"connectMs": 891.2145409999994,
|
|
479
|
+
"toolsListMs": 0.43404200000077253,
|
|
480
|
+
"promptsListMs": 0.0008749999997235136,
|
|
481
|
+
"resourcesListMs": 0.6497080000008282
|
|
482
|
+
},
|
|
483
|
+
"runtimeProfile": {
|
|
484
|
+
"egress": [
|
|
485
|
+
{
|
|
486
|
+
"target": "Optional URL of the target tab to connect to. If not provided, connects to the first available tab.",
|
|
487
|
+
"protocol": "unknown",
|
|
488
|
+
"source": "description_analysis",
|
|
489
|
+
"confidence": "medium"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"target": "url",
|
|
493
|
+
"protocol": "unknown",
|
|
494
|
+
"source": "tool_schema",
|
|
495
|
+
"confidence": "high"
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"target": "puppeteer_navigate",
|
|
499
|
+
"protocol": "unknown",
|
|
500
|
+
"source": "description_analysis",
|
|
501
|
+
"confidence": "low"
|
|
502
|
+
}
|
|
503
|
+
],
|
|
504
|
+
"stateMutations": [
|
|
505
|
+
{
|
|
506
|
+
"resource": "filesystem",
|
|
507
|
+
"operation": "write",
|
|
508
|
+
"scope": "working_directory",
|
|
509
|
+
"source": "description_analysis"
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"resource": "filesystem",
|
|
513
|
+
"operation": "write",
|
|
514
|
+
"scope": "working_directory",
|
|
515
|
+
"source": "description_analysis"
|
|
516
|
+
}
|
|
517
|
+
],
|
|
518
|
+
"analyzedAt": "2026-07-12T23:44:08.288Z",
|
|
519
|
+
"confidence": "high"
|
|
431
520
|
}
|
|
432
521
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-07-
|
|
3
|
+
Generated at 2026-07-12T23:44:07.396Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -13,11 +13,11 @@ Generated at 2026-07-06T19:49:53.996Z
|
|
|
13
13
|
|
|
14
14
|
## Executive Summary
|
|
15
15
|
|
|
16
|
-
**Health Score:
|
|
16
|
+
**Health Score: 82/100 (B)**
|
|
17
17
|
|
|
18
18
|
| Dimension | Score | Weight |
|
|
19
19
|
| --- | --- | --- |
|
|
20
|
-
| Protocol Compliance |
|
|
20
|
+
| Protocol Compliance | 100/100 | 30% |
|
|
21
21
|
| Schema Quality | 60/100 | 20% |
|
|
22
22
|
| Security | 67/100 | 20% |
|
|
23
23
|
| Reliability | 83/100 | 20% |
|
|
@@ -25,20 +25,49 @@ Generated at 2026-07-06T19:49:53.996Z
|
|
|
25
25
|
|
|
26
26
|
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
27
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
-
| fail |
|
|
28
|
+
| fail | 9 | 5 | 1 | 2 | 1 | 0 | 0 |
|
|
29
29
|
|
|
30
30
|
## At a Glance
|
|
31
31
|
|
|
32
32
|
- Safety verdict: **Blocked** â One or more checks can break agent dependence and should be fixed before production use.
|
|
33
|
-
- Top risks:
|
|
33
|
+
- Top risks: runtime-profile: Detected 3 potential egress target(s) and 2 potential state mutation(s) with high confidence.; schema-quality: Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info.; attack-sim: Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.
|
|
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: attack-sim
|
|
36
|
-
- Partial or flaky checks:
|
|
36
|
+
- Partial or flaky checks: runtime-profile, schema-quality
|
|
37
37
|
- Skipped checks: none
|
|
38
38
|
- Unsupported checks: prompts
|
|
39
39
|
- Suggested next step: Start with the failing checks: 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
|
+
- đ 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: **high**):
|
|
53
|
+
|
|
54
|
+
| Target | Protocol | Source | Confidence |
|
|
55
|
+
| --- | --- | --- | --- |
|
|
56
|
+
| Optional URL of the target tab to connect to. If not provided, connects to the first available tab. | unknown | description_analysis | medium |
|
|
57
|
+
| url | unknown | tool_schema | high |
|
|
58
|
+
| puppeteer_navigate | unknown | description_analysis | low |
|
|
59
|
+
|
|
60
|
+
### State Mutations
|
|
61
|
+
|
|
62
|
+
The following state-modifying operations were identified from tool schemas:
|
|
63
|
+
|
|
64
|
+
| Resource | Operation | Scope | Source |
|
|
65
|
+
| --- | --- | --- | --- |
|
|
66
|
+
| filesystem | write | working_directory | description_analysis |
|
|
67
|
+
| filesystem | write | working_directory | description_analysis |
|
|
68
|
+
|
|
69
|
+
_Analyzed at 2026-07-12T23:44:08.288Z_
|
|
70
|
+
|
|
42
71
|
## Regressions and Recoveries
|
|
43
72
|
|
|
44
73
|
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
@@ -47,17 +76,30 @@ _Use the `diff` command against another run artifact to classify regressions and
|
|
|
47
76
|
|
|
48
77
|
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
78
|
| --- | --- | --- | --- | --- |
|
|
79
|
+
| healthy | conformance | pass | 1074.56 | All 7 conformance checks passed. |
|
|
50
80
|
| healthy | resources | pass | 0.65 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
|
|
51
|
-
| healthy | security | pass | 0.
|
|
81
|
+
| healthy | security | pass | 0.14 | No security issues detected. |
|
|
52
82
|
| healthy | security-lite | pass | 0.04 | No security issues detected (lightweight scan). |
|
|
53
|
-
| healthy | tools | pass | 0.
|
|
54
|
-
| review |
|
|
55
|
-
| review | schema-quality | partial | 0.
|
|
83
|
+
| healthy | tools | pass | 0.43 | Advertised capability responded with the minimal expected shape (8 items). |
|
|
84
|
+
| review | runtime-profile | partial | 0.07 | Detected 3 potential egress target(s) and 2 potential state mutation(s) with high confidence. |
|
|
85
|
+
| review | schema-quality | partial | 0.50 | Found 2 quality finding(s) across 9 item(s): 1 warnings, 1 info. |
|
|
56
86
|
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
57
|
-
| act now | attack-sim | fail | 0.
|
|
87
|
+
| act now | attack-sim | fail | 0.44 | Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low. |
|
|
58
88
|
|
|
59
89
|
## Evidence Snippets
|
|
60
90
|
|
|
91
|
+
### conformance â pass
|
|
92
|
+
|
|
93
|
+
Summary: All 7 conformance checks passed.
|
|
94
|
+
|
|
95
|
+
- Endpoint: `conformance/check`
|
|
96
|
+
- Advertised: `true`
|
|
97
|
+
- Responded: `true`
|
|
98
|
+
- Minimal shape present: `true`
|
|
99
|
+
- Item count: `7`
|
|
100
|
+
- Identifiers: none
|
|
101
|
+
- Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 8 tool(s). (+4 more)
|
|
102
|
+
|
|
61
103
|
### resources â pass
|
|
62
104
|
|
|
63
105
|
Summary: Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.
|
|
@@ -113,17 +155,17 @@ Summary: Advertised capability responded with the minimal expected shape (8 item
|
|
|
113
155
|
- Identifiers: puppeteer_connect_active_tab, puppeteer_navigate, puppeteer_screenshot, puppeteer_click, puppeteer_fill (+3 more)
|
|
114
156
|
- Diagnostics: none
|
|
115
157
|
|
|
116
|
-
###
|
|
158
|
+
### runtime-profile â partial
|
|
117
159
|
|
|
118
|
-
Summary:
|
|
160
|
+
Summary: Detected 3 potential egress target(s) and 2 potential state mutation(s) with high confidence.
|
|
119
161
|
|
|
120
|
-
- Endpoint: `
|
|
162
|
+
- Endpoint: `runtime-profile/analyze`
|
|
121
163
|
- Advertised: `true`
|
|
122
164
|
- Responded: `true`
|
|
123
|
-
- Minimal shape present: `
|
|
124
|
-
- Item count: `
|
|
125
|
-
- Identifiers:
|
|
126
|
-
- Diagnostics:
|
|
165
|
+
- Minimal shape present: `true`
|
|
166
|
+
- Item count: `5`
|
|
167
|
+
- Identifiers: none
|
|
168
|
+
- Diagnostics: Egress entries: 3, State mutations: 2, Confidence: high
|
|
127
169
|
|
|
128
170
|
### schema-quality â partial
|
|
129
171
|
|
|
@@ -172,5 +214,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
172
214
|
|
|
173
215
|
- Artifact type: `run`
|
|
174
216
|
- Schema version: `1.0.0`
|
|
175
|
-
- Run ID: `run_2026-07-
|
|
217
|
+
- Run ID: `run_2026-07-12T234407396Z_24f05cfd`
|
|
176
218
|
- Gate: `fail`
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "fail",
|
|
5
|
+
"runId": "run_2026-07-12T234419496Z_63ce4c8c",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:19.496Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "qdrant-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@anthropic/mcp-server-qdrant"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "@anthropic/mcp-server-qdrant",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Vector database mutation",
|
|
21
|
+
"failureClass": "Collection/point boundary",
|
|
22
|
+
"whyItMatters": "Qdrant MCP servers can expose vector search, collection management, and point CRUD to agents."
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"environment": {
|
|
26
|
+
"platform": "darwin 25.5.0",
|
|
27
|
+
"nodeVersion": "v22.22.1"
|
|
28
|
+
},
|
|
29
|
+
"summary": {
|
|
30
|
+
"total": 3,
|
|
31
|
+
"pass": 0,
|
|
32
|
+
"fail": 0,
|
|
33
|
+
"partial": 0,
|
|
34
|
+
"unsupported": 0,
|
|
35
|
+
"flaky": 0,
|
|
36
|
+
"skipped": 3,
|
|
37
|
+
"gate": "fail"
|
|
38
|
+
},
|
|
39
|
+
"checks": [
|
|
40
|
+
{
|
|
41
|
+
"id": "tools",
|
|
42
|
+
"capability": "tools",
|
|
43
|
+
"status": "skipped",
|
|
44
|
+
"durationMs": 0,
|
|
45
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
46
|
+
"evidence": []
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "prompts",
|
|
50
|
+
"capability": "prompts",
|
|
51
|
+
"status": "skipped",
|
|
52
|
+
"durationMs": 0,
|
|
53
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
54
|
+
"evidence": []
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "resources",
|
|
58
|
+
"capability": "resources",
|
|
59
|
+
"status": "skipped",
|
|
60
|
+
"durationMs": 0,
|
|
61
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
62
|
+
"evidence": []
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"fatalError": "Could not establish a plain stdio MCP session for target `qdrant-server`.\nCommand: npx -y @anthropic/mcp-server-qdrant\nDiagnosis: The process exited or detached before MCP initialization completed.\nRaw error: MCP error -32000: Connection closed\nLikely causes:\n- The package may expect extra startup arguments or environment variables.\n- The package may not behave like a plain local-process stdio target under this invocation.\n- The server may be crashing immediately and only leaving clues on stderr.\nNext steps:\n- Run the command manually and look for usage output, auth prompts, or crash text.\n- Check whether the package expects a different transport or an app-oriented startup flow.\n- Use the recent stderr lines below before assuming this is a harness bug.\nRecent stderr:\n- npm error 404 '@anthropic/mcp-server-qdrant@*' is not in this registry.\n- npm error 404\n- npm error 404 Note that you can also install from a\n- npm error 404 tarball, folder, http url, or git url.\n- npm error A complete log of this run can be found in: /Users/williamweishuhn/.npm/_logs/2026-07-12T23_44_19_588Z-debug-0.log"
|
|
66
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-07-12T23:44:19.496Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `qdrant-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y @anthropic/mcp-server-qdrant`
|
|
10
|
+
- Server: `unknown `
|
|
11
|
+
- Platform: `darwin 25.5.0`
|
|
12
|
+
- Node: `v22.22.1`
|
|
13
|
+
|
|
14
|
+
## Executive Summary
|
|
15
|
+
|
|
16
|
+
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
17
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
18
|
+
| fail | 3 | 0 | 0 | 0 | 0 | 0 | 3 |
|
|
19
|
+
|
|
20
|
+
## At a Glance
|
|
21
|
+
|
|
22
|
+
- Safety verdict: **Blocked** â One or more checks can break agent dependence and should be fixed before production use.
|
|
23
|
+
- Top risks: startup: server failed to start
|
|
24
|
+
- Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
|
|
25
|
+
- Failing checks: none
|
|
26
|
+
- Partial or flaky checks: none
|
|
27
|
+
- Skipped checks: tools, prompts, resources
|
|
28
|
+
- Unsupported checks: none
|
|
29
|
+
- Suggested next step: Run the target command manually, compare stderr with the diagnosis below, and only raise timeoutMs if startup is genuinely slow.
|
|
30
|
+
- CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
|
|
31
|
+
|
|
32
|
+
## What Was Not Tested
|
|
33
|
+
|
|
34
|
+
- đ network_egress: No outbound network calls were attempted during scan
|
|
35
|
+
- đ filesystem_mutation: Filesystem write operations were not exercised
|
|
36
|
+
- đ credential_access: Credential scanning was not performed
|
|
37
|
+
- âšī¸ destructive_payloads: Destructive payloads were not attempted (safe-mode only)
|
|
38
|
+
|
|
39
|
+
## Regressions and Recoveries
|
|
40
|
+
|
|
41
|
+
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
42
|
+
|
|
43
|
+
## Failure Diagnosis
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
Could not establish a plain stdio MCP session for target `qdrant-server`.
|
|
47
|
+
Command: npx -y @anthropic/mcp-server-qdrant
|
|
48
|
+
Diagnosis: The process exited or detached before MCP initialization completed.
|
|
49
|
+
Raw error: MCP error -32000: Connection closed
|
|
50
|
+
Likely causes:
|
|
51
|
+
- The package may expect extra startup arguments or environment variables.
|
|
52
|
+
- The package may not behave like a plain local-process stdio target under this invocation.
|
|
53
|
+
- The server may be crashing immediately and only leaving clues on stderr.
|
|
54
|
+
Next steps:
|
|
55
|
+
- Run the command manually and look for usage output, auth prompts, or crash text.
|
|
56
|
+
- Check whether the package expects a different transport or an app-oriented startup flow.
|
|
57
|
+
- Use the recent stderr lines below before assuming this is a harness bug.
|
|
58
|
+
Recent stderr:
|
|
59
|
+
- npm error 404 '@anthropic/mcp-server-qdrant@*' is not in this registry.
|
|
60
|
+
- npm error 404
|
|
61
|
+
- npm error 404 Note that you can also install from a
|
|
62
|
+
- npm error 404 tarball, folder, http url, or git url.
|
|
63
|
+
- npm error A complete log of this run can be found in: /Users/williamweishuhn/.npm/_logs/2026-07-12T23_44_19_588Z-debug-0.log
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Full Capability Status Table
|
|
67
|
+
|
|
68
|
+
| Focus | Check | Status | Duration (ms) | Message |
|
|
69
|
+
| --- | --- | --- | --- | --- |
|
|
70
|
+
| inspect startup | prompts | skipped | 0.00 | Skipped because startup failed before the MCP session initialized. See the failure diagnosis. |
|
|
71
|
+
| inspect startup | resources | skipped | 0.00 | Skipped because startup failed before the MCP session initialized. See the failure diagnosis. |
|
|
72
|
+
| inspect startup | tools | skipped | 0.00 | Skipped because startup failed before the MCP session initialized. See the failure diagnosis. |
|
|
73
|
+
|
|
74
|
+
## Evidence Snippets
|
|
75
|
+
|
|
76
|
+
### prompts â skipped
|
|
77
|
+
|
|
78
|
+
Summary: Skipped because startup failed before the MCP session initialized. See the failure diagnosis.
|
|
79
|
+
|
|
80
|
+
_No evidence was captured._
|
|
81
|
+
|
|
82
|
+
### resources â skipped
|
|
83
|
+
|
|
84
|
+
Summary: Skipped because startup failed before the MCP session initialized. See the failure diagnosis.
|
|
85
|
+
|
|
86
|
+
_No evidence was captured._
|
|
87
|
+
|
|
88
|
+
### tools â skipped
|
|
89
|
+
|
|
90
|
+
Summary: Skipped because startup failed before the MCP session initialized. See the failure diagnosis.
|
|
91
|
+
|
|
92
|
+
_No evidence was captured._
|
|
93
|
+
|
|
94
|
+
## Reproduction Commands
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm run cli -- run --target <path-to-target-config.json>
|
|
98
|
+
npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Artifact Provenance
|
|
102
|
+
|
|
103
|
+
- Artifact type: `run`
|
|
104
|
+
- Schema version: `1.0.0`
|
|
105
|
+
- Run ID: `run_2026-07-12T234419496Z_63ce4c8c`
|
|
106
|
+
- Gate: `fail`
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "fail",
|
|
5
|
+
"runId": "run_2026-07-12T234435935Z_f9c6f465",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:35.935Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "reddit-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@anthropic/mcp-server-reddit"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "@anthropic/mcp-server-reddit",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Social platform access",
|
|
21
|
+
"failureClass": "Content posting/reading boundary",
|
|
22
|
+
"whyItMatters": "Reddit MCP servers can browse posts, search content, and interact with subreddits â agents could post or retrieve content from social platforms."
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"environment": {
|
|
26
|
+
"platform": "darwin 25.5.0",
|
|
27
|
+
"nodeVersion": "v22.22.1"
|
|
28
|
+
},
|
|
29
|
+
"summary": {
|
|
30
|
+
"total": 3,
|
|
31
|
+
"pass": 0,
|
|
32
|
+
"fail": 0,
|
|
33
|
+
"partial": 0,
|
|
34
|
+
"unsupported": 0,
|
|
35
|
+
"flaky": 0,
|
|
36
|
+
"skipped": 3,
|
|
37
|
+
"gate": "fail"
|
|
38
|
+
},
|
|
39
|
+
"checks": [
|
|
40
|
+
{
|
|
41
|
+
"id": "tools",
|
|
42
|
+
"capability": "tools",
|
|
43
|
+
"status": "skipped",
|
|
44
|
+
"durationMs": 0,
|
|
45
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
46
|
+
"evidence": []
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "prompts",
|
|
50
|
+
"capability": "prompts",
|
|
51
|
+
"status": "skipped",
|
|
52
|
+
"durationMs": 0,
|
|
53
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
54
|
+
"evidence": []
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "resources",
|
|
58
|
+
"capability": "resources",
|
|
59
|
+
"status": "skipped",
|
|
60
|
+
"durationMs": 0,
|
|
61
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
62
|
+
"evidence": []
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"fatalError": "Could not establish a plain stdio MCP session for target `reddit-server`.\nCommand: npx -y @anthropic/mcp-server-reddit\nDiagnosis: The process exited or detached before MCP initialization completed.\nRaw error: MCP error -32000: Connection closed\nLikely causes:\n- The package may expect extra startup arguments or environment variables.\n- The package may not behave like a plain local-process stdio target under this invocation.\n- The server may be crashing immediately and only leaving clues on stderr.\nNext steps:\n- Run the command manually and look for usage output, auth prompts, or crash text.\n- Check whether the package expects a different transport or an app-oriented startup flow.\n- Use the recent stderr lines below before assuming this is a harness bug.\nRecent stderr:\n- npm error 404 '@anthropic/mcp-server-reddit@*' is not in this registry.\n- npm error 404\n- npm error 404 Note that you can also install from a\n- npm error 404 tarball, folder, http url, or git url.\n- npm error A complete log of this run can be found in: /Users/williamweishuhn/.npm/_logs/2026-07-12T23_44_36_018Z-debug-0.log"
|
|
66
|
+
}
|