@kryptosai/mcp-observatory 0.28.0 → 1.28.2
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/COMMERCIAL.md +26 -5
- package/README.md +65 -12
- package/dist/src/action-receipt.d.ts +20 -0
- package/dist/src/action-receipt.js +85 -0
- package/dist/src/action-receipt.js.map +1 -0
- package/dist/src/audit.d.ts +64 -0
- package/dist/src/audit.js +359 -0
- package/dist/src/audit.js.map +1 -0
- package/dist/src/checks/attack-sim.d.ts +2 -0
- package/dist/src/checks/attack-sim.js +12 -0
- package/dist/src/checks/attack-sim.js.map +1 -1
- package/dist/src/cli.js +8 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/attack-sim.js +54 -2
- package/dist/src/commands/attack-sim.js.map +1 -1
- package/dist/src/commands/audit.d.ts +2 -0
- package/dist/src/commands/audit.js +132 -0
- package/dist/src/commands/audit.js.map +1 -0
- package/dist/src/commands/init-ci.d.ts +2 -0
- package/dist/src/commands/init-ci.js +71 -11
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/commands/legacy.js +2 -0
- package/dist/src/commands/legacy.js.map +1 -1
- package/dist/src/commands/receipt.d.ts +2 -0
- package/dist/src/commands/receipt.js +113 -0
- package/dist/src/commands/receipt.js.map +1 -0
- package/dist/src/commands/scan.js +23 -5
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/score.js +63 -0
- package/dist/src/commands/score.js.map +1 -1
- package/dist/src/commands/setup-ci-conversion.d.ts +2 -1
- package/dist/src/commands/setup-ci-conversion.js +22 -8
- package/dist/src/commands/setup-ci-conversion.js.map +1 -1
- package/dist/src/commands/test.js +18 -1
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/findings.d.ts +1 -0
- package/dist/src/findings.js +1 -0
- package/dist/src/findings.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/receipt.d.ts +100 -0
- package/dist/src/receipt.js +375 -0
- package/dist/src/receipt.js.map +1 -0
- package/dist/src/reporters/attack-sim.js +6 -1
- package/dist/src/reporters/attack-sim.js.map +1 -1
- package/dist/src/reporters/sarif.js +11 -1
- package/dist/src/reporters/sarif.js.map +1 -1
- package/dist/src/security-profiles.d.ts +13 -0
- package/dist/src/security-profiles.js +59 -0
- package/dist/src/security-profiles.js.map +1 -0
- package/dist/src/telemetry.d.ts +7 -0
- package/dist/src/telemetry.js.map +1 -1
- package/docs/10x-agentic-growth-sprint.md +47 -0
- package/docs/agent-ecosystem-promotion-plan.md +1 -1
- package/docs/agentic-contributor-outreach.md +52 -0
- package/docs/code-scanning-demo.md +2 -2
- package/docs/commercial-boundary.md +83 -0
- package/docs/contributor-proof-cards/README.md +1 -1
- package/docs/examples/nsa-mcp-audit-report.md +372 -0
- package/docs/examples/nsa-mcp-results.sarif +930 -0
- package/docs/examples/nsa-mcp-score.json +13 -0
- package/docs/feishu-lark-mcp.md +1 -1
- package/docs/github-code-scanning-for-mcp.md +1 -1
- package/docs/government-enterprise-pilot.md +93 -0
- package/docs/mcp-receipts.md +109 -0
- package/docs/mcp-server-safety-index.md +26 -25
- package/docs/nsa-mcp-audit-ci.md +88 -0
- package/docs/procurement-one-pager.md +74 -0
- package/docs/proof.md +2 -2
- package/docs/public-guidance-crosswalk.md +48 -0
- package/docs/safety-index/artifacts/antv-chart-server.json +41 -23
- package/docs/safety-index/artifacts/antv-chart-server.md +23 -10
- package/docs/safety-index/artifacts/browsermcp-server.json +38 -20
- package/docs/safety-index/artifacts/browsermcp-server.md +23 -10
- package/docs/safety-index/artifacts/context7-server.json +85 -28
- package/docs/safety-index/artifacts/context7-server.md +35 -22
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +460 -36
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +31 -18
- package/docs/safety-index/artifacts/everything-server.json +38 -20
- package/docs/safety-index/artifacts/everything-server.md +25 -12
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +155 -20
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +26 -13
- package/docs/safety-index/artifacts/filesystem-server.json +116 -22
- package/docs/safety-index/artifacts/filesystem-server.md +27 -14
- package/docs/safety-index/artifacts/kubernetes-server.json +252 -27
- package/docs/safety-index/artifacts/kubernetes-server.md +44 -18
- package/docs/safety-index/artifacts/memory-server.json +39 -21
- package/docs/safety-index/artifacts/memory-server.md +24 -11
- package/docs/safety-index/artifacts/opentofu-server.json +38 -20
- package/docs/safety-index/artifacts/opentofu-server.md +24 -11
- package/docs/safety-index/artifacts/playwright-mcp-server.json +140 -20
- package/docs/safety-index/artifacts/playwright-mcp-server.md +26 -13
- package/docs/safety-index/artifacts/promptopia-server.json +41 -23
- package/docs/safety-index/artifacts/promptopia-server.md +26 -13
- package/docs/safety-index/artifacts/puppeteer-server.json +77 -34
- package/docs/safety-index/artifacts/puppeteer-server.md +45 -32
- package/docs/safety-index/artifacts/ref-tools-server.json +38 -20
- package/docs/safety-index/artifacts/ref-tools-server.md +22 -9
- package/docs/safety-index/artifacts/sequential-thinking-server.json +39 -21
- package/docs/safety-index/artifacts/sequential-thinking-server.md +23 -10
- package/docs/security-due-diligence.md +87 -0
- package/docs/setup-ci-doctor.md +11 -1
- package/docs/tool-call-receipts.md +1 -2
- package/examples/insecure-mcp-server/mcp-observatory.target.json +13 -0
- package/examples/insecure-mcp-server/server.mjs +62 -0
- package/package.json +12 -1
- package/scripts/postinstall.mjs +22 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-07-
|
|
3
|
+
Generated at 2026-07-06T19:49:57.956Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -8,8 +8,8 @@ Generated at 2026-07-06T01:47:05.638Z
|
|
|
8
8
|
- Adapter: `local-process`
|
|
9
9
|
- Command: `npx -y @executeautomation/playwright-mcp-server`
|
|
10
10
|
- Server: `playwright-mcp 1.0.11`
|
|
11
|
-
- Platform: `darwin
|
|
12
|
-
- Node: `
|
|
11
|
+
- Platform: `darwin 25.5.0`
|
|
12
|
+
- Node: `v22.22.1`
|
|
13
13
|
|
|
14
14
|
## Executive Summary
|
|
15
15
|
|
|
@@ -25,18 +25,18 @@ Generated at 2026-07-06T01:47:05.638Z
|
|
|
25
25
|
|
|
26
26
|
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
27
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
-
| fail |
|
|
28
|
+
| fail | 8 | 3 | 3 | 1 | 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: schema-quality: Found 1 quality finding(s) across 34 item(s): 1 warnings, 0 info.;
|
|
33
|
+
- Top risks: schema-quality: Found 1 quality finding(s) across 34 item(s): 1 warnings, 0 info.; attack-sim: Safe attack simulation found 6 finding(s): 1 high, 5 medium, 0 low.; security: Found 1 security 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
|
-
- Failing checks: security-lite, security
|
|
35
|
+
- Failing checks: security-lite, security, attack-sim
|
|
36
36
|
- Partial or flaky checks: schema-quality
|
|
37
37
|
- Skipped checks: none
|
|
38
38
|
- Unsupported checks: prompts
|
|
39
|
-
- Suggested next step: Start with the failing checks: security-lite, security.
|
|
39
|
+
- Suggested next step: Start with the failing checks: security-lite, 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
42
|
## Regressions and Recoveries
|
|
@@ -47,12 +47,13 @@ _Use the `diff` command against another run artifact to classify regressions and
|
|
|
47
47
|
|
|
48
48
|
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
49
|
| --- | --- | --- | --- | --- |
|
|
50
|
-
| healthy | conformance | pass | 2.
|
|
51
|
-
| healthy | resources | pass | 0.
|
|
52
|
-
| healthy | tools | pass | 1.
|
|
53
|
-
| review | schema-quality | partial | 0.
|
|
50
|
+
| healthy | conformance | pass | 2.29 | All 7 conformance checks passed. |
|
|
51
|
+
| healthy | resources | pass | 0.61 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
|
|
52
|
+
| healthy | tools | pass | 1.18 | Advertised capability responded with the minimal expected shape (33 items). |
|
|
53
|
+
| review | schema-quality | partial | 0.62 | Found 1 quality finding(s) across 34 item(s): 1 warnings, 0 info. |
|
|
54
54
|
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
55
|
-
| act now |
|
|
55
|
+
| act now | attack-sim | fail | 1.44 | Safe attack simulation found 6 finding(s): 1 high, 5 medium, 0 low. |
|
|
56
|
+
| act now | security | fail | 0.29 | Found 1 security finding(s): 1 high, 0 medium, 0 low. |
|
|
56
57
|
| act now | security-lite | fail | 0.06 | Found 1 security finding(s): 1 high, 0 medium, 0 low. |
|
|
57
58
|
|
|
58
59
|
## Evidence Snippets
|
|
@@ -124,6 +125,18 @@ Summary: Prompts are not advertised by the target.
|
|
|
124
125
|
- Identifiers: none
|
|
125
126
|
- Diagnostics: none
|
|
126
127
|
|
|
128
|
+
### attack-sim — fail
|
|
129
|
+
|
|
130
|
+
Summary: Safe attack simulation found 6 finding(s): 1 high, 5 medium, 0 low.
|
|
131
|
+
|
|
132
|
+
- Endpoint: `attack-sim/safe`
|
|
133
|
+
- Advertised: `true`
|
|
134
|
+
- Responded: `true`
|
|
135
|
+
- Minimal shape present: `true`
|
|
136
|
+
- Item count: `6`
|
|
137
|
+
- Identifiers: playwright_upload_file, playwright_evaluate, playwright_post, playwright_put, playwright_patch (+1 more)
|
|
138
|
+
- Diagnostics: [medium] Tool "playwright_upload_file" combines broad parameters (filePath) with destructive or non-read-only behavior., [high] Tool "playwright_evaluate" combines broad parameters (script) with destructive or non-read-only behavior., [medium] Tool "playwright_post" combines broad parameters (url, headers) with destructive or non-read-only behavior. (+3 more)
|
|
139
|
+
|
|
127
140
|
### security — fail
|
|
128
141
|
|
|
129
142
|
Summary: Found 1 security finding(s): 1 high, 0 medium, 0 low.
|
|
@@ -159,5 +172,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
159
172
|
|
|
160
173
|
- Artifact type: `run`
|
|
161
174
|
- Schema version: `1.0.0`
|
|
162
|
-
- Run ID: `run_2026-07-
|
|
175
|
+
- Run ID: `run_2026-07-06T194957955Z_4eaf8a90`
|
|
163
176
|
- Gate: `fail`
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"artifactType": "run",
|
|
3
3
|
"schemaVersion": "1.0.0",
|
|
4
4
|
"gate": "pass",
|
|
5
|
-
"runId": "run_2026-07-
|
|
6
|
-
"createdAt": "2026-07-
|
|
7
|
-
"toolVersion": "0.
|
|
5
|
+
"runId": "run_2026-07-06T194947442Z_4e90392b",
|
|
6
|
+
"createdAt": "2026-07-06T19:49:47.442Z",
|
|
7
|
+
"toolVersion": "0.28.0",
|
|
8
8
|
"target": {
|
|
9
9
|
"targetId": "filesystem-server",
|
|
10
10
|
"adapter": "local-process",
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
"serverVersion": "0.2.0"
|
|
27
27
|
},
|
|
28
28
|
"environment": {
|
|
29
|
-
"platform": "darwin
|
|
30
|
-
"nodeVersion": "
|
|
29
|
+
"platform": "darwin 25.5.0",
|
|
30
|
+
"nodeVersion": "v22.22.1"
|
|
31
31
|
},
|
|
32
32
|
"summary": {
|
|
33
|
-
"total":
|
|
33
|
+
"total": 8,
|
|
34
34
|
"pass": 2,
|
|
35
35
|
"fail": 0,
|
|
36
|
-
"partial":
|
|
36
|
+
"partial": 4,
|
|
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":
|
|
47
|
+
"durationMs": 5.032166999999845,
|
|
48
48
|
"message": "Advertised capability responded with the minimal expected shape (14 items).",
|
|
49
49
|
"evidence": [
|
|
50
50
|
{
|
|
@@ -71,7 +71,9 @@
|
|
|
71
71
|
],
|
|
72
72
|
"diagnostics": [
|
|
73
73
|
"Secure MCP Filesystem Server running on stdio",
|
|
74
|
-
"Client does not support MCP Roots, using allowed directories set from server args: [
|
|
74
|
+
"Client does not support MCP Roots, using allowed directories set from server args: [",
|
|
75
|
+
"'/Users/williamweishuhn/Documents/New project/mcp-observatory/examples/filesystem-fixture'",
|
|
76
|
+
"]"
|
|
75
77
|
],
|
|
76
78
|
"schemas": {
|
|
77
79
|
"read_file": {
|
|
@@ -325,7 +327,7 @@
|
|
|
325
327
|
"id": "prompts",
|
|
326
328
|
"capability": "prompts",
|
|
327
329
|
"status": "unsupported",
|
|
328
|
-
"durationMs": 0.
|
|
330
|
+
"durationMs": 0.0017920000000231084,
|
|
329
331
|
"message": "Prompts are not advertised by the target.",
|
|
330
332
|
"evidence": [
|
|
331
333
|
{
|
|
@@ -341,7 +343,7 @@
|
|
|
341
343
|
"id": "resources",
|
|
342
344
|
"capability": "resources",
|
|
343
345
|
"status": "unsupported",
|
|
344
|
-
"durationMs": 0.
|
|
346
|
+
"durationMs": 0.0014160000000629225,
|
|
345
347
|
"message": "Resources are not advertised by the target.",
|
|
346
348
|
"evidence": [
|
|
347
349
|
{
|
|
@@ -357,7 +359,7 @@
|
|
|
357
359
|
"id": "security-lite",
|
|
358
360
|
"capability": "security-lite",
|
|
359
361
|
"status": "partial",
|
|
360
|
-
"durationMs": 0.
|
|
362
|
+
"durationMs": 0.13637500000004366,
|
|
361
363
|
"message": "Found 3 security finding(s): 0 high, 3 medium, 0 low.",
|
|
362
364
|
"evidence": [
|
|
363
365
|
{
|
|
@@ -403,7 +405,7 @@
|
|
|
403
405
|
"id": "conformance",
|
|
404
406
|
"capability": "conformance",
|
|
405
407
|
"status": "pass",
|
|
406
|
-
"durationMs":
|
|
408
|
+
"durationMs": 5.456833000000188,
|
|
407
409
|
"message": "All 7 conformance checks passed.",
|
|
408
410
|
"evidence": [
|
|
409
411
|
{
|
|
@@ -429,7 +431,7 @@
|
|
|
429
431
|
"id": "schema-quality",
|
|
430
432
|
"capability": "schema-quality",
|
|
431
433
|
"status": "partial",
|
|
432
|
-
"durationMs": 2.
|
|
434
|
+
"durationMs": 2.5004579999999805,
|
|
433
435
|
"message": "Found 18 quality finding(s) across 14 item(s): 0 warnings, 18 info.",
|
|
434
436
|
"evidence": [
|
|
435
437
|
{
|
|
@@ -589,7 +591,7 @@
|
|
|
589
591
|
"id": "security",
|
|
590
592
|
"capability": "security",
|
|
591
593
|
"status": "partial",
|
|
592
|
-
"durationMs": 2.
|
|
594
|
+
"durationMs": 2.2048749999999018,
|
|
593
595
|
"message": "Found 3 security finding(s): 0 high, 3 medium, 0 low.",
|
|
594
596
|
"evidence": [
|
|
595
597
|
{
|
|
@@ -630,6 +632,97 @@
|
|
|
630
632
|
]
|
|
631
633
|
}
|
|
632
634
|
]
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"id": "attack-sim",
|
|
638
|
+
"capability": "attack-sim",
|
|
639
|
+
"status": "partial",
|
|
640
|
+
"durationMs": 2.602374999999938,
|
|
641
|
+
"message": "Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low.",
|
|
642
|
+
"evidence": [
|
|
643
|
+
{
|
|
644
|
+
"endpoint": "attack-sim/safe",
|
|
645
|
+
"advertised": true,
|
|
646
|
+
"responded": true,
|
|
647
|
+
"minimalShapePresent": true,
|
|
648
|
+
"itemCount": 3,
|
|
649
|
+
"identifiers": [
|
|
650
|
+
"write_file",
|
|
651
|
+
"edit_file",
|
|
652
|
+
"create_directory"
|
|
653
|
+
],
|
|
654
|
+
"diagnostics": [
|
|
655
|
+
"[medium] Tool \"write_file\" combines broad parameters (path) with destructive or non-read-only behavior.",
|
|
656
|
+
"[medium] Tool \"edit_file\" combines broad parameters (path) with destructive or non-read-only behavior.",
|
|
657
|
+
"[medium] Tool \"create_directory\" combines broad parameters (path) with destructive or non-read-only behavior."
|
|
658
|
+
],
|
|
659
|
+
"findings": [
|
|
660
|
+
{
|
|
661
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
662
|
+
"attackClass": "permission-boundary",
|
|
663
|
+
"severity": "medium",
|
|
664
|
+
"itemType": "tool",
|
|
665
|
+
"itemName": "write_file",
|
|
666
|
+
"message": "Tool \"write_file\" combines broad parameters (path) with destructive or non-read-only behavior.",
|
|
667
|
+
"evidence": {
|
|
668
|
+
"broadParams": [
|
|
669
|
+
"path"
|
|
670
|
+
],
|
|
671
|
+
"annotations": {
|
|
672
|
+
"readOnlyHint": false,
|
|
673
|
+
"destructiveHint": true,
|
|
674
|
+
"idempotentHint": true
|
|
675
|
+
},
|
|
676
|
+
"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
|
+
},
|
|
678
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
679
|
+
"recommendedAction": "gate"
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
683
|
+
"attackClass": "permission-boundary",
|
|
684
|
+
"severity": "medium",
|
|
685
|
+
"itemType": "tool",
|
|
686
|
+
"itemName": "edit_file",
|
|
687
|
+
"message": "Tool \"edit_file\" combines broad parameters (path) with destructive or non-read-only behavior.",
|
|
688
|
+
"evidence": {
|
|
689
|
+
"broadParams": [
|
|
690
|
+
"path"
|
|
691
|
+
],
|
|
692
|
+
"annotations": {
|
|
693
|
+
"readOnlyHint": false,
|
|
694
|
+
"destructiveHint": true,
|
|
695
|
+
"idempotentHint": false
|
|
696
|
+
},
|
|
697
|
+
"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
|
+
},
|
|
699
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
700
|
+
"recommendedAction": "gate"
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
704
|
+
"attackClass": "permission-boundary",
|
|
705
|
+
"severity": "medium",
|
|
706
|
+
"itemType": "tool",
|
|
707
|
+
"itemName": "create_directory",
|
|
708
|
+
"message": "Tool \"create_directory\" combines broad parameters (path) with destructive or non-read-only behavior.",
|
|
709
|
+
"evidence": {
|
|
710
|
+
"broadParams": [
|
|
711
|
+
"path"
|
|
712
|
+
],
|
|
713
|
+
"annotations": {
|
|
714
|
+
"readOnlyHint": false,
|
|
715
|
+
"destructiveHint": false,
|
|
716
|
+
"idempotentHint": true
|
|
717
|
+
},
|
|
718
|
+
"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
|
+
},
|
|
720
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
721
|
+
"recommendedAction": "gate"
|
|
722
|
+
}
|
|
723
|
+
]
|
|
724
|
+
}
|
|
725
|
+
]
|
|
633
726
|
}
|
|
634
727
|
],
|
|
635
728
|
"healthScore": {
|
|
@@ -658,7 +751,8 @@
|
|
|
658
751
|
"score": 60,
|
|
659
752
|
"details": [
|
|
660
753
|
"security-lite: partial (60/100)",
|
|
661
|
-
"security: partial (60/100)"
|
|
754
|
+
"security: partial (60/100)",
|
|
755
|
+
"attack-sim: partial (60/100)"
|
|
662
756
|
]
|
|
663
757
|
},
|
|
664
758
|
{
|
|
@@ -676,16 +770,16 @@
|
|
|
676
770
|
"weight": 0.1,
|
|
677
771
|
"score": 100,
|
|
678
772
|
"details": [
|
|
679
|
-
"Connect:
|
|
680
|
-
"p95 latency:
|
|
773
|
+
"Connect: 662ms",
|
|
774
|
+
"p95 latency: 5ms (3 operations)"
|
|
681
775
|
]
|
|
682
776
|
}
|
|
683
777
|
]
|
|
684
778
|
},
|
|
685
779
|
"performanceMetrics": {
|
|
686
|
-
"connectMs":
|
|
687
|
-
"toolsListMs":
|
|
688
|
-
"promptsListMs": 0.
|
|
689
|
-
"resourcesListMs": 0.
|
|
780
|
+
"connectMs": 661.862083,
|
|
781
|
+
"toolsListMs": 5.032166999999845,
|
|
782
|
+
"promptsListMs": 0.0017920000000231084,
|
|
783
|
+
"resourcesListMs": 0.0014160000000629225
|
|
690
784
|
}
|
|
691
785
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-07-
|
|
3
|
+
Generated at 2026-07-06T19:49:47.442Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -8,8 +8,8 @@ Generated at 2026-07-06T01:46:53.596Z
|
|
|
8
8
|
- Adapter: `local-process`
|
|
9
9
|
- Command: `npx -y @modelcontextprotocol/server-filesystem examples/filesystem-fixture`
|
|
10
10
|
- Server: `secure-filesystem-server 0.2.0`
|
|
11
|
-
- Platform: `darwin
|
|
12
|
-
- Node: `
|
|
11
|
+
- Platform: `darwin 25.5.0`
|
|
12
|
+
- Node: `v22.22.1`
|
|
13
13
|
|
|
14
14
|
## Executive Summary
|
|
15
15
|
|
|
@@ -25,18 +25,18 @@ Generated at 2026-07-06T01:46:53.596Z
|
|
|
25
25
|
|
|
26
26
|
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
27
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
-
| pass |
|
|
28
|
+
| pass | 8 | 2 | 0 | 4 | 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:
|
|
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.
|
|
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
|
|
36
|
+
- Partial or flaky checks: security-lite, 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.
|
|
39
|
+
- Suggested next step: Review the caveated checks next: security-lite, 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
42
|
## Regressions and Recoveries
|
|
@@ -47,11 +47,12 @@ _Use the `diff` command against another run artifact to classify regressions and
|
|
|
47
47
|
|
|
48
48
|
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
49
|
| --- | --- | --- | --- | --- |
|
|
50
|
-
| healthy | conformance | pass |
|
|
51
|
-
| healthy | tools | pass |
|
|
52
|
-
| review |
|
|
53
|
-
| review |
|
|
54
|
-
| review | security
|
|
50
|
+
| healthy | conformance | pass | 5.46 | All 7 conformance checks passed. |
|
|
51
|
+
| healthy | tools | pass | 5.03 | Advertised capability responded with the minimal expected shape (14 items). |
|
|
52
|
+
| review | attack-sim | partial | 2.60 | Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low. |
|
|
53
|
+
| review | schema-quality | partial | 2.50 | Found 18 quality finding(s) across 14 item(s): 0 warnings, 18 info. |
|
|
54
|
+
| review | security | partial | 2.20 | Found 3 security finding(s): 0 high, 3 medium, 0 low. |
|
|
55
|
+
| review | security-lite | partial | 0.14 | Found 3 security finding(s): 0 high, 3 medium, 0 low. |
|
|
55
56
|
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
56
57
|
| confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
|
|
57
58
|
|
|
@@ -79,7 +80,19 @@ Summary: Advertised capability responded with the minimal expected shape (14 ite
|
|
|
79
80
|
- Minimal shape present: `true`
|
|
80
81
|
- Item count: `14`
|
|
81
82
|
- Identifiers: read_file, read_text_file, read_media_file, read_multiple_files, write_file (+9 more)
|
|
82
|
-
- Diagnostics: Secure MCP Filesystem Server running on stdio, Client does not support MCP Roots, using allowed directories set from server args: [ '/Users/
|
|
83
|
+
- Diagnostics: Secure MCP Filesystem Server running on stdio, Client does not support MCP Roots, using allowed directories set from server args: [, '/Users/williamweishuhn/Documents/New project/mcp-observatory/examples/filesystem-fixture' (+1 more)
|
|
84
|
+
|
|
85
|
+
### attack-sim — partial
|
|
86
|
+
|
|
87
|
+
Summary: Safe attack simulation found 3 finding(s): 0 high, 3 medium, 0 low.
|
|
88
|
+
|
|
89
|
+
- Endpoint: `attack-sim/safe`
|
|
90
|
+
- Advertised: `true`
|
|
91
|
+
- Responded: `true`
|
|
92
|
+
- Minimal shape present: `true`
|
|
93
|
+
- Item count: `3`
|
|
94
|
+
- Identifiers: write_file, edit_file, create_directory
|
|
95
|
+
- 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.
|
|
83
96
|
|
|
84
97
|
### schema-quality — partial
|
|
85
98
|
|
|
@@ -152,5 +165,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
152
165
|
|
|
153
166
|
- Artifact type: `run`
|
|
154
167
|
- Schema version: `1.0.0`
|
|
155
|
-
- Run ID: `run_2026-07-
|
|
168
|
+
- Run ID: `run_2026-07-06T194947442Z_4e90392b`
|
|
156
169
|
- Gate: `pass`
|