@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
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-07-12T23:44:29.245Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `docker-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y mcp-server-docker`
|
|
10
|
+
- Server: `mcp-server-docker 1.0.0`
|
|
11
|
+
- Platform: `darwin 25.5.0`
|
|
12
|
+
- Node: `v22.22.1`
|
|
13
|
+
|
|
14
|
+
## Executive Summary
|
|
15
|
+
|
|
16
|
+
**Health Score: 73/100 (C)**
|
|
17
|
+
|
|
18
|
+
| Dimension | Score | Weight |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Protocol Compliance | 100/100 | 30% |
|
|
21
|
+
| Schema Quality | 100/100 | 20% |
|
|
22
|
+
| Security | 0/100 | 20% |
|
|
23
|
+
| Reliability | 67/100 | 20% |
|
|
24
|
+
| Performance | 100/100 | 10% |
|
|
25
|
+
|
|
26
|
+
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| fail | 9 | 3 | 3 | 1 | 2 | 0 | 0 |
|
|
29
|
+
|
|
30
|
+
## At a Glance
|
|
31
|
+
|
|
32
|
+
- Safety verdict: **Blocked** â One or more checks can break agent dependence and should be fixed before production use.
|
|
33
|
+
- Top risks: runtime-profile: Detected 0 potential egress target(s) and 4 potential state mutation(s) with high confidence.; attack-sim: Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.; security: Found 1 security finding(s): 1 high, 0 medium, 0 low.
|
|
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, attack-sim
|
|
36
|
+
- Partial or flaky checks: runtime-profile
|
|
37
|
+
- Skipped checks: none
|
|
38
|
+
- Unsupported checks: prompts, resources
|
|
39
|
+
- Suggested next step: Start with the failing checks: security-lite, security, attack-sim.
|
|
40
|
+
- CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
|
|
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
|
+
| network | execute | specific_path | tool_schema |
|
|
58
|
+
| filesystem | write | working_directory | description_analysis |
|
|
59
|
+
| filesystem | write | working_directory | description_analysis |
|
|
60
|
+
| filesystem | execute | working_directory | description_analysis |
|
|
61
|
+
|
|
62
|
+
_Analyzed at 2026-07-12T23:44:29.940Z_
|
|
63
|
+
|
|
64
|
+
## Regressions and Recoveries
|
|
65
|
+
|
|
66
|
+
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
67
|
+
|
|
68
|
+
## Full Capability Status Table
|
|
69
|
+
|
|
70
|
+
| Focus | Check | Status | Duration (ms) | Message |
|
|
71
|
+
| --- | --- | --- | --- | --- |
|
|
72
|
+
| healthy | conformance | pass | 0.54 | All 7 conformance checks passed. |
|
|
73
|
+
| healthy | schema-quality | pass | 0.23 | All 1 item(s) have good schema quality. |
|
|
74
|
+
| healthy | tools | pass | 0.43 | Advertised capability responded with the minimal expected shape (1 item). |
|
|
75
|
+
| review | runtime-profile | partial | 0.04 | Detected 0 potential egress target(s) and 4 potential state mutation(s) with high confidence. |
|
|
76
|
+
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
77
|
+
| confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
|
|
78
|
+
| act now | attack-sim | fail | 0.22 | Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low. |
|
|
79
|
+
| act now | security | fail | 0.13 | Found 1 security finding(s): 1 high, 0 medium, 0 low. |
|
|
80
|
+
| act now | security-lite | fail | 0.01 | Found 1 security finding(s): 1 high, 0 medium, 0 low. |
|
|
81
|
+
|
|
82
|
+
## Evidence Snippets
|
|
83
|
+
|
|
84
|
+
### conformance â pass
|
|
85
|
+
|
|
86
|
+
Summary: All 7 conformance checks passed.
|
|
87
|
+
|
|
88
|
+
- Endpoint: `conformance/check`
|
|
89
|
+
- Advertised: `true`
|
|
90
|
+
- Responded: `true`
|
|
91
|
+
- Minimal shape present: `true`
|
|
92
|
+
- Item count: `7`
|
|
93
|
+
- Identifiers: none
|
|
94
|
+
- 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)
|
|
95
|
+
|
|
96
|
+
### schema-quality â pass
|
|
97
|
+
|
|
98
|
+
Summary: All 1 item(s) have good schema quality.
|
|
99
|
+
|
|
100
|
+
- Endpoint: `schema-quality/scan`
|
|
101
|
+
- Advertised: `true`
|
|
102
|
+
- Responded: `true`
|
|
103
|
+
- Minimal shape present: `true`
|
|
104
|
+
- Item count: `0`
|
|
105
|
+
- Identifiers: none
|
|
106
|
+
- Diagnostics: none
|
|
107
|
+
|
|
108
|
+
### tools â pass
|
|
109
|
+
|
|
110
|
+
Summary: Advertised capability responded with the minimal expected shape (1 item).
|
|
111
|
+
|
|
112
|
+
- Endpoint: `tools/list`
|
|
113
|
+
- Advertised: `true`
|
|
114
|
+
- Responded: `true`
|
|
115
|
+
- Minimal shape present: `true`
|
|
116
|
+
- Item count: `1`
|
|
117
|
+
- Identifiers: run_command
|
|
118
|
+
- Diagnostics: Warning: No allowed containers specified in ALLOWED_CONTAINERS environment variable, MCP Server Docker started, Default service: laravel_app (+1 more)
|
|
119
|
+
|
|
120
|
+
### runtime-profile â partial
|
|
121
|
+
|
|
122
|
+
Summary: Detected 0 potential egress target(s) and 4 potential state mutation(s) with high confidence.
|
|
123
|
+
|
|
124
|
+
- Endpoint: `runtime-profile/analyze`
|
|
125
|
+
- Advertised: `true`
|
|
126
|
+
- Responded: `true`
|
|
127
|
+
- Minimal shape present: `true`
|
|
128
|
+
- Item count: `4`
|
|
129
|
+
- Identifiers: none
|
|
130
|
+
- Diagnostics: Egress entries: 0, State mutations: 4, Confidence: high
|
|
131
|
+
|
|
132
|
+
### prompts â unsupported
|
|
133
|
+
|
|
134
|
+
Summary: Prompts are not advertised by the target.
|
|
135
|
+
|
|
136
|
+
- Endpoint: `prompts/list`
|
|
137
|
+
- Advertised: `false`
|
|
138
|
+
- Responded: `false`
|
|
139
|
+
- Minimal shape present: `false`
|
|
140
|
+
- Item count: `0`
|
|
141
|
+
- Identifiers: none
|
|
142
|
+
- Diagnostics: none
|
|
143
|
+
|
|
144
|
+
### resources â unsupported
|
|
145
|
+
|
|
146
|
+
Summary: Resources are not advertised by the target.
|
|
147
|
+
|
|
148
|
+
- Endpoint: `resources/list | resources/templates/list`
|
|
149
|
+
- Advertised: `false`
|
|
150
|
+
- Responded: `false`
|
|
151
|
+
- Minimal shape present: `false`
|
|
152
|
+
- Item count: `0`
|
|
153
|
+
- Identifiers: none
|
|
154
|
+
- Diagnostics: none
|
|
155
|
+
|
|
156
|
+
### attack-sim â fail
|
|
157
|
+
|
|
158
|
+
Summary: Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.
|
|
159
|
+
|
|
160
|
+
- Endpoint: `attack-sim/safe`
|
|
161
|
+
- Advertised: `true`
|
|
162
|
+
- Responded: `true`
|
|
163
|
+
- Minimal shape present: `true`
|
|
164
|
+
- Item count: `1`
|
|
165
|
+
- Identifiers: run_command
|
|
166
|
+
- Diagnostics: [high] Tool "run_command" combines broad parameters (command) with destructive or non-read-only behavior.
|
|
167
|
+
|
|
168
|
+
### security â fail
|
|
169
|
+
|
|
170
|
+
Summary: Found 1 security finding(s): 1 high, 0 medium, 0 low.
|
|
171
|
+
|
|
172
|
+
- Endpoint: `security/scan`
|
|
173
|
+
- Advertised: `true`
|
|
174
|
+
- Responded: `true`
|
|
175
|
+
- Minimal shape present: `true`
|
|
176
|
+
- Item count: `1`
|
|
177
|
+
- Identifiers: run_command
|
|
178
|
+
- Diagnostics: [high] Tool "run_command" has parameter "command" which may allow arbitrary command execution.
|
|
179
|
+
|
|
180
|
+
### security-lite â fail
|
|
181
|
+
|
|
182
|
+
Summary: Found 1 security finding(s): 1 high, 0 medium, 0 low.
|
|
183
|
+
|
|
184
|
+
- Endpoint: `security/scan-lite`
|
|
185
|
+
- Advertised: `true`
|
|
186
|
+
- Responded: `true`
|
|
187
|
+
- Minimal shape present: `true`
|
|
188
|
+
- Item count: `1`
|
|
189
|
+
- Identifiers: run_command
|
|
190
|
+
- Diagnostics: [high] Tool "run_command" has parameter "command" which may allow arbitrary command execution.
|
|
191
|
+
|
|
192
|
+
## Reproduction Commands
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
npm run cli -- run --target <path-to-target-config.json>
|
|
196
|
+
npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Artifact Provenance
|
|
200
|
+
|
|
201
|
+
- Artifact type: `run`
|
|
202
|
+
- Schema version: `1.0.0`
|
|
203
|
+
- Run ID: `run_2026-07-12T234429245Z_f8164ad4`
|
|
204
|
+
- 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": "
|
|
5
|
+
"runId": "run_2026-07-12T234353421Z_9a98b63f",
|
|
6
|
+
"createdAt": "2026-07-12T23:43:53.422Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
8
|
"target": {
|
|
9
9
|
"targetId": "everything-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": 8,
|
|
34
34
|
"fail": 0,
|
|
35
35
|
"partial": 1,
|
|
36
36
|
"unsupported": 0,
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"id": "tools",
|
|
44
44
|
"capability": "tools",
|
|
45
45
|
"status": "pass",
|
|
46
|
-
"durationMs": 6.
|
|
46
|
+
"durationMs": 6.87154200000009,
|
|
47
47
|
"message": "Advertised capability responded with the minimal expected shape (13 items).",
|
|
48
48
|
"evidence": [
|
|
49
49
|
{
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
"id": "prompts",
|
|
264
264
|
"capability": "prompts",
|
|
265
265
|
"status": "pass",
|
|
266
|
-
"durationMs": 0.
|
|
266
|
+
"durationMs": 0.8323330000000624,
|
|
267
267
|
"message": "Advertised capability responded with the minimal expected shape (4 items).",
|
|
268
268
|
"evidence": [
|
|
269
269
|
{
|
|
@@ -288,7 +288,7 @@
|
|
|
288
288
|
"id": "resources",
|
|
289
289
|
"capability": "resources",
|
|
290
290
|
"status": "pass",
|
|
291
|
-
"durationMs": 1.
|
|
291
|
+
"durationMs": 1.4902090000000499,
|
|
292
292
|
"message": "Advertised capability responded with the minimal expected shape (9 items).",
|
|
293
293
|
"evidence": [
|
|
294
294
|
{
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
"id": "security-lite",
|
|
331
331
|
"capability": "security-lite",
|
|
332
332
|
"status": "pass",
|
|
333
|
-
"durationMs": 0.
|
|
333
|
+
"durationMs": 0.5924159999999574,
|
|
334
334
|
"message": "Found 2 security finding(s): 0 high, 0 medium, 2 low.",
|
|
335
335
|
"evidence": [
|
|
336
336
|
{
|
|
@@ -364,11 +364,82 @@
|
|
|
364
364
|
}
|
|
365
365
|
]
|
|
366
366
|
},
|
|
367
|
+
{
|
|
368
|
+
"id": "runtime-profile",
|
|
369
|
+
"capability": "runtime-profile",
|
|
370
|
+
"status": "pass",
|
|
371
|
+
"durationMs": 1.168333999999959,
|
|
372
|
+
"message": "Detected 1 potential egress target(s) and 7 potential state mutation(s) with low confidence.",
|
|
373
|
+
"evidence": [
|
|
374
|
+
{
|
|
375
|
+
"endpoint": "runtime-profile/analyze",
|
|
376
|
+
"advertised": true,
|
|
377
|
+
"responded": true,
|
|
378
|
+
"minimalShapePresent": true,
|
|
379
|
+
"itemCount": 8,
|
|
380
|
+
"diagnostics": [
|
|
381
|
+
"Egress entries: 1",
|
|
382
|
+
"State mutations: 7",
|
|
383
|
+
"Confidence: medium"
|
|
384
|
+
],
|
|
385
|
+
"findings": [
|
|
386
|
+
{
|
|
387
|
+
"target": "URL or data URI of the file content to compress",
|
|
388
|
+
"protocol": "unknown",
|
|
389
|
+
"source": "description_analysis",
|
|
390
|
+
"confidence": "medium"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"resource": "filesystem",
|
|
394
|
+
"operation": "write",
|
|
395
|
+
"scope": "working_directory",
|
|
396
|
+
"source": "description_analysis"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"resource": "filesystem",
|
|
400
|
+
"operation": "write",
|
|
401
|
+
"scope": "working_directory",
|
|
402
|
+
"source": "description_analysis"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"resource": "filesystem",
|
|
406
|
+
"operation": "write",
|
|
407
|
+
"scope": "working_directory",
|
|
408
|
+
"source": "description_analysis"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"resource": "filesystem",
|
|
412
|
+
"operation": "write",
|
|
413
|
+
"scope": "working_directory",
|
|
414
|
+
"source": "description_analysis"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"resource": "filesystem",
|
|
418
|
+
"operation": "write",
|
|
419
|
+
"scope": "working_directory",
|
|
420
|
+
"source": "description_analysis"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"resource": "filesystem",
|
|
424
|
+
"operation": "write",
|
|
425
|
+
"scope": "working_directory",
|
|
426
|
+
"source": "description_analysis"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"resource": "filesystem",
|
|
430
|
+
"operation": "execute",
|
|
431
|
+
"scope": "working_directory",
|
|
432
|
+
"source": "description_analysis"
|
|
433
|
+
}
|
|
434
|
+
]
|
|
435
|
+
}
|
|
436
|
+
]
|
|
437
|
+
},
|
|
367
438
|
{
|
|
368
439
|
"id": "conformance",
|
|
369
440
|
"capability": "conformance",
|
|
370
441
|
"status": "pass",
|
|
371
|
-
"durationMs": 3.
|
|
442
|
+
"durationMs": 3.8792909999999665,
|
|
372
443
|
"message": "All 7 conformance checks passed.",
|
|
373
444
|
"evidence": [
|
|
374
445
|
{
|
|
@@ -394,7 +465,7 @@
|
|
|
394
465
|
"id": "schema-quality",
|
|
395
466
|
"capability": "schema-quality",
|
|
396
467
|
"status": "partial",
|
|
397
|
-
"durationMs": 1.
|
|
468
|
+
"durationMs": 1.3700000000001182,
|
|
398
469
|
"message": "Found 6 quality finding(s) across 24 item(s): 0 warnings, 6 info.",
|
|
399
470
|
"evidence": [
|
|
400
471
|
{
|
|
@@ -463,7 +534,7 @@
|
|
|
463
534
|
"id": "security",
|
|
464
535
|
"capability": "security",
|
|
465
536
|
"status": "pass",
|
|
466
|
-
"durationMs": 0.
|
|
537
|
+
"durationMs": 0.9176660000000538,
|
|
467
538
|
"message": "Found 2 security finding(s): 0 high, 0 medium, 2 low.",
|
|
468
539
|
"evidence": [
|
|
469
540
|
{
|
|
@@ -501,7 +572,7 @@
|
|
|
501
572
|
"id": "attack-sim",
|
|
502
573
|
"capability": "attack-sim",
|
|
503
574
|
"status": "pass",
|
|
504
|
-
"durationMs": 2.
|
|
575
|
+
"durationMs": 2.7484170000000177,
|
|
505
576
|
"message": "Safe attack simulation found no high-risk MCP attack-readiness findings.",
|
|
506
577
|
"evidence": [
|
|
507
578
|
{
|
|
@@ -560,16 +631,72 @@
|
|
|
560
631
|
"weight": 0.1,
|
|
561
632
|
"score": 100,
|
|
562
633
|
"details": [
|
|
563
|
-
"Connect:
|
|
634
|
+
"Connect: 1018ms",
|
|
564
635
|
"p95 latency: 7ms (3 operations)"
|
|
565
636
|
]
|
|
566
637
|
}
|
|
567
638
|
]
|
|
568
639
|
},
|
|
569
640
|
"performanceMetrics": {
|
|
570
|
-
"connectMs":
|
|
571
|
-
"toolsListMs": 6.
|
|
572
|
-
"promptsListMs": 0.
|
|
573
|
-
"resourcesListMs": 1.
|
|
641
|
+
"connectMs": 1018.1313339999999,
|
|
642
|
+
"toolsListMs": 6.87154200000009,
|
|
643
|
+
"promptsListMs": 0.8323330000000624,
|
|
644
|
+
"resourcesListMs": 1.4902090000000499
|
|
645
|
+
},
|
|
646
|
+
"runtimeProfile": {
|
|
647
|
+
"egress": [
|
|
648
|
+
{
|
|
649
|
+
"target": "URL or data URI of the file content to compress",
|
|
650
|
+
"protocol": "unknown",
|
|
651
|
+
"source": "description_analysis",
|
|
652
|
+
"confidence": "medium"
|
|
653
|
+
}
|
|
654
|
+
],
|
|
655
|
+
"stateMutations": [
|
|
656
|
+
{
|
|
657
|
+
"resource": "filesystem",
|
|
658
|
+
"operation": "write",
|
|
659
|
+
"scope": "working_directory",
|
|
660
|
+
"source": "description_analysis"
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"resource": "filesystem",
|
|
664
|
+
"operation": "write",
|
|
665
|
+
"scope": "working_directory",
|
|
666
|
+
"source": "description_analysis"
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"resource": "filesystem",
|
|
670
|
+
"operation": "write",
|
|
671
|
+
"scope": "working_directory",
|
|
672
|
+
"source": "description_analysis"
|
|
673
|
+
},
|
|
674
|
+
{
|
|
675
|
+
"resource": "filesystem",
|
|
676
|
+
"operation": "write",
|
|
677
|
+
"scope": "working_directory",
|
|
678
|
+
"source": "description_analysis"
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"resource": "filesystem",
|
|
682
|
+
"operation": "write",
|
|
683
|
+
"scope": "working_directory",
|
|
684
|
+
"source": "description_analysis"
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"resource": "filesystem",
|
|
688
|
+
"operation": "write",
|
|
689
|
+
"scope": "working_directory",
|
|
690
|
+
"source": "description_analysis"
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"resource": "filesystem",
|
|
694
|
+
"operation": "execute",
|
|
695
|
+
"scope": "working_directory",
|
|
696
|
+
"source": "description_analysis"
|
|
697
|
+
}
|
|
698
|
+
],
|
|
699
|
+
"analyzedAt": "2026-07-12T23:43:54.455Z",
|
|
700
|
+
"confidence": "medium"
|
|
574
701
|
}
|
|
575
702
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-07-
|
|
3
|
+
Generated at 2026-07-12T23:43:53.422Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ Generated at 2026-07-06T19:49:44.860Z
|
|
|
25
25
|
|
|
26
26
|
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
27
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
-
| pass |
|
|
28
|
+
| pass | 9 | 8 | 0 | 1 | 0 | 0 | 0 |
|
|
29
29
|
|
|
30
30
|
## At a Glance
|
|
31
31
|
|
|
@@ -39,6 +39,38 @@ Generated at 2026-07-06T19:49:44.860Z
|
|
|
39
39
|
- Suggested next step: Review the caveated checks next: schema-quality.
|
|
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
|
+
- âšī¸ credential_access: Credential scanning was performed (see security findings)
|
|
46
|
+
- âšī¸ destructive_payloads: Destructive payloads were not attempted (safe-mode only)
|
|
47
|
+
|
|
48
|
+
## Runtime Profile
|
|
49
|
+
|
|
50
|
+
### Egress Manifest
|
|
51
|
+
|
|
52
|
+
The following targets were identified as potentially reachable by this server (confidence: **medium**):
|
|
53
|
+
|
|
54
|
+
| Target | Protocol | Source | Confidence |
|
|
55
|
+
| --- | --- | --- | --- |
|
|
56
|
+
| URL or data URI of the file content to compress | unknown | description_analysis | medium |
|
|
57
|
+
|
|
58
|
+
### State Mutations
|
|
59
|
+
|
|
60
|
+
The following state-modifying operations were identified from tool schemas:
|
|
61
|
+
|
|
62
|
+
| Resource | Operation | Scope | Source |
|
|
63
|
+
| --- | --- | --- | --- |
|
|
64
|
+
| filesystem | write | working_directory | description_analysis |
|
|
65
|
+
| filesystem | write | working_directory | description_analysis |
|
|
66
|
+
| filesystem | write | working_directory | description_analysis |
|
|
67
|
+
| filesystem | write | working_directory | description_analysis |
|
|
68
|
+
| filesystem | write | working_directory | description_analysis |
|
|
69
|
+
| filesystem | write | working_directory | description_analysis |
|
|
70
|
+
| filesystem | execute | working_directory | description_analysis |
|
|
71
|
+
|
|
72
|
+
_Analyzed at 2026-07-12T23:43:54.455Z_
|
|
73
|
+
|
|
42
74
|
## Regressions and Recoveries
|
|
43
75
|
|
|
44
76
|
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
@@ -47,14 +79,15 @@ _Use the `diff` command against another run artifact to classify regressions and
|
|
|
47
79
|
|
|
48
80
|
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
81
|
| --- | --- | --- | --- | --- |
|
|
50
|
-
| healthy | attack-sim | pass | 2.
|
|
51
|
-
| healthy | conformance | pass | 3.
|
|
52
|
-
| healthy | prompts | pass | 0.
|
|
53
|
-
| healthy | resources | pass | 1.
|
|
54
|
-
| healthy |
|
|
55
|
-
| healthy | security
|
|
56
|
-
| healthy |
|
|
57
|
-
|
|
|
82
|
+
| healthy | attack-sim | pass | 2.75 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
|
|
83
|
+
| healthy | conformance | pass | 3.88 | All 7 conformance checks passed. |
|
|
84
|
+
| healthy | prompts | pass | 0.83 | Advertised capability responded with the minimal expected shape (4 items). |
|
|
85
|
+
| healthy | resources | pass | 1.49 | Advertised capability responded with the minimal expected shape (9 items). |
|
|
86
|
+
| healthy | runtime-profile | pass | 1.17 | Detected 1 potential egress target(s) and 7 potential state mutation(s) with low confidence. |
|
|
87
|
+
| healthy | security | pass | 0.92 | Found 2 security finding(s): 0 high, 0 medium, 2 low. |
|
|
88
|
+
| healthy | security-lite | pass | 0.59 | Found 2 security finding(s): 0 high, 0 medium, 2 low. |
|
|
89
|
+
| healthy | tools | pass | 6.87 | Advertised capability responded with the minimal expected shape (13 items). |
|
|
90
|
+
| review | schema-quality | partial | 1.37 | Found 6 quality finding(s) across 24 item(s): 0 warnings, 6 info. |
|
|
58
91
|
|
|
59
92
|
## Evidence Snippets
|
|
60
93
|
|
|
@@ -113,6 +146,18 @@ Summary: Advertised capability responded with the minimal expected shape (9 item
|
|
|
113
146
|
- Identifiers: demo://resource/dynamic/text/{resourceId}, demo://resource/dynamic/blob/{resourceId}
|
|
114
147
|
- Diagnostics: Starting default (STDIO) server...
|
|
115
148
|
|
|
149
|
+
### runtime-profile â pass
|
|
150
|
+
|
|
151
|
+
Summary: Detected 1 potential egress target(s) and 7 potential state mutation(s) with low confidence.
|
|
152
|
+
|
|
153
|
+
- Endpoint: `runtime-profile/analyze`
|
|
154
|
+
- Advertised: `true`
|
|
155
|
+
- Responded: `true`
|
|
156
|
+
- Minimal shape present: `true`
|
|
157
|
+
- Item count: `8`
|
|
158
|
+
- Identifiers: none
|
|
159
|
+
- Diagnostics: Egress entries: 1, State mutations: 7, Confidence: medium
|
|
160
|
+
|
|
116
161
|
### security â pass
|
|
117
162
|
|
|
118
163
|
Summary: Found 2 security finding(s): 0 high, 0 medium, 2 low.
|
|
@@ -172,5 +217,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
172
217
|
|
|
173
218
|
- Artifact type: `run`
|
|
174
219
|
- Schema version: `1.0.0`
|
|
175
|
-
- Run ID: `run_2026-07-
|
|
220
|
+
- Run ID: `run_2026-07-12T234353421Z_9a98b63f`
|
|
176
221
|
- Gate: `pass`
|