@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-07-
|
|
3
|
+
Generated at 2026-07-12T23:44:02.967Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -25,20 +25,168 @@ Generated at 2026-07-06T19:49:52.194Z
|
|
|
25
25
|
|
|
26
26
|
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
27
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
-
| pass |
|
|
28
|
+
| pass | 9 | 4 | 0 | 5 | 0 | 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 19 finding(s): 0 high, 19 medium, 0 low.;
|
|
33
|
+
- Top risks: attack-sim: Safe attack simulation found 19 finding(s): 0 high, 19 medium, 0 low.; runtime-profile: Detected 7 potential egress target(s) and 118 potential state mutation(s) with high confidence.; schema-quality: Found 17 quality finding(s) across 30 item(s): 0 warnings, 17 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: none
|
|
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
|
+
- ℹ️ credential_access: Credential scanning was performed (see security findings)
|
|
45
|
+
- ℹ️ destructive_payloads: Destructive payloads were not attempted (safe-mode only)
|
|
46
|
+
|
|
47
|
+
## Runtime Profile
|
|
48
|
+
|
|
49
|
+
### Egress Manifest
|
|
50
|
+
|
|
51
|
+
The following targets were identified as potentially reachable by this server (confidence: **high**):
|
|
52
|
+
|
|
53
|
+
| Target | Protocol | Source | Confidence |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| url | unknown | tool_schema | high |
|
|
56
|
+
| Source to clone from: HTTP(S) URL, SSH URL (ssh://… or git@host:path), git:// URL, file:// URL, or a bare filesystem path (e.g. /tmp/repo.git). | unknown | description_analysis | medium |
|
|
57
|
+
| git_clone | unknown | description_analysis | low |
|
|
58
|
+
| url | unknown | tool_schema | high |
|
|
59
|
+
| Remote name for add/remove/rename/get-url/set-url operations. | unknown | description_analysis | medium |
|
|
60
|
+
| Remote URL for add/set-url operations. Accepts HTTP(S), SSH (ssh://… or git@host:path), git://, or file:// URLs. | unknown | description_analysis | medium |
|
|
61
|
+
| Set push URL separately (for set-url operation). | unknown | description_analysis | medium |
|
|
62
|
+
|
|
63
|
+
### State Mutations
|
|
64
|
+
|
|
65
|
+
The following state-modifying operations were identified from tool schemas:
|
|
66
|
+
|
|
67
|
+
| Resource | Operation | Scope | Source |
|
|
68
|
+
| --- | --- | --- | --- |
|
|
69
|
+
| filesystem | write | specific_path | tool_schema |
|
|
70
|
+
| filesystem | write | working_directory | description_analysis |
|
|
71
|
+
| filesystem | write | working_directory | description_analysis |
|
|
72
|
+
| filesystem | write | working_directory | description_analysis |
|
|
73
|
+
| filesystem | write | specific_path | tool_schema |
|
|
74
|
+
| filesystem | write | working_directory | tool_schema |
|
|
75
|
+
| filesystem | write | working_directory | description_analysis |
|
|
76
|
+
| filesystem | write | working_directory | description_analysis |
|
|
77
|
+
| filesystem | write | working_directory | description_analysis |
|
|
78
|
+
| filesystem | write | specific_path | tool_schema |
|
|
79
|
+
| filesystem | write | working_directory | description_analysis |
|
|
80
|
+
| filesystem | write | working_directory | description_analysis |
|
|
81
|
+
| filesystem | write | working_directory | description_analysis |
|
|
82
|
+
| filesystem | write | working_directory | description_analysis |
|
|
83
|
+
| filesystem | write | specific_path | tool_schema |
|
|
84
|
+
| filesystem | write | working_directory | description_analysis |
|
|
85
|
+
| filesystem | write | working_directory | description_analysis |
|
|
86
|
+
| filesystem | write | working_directory | description_analysis |
|
|
87
|
+
| filesystem | write | specific_path | tool_schema |
|
|
88
|
+
| filesystem | write | working_directory | description_analysis |
|
|
89
|
+
| filesystem | write | working_directory | description_analysis |
|
|
90
|
+
| filesystem | write | working_directory | description_analysis |
|
|
91
|
+
| filesystem | write | working_directory | description_analysis |
|
|
92
|
+
| filesystem | write | working_directory | description_analysis |
|
|
93
|
+
| filesystem | write | specific_path | tool_schema |
|
|
94
|
+
| filesystem | write | working_directory | description_analysis |
|
|
95
|
+
| filesystem | write | working_directory | description_analysis |
|
|
96
|
+
| filesystem | write | specific_path | tool_schema |
|
|
97
|
+
| filesystem | write | working_directory | description_analysis |
|
|
98
|
+
| filesystem | write | working_directory | description_analysis |
|
|
99
|
+
| filesystem | write | working_directory | description_analysis |
|
|
100
|
+
| filesystem | write | working_directory | description_analysis |
|
|
101
|
+
| filesystem | write | working_directory | description_analysis |
|
|
102
|
+
| filesystem | write | working_directory | description_analysis |
|
|
103
|
+
| filesystem | write | working_directory | tool_schema |
|
|
104
|
+
| filesystem | write | working_directory | description_analysis |
|
|
105
|
+
| filesystem | write | working_directory | description_analysis |
|
|
106
|
+
| filesystem | write | working_directory | description_analysis |
|
|
107
|
+
| filesystem | write | working_directory | description_analysis |
|
|
108
|
+
| filesystem | write | working_directory | description_analysis |
|
|
109
|
+
| filesystem | write | working_directory | description_analysis |
|
|
110
|
+
| filesystem | write | specific_path | tool_schema |
|
|
111
|
+
| filesystem | write | working_directory | description_analysis |
|
|
112
|
+
| filesystem | write | working_directory | description_analysis |
|
|
113
|
+
| filesystem | write | working_directory | description_analysis |
|
|
114
|
+
| filesystem | write | specific_path | tool_schema |
|
|
115
|
+
| filesystem | write | working_directory | description_analysis |
|
|
116
|
+
| filesystem | write | working_directory | description_analysis |
|
|
117
|
+
| filesystem | write | working_directory | description_analysis |
|
|
118
|
+
| filesystem | write | specific_path | tool_schema |
|
|
119
|
+
| filesystem | write | working_directory | description_analysis |
|
|
120
|
+
| filesystem | write | working_directory | description_analysis |
|
|
121
|
+
| filesystem | write | specific_path | tool_schema |
|
|
122
|
+
| filesystem | write | working_directory | description_analysis |
|
|
123
|
+
| filesystem | write | working_directory | description_analysis |
|
|
124
|
+
| filesystem | write | working_directory | description_analysis |
|
|
125
|
+
| filesystem | write | specific_path | tool_schema |
|
|
126
|
+
| filesystem | write | working_directory | tool_schema |
|
|
127
|
+
| filesystem | write | working_directory | description_analysis |
|
|
128
|
+
| filesystem | write | working_directory | description_analysis |
|
|
129
|
+
| filesystem | write | working_directory | description_analysis |
|
|
130
|
+
| filesystem | write | working_directory | description_analysis |
|
|
131
|
+
| filesystem | write | specific_path | tool_schema |
|
|
132
|
+
| filesystem | write | working_directory | description_analysis |
|
|
133
|
+
| filesystem | write | working_directory | description_analysis |
|
|
134
|
+
| filesystem | write | specific_path | tool_schema |
|
|
135
|
+
| filesystem | write | working_directory | description_analysis |
|
|
136
|
+
| filesystem | write | specific_path | tool_schema |
|
|
137
|
+
| filesystem | write | working_directory | description_analysis |
|
|
138
|
+
| filesystem | write | working_directory | description_analysis |
|
|
139
|
+
| filesystem | write | working_directory | description_analysis |
|
|
140
|
+
| filesystem | write | specific_path | tool_schema |
|
|
141
|
+
| filesystem | write | working_directory | description_analysis |
|
|
142
|
+
| filesystem | write | specific_path | tool_schema |
|
|
143
|
+
| filesystem | write | working_directory | description_analysis |
|
|
144
|
+
| filesystem | write | specific_path | tool_schema |
|
|
145
|
+
| filesystem | write | working_directory | description_analysis |
|
|
146
|
+
| filesystem | write | working_directory | description_analysis |
|
|
147
|
+
| filesystem | write | working_directory | description_analysis |
|
|
148
|
+
| filesystem | write | working_directory | description_analysis |
|
|
149
|
+
| filesystem | write | working_directory | description_analysis |
|
|
150
|
+
| filesystem | write | specific_path | tool_schema |
|
|
151
|
+
| filesystem | write | working_directory | description_analysis |
|
|
152
|
+
| filesystem | write | working_directory | description_analysis |
|
|
153
|
+
| filesystem | write | working_directory | description_analysis |
|
|
154
|
+
| filesystem | write | working_directory | tool_schema |
|
|
155
|
+
| filesystem | write | working_directory | description_analysis |
|
|
156
|
+
| filesystem | write | working_directory | description_analysis |
|
|
157
|
+
| filesystem | write | working_directory | description_analysis |
|
|
158
|
+
| filesystem | write | working_directory | description_analysis |
|
|
159
|
+
| filesystem | write | specific_path | tool_schema |
|
|
160
|
+
| filesystem | write | working_directory | tool_schema |
|
|
161
|
+
| filesystem | write | working_directory | description_analysis |
|
|
162
|
+
| filesystem | write | working_directory | description_analysis |
|
|
163
|
+
| filesystem | write | specific_path | tool_schema |
|
|
164
|
+
| filesystem | write | working_directory | description_analysis |
|
|
165
|
+
| filesystem | write | working_directory | description_analysis |
|
|
166
|
+
| filesystem | write | working_directory | description_analysis |
|
|
167
|
+
| filesystem | write | working_directory | description_analysis |
|
|
168
|
+
| filesystem | write | specific_path | tool_schema |
|
|
169
|
+
| filesystem | write | working_directory | description_analysis |
|
|
170
|
+
| filesystem | write | specific_path | tool_schema |
|
|
171
|
+
| filesystem | write | working_directory | description_analysis |
|
|
172
|
+
| filesystem | write | working_directory | description_analysis |
|
|
173
|
+
| filesystem | write | working_directory | description_analysis |
|
|
174
|
+
| filesystem | write | working_directory | description_analysis |
|
|
175
|
+
| filesystem | write | working_directory | description_analysis |
|
|
176
|
+
| filesystem | write | working_directory | description_analysis |
|
|
177
|
+
| filesystem | write | working_directory | description_analysis |
|
|
178
|
+
| filesystem | write | specific_path | tool_schema |
|
|
179
|
+
| filesystem | write | working_directory | description_analysis |
|
|
180
|
+
| filesystem | write | working_directory | description_analysis |
|
|
181
|
+
| filesystem | write | working_directory | description_analysis |
|
|
182
|
+
| filesystem | write | working_directory | description_analysis |
|
|
183
|
+
| filesystem | write | working_directory | description_analysis |
|
|
184
|
+
| filesystem | write | working_directory | description_analysis |
|
|
185
|
+
| filesystem | write | working_directory | description_analysis |
|
|
186
|
+
| filesystem | write | working_directory | description_analysis |
|
|
187
|
+
|
|
188
|
+
_Analyzed at 2026-07-12T23:44:04.014Z_
|
|
189
|
+
|
|
42
190
|
## Regressions and Recoveries
|
|
43
191
|
|
|
44
192
|
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
@@ -47,14 +195,15 @@ _Use the `diff` command against another run artifact to classify regressions and
|
|
|
47
195
|
|
|
48
196
|
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
197
|
| --- | --- | --- | --- | --- |
|
|
50
|
-
| healthy | conformance | pass |
|
|
51
|
-
| healthy | prompts | pass | 0.
|
|
52
|
-
| healthy | resources | pass | 0.
|
|
53
|
-
| healthy | tools | pass |
|
|
54
|
-
| review | attack-sim | partial |
|
|
55
|
-
| review |
|
|
56
|
-
| review |
|
|
57
|
-
| review | security
|
|
198
|
+
| healthy | conformance | pass | 38.89 | All 7 conformance checks passed. |
|
|
199
|
+
| healthy | prompts | pass | 0.68 | Advertised capability responded with the minimal expected shape (1 item). |
|
|
200
|
+
| healthy | resources | pass | 0.64 | Advertised capability responded with the minimal expected shape (2 items). |
|
|
201
|
+
| healthy | tools | pass | 37.46 | Advertised capability responded with the minimal expected shape (28 items). |
|
|
202
|
+
| review | attack-sim | partial | 19.04 | Safe attack simulation found 19 finding(s): 0 high, 19 medium, 0 low. |
|
|
203
|
+
| review | runtime-profile | partial | 0.52 | Detected 7 potential egress target(s) and 118 potential state mutation(s) with high confidence. |
|
|
204
|
+
| review | schema-quality | partial | 23.32 | Found 17 quality finding(s) across 30 item(s): 0 warnings, 17 info. |
|
|
205
|
+
| review | security | partial | 17.88 | Found 19 security finding(s): 0 high, 19 medium, 0 low. |
|
|
206
|
+
| review | security-lite | partial | 0.18 | Found 19 security finding(s): 0 high, 19 medium, 0 low. |
|
|
58
207
|
|
|
59
208
|
## Evidence Snippets
|
|
60
209
|
|
|
@@ -80,7 +229,7 @@ Summary: Advertised capability responded with the minimal expected shape (1 item
|
|
|
80
229
|
- Minimal shape present: `true`
|
|
81
230
|
- Item count: `1`
|
|
82
231
|
- Identifiers: git_wrapup
|
|
83
|
-
- Diagnostics: {"level":30,"time":
|
|
232
|
+
- Diagnostics: {"level":30,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Attempting to connect stdio transport..."}, {"level":20,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Creating StdioServerTransport instance..."}, {"level":20,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Connecting McpServer instance to StdioServerTransport..."} (+2 more)
|
|
84
233
|
|
|
85
234
|
### resources — pass
|
|
86
235
|
|
|
@@ -92,14 +241,14 @@ Summary: Advertised capability responded with the minimal expected shape (2 item
|
|
|
92
241
|
- Minimal shape present: `true`
|
|
93
242
|
- Item count: `1`
|
|
94
243
|
- Identifiers: git://working-directory
|
|
95
|
-
- Diagnostics: {"level":30,"time":
|
|
244
|
+
- Diagnostics: {"level":30,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Attempting to connect stdio transport..."}, {"level":20,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Creating StdioServerTransport instance..."}, {"level":20,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Connecting McpServer instance to StdioServerTransport..."} (+2 more)
|
|
96
245
|
- Endpoint: `resources/templates/list`
|
|
97
246
|
- Advertised: `true`
|
|
98
247
|
- Responded: `true`
|
|
99
248
|
- Minimal shape present: `true`
|
|
100
249
|
- Item count: `1`
|
|
101
250
|
- Identifiers: git://working-directory
|
|
102
|
-
- Diagnostics: {"level":30,"time":
|
|
251
|
+
- Diagnostics: {"level":30,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Attempting to connect stdio transport..."}, {"level":20,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Creating StdioServerTransport instance..."}, {"level":20,"time":1783899843951,"env":"development","version":"2.15.1","pid":24859,"transport":"stdio","requestId":"Z3S39-K4LVB","timestamp":"2026-07-12T23:44:03.946Z","operation":"connectStdioTransport","transportType":"Stdio","msg":"Connecting McpServer instance to StdioServerTransport..."} (+2 more)
|
|
103
252
|
|
|
104
253
|
### tools — pass
|
|
105
254
|
|
|
@@ -125,6 +274,18 @@ Summary: Safe attack simulation found 19 finding(s): 0 high, 19 medium, 0 low.
|
|
|
125
274
|
- Identifiers: git_add, git_branch, git_checkout, git_cherry_pick, git_clean (+14 more)
|
|
126
275
|
- Diagnostics: [medium] Tool "git_add" combines broad parameters (path) with destructive or non-read-only behavior., [medium] Tool "git_branch" combines broad parameters (path) with destructive or non-read-only behavior., [medium] Tool "git_checkout" combines broad parameters (path) with destructive or non-read-only behavior. (+16 more)
|
|
127
276
|
|
|
277
|
+
### runtime-profile — partial
|
|
278
|
+
|
|
279
|
+
Summary: Detected 7 potential egress target(s) and 118 potential state mutation(s) with high confidence.
|
|
280
|
+
|
|
281
|
+
- Endpoint: `runtime-profile/analyze`
|
|
282
|
+
- Advertised: `true`
|
|
283
|
+
- Responded: `true`
|
|
284
|
+
- Minimal shape present: `true`
|
|
285
|
+
- Item count: `125`
|
|
286
|
+
- Identifiers: none
|
|
287
|
+
- Diagnostics: Egress entries: 7, State mutations: 118, Confidence: high
|
|
288
|
+
|
|
128
289
|
### schema-quality — partial
|
|
129
290
|
|
|
130
291
|
Summary: Found 17 quality finding(s) across 30 item(s): 0 warnings, 17 info.
|
|
@@ -172,5 +333,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
172
333
|
|
|
173
334
|
- Artifact type: `run`
|
|
174
335
|
- Schema version: `1.0.0`
|
|
175
|
-
- Run ID: `run_2026-07-
|
|
336
|
+
- Run ID: `run_2026-07-12T234402967Z_93acfad1`
|
|
176
337
|
- Gate: `pass`
|
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "fail",
|
|
5
|
+
"runId": "run_2026-07-12T234429245Z_f8164ad4",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:29.245Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "docker-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"mcp-server-docker"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "mcp-server-docker",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Container orchestration",
|
|
21
|
+
"failureClass": "Container/image boundary",
|
|
22
|
+
"whyItMatters": "Docker MCP servers expose container run, exec, and image management tools — container-level command execution is a high-trust boundary."
|
|
23
|
+
},
|
|
24
|
+
"serverName": "mcp-server-docker",
|
|
25
|
+
"serverVersion": "1.0.0"
|
|
26
|
+
},
|
|
27
|
+
"environment": {
|
|
28
|
+
"platform": "darwin 25.5.0",
|
|
29
|
+
"nodeVersion": "v22.22.1"
|
|
30
|
+
},
|
|
31
|
+
"summary": {
|
|
32
|
+
"total": 9,
|
|
33
|
+
"pass": 3,
|
|
34
|
+
"fail": 3,
|
|
35
|
+
"partial": 1,
|
|
36
|
+
"unsupported": 2,
|
|
37
|
+
"flaky": 0,
|
|
38
|
+
"skipped": 0,
|
|
39
|
+
"gate": "fail"
|
|
40
|
+
},
|
|
41
|
+
"checks": [
|
|
42
|
+
{
|
|
43
|
+
"id": "tools",
|
|
44
|
+
"capability": "tools",
|
|
45
|
+
"status": "pass",
|
|
46
|
+
"durationMs": 0.4344160000036936,
|
|
47
|
+
"message": "Advertised capability responded with the minimal expected shape (1 item).",
|
|
48
|
+
"evidence": [
|
|
49
|
+
{
|
|
50
|
+
"endpoint": "tools/list",
|
|
51
|
+
"advertised": true,
|
|
52
|
+
"responded": true,
|
|
53
|
+
"minimalShapePresent": true,
|
|
54
|
+
"itemCount": 1,
|
|
55
|
+
"identifiers": [
|
|
56
|
+
"run_command"
|
|
57
|
+
],
|
|
58
|
+
"diagnostics": [
|
|
59
|
+
"Warning: No allowed containers specified in ALLOWED_CONTAINERS environment variable",
|
|
60
|
+
"MCP Server Docker started",
|
|
61
|
+
"Default service: laravel_app",
|
|
62
|
+
"Allowed containers: laravel_app"
|
|
63
|
+
],
|
|
64
|
+
"schemas": {
|
|
65
|
+
"run_command": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"properties": {
|
|
68
|
+
"command": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"description": "The command to execute in the container"
|
|
71
|
+
},
|
|
72
|
+
"service": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "Docker Compose service name (optional, uses default: laravel_app if not specified)"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"required": [
|
|
78
|
+
"command"
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "prompts",
|
|
87
|
+
"capability": "prompts",
|
|
88
|
+
"status": "unsupported",
|
|
89
|
+
"durationMs": 0.0008750000051804818,
|
|
90
|
+
"message": "Prompts are not advertised by the target.",
|
|
91
|
+
"evidence": [
|
|
92
|
+
{
|
|
93
|
+
"endpoint": "prompts/list",
|
|
94
|
+
"advertised": false,
|
|
95
|
+
"responded": false,
|
|
96
|
+
"minimalShapePresent": false,
|
|
97
|
+
"diagnostics": []
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "resources",
|
|
103
|
+
"capability": "resources",
|
|
104
|
+
"status": "unsupported",
|
|
105
|
+
"durationMs": 0.0005840000012540258,
|
|
106
|
+
"message": "Resources are not advertised by the target.",
|
|
107
|
+
"evidence": [
|
|
108
|
+
{
|
|
109
|
+
"endpoint": "resources/list | resources/templates/list",
|
|
110
|
+
"advertised": false,
|
|
111
|
+
"responded": false,
|
|
112
|
+
"minimalShapePresent": false,
|
|
113
|
+
"diagnostics": []
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "security-lite",
|
|
119
|
+
"capability": "security-lite",
|
|
120
|
+
"status": "fail",
|
|
121
|
+
"durationMs": 0.01445899999816902,
|
|
122
|
+
"message": "Found 1 security finding(s): 1 high, 0 medium, 0 low.",
|
|
123
|
+
"evidence": [
|
|
124
|
+
{
|
|
125
|
+
"endpoint": "security/scan-lite",
|
|
126
|
+
"advertised": true,
|
|
127
|
+
"responded": true,
|
|
128
|
+
"minimalShapePresent": true,
|
|
129
|
+
"itemCount": 1,
|
|
130
|
+
"identifiers": [
|
|
131
|
+
"run_command"
|
|
132
|
+
],
|
|
133
|
+
"diagnostics": [
|
|
134
|
+
"[high] Tool \"run_command\" has parameter \"command\" which may allow arbitrary command execution."
|
|
135
|
+
],
|
|
136
|
+
"findings": [
|
|
137
|
+
{
|
|
138
|
+
"ruleId": "shell-injection",
|
|
139
|
+
"severity": "high",
|
|
140
|
+
"toolName": "run_command",
|
|
141
|
+
"message": "Tool \"run_command\" has parameter \"command\" which may allow arbitrary command execution."
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "runtime-profile",
|
|
149
|
+
"capability": "runtime-profile",
|
|
150
|
+
"status": "partial",
|
|
151
|
+
"durationMs": 0.0400420000005397,
|
|
152
|
+
"message": "Detected 0 potential egress target(s) and 4 potential state mutation(s) with high confidence.",
|
|
153
|
+
"evidence": [
|
|
154
|
+
{
|
|
155
|
+
"endpoint": "runtime-profile/analyze",
|
|
156
|
+
"advertised": true,
|
|
157
|
+
"responded": true,
|
|
158
|
+
"minimalShapePresent": true,
|
|
159
|
+
"itemCount": 4,
|
|
160
|
+
"diagnostics": [
|
|
161
|
+
"Egress entries: 0",
|
|
162
|
+
"State mutations: 4",
|
|
163
|
+
"Confidence: high"
|
|
164
|
+
],
|
|
165
|
+
"findings": [
|
|
166
|
+
{
|
|
167
|
+
"resource": "network",
|
|
168
|
+
"operation": "execute",
|
|
169
|
+
"scope": "specific_path",
|
|
170
|
+
"source": "tool_schema"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"resource": "filesystem",
|
|
174
|
+
"operation": "write",
|
|
175
|
+
"scope": "working_directory",
|
|
176
|
+
"source": "description_analysis"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"resource": "filesystem",
|
|
180
|
+
"operation": "write",
|
|
181
|
+
"scope": "working_directory",
|
|
182
|
+
"source": "description_analysis"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"resource": "filesystem",
|
|
186
|
+
"operation": "execute",
|
|
187
|
+
"scope": "working_directory",
|
|
188
|
+
"source": "description_analysis"
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"id": "conformance",
|
|
196
|
+
"capability": "conformance",
|
|
197
|
+
"status": "pass",
|
|
198
|
+
"durationMs": 0.5411660000027041,
|
|
199
|
+
"message": "All 7 conformance checks passed.",
|
|
200
|
+
"evidence": [
|
|
201
|
+
{
|
|
202
|
+
"endpoint": "conformance/check",
|
|
203
|
+
"advertised": true,
|
|
204
|
+
"responded": true,
|
|
205
|
+
"minimalShapePresent": true,
|
|
206
|
+
"itemCount": 7,
|
|
207
|
+
"identifiers": [],
|
|
208
|
+
"diagnostics": [
|
|
209
|
+
"[pass] capabilities-present: Server returned capabilities object.",
|
|
210
|
+
"[pass] server-info: Server provided initialization info.",
|
|
211
|
+
"[pass] tools-capability-match: tools/list returned 1 tool(s).",
|
|
212
|
+
"[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
|
|
213
|
+
"[pass] resources-capability-match: Resources not advertised — endpoint check skipped.",
|
|
214
|
+
"[pass] tool-response-content: No safe tool to invoke — content validation skipped.",
|
|
215
|
+
"[pass] error-handling: Server returned proper error code -32601 for unknown method."
|
|
216
|
+
]
|
|
217
|
+
}
|
|
218
|
+
]
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "schema-quality",
|
|
222
|
+
"capability": "schema-quality",
|
|
223
|
+
"status": "pass",
|
|
224
|
+
"durationMs": 0.23166700000001583,
|
|
225
|
+
"message": "All 1 item(s) have good schema quality.",
|
|
226
|
+
"evidence": [
|
|
227
|
+
{
|
|
228
|
+
"endpoint": "schema-quality/scan",
|
|
229
|
+
"advertised": true,
|
|
230
|
+
"responded": true,
|
|
231
|
+
"minimalShapePresent": true,
|
|
232
|
+
"itemCount": 0,
|
|
233
|
+
"identifiers": []
|
|
234
|
+
}
|
|
235
|
+
]
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"id": "security",
|
|
239
|
+
"capability": "security",
|
|
240
|
+
"status": "fail",
|
|
241
|
+
"durationMs": 0.1275000000023283,
|
|
242
|
+
"message": "Found 1 security finding(s): 1 high, 0 medium, 0 low.",
|
|
243
|
+
"evidence": [
|
|
244
|
+
{
|
|
245
|
+
"endpoint": "security/scan",
|
|
246
|
+
"advertised": true,
|
|
247
|
+
"responded": true,
|
|
248
|
+
"minimalShapePresent": true,
|
|
249
|
+
"itemCount": 1,
|
|
250
|
+
"identifiers": [
|
|
251
|
+
"run_command"
|
|
252
|
+
],
|
|
253
|
+
"diagnostics": [
|
|
254
|
+
"[high] Tool \"run_command\" has parameter \"command\" which may allow arbitrary command execution."
|
|
255
|
+
],
|
|
256
|
+
"findings": [
|
|
257
|
+
{
|
|
258
|
+
"ruleId": "shell-injection",
|
|
259
|
+
"severity": "high",
|
|
260
|
+
"toolName": "run_command",
|
|
261
|
+
"message": "Tool \"run_command\" has parameter \"command\" which may allow arbitrary command execution."
|
|
262
|
+
}
|
|
263
|
+
]
|
|
264
|
+
}
|
|
265
|
+
]
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"id": "attack-sim",
|
|
269
|
+
"capability": "attack-sim",
|
|
270
|
+
"status": "fail",
|
|
271
|
+
"durationMs": 0.21908399999665562,
|
|
272
|
+
"message": "Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.",
|
|
273
|
+
"evidence": [
|
|
274
|
+
{
|
|
275
|
+
"endpoint": "attack-sim/safe",
|
|
276
|
+
"advertised": true,
|
|
277
|
+
"responded": true,
|
|
278
|
+
"minimalShapePresent": true,
|
|
279
|
+
"itemCount": 1,
|
|
280
|
+
"identifiers": [
|
|
281
|
+
"run_command"
|
|
282
|
+
],
|
|
283
|
+
"diagnostics": [
|
|
284
|
+
"[high] Tool \"run_command\" combines broad parameters (command) with destructive or non-read-only behavior."
|
|
285
|
+
],
|
|
286
|
+
"findings": [
|
|
287
|
+
{
|
|
288
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
289
|
+
"attackClass": "permission-boundary",
|
|
290
|
+
"severity": "high",
|
|
291
|
+
"itemType": "tool",
|
|
292
|
+
"itemName": "run_command",
|
|
293
|
+
"message": "Tool \"run_command\" combines broad parameters (command) with destructive or non-read-only behavior.",
|
|
294
|
+
"evidence": {
|
|
295
|
+
"broadParams": [
|
|
296
|
+
"command"
|
|
297
|
+
],
|
|
298
|
+
"description": "Execute a command inside a Docker container service"
|
|
299
|
+
},
|
|
300
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
301
|
+
"recommendedAction": "quarantine"
|
|
302
|
+
}
|
|
303
|
+
]
|
|
304
|
+
}
|
|
305
|
+
]
|
|
306
|
+
}
|
|
307
|
+
],
|
|
308
|
+
"healthScore": {
|
|
309
|
+
"overall": 73,
|
|
310
|
+
"grade": "C",
|
|
311
|
+
"dimensions": [
|
|
312
|
+
{
|
|
313
|
+
"name": "Protocol Compliance",
|
|
314
|
+
"weight": 0.3,
|
|
315
|
+
"score": 100,
|
|
316
|
+
"details": [
|
|
317
|
+
"conformance: pass (100/100)"
|
|
318
|
+
]
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"name": "Schema Quality",
|
|
322
|
+
"weight": 0.2,
|
|
323
|
+
"score": 100,
|
|
324
|
+
"details": [
|
|
325
|
+
"schema-quality: pass (100/100)"
|
|
326
|
+
]
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"name": "Security",
|
|
330
|
+
"weight": 0.2,
|
|
331
|
+
"score": 0,
|
|
332
|
+
"details": [
|
|
333
|
+
"security-lite: fail (0/100)",
|
|
334
|
+
"security: fail (0/100)",
|
|
335
|
+
"attack-sim: fail (0/100)"
|
|
336
|
+
]
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"name": "Reliability",
|
|
340
|
+
"weight": 0.2,
|
|
341
|
+
"score": 67,
|
|
342
|
+
"details": [
|
|
343
|
+
"tools: pass (100/100)",
|
|
344
|
+
"prompts: unsupported (50/100)",
|
|
345
|
+
"resources: unsupported (50/100)"
|
|
346
|
+
]
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"name": "Performance",
|
|
350
|
+
"weight": 0.1,
|
|
351
|
+
"score": 100,
|
|
352
|
+
"details": [
|
|
353
|
+
"Connect: 694ms",
|
|
354
|
+
"p95 latency: 0ms (3 operations)"
|
|
355
|
+
]
|
|
356
|
+
}
|
|
357
|
+
]
|
|
358
|
+
},
|
|
359
|
+
"performanceMetrics": {
|
|
360
|
+
"connectMs": 694.3836250000022,
|
|
361
|
+
"toolsListMs": 0.4344160000036936,
|
|
362
|
+
"promptsListMs": 0.0008750000051804818,
|
|
363
|
+
"resourcesListMs": 0.0005840000012540258
|
|
364
|
+
},
|
|
365
|
+
"runtimeProfile": {
|
|
366
|
+
"stateMutations": [
|
|
367
|
+
{
|
|
368
|
+
"resource": "network",
|
|
369
|
+
"operation": "execute",
|
|
370
|
+
"scope": "specific_path",
|
|
371
|
+
"source": "tool_schema"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"resource": "filesystem",
|
|
375
|
+
"operation": "write",
|
|
376
|
+
"scope": "working_directory",
|
|
377
|
+
"source": "description_analysis"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"resource": "filesystem",
|
|
381
|
+
"operation": "write",
|
|
382
|
+
"scope": "working_directory",
|
|
383
|
+
"source": "description_analysis"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"resource": "filesystem",
|
|
387
|
+
"operation": "execute",
|
|
388
|
+
"scope": "working_directory",
|
|
389
|
+
"source": "description_analysis"
|
|
390
|
+
}
|
|
391
|
+
],
|
|
392
|
+
"analyzedAt": "2026-07-12T23:44:29.940Z",
|
|
393
|
+
"confidence": "high"
|
|
394
|
+
}
|
|
395
|
+
}
|