@kryptosai/mcp-observatory 1.31.0 â 1.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PRIVACY.md +16 -0
- package/README.md +5 -11
- package/README.zh-CN.md +4 -10
- package/dist/src/cli.js +4 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/diff.js +24 -2
- package/dist/src/commands/diff.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/telemetry.js +41 -1
- package/dist/src/commands/telemetry.js.map +1 -1
- package/dist/src/commands/test.js +2 -2
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/diff.d.ts +5 -2
- package/dist/src/diff.js +23 -2
- package/dist/src/diff.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/permission-delta.d.ts +2 -0
- package/dist/src/permission-delta.js +99 -0
- package/dist/src/permission-delta.js.map +1 -0
- package/dist/src/reporters/common.d.ts +1 -0
- package/dist/src/reporters/common.js +3 -1
- package/dist/src/reporters/common.js.map +1 -1
- package/dist/src/reporters/html.js +30 -1
- package/dist/src/reporters/html.js.map +1 -1
- package/dist/src/reporters/markdown.js +21 -2
- package/dist/src/reporters/markdown.js.map +1 -1
- package/dist/src/reporters/pr-comment.js +1 -1
- package/dist/src/reporters/pr-comment.js.map +1 -1
- package/dist/src/reporters/terminal.js +9 -3
- package/dist/src/reporters/terminal.js.map +1 -1
- package/dist/src/risk-taxonomy.d.ts +16 -0
- package/dist/src/risk-taxonomy.js +95 -0
- package/dist/src/risk-taxonomy.js.map +1 -0
- package/dist/src/schema-diff.d.ts +2 -1
- package/dist/src/schema-diff.js +28 -3
- package/dist/src/schema-diff.js.map +1 -1
- package/dist/src/telemetry.d.ts +17 -0
- package/dist/src/telemetry.js +70 -2
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/types.d.ts +15 -0
- package/dist/src/validate.js +44 -2
- package/dist/src/validate.js.map +1 -1
- package/docs/mcp-server-safety-index.md +77 -15
- 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 +842 -0
- package/docs/safety-index/artifacts/ui5-mcp-server.md +232 -0
- 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 +552 -0
- package/package.json +1 -1
- package/schemas/run-artifact.schema.json +56 -1
|
@@ -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": "
|
|
5
|
+
"runId": "run_2026-07-12T234354820Z_c1f1096e",
|
|
6
|
+
"createdAt": "2026-07-12T23:43:54.820Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
8
|
"target": {
|
|
9
9
|
"targetId": "sequential-thinking-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": 7,
|
|
34
34
|
"fail": 0,
|
|
35
35
|
"partial": 0,
|
|
36
36
|
"unsupported": 2,
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"id": "tools",
|
|
44
44
|
"capability": "tools",
|
|
45
45
|
"status": "pass",
|
|
46
|
-
"durationMs":
|
|
46
|
+
"durationMs": 4.1571249999997235,
|
|
47
47
|
"message": "Advertised capability responded with the minimal expected shape (1 item).",
|
|
48
48
|
"evidence": [
|
|
49
49
|
{
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
"id": "prompts",
|
|
123
123
|
"capability": "prompts",
|
|
124
124
|
"status": "unsupported",
|
|
125
|
-
"durationMs": 0.
|
|
125
|
+
"durationMs": 0.0039999999999054126,
|
|
126
126
|
"message": "Prompts are not advertised by the target.",
|
|
127
127
|
"evidence": [
|
|
128
128
|
{
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"id": "resources",
|
|
139
139
|
"capability": "resources",
|
|
140
140
|
"status": "unsupported",
|
|
141
|
-
"durationMs": 0.
|
|
141
|
+
"durationMs": 0.0014999999998508429,
|
|
142
142
|
"message": "Resources are not advertised by the target.",
|
|
143
143
|
"evidence": [
|
|
144
144
|
{
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"id": "security-lite",
|
|
155
155
|
"capability": "security-lite",
|
|
156
156
|
"status": "pass",
|
|
157
|
-
"durationMs": 0.
|
|
157
|
+
"durationMs": 0.02804199999991397,
|
|
158
158
|
"message": "No security issues detected (lightweight scan).",
|
|
159
159
|
"evidence": [
|
|
160
160
|
{
|
|
@@ -166,11 +166,40 @@
|
|
|
166
166
|
}
|
|
167
167
|
]
|
|
168
168
|
},
|
|
169
|
+
{
|
|
170
|
+
"id": "runtime-profile",
|
|
171
|
+
"capability": "runtime-profile",
|
|
172
|
+
"status": "pass",
|
|
173
|
+
"durationMs": 0.07287500000029468,
|
|
174
|
+
"message": "Detected 0 potential egress target(s) and 1 potential state mutation(s) with low confidence.",
|
|
175
|
+
"evidence": [
|
|
176
|
+
{
|
|
177
|
+
"endpoint": "runtime-profile/analyze",
|
|
178
|
+
"advertised": true,
|
|
179
|
+
"responded": true,
|
|
180
|
+
"minimalShapePresent": true,
|
|
181
|
+
"itemCount": 1,
|
|
182
|
+
"diagnostics": [
|
|
183
|
+
"Egress entries: 0",
|
|
184
|
+
"State mutations: 1",
|
|
185
|
+
"Confidence: medium"
|
|
186
|
+
],
|
|
187
|
+
"findings": [
|
|
188
|
+
{
|
|
189
|
+
"resource": "filesystem",
|
|
190
|
+
"operation": "write",
|
|
191
|
+
"scope": "working_directory",
|
|
192
|
+
"source": "description_analysis"
|
|
193
|
+
}
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
},
|
|
169
198
|
{
|
|
170
199
|
"id": "conformance",
|
|
171
200
|
"capability": "conformance",
|
|
172
201
|
"status": "pass",
|
|
173
|
-
"durationMs": 1.
|
|
202
|
+
"durationMs": 1.5781660000002375,
|
|
174
203
|
"message": "All 7 conformance checks passed.",
|
|
175
204
|
"evidence": [
|
|
176
205
|
{
|
|
@@ -196,7 +225,7 @@
|
|
|
196
225
|
"id": "schema-quality",
|
|
197
226
|
"capability": "schema-quality",
|
|
198
227
|
"status": "pass",
|
|
199
|
-
"durationMs": 0.
|
|
228
|
+
"durationMs": 0.8027910000000702,
|
|
200
229
|
"message": "All 1 item(s) have good schema quality.",
|
|
201
230
|
"evidence": [
|
|
202
231
|
{
|
|
@@ -213,7 +242,7 @@
|
|
|
213
242
|
"id": "security",
|
|
214
243
|
"capability": "security",
|
|
215
244
|
"status": "pass",
|
|
216
|
-
"durationMs": 0.
|
|
245
|
+
"durationMs": 0.8892080000000533,
|
|
217
246
|
"message": "No security issues detected.",
|
|
218
247
|
"evidence": [
|
|
219
248
|
{
|
|
@@ -229,7 +258,7 @@
|
|
|
229
258
|
"id": "attack-sim",
|
|
230
259
|
"capability": "attack-sim",
|
|
231
260
|
"status": "pass",
|
|
232
|
-
"durationMs": 0.
|
|
261
|
+
"durationMs": 0.8314170000003287,
|
|
233
262
|
"message": "Safe attack simulation found no high-risk MCP attack-readiness findings.",
|
|
234
263
|
"evidence": [
|
|
235
264
|
{
|
|
@@ -288,16 +317,28 @@
|
|
|
288
317
|
"weight": 0.1,
|
|
289
318
|
"score": 100,
|
|
290
319
|
"details": [
|
|
291
|
-
"Connect:
|
|
320
|
+
"Connect: 844ms",
|
|
292
321
|
"p95 latency: 4ms (3 operations)"
|
|
293
322
|
]
|
|
294
323
|
}
|
|
295
324
|
]
|
|
296
325
|
},
|
|
297
326
|
"performanceMetrics": {
|
|
298
|
-
"connectMs":
|
|
299
|
-
"toolsListMs":
|
|
300
|
-
"promptsListMs": 0.
|
|
301
|
-
"resourcesListMs": 0.
|
|
327
|
+
"connectMs": 843.9233340000003,
|
|
328
|
+
"toolsListMs": 4.1571249999997235,
|
|
329
|
+
"promptsListMs": 0.0039999999999054126,
|
|
330
|
+
"resourcesListMs": 0.0014999999998508429
|
|
331
|
+
},
|
|
332
|
+
"runtimeProfile": {
|
|
333
|
+
"stateMutations": [
|
|
334
|
+
{
|
|
335
|
+
"resource": "filesystem",
|
|
336
|
+
"operation": "write",
|
|
337
|
+
"scope": "working_directory",
|
|
338
|
+
"source": "description_analysis"
|
|
339
|
+
}
|
|
340
|
+
],
|
|
341
|
+
"analyzedAt": "2026-07-12T23:43:55.670Z",
|
|
342
|
+
"confidence": "medium"
|
|
302
343
|
}
|
|
303
344
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-07-
|
|
3
|
+
Generated at 2026-07-12T23:43:54.820Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ Generated at 2026-07-06T19:49:46.140Z
|
|
|
25
25
|
|
|
26
26
|
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
27
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
-
| pass |
|
|
28
|
+
| pass | 9 | 7 | 0 | 0 | 2 | 0 | 0 |
|
|
29
29
|
|
|
30
30
|
## At a Glance
|
|
31
31
|
|
|
@@ -39,6 +39,25 @@ Generated at 2026-07-06T19:49:46.140Z
|
|
|
39
39
|
- Suggested next step: Confirm that unsupported capabilities are intentional for this target: prompts, resources.
|
|
40
40
|
- CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
|
|
41
41
|
|
|
42
|
+
## What Was Not Tested
|
|
43
|
+
|
|
44
|
+
- đ network_egress: No outbound network calls were attempted during scan
|
|
45
|
+
- đ filesystem_mutation: Filesystem write operations were not exercised
|
|
46
|
+
- âšī¸ credential_access: Credential scanning was performed (see security findings)
|
|
47
|
+
- âšī¸ destructive_payloads: Destructive payloads were not attempted (safe-mode only)
|
|
48
|
+
|
|
49
|
+
## Runtime Profile
|
|
50
|
+
|
|
51
|
+
### State Mutations
|
|
52
|
+
|
|
53
|
+
The following state-modifying operations were identified from tool schemas:
|
|
54
|
+
|
|
55
|
+
| Resource | Operation | Scope | Source |
|
|
56
|
+
| --- | --- | --- | --- |
|
|
57
|
+
| filesystem | write | working_directory | description_analysis |
|
|
58
|
+
|
|
59
|
+
_Analyzed at 2026-07-12T23:43:55.670Z_
|
|
60
|
+
|
|
42
61
|
## Regressions and Recoveries
|
|
43
62
|
|
|
44
63
|
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
@@ -47,12 +66,13 @@ _Use the `diff` command against another run artifact to classify regressions and
|
|
|
47
66
|
|
|
48
67
|
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
68
|
| --- | --- | --- | --- | --- |
|
|
50
|
-
| healthy | attack-sim | pass | 0.
|
|
51
|
-
| healthy | conformance | pass | 1.
|
|
52
|
-
| healthy |
|
|
53
|
-
| healthy |
|
|
54
|
-
| healthy | security
|
|
55
|
-
| healthy |
|
|
69
|
+
| healthy | attack-sim | pass | 0.83 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
|
|
70
|
+
| healthy | conformance | pass | 1.58 | All 7 conformance checks passed. |
|
|
71
|
+
| healthy | runtime-profile | pass | 0.07 | Detected 0 potential egress target(s) and 1 potential state mutation(s) with low confidence. |
|
|
72
|
+
| healthy | schema-quality | pass | 0.80 | All 1 item(s) have good schema quality. |
|
|
73
|
+
| healthy | security | pass | 0.89 | No security issues detected. |
|
|
74
|
+
| healthy | security-lite | pass | 0.03 | No security issues detected (lightweight scan). |
|
|
75
|
+
| healthy | tools | pass | 4.16 | Advertised capability responded with the minimal expected shape (1 item). |
|
|
56
76
|
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
57
77
|
| confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
|
|
58
78
|
|
|
@@ -82,6 +102,18 @@ Summary: All 7 conformance checks passed.
|
|
|
82
102
|
- Identifiers: none
|
|
83
103
|
- Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 1 tool(s). (+4 more)
|
|
84
104
|
|
|
105
|
+
### runtime-profile â pass
|
|
106
|
+
|
|
107
|
+
Summary: Detected 0 potential egress target(s) and 1 potential state mutation(s) with low confidence.
|
|
108
|
+
|
|
109
|
+
- Endpoint: `runtime-profile/analyze`
|
|
110
|
+
- Advertised: `true`
|
|
111
|
+
- Responded: `true`
|
|
112
|
+
- Minimal shape present: `true`
|
|
113
|
+
- Item count: `1`
|
|
114
|
+
- Identifiers: none
|
|
115
|
+
- Diagnostics: Egress entries: 0, State mutations: 1, Confidence: medium
|
|
116
|
+
|
|
85
117
|
### schema-quality â pass
|
|
86
118
|
|
|
87
119
|
Summary: All 1 item(s) have good schema quality.
|
|
@@ -165,5 +197,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
165
197
|
|
|
166
198
|
- Artifact type: `run`
|
|
167
199
|
- Schema version: `1.0.0`
|
|
168
|
-
- Run ID: `run_2026-07-
|
|
200
|
+
- Run ID: `run_2026-07-12T234354820Z_c1f1096e`
|
|
169
201
|
- Gate: `pass`
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "fail",
|
|
5
|
+
"runId": "run_2026-07-12T234417152Z_b9951b3e",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:17.152Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "slack-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@modelcontextprotocol/server-slack"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "@modelcontextprotocol/server-slack",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Messaging platform access",
|
|
21
|
+
"failureClass": "Message/channel boundary",
|
|
22
|
+
"whyItMatters": "Slack MCP servers can expose channel history, message posting, and workspace search capabilities 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 `slack-server`.\nCommand: npx -y @modelcontextprotocol/server-slack\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- Please set SLACK_BOT_TOKEN and SLACK_TEAM_ID environment variables"
|
|
66
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-07-12T23:44:17.152Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `slack-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y @modelcontextprotocol/server-slack`
|
|
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 `slack-server`.
|
|
47
|
+
Command: npx -y @modelcontextprotocol/server-slack
|
|
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
|
+
- Please set SLACK_BOT_TOKEN and SLACK_TEAM_ID environment variables
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Full Capability Status Table
|
|
63
|
+
|
|
64
|
+
| Focus | Check | Status | Duration (ms) | Message |
|
|
65
|
+
| --- | --- | --- | --- | --- |
|
|
66
|
+
| inspect startup | prompts | skipped | 0.00 | Skipped because startup failed before the MCP session initialized. See the failure diagnosis. |
|
|
67
|
+
| inspect startup | resources | skipped | 0.00 | Skipped because startup failed before the MCP session initialized. See the failure diagnosis. |
|
|
68
|
+
| inspect startup | tools | skipped | 0.00 | Skipped because startup failed before the MCP session initialized. See the failure diagnosis. |
|
|
69
|
+
|
|
70
|
+
## Evidence Snippets
|
|
71
|
+
|
|
72
|
+
### prompts â skipped
|
|
73
|
+
|
|
74
|
+
Summary: Skipped because startup failed before the MCP session initialized. See the failure diagnosis.
|
|
75
|
+
|
|
76
|
+
_No evidence was captured._
|
|
77
|
+
|
|
78
|
+
### resources â skipped
|
|
79
|
+
|
|
80
|
+
Summary: Skipped because startup failed before the MCP session initialized. See the failure diagnosis.
|
|
81
|
+
|
|
82
|
+
_No evidence was captured._
|
|
83
|
+
|
|
84
|
+
### tools â skipped
|
|
85
|
+
|
|
86
|
+
Summary: Skipped because startup failed before the MCP session initialized. See the failure diagnosis.
|
|
87
|
+
|
|
88
|
+
_No evidence was captured._
|
|
89
|
+
|
|
90
|
+
## Reproduction Commands
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npm run cli -- run --target <path-to-target-config.json>
|
|
94
|
+
npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Artifact Provenance
|
|
98
|
+
|
|
99
|
+
- Artifact type: `run`
|
|
100
|
+
- Schema version: `1.0.0`
|
|
101
|
+
- Run ID: `run_2026-07-12T234417152Z_b9951b3e`
|
|
102
|
+
- Gate: `fail`
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "fail",
|
|
5
|
+
"runId": "run_2026-07-12T234430725Z_502b9b31",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:30.725Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "sqlite-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@modelcontextprotocol/server-sqlite",
|
|
15
|
+
"/tmp/test.db"
|
|
16
|
+
],
|
|
17
|
+
"cwd": ".",
|
|
18
|
+
"metadata": {
|
|
19
|
+
"package": "@modelcontextprotocol/server-sqlite",
|
|
20
|
+
"purpose": "mcp-safety-index",
|
|
21
|
+
"riskClass": "Local database mutation",
|
|
22
|
+
"failureClass": "SQLite file boundary",
|
|
23
|
+
"whyItMatters": "SQLite MCP servers can grant agents read/write/query access to local database files with SQL execution capabilities."
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"environment": {
|
|
27
|
+
"platform": "darwin 25.5.0",
|
|
28
|
+
"nodeVersion": "v22.22.1"
|
|
29
|
+
},
|
|
30
|
+
"summary": {
|
|
31
|
+
"total": 3,
|
|
32
|
+
"pass": 0,
|
|
33
|
+
"fail": 0,
|
|
34
|
+
"partial": 0,
|
|
35
|
+
"unsupported": 0,
|
|
36
|
+
"flaky": 0,
|
|
37
|
+
"skipped": 3,
|
|
38
|
+
"gate": "fail"
|
|
39
|
+
},
|
|
40
|
+
"checks": [
|
|
41
|
+
{
|
|
42
|
+
"id": "tools",
|
|
43
|
+
"capability": "tools",
|
|
44
|
+
"status": "skipped",
|
|
45
|
+
"durationMs": 0,
|
|
46
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
47
|
+
"evidence": []
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "prompts",
|
|
51
|
+
"capability": "prompts",
|
|
52
|
+
"status": "skipped",
|
|
53
|
+
"durationMs": 0,
|
|
54
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
55
|
+
"evidence": []
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "resources",
|
|
59
|
+
"capability": "resources",
|
|
60
|
+
"status": "skipped",
|
|
61
|
+
"durationMs": 0,
|
|
62
|
+
"message": "Skipped because startup failed before the MCP session initialized. See the failure diagnosis.",
|
|
63
|
+
"evidence": []
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"fatalError": "Could not establish a plain stdio MCP session for target `sqlite-server`.\nCommand: npx -y @modelcontextprotocol/server-sqlite /tmp/test.db\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 '@modelcontextprotocol/server-sqlite@*' 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_30_791Z-debug-0.log"
|
|
67
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-07-12T23:44:30.725Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `sqlite-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y @modelcontextprotocol/server-sqlite /tmp/test.db`
|
|
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 `sqlite-server`.
|
|
47
|
+
Command: npx -y @modelcontextprotocol/server-sqlite /tmp/test.db
|
|
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 '@modelcontextprotocol/server-sqlite@*' 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_30_791Z-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-12T234430725Z_502b9b31`
|
|
106
|
+
- Gate: `fail`
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "fail",
|
|
5
|
+
"runId": "run_2026-07-12T234421042Z_9da69382",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:21.042Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "stripe-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@stripe/mcp"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "@stripe/mcp",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Payment API boundary",
|
|
21
|
+
"failureClass": "Financial transaction tool boundary",
|
|
22
|
+
"whyItMatters": "Stripe tools can create customers, process payments, and manage subscriptions â financial mutation surfaces that need visible boundaries."
|
|
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 `stripe-server`.\nCommand: npx -y @stripe/mcp\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- at Module._load (node:internal/modules/cjs/loader:1263:12)\n- at TracingChannel.traceSync (node:diagnostics_channel:328:14)\n- at wrapModuleLoad (node:internal/modules/cjs/loader:237:24)\n- at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)\n- Node.js v22.22.1"
|
|
66
|
+
}
|