@kryptosai/mcp-observatory 1.31.0 → 1.32.0
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 +1 -1
- package/dist/src/cli.js +3 -1
- 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/telemetry.js +41 -1
- package/dist/src/commands/telemetry.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 +69 -2
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/types.d.ts +15 -0
- package/dist/src/validate.js +45 -2
- package/dist/src/validate.js.map +1 -1
- package/docs/mcp-server-safety-index.md +13 -11
- 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/targets.json +17 -0
- package/package.json +1 -1
- package/schemas/run-artifact.schema.json +56 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-07-09T15:15:05.224Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `ui5-mcp-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y @ui5/mcp-server`
|
|
10
|
+
- Server: `UI5 0.2.14`
|
|
11
|
+
- Platform: `darwin 24.0.0`
|
|
12
|
+
- Node: `v25.8.1`
|
|
13
|
+
|
|
14
|
+
## Executive Summary
|
|
15
|
+
|
|
16
|
+
**Health Score: 93/100 (A)**
|
|
17
|
+
|
|
18
|
+
| Dimension | Score | Weight |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Protocol Compliance | 100/100 | 30% |
|
|
21
|
+
| Schema Quality | 100/100 | 20% |
|
|
22
|
+
| Security | 100/100 | 20% |
|
|
23
|
+
| Reliability | 67/100 | 20% |
|
|
24
|
+
| Performance | 100/100 | 10% |
|
|
25
|
+
|
|
26
|
+
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| pass | 9 | 7 | 0 | 0 | 2 | 0 | 0 |
|
|
29
|
+
|
|
30
|
+
## At a Glance
|
|
31
|
+
|
|
32
|
+
- Safety verdict: **Needs review** — The server is usable, but caveated checks should be reviewed before agents depend on it.
|
|
33
|
+
- Top risks: No high-priority risks detected.
|
|
34
|
+
- Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
|
|
35
|
+
- Failing checks: none
|
|
36
|
+
- Partial or flaky checks: none
|
|
37
|
+
- Skipped checks: none
|
|
38
|
+
- Unsupported checks: prompts, resources
|
|
39
|
+
- Suggested next step: Confirm that unsupported capabilities are intentional for this target: prompts, resources.
|
|
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
|
+
- ℹ️ 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: **medium**):
|
|
52
|
+
|
|
53
|
+
| Target | Protocol | Source | Confidence |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| Whether to include supplementary information in the output. This includes UI5 API reference and documentation resources. When calling the tool multiple times for the same file or project, refrain from requesting additional context every time. | unknown | description_analysis | medium |
|
|
56
|
+
| run_ui5_linter | unknown | description_analysis | low |
|
|
57
|
+
| get_api_reference | unknown | description_analysis | low |
|
|
58
|
+
| OData V4 service URL parameter; public artifact redacts local URL examples from the upstream tool description. | unknown | description_analysis | medium |
|
|
59
|
+
|
|
60
|
+
### State Mutations
|
|
61
|
+
|
|
62
|
+
The following state-modifying operations were identified from tool schemas:
|
|
63
|
+
|
|
64
|
+
| Resource | Operation | Scope | Source |
|
|
65
|
+
| --- | --- | --- | --- |
|
|
66
|
+
| filesystem | write | working_directory | description_analysis |
|
|
67
|
+
| filesystem | write | working_directory | description_analysis |
|
|
68
|
+
| filesystem | write | working_directory | description_analysis |
|
|
69
|
+
| filesystem | write | working_directory | description_analysis |
|
|
70
|
+
| filesystem | execute | working_directory | description_analysis |
|
|
71
|
+
| filesystem | write | working_directory | description_analysis |
|
|
72
|
+
| filesystem | write | working_directory | description_analysis |
|
|
73
|
+
| filesystem | write | working_directory | description_analysis |
|
|
74
|
+
| filesystem | write | working_directory | description_analysis |
|
|
75
|
+
| filesystem | write | working_directory | description_analysis |
|
|
76
|
+
| filesystem | write | working_directory | description_analysis |
|
|
77
|
+
| filesystem | write | working_directory | description_analysis |
|
|
78
|
+
| filesystem | write | working_directory | description_analysis |
|
|
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 | working_directory | description_analysis |
|
|
84
|
+
| filesystem | write | working_directory | description_analysis |
|
|
85
|
+
| filesystem | write | working_directory | description_analysis |
|
|
86
|
+
| filesystem | write | working_directory | description_analysis |
|
|
87
|
+
| filesystem | write | working_directory | description_analysis |
|
|
88
|
+
| filesystem | execute | working_directory | description_analysis |
|
|
89
|
+
|
|
90
|
+
_Analyzed at 2026-07-09T15:15:06.521Z_
|
|
91
|
+
|
|
92
|
+
## Regressions and Recoveries
|
|
93
|
+
|
|
94
|
+
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
95
|
+
|
|
96
|
+
## Full Capability Status Table
|
|
97
|
+
|
|
98
|
+
| Focus | Check | Status | Duration (ms) | Message |
|
|
99
|
+
| --- | --- | --- | --- | --- |
|
|
100
|
+
| healthy | attack-sim | pass | 3.89 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
|
|
101
|
+
| healthy | conformance | pass | 11.03 | All 7 conformance checks passed. |
|
|
102
|
+
| healthy | runtime-profile | pass | 0.20 | Detected 4 potential egress target(s) and 23 potential state mutation(s) with low confidence. |
|
|
103
|
+
| healthy | schema-quality | pass | 7.39 | All 10 item(s) have good schema quality. |
|
|
104
|
+
| healthy | security | pass | 3.97 | No security issues detected. |
|
|
105
|
+
| healthy | security-lite | pass | 0.05 | No security issues detected (lightweight scan). |
|
|
106
|
+
| healthy | tools | pass | 6.68 | Advertised capability responded with the minimal expected shape (10 items). |
|
|
107
|
+
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
108
|
+
| confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
|
|
109
|
+
|
|
110
|
+
## Evidence Snippets
|
|
111
|
+
|
|
112
|
+
### attack-sim — pass
|
|
113
|
+
|
|
114
|
+
Summary: Safe attack simulation found no high-risk MCP attack-readiness findings.
|
|
115
|
+
|
|
116
|
+
- Endpoint: `attack-sim/safe`
|
|
117
|
+
- Advertised: `true`
|
|
118
|
+
- Responded: `true`
|
|
119
|
+
- Minimal shape present: `true`
|
|
120
|
+
- Item count: `0`
|
|
121
|
+
- Identifiers: none
|
|
122
|
+
- Diagnostics: none
|
|
123
|
+
|
|
124
|
+
### conformance — pass
|
|
125
|
+
|
|
126
|
+
Summary: All 7 conformance checks passed.
|
|
127
|
+
|
|
128
|
+
- Endpoint: `conformance/check`
|
|
129
|
+
- Advertised: `true`
|
|
130
|
+
- Responded: `true`
|
|
131
|
+
- Minimal shape present: `true`
|
|
132
|
+
- Item count: `7`
|
|
133
|
+
- Identifiers: none
|
|
134
|
+
- Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 10 tool(s). (+4 more)
|
|
135
|
+
|
|
136
|
+
### runtime-profile — pass
|
|
137
|
+
|
|
138
|
+
Summary: Detected 4 potential egress target(s) and 23 potential state mutation(s) with low confidence.
|
|
139
|
+
|
|
140
|
+
- Endpoint: `runtime-profile/analyze`
|
|
141
|
+
- Advertised: `true`
|
|
142
|
+
- Responded: `true`
|
|
143
|
+
- Minimal shape present: `true`
|
|
144
|
+
- Item count: `27`
|
|
145
|
+
- Identifiers: none
|
|
146
|
+
- Diagnostics: Egress entries: 4, State mutations: 23, Confidence: medium
|
|
147
|
+
|
|
148
|
+
### schema-quality — pass
|
|
149
|
+
|
|
150
|
+
Summary: All 10 item(s) have good schema quality.
|
|
151
|
+
|
|
152
|
+
- Endpoint: `schema-quality/scan`
|
|
153
|
+
- Advertised: `true`
|
|
154
|
+
- Responded: `true`
|
|
155
|
+
- Minimal shape present: `true`
|
|
156
|
+
- Item count: `0`
|
|
157
|
+
- Identifiers: none
|
|
158
|
+
- Diagnostics: none
|
|
159
|
+
|
|
160
|
+
### security — pass
|
|
161
|
+
|
|
162
|
+
Summary: No security issues detected.
|
|
163
|
+
|
|
164
|
+
- Endpoint: `security/scan`
|
|
165
|
+
- Advertised: `true`
|
|
166
|
+
- Responded: `true`
|
|
167
|
+
- Minimal shape present: `true`
|
|
168
|
+
- Item count: `0`
|
|
169
|
+
- Identifiers: none
|
|
170
|
+
- Diagnostics: none
|
|
171
|
+
|
|
172
|
+
### security-lite — pass
|
|
173
|
+
|
|
174
|
+
Summary: No security issues detected (lightweight scan).
|
|
175
|
+
|
|
176
|
+
- Endpoint: `security/scan-lite`
|
|
177
|
+
- Advertised: `true`
|
|
178
|
+
- Responded: `true`
|
|
179
|
+
- Minimal shape present: `true`
|
|
180
|
+
- Item count: `0`
|
|
181
|
+
- Identifiers: none
|
|
182
|
+
- Diagnostics: none
|
|
183
|
+
|
|
184
|
+
### tools — pass
|
|
185
|
+
|
|
186
|
+
Summary: Advertised capability responded with the minimal expected shape (10 items).
|
|
187
|
+
|
|
188
|
+
- Endpoint: `tools/list`
|
|
189
|
+
- Advertised: `true`
|
|
190
|
+
- Responded: `true`
|
|
191
|
+
- Minimal shape present: `true`
|
|
192
|
+
- Item count: `10`
|
|
193
|
+
- Identifiers: get_guidelines, run_ui5_linter, get_api_reference, get_project_info, create_ui5_app (+5 more)
|
|
194
|
+
- Diagnostics: none
|
|
195
|
+
|
|
196
|
+
### prompts — unsupported
|
|
197
|
+
|
|
198
|
+
Summary: Prompts are not advertised by the target.
|
|
199
|
+
|
|
200
|
+
- Endpoint: `prompts/list`
|
|
201
|
+
- Advertised: `false`
|
|
202
|
+
- Responded: `false`
|
|
203
|
+
- Minimal shape present: `false`
|
|
204
|
+
- Item count: `0`
|
|
205
|
+
- Identifiers: none
|
|
206
|
+
- Diagnostics: none
|
|
207
|
+
|
|
208
|
+
### resources — unsupported
|
|
209
|
+
|
|
210
|
+
Summary: Resources are not advertised by the target.
|
|
211
|
+
|
|
212
|
+
- Endpoint: `resources/list | resources/templates/list`
|
|
213
|
+
- Advertised: `false`
|
|
214
|
+
- Responded: `false`
|
|
215
|
+
- Minimal shape present: `false`
|
|
216
|
+
- Item count: `0`
|
|
217
|
+
- Identifiers: none
|
|
218
|
+
- Diagnostics: none
|
|
219
|
+
|
|
220
|
+
## Reproduction Commands
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
npm run cli -- run --target <path-to-target-config.json>
|
|
224
|
+
npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Artifact Provenance
|
|
228
|
+
|
|
229
|
+
- Artifact type: `run`
|
|
230
|
+
- Schema version: `1.0.0`
|
|
231
|
+
- Run ID: `run_2026-07-09T151505224Z_052ab101`
|
|
232
|
+
- Gate: `pass`
|
|
@@ -180,6 +180,23 @@
|
|
|
180
180
|
"whyItMatters": "Exposes 26 tools to agents, including file writes, branch creation, issue/PR creation, and PR merges across any repo a token can reach — high-stakes write access that needs a visible boundary before an agent is trusted with it.",
|
|
181
181
|
"reproductionNotes": "Zero-config package; tool listing succeeds without a real GitHub token, so this check is safe to run in CI. Note: npm currently flags this package as deprecated/no longer supported by the publisher — treat this target as compatibility evidence, not an endorsement of the package's maintenance status."
|
|
182
182
|
},
|
|
183
|
+
{
|
|
184
|
+
"id": "ui5-mcp-server",
|
|
185
|
+
"name": "UI5 MCP Server",
|
|
186
|
+
"repo": "https://github.com/UI5/mcp-server",
|
|
187
|
+
"packageName": "@ui5/mcp-server",
|
|
188
|
+
"category": "Developer Tools",
|
|
189
|
+
"command": "npx",
|
|
190
|
+
"args": [
|
|
191
|
+
"-y",
|
|
192
|
+
"@ui5/mcp-server"
|
|
193
|
+
],
|
|
194
|
+
"timeoutMs": 60000,
|
|
195
|
+
"riskClass": "UI5 project scaffolding and analysis",
|
|
196
|
+
"failureClass": "Framework tooling boundary",
|
|
197
|
+
"whyItMatters": "UI5 agents can scaffold applications, run UI5-specific analysis, and fetch framework guidance, so teams need reproducible evidence before trusting the tool surface.",
|
|
198
|
+
"reproductionNotes": "Zero-config public package; tool listing works without private credentials or a project fixture."
|
|
199
|
+
},
|
|
183
200
|
{
|
|
184
201
|
"id": "opentofu-server",
|
|
185
202
|
"name": "OpenTofu MCP server",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kryptosai/mcp-observatory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.32.0",
|
|
4
4
|
"description": "GitHub-native CI, SARIF, Code Scanning, and security gates for MCP servers before agents depend on them.",
|
|
5
5
|
"mcpName": "io.github.KryptosAI/mcp-observatory",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,6 +32,11 @@
|
|
|
32
32
|
},
|
|
33
33
|
"healthScore": { "$ref": "#/definitions/healthScore" },
|
|
34
34
|
"performanceMetrics": { "$ref": "#/definitions/performanceMetrics" },
|
|
35
|
+
"runtimeProfile": { "$ref": "#/definitions/runtimeProfile" },
|
|
36
|
+
"notObserved": {
|
|
37
|
+
"type": "array",
|
|
38
|
+
"items": { "$ref": "#/definitions/notObserved" }
|
|
39
|
+
},
|
|
35
40
|
"fatalError": { "type": "string" }
|
|
36
41
|
},
|
|
37
42
|
"definitions": {
|
|
@@ -51,7 +56,8 @@
|
|
|
51
56
|
"security-lite",
|
|
52
57
|
"attack-sim",
|
|
53
58
|
"conformance",
|
|
54
|
-
"schema-quality"
|
|
59
|
+
"schema-quality",
|
|
60
|
+
"runtime-profile"
|
|
55
61
|
]
|
|
56
62
|
},
|
|
57
63
|
"evidenceSummary": {
|
|
@@ -206,6 +212,55 @@
|
|
|
206
212
|
"additionalProperties": { "type": "number", "minimum": 0 }
|
|
207
213
|
}
|
|
208
214
|
}
|
|
215
|
+
},
|
|
216
|
+
"egressEntry": {
|
|
217
|
+
"type": "object",
|
|
218
|
+
"additionalProperties": false,
|
|
219
|
+
"required": ["target", "protocol", "source", "confidence"],
|
|
220
|
+
"properties": {
|
|
221
|
+
"target": { "type": "string" },
|
|
222
|
+
"protocol": { "type": "string" },
|
|
223
|
+
"source": { "type": "string" },
|
|
224
|
+
"confidence": { "type": "string", "enum": ["high", "medium", "low"] }
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
"stateMutation": {
|
|
228
|
+
"type": "object",
|
|
229
|
+
"additionalProperties": false,
|
|
230
|
+
"required": ["resource", "operation", "scope", "source"],
|
|
231
|
+
"properties": {
|
|
232
|
+
"resource": { "type": "string" },
|
|
233
|
+
"operation": { "type": "string" },
|
|
234
|
+
"scope": { "type": "string" },
|
|
235
|
+
"source": { "type": "string" }
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
"runtimeProfile": {
|
|
239
|
+
"type": "object",
|
|
240
|
+
"additionalProperties": false,
|
|
241
|
+
"required": ["analyzedAt", "confidence"],
|
|
242
|
+
"properties": {
|
|
243
|
+
"egress": {
|
|
244
|
+
"type": "array",
|
|
245
|
+
"items": { "$ref": "#/definitions/egressEntry" }
|
|
246
|
+
},
|
|
247
|
+
"stateMutations": {
|
|
248
|
+
"type": "array",
|
|
249
|
+
"items": { "$ref": "#/definitions/stateMutation" }
|
|
250
|
+
},
|
|
251
|
+
"analyzedAt": { "type": "string" },
|
|
252
|
+
"confidence": { "type": "string", "enum": ["high", "medium", "low"] }
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
"notObserved": {
|
|
256
|
+
"type": "object",
|
|
257
|
+
"additionalProperties": false,
|
|
258
|
+
"required": ["category", "detail", "severity"],
|
|
259
|
+
"properties": {
|
|
260
|
+
"category": { "type": "string" },
|
|
261
|
+
"detail": { "type": "string" },
|
|
262
|
+
"severity": { "type": "string", "enum": ["info", "warning"] }
|
|
263
|
+
}
|
|
209
264
|
}
|
|
210
265
|
}
|
|
211
266
|
}
|