@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.
Files changed (151) hide show
  1. package/PRIVACY.md +16 -0
  2. package/README.md +5 -11
  3. package/README.zh-CN.md +4 -10
  4. package/dist/src/cli.js +4 -2
  5. package/dist/src/cli.js.map +1 -1
  6. package/dist/src/commands/diff.js +24 -2
  7. package/dist/src/commands/diff.js.map +1 -1
  8. package/dist/src/commands/enforce.d.ts +2 -2
  9. package/dist/src/commands/enforce.js +5 -8
  10. package/dist/src/commands/enforce.js.map +1 -1
  11. package/dist/src/commands/scan.js.map +1 -1
  12. package/dist/src/commands/telemetry.js +41 -1
  13. package/dist/src/commands/telemetry.js.map +1 -1
  14. package/dist/src/commands/test.js +2 -2
  15. package/dist/src/commands/test.js.map +1 -1
  16. package/dist/src/diff.d.ts +5 -2
  17. package/dist/src/diff.js +23 -2
  18. package/dist/src/diff.js.map +1 -1
  19. package/dist/src/index.d.ts +1 -0
  20. package/dist/src/index.js +1 -0
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/permission-delta.d.ts +2 -0
  23. package/dist/src/permission-delta.js +99 -0
  24. package/dist/src/permission-delta.js.map +1 -0
  25. package/dist/src/reporters/common.d.ts +1 -0
  26. package/dist/src/reporters/common.js +3 -1
  27. package/dist/src/reporters/common.js.map +1 -1
  28. package/dist/src/reporters/html.js +30 -1
  29. package/dist/src/reporters/html.js.map +1 -1
  30. package/dist/src/reporters/markdown.js +21 -2
  31. package/dist/src/reporters/markdown.js.map +1 -1
  32. package/dist/src/reporters/pr-comment.js +1 -1
  33. package/dist/src/reporters/pr-comment.js.map +1 -1
  34. package/dist/src/reporters/terminal.js +9 -3
  35. package/dist/src/reporters/terminal.js.map +1 -1
  36. package/dist/src/risk-taxonomy.d.ts +16 -0
  37. package/dist/src/risk-taxonomy.js +95 -0
  38. package/dist/src/risk-taxonomy.js.map +1 -0
  39. package/dist/src/schema-diff.d.ts +2 -1
  40. package/dist/src/schema-diff.js +28 -3
  41. package/dist/src/schema-diff.js.map +1 -1
  42. package/dist/src/telemetry.d.ts +17 -0
  43. package/dist/src/telemetry.js +70 -2
  44. package/dist/src/telemetry.js.map +1 -1
  45. package/dist/src/types.d.ts +15 -0
  46. package/dist/src/validate.js +44 -2
  47. package/dist/src/validate.js.map +1 -1
  48. package/docs/mcp-server-safety-index.md +77 -15
  49. package/docs/safety-index/artifacts/antv-chart-server.json +1452 -19
  50. package/docs/safety-index/artifacts/antv-chart-server.md +156 -10
  51. package/docs/safety-index/artifacts/brave-search-server.json +341 -0
  52. package/docs/safety-index/artifacts/brave-search-server.md +201 -0
  53. package/docs/safety-index/artifacts/browsermcp-server.json +83 -18
  54. package/docs/safety-index/artifacts/browsermcp-server.md +46 -12
  55. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +592 -21
  56. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +96 -14
  57. package/docs/safety-index/artifacts/clay-server.json +66 -0
  58. package/docs/safety-index/artifacts/clay-server.md +106 -0
  59. package/docs/safety-index/artifacts/cloudflare-server.json +66 -0
  60. package/docs/safety-index/artifacts/cloudflare-server.md +106 -0
  61. package/docs/safety-index/artifacts/context7-server.json +85 -18
  62. package/docs/safety-index/artifacts/context7-server.md +52 -11
  63. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +1565 -34
  64. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +178 -17
  65. package/docs/safety-index/artifacts/docker-server.json +395 -0
  66. package/docs/safety-index/artifacts/docker-server.md +204 -0
  67. package/docs/safety-index/artifacts/everything-server.json +145 -18
  68. package/docs/safety-index/artifacts/everything-server.md +56 -11
  69. package/docs/safety-index/artifacts/exa-server.json +400 -0
  70. package/docs/safety-index/artifacts/exa-server.md +207 -0
  71. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +625 -18
  72. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +95 -11
  73. package/docs/safety-index/artifacts/fetch-server.json +66 -0
  74. package/docs/safety-index/artifacts/fetch-server.md +106 -0
  75. package/docs/safety-index/artifacts/figma-server.json +1766 -0
  76. package/docs/safety-index/artifacts/figma-server.md +256 -0
  77. package/docs/safety-index/artifacts/filesystem-mcp-server.json +428 -24
  78. package/docs/safety-index/artifacts/filesystem-mcp-server.md +75 -14
  79. package/docs/safety-index/artifacts/filesystem-server.json +426 -22
  80. package/docs/safety-index/artifacts/filesystem-server.md +73 -12
  81. package/docs/safety-index/artifacts/firecrawl-server.json +4056 -0
  82. package/docs/safety-index/artifacts/firecrawl-server.md +243 -0
  83. package/docs/safety-index/artifacts/github-mcp-server.json +374 -21
  84. package/docs/safety-index/artifacts/github-mcp-server.md +71 -15
  85. package/docs/safety-index/artifacts/gitlab-server.json +229 -0
  86. package/docs/safety-index/artifacts/gitlab-server.md +753 -0
  87. package/docs/safety-index/artifacts/gmail-server.json +66 -0
  88. package/docs/safety-index/artifacts/gmail-server.md +106 -0
  89. package/docs/safety-index/artifacts/google-calendar-server.json +66 -0
  90. package/docs/safety-index/artifacts/google-calendar-server.md +106 -0
  91. package/docs/safety-index/artifacts/google-drive-server.json +66 -0
  92. package/docs/safety-index/artifacts/google-drive-server.md +106 -0
  93. package/docs/safety-index/artifacts/google-sheets-server.json +66 -0
  94. package/docs/safety-index/artifacts/google-sheets-server.md +106 -0
  95. package/docs/safety-index/artifacts/google-tasks-server.json +66 -0
  96. package/docs/safety-index/artifacts/google-tasks-server.md +106 -0
  97. package/docs/safety-index/artifacts/huggingface-server.json +66 -0
  98. package/docs/safety-index/artifacts/huggingface-server.md +106 -0
  99. package/docs/safety-index/artifacts/jina-server.json +66 -0
  100. package/docs/safety-index/artifacts/jina-server.md +106 -0
  101. package/docs/safety-index/artifacts/kubernetes-server.json +1054 -27
  102. package/docs/safety-index/artifacts/kubernetes-server.md +137 -18
  103. package/docs/safety-index/artifacts/linear-server.json +1494 -0
  104. package/docs/safety-index/artifacts/linear-server.md +237 -0
  105. package/docs/safety-index/artifacts/memory-server.json +191 -18
  106. package/docs/safety-index/artifacts/memory-server.md +51 -9
  107. package/docs/safety-index/artifacts/mongodb-server.json +66 -0
  108. package/docs/safety-index/artifacts/mongodb-server.md +106 -0
  109. package/docs/safety-index/artifacts/neon-server.json +66 -0
  110. package/docs/safety-index/artifacts/neon-server.md +103 -0
  111. package/docs/safety-index/artifacts/notion-server.json +7151 -0
  112. package/docs/safety-index/artifacts/notion-server.md +236 -0
  113. package/docs/safety-index/artifacts/onesignal-server.json +66 -0
  114. package/docs/safety-index/artifacts/onesignal-server.md +106 -0
  115. package/docs/safety-index/artifacts/opentofu-server.json +31 -19
  116. package/docs/safety-index/artifacts/opentofu-server.md +28 -10
  117. package/docs/safety-index/artifacts/playwright-mcp-server.json +415 -24
  118. package/docs/safety-index/artifacts/playwright-mcp-server.md +84 -20
  119. package/docs/safety-index/artifacts/postgres-server.json +330 -0
  120. package/docs/safety-index/artifacts/postgres-server.md +208 -0
  121. package/docs/safety-index/artifacts/promptopia-server.json +96 -19
  122. package/docs/safety-index/artifacts/promptopia-server.md +43 -9
  123. package/docs/safety-index/artifacts/puppeteer-server.json +118 -29
  124. package/docs/safety-index/artifacts/puppeteer-server.md +61 -19
  125. package/docs/safety-index/artifacts/qdrant-server.json +66 -0
  126. package/docs/safety-index/artifacts/qdrant-server.md +106 -0
  127. package/docs/safety-index/artifacts/reddit-server.json +66 -0
  128. package/docs/safety-index/artifacts/reddit-server.md +106 -0
  129. package/docs/safety-index/artifacts/ref-tools-server.json +95 -18
  130. package/docs/safety-index/artifacts/ref-tools-server.md +45 -12
  131. package/docs/safety-index/artifacts/sentry-server.json +66 -0
  132. package/docs/safety-index/artifacts/sentry-server.md +106 -0
  133. package/docs/safety-index/artifacts/sequential-thinking-server.json +59 -18
  134. package/docs/safety-index/artifacts/sequential-thinking-server.md +41 -9
  135. package/docs/safety-index/artifacts/slack-server.json +66 -0
  136. package/docs/safety-index/artifacts/slack-server.md +102 -0
  137. package/docs/safety-index/artifacts/sqlite-server.json +67 -0
  138. package/docs/safety-index/artifacts/sqlite-server.md +106 -0
  139. package/docs/safety-index/artifacts/stripe-server.json +66 -0
  140. package/docs/safety-index/artifacts/stripe-server.md +106 -0
  141. package/docs/safety-index/artifacts/supabase-server.json +66 -0
  142. package/docs/safety-index/artifacts/supabase-server.md +102 -0
  143. package/docs/safety-index/artifacts/tavily-search-server.json +66 -0
  144. package/docs/safety-index/artifacts/tavily-search-server.md +106 -0
  145. package/docs/safety-index/artifacts/ui5-mcp-server.json +842 -0
  146. package/docs/safety-index/artifacts/ui5-mcp-server.md +232 -0
  147. package/docs/safety-index/artifacts/vercel-ai-server.json +66 -0
  148. package/docs/safety-index/artifacts/vercel-ai-server.md +106 -0
  149. package/docs/safety-index/targets.json +552 -0
  150. package/package.json +1 -1
  151. package/schemas/run-artifact.schema.json +56 -1
