@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
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-07-12T23:44:22.045Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `notion-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y @notionhq/notion-mcp-server`
|
|
10
|
+
- Server: `Notion API 1.0.0`
|
|
11
|
+
- Platform: `darwin 25.5.0`
|
|
12
|
+
- Node: `v22.22.1`
|
|
13
|
+
|
|
14
|
+
## Executive Summary
|
|
15
|
+
|
|
16
|
+
**Health Score: 83/100 (B)**
|
|
17
|
+
|
|
18
|
+
| Dimension | Score | Weight |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Protocol Compliance | 100/100 | 30% |
|
|
21
|
+
| Schema Quality | 60/100 | 20% |
|
|
22
|
+
| Security | 87/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 | 5 | 0 | 2 | 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: attack-sim: Safe attack simulation found 1 finding(s): 0 high, 1 medium, 0 low.; schema-quality: Found 31 quality finding(s) across 24 item(s): 0 warnings, 31 info.
|
|
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: schema-quality, attack-sim
|
|
37
|
+
- Skipped checks: none
|
|
38
|
+
- Unsupported checks: prompts, resources
|
|
39
|
+
- Suggested next step: Review the caveated checks next: schema-quality, 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
|
+
- âšī¸ 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
|
+
| If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results. | unknown | description_analysis | medium |
|
|
56
|
+
| The text that the API compares page and database titles against. | unknown | description_analysis | medium |
|
|
57
|
+
| A `cursor` value returned in a previous response that If supplied, limits the response to results starting after the `cursor`. If not supplied, then the first page of results is returned. Refer to [pagination](https://developers.notion.com/reference/intro#pagination) for more details. | unknown | description_analysis | medium |
|
|
58
|
+
| If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results. | unknown | description_analysis | medium |
|
|
59
|
+
| The content to be rendered on the new page, represented as an array of [block objects](https://developers.notion.com/reference/block). | unknown | description_analysis | medium |
|
|
60
|
+
| The icon of the new page. Either an [emoji object](https://developers.notion.com/reference/emoji-object) or an [external file object](https://developers.notion.com/reference/file-object).. | unknown | description_analysis | medium |
|
|
61
|
+
| The cover image of the new page, represented as a [file object](https://developers.notion.com/reference/file-object). | unknown | description_analysis | medium |
|
|
62
|
+
| Identifier for a page [property](https://developers.notion.com/reference/page#all-property-values) | unknown | description_analysis | medium |
|
|
63
|
+
| If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results. | unknown | description_analysis | medium |
|
|
64
|
+
| Whether to include meeting note transcripts. When false (default), a placeholder with the meeting note URL is shown instead of the full transcript. | unknown | description_analysis | medium |
|
|
65
|
+
|
|
66
|
+
### State Mutations
|
|
67
|
+
|
|
68
|
+
The following state-modifying operations were identified from tool schemas:
|
|
69
|
+
|
|
70
|
+
| Resource | Operation | Scope | Source |
|
|
71
|
+
| --- | --- | --- | --- |
|
|
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 | delete | 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 | 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
|
+
|
|
94
|
+
_Analyzed at 2026-07-12T23:44:22.854Z_
|
|
95
|
+
|
|
96
|
+
## Regressions and Recoveries
|
|
97
|
+
|
|
98
|
+
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
99
|
+
|
|
100
|
+
## Full Capability Status Table
|
|
101
|
+
|
|
102
|
+
| Focus | Check | Status | Duration (ms) | Message |
|
|
103
|
+
| --- | --- | --- | --- | --- |
|
|
104
|
+
| healthy | conformance | pass | 205.06 | All 7 conformance checks passed. |
|
|
105
|
+
| healthy | runtime-profile | pass | 0.17 | Detected 10 potential egress target(s) and 21 potential state mutation(s) with low confidence. |
|
|
106
|
+
| healthy | security | pass | 3.78 | No security issues detected. |
|
|
107
|
+
| healthy | security-lite | pass | 0.06 | No security issues detected (lightweight scan). |
|
|
108
|
+
| healthy | tools | pass | 1.80 | Advertised capability responded with the minimal expected shape (24 items). |
|
|
109
|
+
| review | attack-sim | partial | 3.11 | Safe attack simulation found 1 finding(s): 0 high, 1 medium, 0 low. |
|
|
110
|
+
| review | schema-quality | partial | 3.65 | Found 31 quality finding(s) across 24 item(s): 0 warnings, 31 info. |
|
|
111
|
+
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
112
|
+
| confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
|
|
113
|
+
|
|
114
|
+
## Evidence Snippets
|
|
115
|
+
|
|
116
|
+
### conformance â pass
|
|
117
|
+
|
|
118
|
+
Summary: All 7 conformance checks passed.
|
|
119
|
+
|
|
120
|
+
- Endpoint: `conformance/check`
|
|
121
|
+
- Advertised: `true`
|
|
122
|
+
- Responded: `true`
|
|
123
|
+
- Minimal shape present: `true`
|
|
124
|
+
- Item count: `7`
|
|
125
|
+
- Identifiers: none
|
|
126
|
+
- Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 24 tool(s). (+4 more)
|
|
127
|
+
|
|
128
|
+
### runtime-profile â pass
|
|
129
|
+
|
|
130
|
+
Summary: Detected 10 potential egress target(s) and 21 potential state mutation(s) with low confidence.
|
|
131
|
+
|
|
132
|
+
- Endpoint: `runtime-profile/analyze`
|
|
133
|
+
- Advertised: `true`
|
|
134
|
+
- Responded: `true`
|
|
135
|
+
- Minimal shape present: `true`
|
|
136
|
+
- Item count: `31`
|
|
137
|
+
- Identifiers: none
|
|
138
|
+
- Diagnostics: Egress entries: 10, State mutations: 21, Confidence: medium
|
|
139
|
+
|
|
140
|
+
### security â pass
|
|
141
|
+
|
|
142
|
+
Summary: No security issues detected.
|
|
143
|
+
|
|
144
|
+
- Endpoint: `security/scan`
|
|
145
|
+
- Advertised: `true`
|
|
146
|
+
- Responded: `true`
|
|
147
|
+
- Minimal shape present: `true`
|
|
148
|
+
- Item count: `0`
|
|
149
|
+
- Identifiers: none
|
|
150
|
+
- Diagnostics: none
|
|
151
|
+
|
|
152
|
+
### security-lite â pass
|
|
153
|
+
|
|
154
|
+
Summary: No security issues detected (lightweight scan).
|
|
155
|
+
|
|
156
|
+
- Endpoint: `security/scan-lite`
|
|
157
|
+
- Advertised: `true`
|
|
158
|
+
- Responded: `true`
|
|
159
|
+
- Minimal shape present: `true`
|
|
160
|
+
- Item count: `0`
|
|
161
|
+
- Identifiers: none
|
|
162
|
+
- Diagnostics: none
|
|
163
|
+
|
|
164
|
+
### tools â pass
|
|
165
|
+
|
|
166
|
+
Summary: Advertised capability responded with the minimal expected shape (24 items).
|
|
167
|
+
|
|
168
|
+
- Endpoint: `tools/list`
|
|
169
|
+
- Advertised: `true`
|
|
170
|
+
- Responded: `true`
|
|
171
|
+
- Minimal shape present: `true`
|
|
172
|
+
- Item count: `24`
|
|
173
|
+
- Identifiers: API-get-user, API-get-users, API-get-self, API-post-search, API-get-block-children (+19 more)
|
|
174
|
+
- Diagnostics: none
|
|
175
|
+
|
|
176
|
+
### attack-sim â partial
|
|
177
|
+
|
|
178
|
+
Summary: Safe attack simulation found 1 finding(s): 0 high, 1 medium, 0 low.
|
|
179
|
+
|
|
180
|
+
- Endpoint: `attack-sim/safe`
|
|
181
|
+
- Advertised: `true`
|
|
182
|
+
- Responded: `true`
|
|
183
|
+
- Minimal shape present: `true`
|
|
184
|
+
- Item count: `1`
|
|
185
|
+
- Identifiers: API-post-search
|
|
186
|
+
- Diagnostics: [medium] Tool "API-post-search" combines broad parameters (query) with destructive or non-read-only behavior.
|
|
187
|
+
|
|
188
|
+
### schema-quality â partial
|
|
189
|
+
|
|
190
|
+
Summary: Found 31 quality finding(s) across 24 item(s): 0 warnings, 31 info.
|
|
191
|
+
|
|
192
|
+
- Endpoint: `schema-quality/scan`
|
|
193
|
+
- Advertised: `true`
|
|
194
|
+
- Responded: `true`
|
|
195
|
+
- Minimal shape present: `true`
|
|
196
|
+
- Item count: `31`
|
|
197
|
+
- Identifiers: API-get-user, API-post-search, API-update-a-block, API-patch-page, API-post-page (+7 more)
|
|
198
|
+
- Diagnostics: [info] tool "API-get-user": Property 'user_id' missing description, [info] tool "API-post-search": Property 'sort' missing description, [info] tool "API-post-search": Property 'filter' missing description (+28 more)
|
|
199
|
+
|
|
200
|
+
### prompts â unsupported
|
|
201
|
+
|
|
202
|
+
Summary: Prompts are not advertised by the target.
|
|
203
|
+
|
|
204
|
+
- Endpoint: `prompts/list`
|
|
205
|
+
- Advertised: `false`
|
|
206
|
+
- Responded: `false`
|
|
207
|
+
- Minimal shape present: `false`
|
|
208
|
+
- Item count: `0`
|
|
209
|
+
- Identifiers: none
|
|
210
|
+
- Diagnostics: none
|
|
211
|
+
|
|
212
|
+
### resources â unsupported
|
|
213
|
+
|
|
214
|
+
Summary: Resources are not advertised by the target.
|
|
215
|
+
|
|
216
|
+
- Endpoint: `resources/list | resources/templates/list`
|
|
217
|
+
- Advertised: `false`
|
|
218
|
+
- Responded: `false`
|
|
219
|
+
- Minimal shape present: `false`
|
|
220
|
+
- Item count: `0`
|
|
221
|
+
- Identifiers: none
|
|
222
|
+
- Diagnostics: none
|
|
223
|
+
|
|
224
|
+
## Reproduction Commands
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
npm run cli -- run --target <path-to-target-config.json>
|
|
228
|
+
npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Artifact Provenance
|
|
232
|
+
|
|
233
|
+
- Artifact type: `run`
|
|
234
|
+
- Schema version: `1.0.0`
|
|
235
|
+
- Run ID: `run_2026-07-12T234422045Z_8961b236`
|
|
236
|
+
- Gate: `pass`
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "fail",
|
|
5
|
+
"runId": "run_2026-07-12T234436428Z_a347e581",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:36.428Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "onesignal-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@anthropic/mcp-server-onesignal"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "@anthropic/mcp-server-onesignal",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Push notification platform access",
|
|
21
|
+
"failureClass": "Notification/audience boundary",
|
|
22
|
+
"whyItMatters": "OneSignal MCP servers can send push notifications, manage segments, and configure messaging campaigns â agent-triggered notifications to real users is a high-stakes boundary."
|
|
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 `onesignal-server`.\nCommand: npx -y @anthropic/mcp-server-onesignal\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 '@anthropic/mcp-server-onesignal@*' 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_36_512Z-debug-0.log"
|
|
66
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-07-12T23:44:36.428Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `onesignal-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y @anthropic/mcp-server-onesignal`
|
|
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 `onesignal-server`.
|
|
47
|
+
Command: npx -y @anthropic/mcp-server-onesignal
|
|
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 '@anthropic/mcp-server-onesignal@*' 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_36_512Z-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-12T234436428Z_a347e581`
|
|
106
|
+
- 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-12T234406388Z_5a29ef6f",
|
|
6
|
+
"createdAt": "2026-07-12T23:44:06.388Z",
|
|
7
|
+
"toolVersion": "1.31.0",
|
|
8
8
|
"target": {
|
|
9
9
|
"targetId": "opentofu-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": 1,
|
|
36
36
|
"unsupported": 1,
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"id": "tools",
|
|
44
44
|
"capability": "tools",
|
|
45
45
|
"status": "pass",
|
|
46
|
-
"durationMs":
|
|
46
|
+
"durationMs": 2.5126669999990554,
|
|
47
47
|
"message": "Advertised capability responded with the minimal expected shape (5 items).",
|
|
48
48
|
"evidence": [
|
|
49
49
|
{
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
"id": "prompts",
|
|
207
207
|
"capability": "prompts",
|
|
208
208
|
"status": "unsupported",
|
|
209
|
-
"durationMs": 0.
|
|
209
|
+
"durationMs": 0.0014159999991534278,
|
|
210
210
|
"message": "Prompts are not advertised by the target.",
|
|
211
211
|
"evidence": [
|
|
212
212
|
{
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
"id": "resources",
|
|
223
223
|
"capability": "resources",
|
|
224
224
|
"status": "pass",
|
|
225
|
-
"durationMs": 0.
|
|
225
|
+
"durationMs": 0.6673750000009022,
|
|
226
226
|
"message": "Advertised capability responded with the minimal expected shape (1 items).",
|
|
227
227
|
"evidence": [
|
|
228
228
|
{
|
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
"id": "security-lite",
|
|
252
252
|
"capability": "security-lite",
|
|
253
253
|
"status": "pass",
|
|
254
|
-
"durationMs": 0.
|
|
254
|
+
"durationMs": 0.0253339999999298,
|
|
255
255
|
"message": "No security issues detected (lightweight scan).",
|
|
256
256
|
"evidence": [
|
|
257
257
|
{
|
|
@@ -263,11 +263,19 @@
|
|
|
263
263
|
}
|
|
264
264
|
]
|
|
265
265
|
},
|
|
266
|
+
{
|
|
267
|
+
"id": "runtime-profile",
|
|
268
|
+
"capability": "runtime-profile",
|
|
269
|
+
"status": "pass",
|
|
270
|
+
"durationMs": 0.07866699999976845,
|
|
271
|
+
"message": "No egress or state mutation indicators detected in tool schemas.",
|
|
272
|
+
"evidence": []
|
|
273
|
+
},
|
|
266
274
|
{
|
|
267
275
|
"id": "conformance",
|
|
268
276
|
"capability": "conformance",
|
|
269
277
|
"status": "pass",
|
|
270
|
-
"durationMs": 0.
|
|
278
|
+
"durationMs": 0.740124999998443,
|
|
271
279
|
"message": "All 7 conformance checks passed.",
|
|
272
280
|
"evidence": [
|
|
273
281
|
{
|
|
@@ -293,7 +301,7 @@
|
|
|
293
301
|
"id": "schema-quality",
|
|
294
302
|
"capability": "schema-quality",
|
|
295
303
|
"status": "partial",
|
|
296
|
-
"durationMs": 0.
|
|
304
|
+
"durationMs": 0.48324999999931606,
|
|
297
305
|
"message": "Found 1 quality finding(s) across 6 item(s): 1 warnings, 0 info.",
|
|
298
306
|
"evidence": [
|
|
299
307
|
{
|
|
@@ -323,7 +331,7 @@
|
|
|
323
331
|
"id": "security",
|
|
324
332
|
"capability": "security",
|
|
325
333
|
"status": "pass",
|
|
326
|
-
"durationMs": 0.
|
|
334
|
+
"durationMs": 0.15858300000036252,
|
|
327
335
|
"message": "No security issues detected.",
|
|
328
336
|
"evidence": [
|
|
329
337
|
{
|
|
@@ -339,7 +347,7 @@
|
|
|
339
347
|
"id": "attack-sim",
|
|
340
348
|
"capability": "attack-sim",
|
|
341
349
|
"status": "pass",
|
|
342
|
-
"durationMs": 0.
|
|
350
|
+
"durationMs": 0.38133299999935844,
|
|
343
351
|
"message": "Safe attack simulation found no high-risk MCP attack-readiness findings.",
|
|
344
352
|
"evidence": [
|
|
345
353
|
{
|
|
@@ -398,16 +406,20 @@
|
|
|
398
406
|
"weight": 0.1,
|
|
399
407
|
"score": 100,
|
|
400
408
|
"details": [
|
|
401
|
-
"Connect:
|
|
402
|
-
"p95 latency:
|
|
409
|
+
"Connect: 994ms",
|
|
410
|
+
"p95 latency: 3ms (3 operations)"
|
|
403
411
|
]
|
|
404
412
|
}
|
|
405
413
|
]
|
|
406
414
|
},
|
|
407
415
|
"performanceMetrics": {
|
|
408
|
-
"connectMs":
|
|
409
|
-
"toolsListMs":
|
|
410
|
-
"promptsListMs": 0.
|
|
411
|
-
"resourcesListMs": 0.
|
|
416
|
+
"connectMs": 994.146084,
|
|
417
|
+
"toolsListMs": 2.5126669999990554,
|
|
418
|
+
"promptsListMs": 0.0014159999991534278,
|
|
419
|
+
"resourcesListMs": 0.6673750000009022
|
|
420
|
+
},
|
|
421
|
+
"runtimeProfile": {
|
|
422
|
+
"analyzedAt": "2026-07-12T23:44:07.386Z",
|
|
423
|
+
"confidence": "low"
|
|
412
424
|
}
|
|
413
425
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-07-
|
|
3
|
+
Generated at 2026-07-12T23:44:06.388Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ Generated at 2026-07-06T19:49:53.212Z
|
|
|
25
25
|
|
|
26
26
|
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
27
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
-
| pass |
|
|
28
|
+
| pass | 9 | 7 | 0 | 1 | 1 | 0 | 0 |
|
|
29
29
|
|
|
30
30
|
## At a Glance
|
|
31
31
|
|
|
@@ -39,6 +39,17 @@ Generated at 2026-07-06T19:49:53.212Z
|
|
|
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
|
+
- đ 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
|
+
_Analyzed at 2026-07-12T23:44:07.386Z_
|
|
52
|
+
|
|
42
53
|
## Regressions and Recoveries
|
|
43
54
|
|
|
44
55
|
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
@@ -47,14 +58,15 @@ _Use the `diff` command against another run artifact to classify regressions and
|
|
|
47
58
|
|
|
48
59
|
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
60
|
| --- | --- | --- | --- | --- |
|
|
50
|
-
| healthy | attack-sim | pass | 0.
|
|
51
|
-
| healthy | conformance | pass | 0.
|
|
52
|
-
| healthy | resources | pass | 0.
|
|
61
|
+
| healthy | attack-sim | pass | 0.38 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
|
|
62
|
+
| healthy | conformance | pass | 0.74 | All 7 conformance checks passed. |
|
|
63
|
+
| healthy | resources | pass | 0.67 | Advertised capability responded with the minimal expected shape (1 items). |
|
|
64
|
+
| healthy | runtime-profile | pass | 0.08 | No egress or state mutation indicators detected in tool schemas. |
|
|
53
65
|
| healthy | security | pass | 0.16 | No security issues detected. |
|
|
54
|
-
| healthy | security-lite | pass | 0.
|
|
55
|
-
| healthy | tools | pass |
|
|
56
|
-
| review | schema-quality | partial | 0.
|
|
57
|
-
| confirm intent | prompts | unsupported | 0.
|
|
66
|
+
| healthy | security-lite | pass | 0.03 | No security issues detected (lightweight scan). |
|
|
67
|
+
| healthy | tools | pass | 2.51 | Advertised capability responded with the minimal expected shape (5 items). |
|
|
68
|
+
| review | schema-quality | partial | 0.48 | Found 1 quality finding(s) across 6 item(s): 1 warnings, 0 info. |
|
|
69
|
+
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
58
70
|
|
|
59
71
|
## Evidence Snippets
|
|
60
72
|
|
|
@@ -101,6 +113,12 @@ Summary: Advertised capability responded with the minimal expected shape (1 item
|
|
|
101
113
|
- Identifiers: none
|
|
102
114
|
- Diagnostics: none
|
|
103
115
|
|
|
116
|
+
### runtime-profile â pass
|
|
117
|
+
|
|
118
|
+
Summary: No egress or state mutation indicators detected in tool schemas.
|
|
119
|
+
|
|
120
|
+
_No evidence was captured._
|
|
121
|
+
|
|
104
122
|
### security â pass
|
|
105
123
|
|
|
106
124
|
Summary: No security issues detected.
|
|
@@ -172,5 +190,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
172
190
|
|
|
173
191
|
- Artifact type: `run`
|
|
174
192
|
- Schema version: `1.0.0`
|
|
175
|
-
- Run ID: `run_2026-07-
|
|
193
|
+
- Run ID: `run_2026-07-12T234406388Z_5a29ef6f`
|
|
176
194
|
- Gate: `pass`
|