@@ -0,0 +1,256 @@
1
+ # MCP Observatory Run Report
2
+
3
+ Generated at 2026-07-12T23:44:24.039Z
4
+
5
+ ## Target and Environment Metadata
6
+
7
+ - Target: `figma-server`
8
+ - Adapter: `local-process`
9
+ - Command: `npx -y figma-mcp-express`
10
+ - Server: `figma-mcp-express 2.8.0`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
+
14
+ ## Executive Summary
15
+
16
+ **Health Score: 94/100 (A)**
17
+
18
+ | Dimension | Score | Weight |
19
+ | --- | --- | --- |
20
+ | Protocol Compliance | 100/100 | 30% |
21
+ | Schema Quality | 100/100 | 20% |
22
+ | Security | 87/100 | 20% |
23
+ | Reliability | 83/100 | 20% |
24
+ | Performance | 100/100 | 10% |
25
+
26
+ | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
+ | --- | --- | --- | --- | --- | --- | --- | --- |
28
+ | pass | 9 | 6 | 0 | 2 | 1 | 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 2 finding(s): 0 high, 2 medium, 0 low.; runtime-profile: Detected 18 potential egress target(s) and 32 potential state mutation(s) with high confidence.
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: runtime-profile, attack-sim
37
+ - Skipped checks: none
38
+ - Unsupported checks: resources
39
+ - Suggested next step: Review the caveated checks next: runtime-profile, 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
+ - 🔒 filesystem_mutation: Filesystem write operations were not exercised
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: **high**):
53
+
54
+ | Target | Protocol | Source | Confidence |
55
+ | --- | --- | --- | --- |
56
+ | origin | unknown | tool_schema | high |
57
+ | origin | unknown | tool_schema | high |
58
+ | origin | unknown | tool_schema | high |
59
+ | origin | unknown | tool_schema | high |
60
+ | origin | unknown | tool_schema | high |
61
+ | origin | unknown | tool_schema | high |
62
+ | origin | unknown | tool_schema | high |
63
+ | origin | unknown | tool_schema | high |
64
+ | origin | unknown | tool_schema | high |
65
+ | origin | unknown | tool_schema | high |
66
+ | origin | unknown | tool_schema | high |
67
+ | origin | unknown | tool_schema | high |
68
+ | origin | unknown | tool_schema | high |
69
+ | origin | unknown | tool_schema | high |
70
+ | origin | unknown | tool_schema | high |
71
+ | origin | unknown | tool_schema | high |
72
+ | origin | unknown | tool_schema | high |
73
+ | origin | unknown | tool_schema | high |
74
+
75
+ ### State Mutations
76
+
77
+ The following state-modifying operations were identified from tool schemas:
78
+
79
+ | Resource | Operation | Scope | Source |
80
+ | --- | --- | --- | --- |
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
+ | filesystem | write | working_directory | description_analysis |
94
+ | filesystem | write | working_directory | description_analysis |
95
+ | filesystem | write | working_directory | description_analysis |
96
+ | filesystem | write | working_directory | description_analysis |
97
+ | filesystem | write | working_directory | description_analysis |
98
+ | filesystem | write | working_directory | description_analysis |
99
+ | filesystem | write | working_directory | description_analysis |
100
+ | filesystem | write | working_directory | description_analysis |
101
+ | filesystem | write | working_directory | description_analysis |
102
+ | filesystem | write | working_directory | description_analysis |
103
+ | filesystem | write | working_directory | description_analysis |
104
+ | filesystem | write | working_directory | description_analysis |
105
+ | filesystem | write | working_directory | description_analysis |
106
+ | filesystem | write | working_directory | description_analysis |
107
+ | filesystem | write | working_directory | description_analysis |
108
+ | filesystem | write | working_directory | description_analysis |
109
+ | filesystem | write | working_directory | description_analysis |
110
+ | filesystem | write | working_directory | description_analysis |
111
+ | filesystem | write | working_directory | description_analysis |
112
+ | filesystem | write | working_directory | description_analysis |
113
+
114
+ _Analyzed at 2026-07-12T23:44:24.914Z_
115
+
116
+ ## Regressions and Recoveries
117
+
118
+ _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
119
+
120
+ ## Full Capability Status Table
121
+
122
+ | Focus | Check | Status | Duration (ms) | Message |
123
+ | --- | --- | --- | --- | --- |
124
+ | healthy | conformance | pass | 2.22 | All 7 conformance checks passed. |
125
+ | healthy | prompts | pass | 0.12 | Advertised capability responded with the minimal expected shape (4 items). |
126
+ | healthy | schema-quality | pass | 1.75 | All 26 item(s) have good schema quality. |
127
+ | healthy | security | pass | 1.24 | Found 1 security finding(s): 0 high, 0 medium, 1 low. |
128
+ | healthy | security-lite | pass | 0.06 | Found 1 security finding(s): 0 high, 0 medium, 1 low. |
129
+ | healthy | tools | pass | 1.61 | Advertised capability responded with the minimal expected shape (22 items). |
130
+ | review | attack-sim | partial | 2.76 | Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low. |
131
+ | review | runtime-profile | partial | 0.21 | Detected 18 potential egress target(s) and 32 potential state mutation(s) with high confidence. |
132
+ | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
133
+
134
+ ## Evidence Snippets
135
+
136
+ ### conformance — pass
137
+
138
+ Summary: All 7 conformance checks passed.
139
+
140
+ - Endpoint: `conformance/check`
141
+ - Advertised: `true`
142
+ - Responded: `true`
143
+ - Minimal shape present: `true`
144
+ - Item count: `7`
145
+ - Identifiers: none
146
+ - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 22 tool(s). (+4 more)
147
+
148
+ ### prompts — pass
149
+
150
+ Summary: Advertised capability responded with the minimal expected shape (4 items).
151
+
152
+ - Endpoint: `prompts/list`
153
+ - Advertised: `true`
154
+ - Responded: `true`
155
+ - Minimal shape present: `true`
156
+ - Item count: `4`
157
+ - Identifiers: design_token_generation_strategy, generate_color_palette, generate_component_variants, generate_type_scale
158
+ - Diagnostics: [leader] listening on 127.0.0.1:1994, [node] became LEADER, Starting figma-mcp-express 2.8.0 (role: LEADER)
159
+
160
+ ### schema-quality — pass
161
+
162
+ Summary: All 26 item(s) have good schema quality.
163
+
164
+ - Endpoint: `schema-quality/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 — pass
173
+
174
+ Summary: Found 1 security finding(s): 0 high, 0 medium, 1 low.
175
+
176
+ - Endpoint: `security/scan`
177
+ - Advertised: `true`
178
+ - Responded: `true`
179
+ - Minimal shape present: `true`
180
+ - Item count: `1`
181
+ - Identifiers: list_channels
182
+ - Diagnostics: [low] Tool "list_channels" has an empty schema but is marked as destructive.
183
+
184
+ ### security-lite — pass
185
+
186
+ Summary: Found 1 security finding(s): 0 high, 0 medium, 1 low.
187
+
188
+ - Endpoint: `security/scan-lite`
189
+ - Advertised: `true`
190
+ - Responded: `true`
191
+ - Minimal shape present: `true`
192
+ - Item count: `1`
193
+ - Identifiers: list_channels
194
+ - Diagnostics: [low] Tool "list_channels" has an empty schema but is marked as destructive.
195
+
196
+ ### tools — pass
197
+
198
+ Summary: Advertised capability responded with the minimal expected shape (22 items).
199
+
200
+ - Endpoint: `tools/list`
201
+ - Advertised: `true`
202
+ - Responded: `true`
203
+ - Minimal shape present: `true`
204
+ - Item count: `22`
205
+ - Identifiers: batch, export_frames_to_pdf, export_tokens, fetch_library_catalog, get_batch_op_spec (+17 more)
206
+ - Diagnostics: [leader] listening on 127.0.0.1:1994, [node] became LEADER, Starting figma-mcp-express 2.8.0 (role: LEADER)
207
+
208
+ ### attack-sim — partial
209
+
210
+ Summary: Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low.
211
+
212
+ - Endpoint: `attack-sim/safe`
213
+ - Advertised: `true`
214
+ - Responded: `true`
215
+ - Minimal shape present: `true`
216
+ - Item count: `2`
217
+ - Identifiers: search_batch_ops, search_nodes
218
+ - Diagnostics: [medium] Tool "search_batch_ops" combines broad parameters (query) with destructive or non-read-only behavior., [medium] Tool "search_nodes" combines broad parameters (query) with destructive or non-read-only behavior.
219
+
220
+ ### runtime-profile — partial
221
+
222
+ Summary: Detected 18 potential egress target(s) and 32 potential state mutation(s) with high confidence.
223
+
224
+ - Endpoint: `runtime-profile/analyze`
225
+ - Advertised: `true`
226
+ - Responded: `true`
227
+ - Minimal shape present: `true`
228
+ - Item count: `50`
229
+ - Identifiers: none
230
+ - Diagnostics: Egress entries: 18, State mutations: 32, Confidence: high
231
+
232
+ ### resources — unsupported
233
+
234
+ Summary: Resources are not advertised by the target.
235
+
236
+ - Endpoint: `resources/list | resources/templates/list`
237
+ - Advertised: `false`
238
+ - Responded: `false`
239
+ - Minimal shape present: `false`
240
+ - Item count: `0`
241
+ - Identifiers: none
242
+ - Diagnostics: none
243
+
244
+ ## Reproduction Commands
245
+
246
+ ```bash
247
+ npm run cli -- run --target <path-to-target-config.json>
248
+ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
249
+ ```
250
+
251
+ ## Artifact Provenance
252
+
253
+ - Artifact type: `run`
254
+ - Schema version: `1.0.0`
255
+ - Run ID: `run_2026-07-12T234424039Z_199e1d13`
256
+ - Gate: `pass`