@kryptosai/mcp-observatory 1.32.0 → 1.33.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.
Files changed (408) hide show
  1. package/README.md +9 -13
  2. package/README.zh-CN.md +4 -10
  3. package/dist/src/adapters/base.d.ts +14 -0
  4. package/dist/src/adapters/base.js +2 -0
  5. package/dist/src/adapters/base.js.map +1 -0
  6. package/dist/src/checks/semantics.d.ts +2 -0
  7. package/dist/src/checks/semantics.js +48 -0
  8. package/dist/src/checks/semantics.js.map +1 -0
  9. package/dist/src/cli.js +8 -2
  10. package/dist/src/cli.js.map +1 -1
  11. package/dist/src/commands/audit.js +7 -1
  12. package/dist/src/commands/audit.js.map +1 -1
  13. package/dist/src/commands/enforce.d.ts +2 -2
  14. package/dist/src/commands/enforce.js +19 -11
  15. package/dist/src/commands/enforce.js.map +1 -1
  16. package/dist/src/commands/helpers.d.ts +2 -0
  17. package/dist/src/commands/helpers.js +8 -1
  18. package/dist/src/commands/helpers.js.map +1 -1
  19. package/dist/src/commands/scan.d.ts +14 -0
  20. package/dist/src/commands/scan.js +42 -3
  21. package/dist/src/commands/scan.js.map +1 -1
  22. package/dist/src/commands/score.js +22 -1
  23. package/dist/src/commands/score.js.map +1 -1
  24. package/dist/src/commands/skill-scan.js +5 -3
  25. package/dist/src/commands/skill-scan.js.map +1 -1
  26. package/dist/src/commands/test.d.ts +19 -0
  27. package/dist/src/commands/test.js +70 -4
  28. package/dist/src/commands/test.js.map +1 -1
  29. package/dist/src/commercial.js +2 -2
  30. package/dist/src/commercial.js.map +1 -1
  31. package/dist/src/diff/diff.d.ts +2 -0
  32. package/dist/src/diff/diff.js +81 -0
  33. package/dist/src/diff/diff.js.map +1 -0
  34. package/dist/src/reporters/json.d.ts +2 -0
  35. package/dist/src/reporters/json.js +4 -0
  36. package/dist/src/reporters/json.js.map +1 -0
  37. package/dist/src/runner/runner.d.ts +2 -0
  38. package/dist/src/runner/runner.js +135 -0
  39. package/dist/src/runner/runner.js.map +1 -0
  40. package/dist/src/storage/filesystem.d.ts +6 -0
  41. package/dist/src/storage/filesystem.js +21 -0
  42. package/dist/src/storage/filesystem.js.map +1 -0
  43. package/dist/src/telemetry.d.ts +25 -3
  44. package/dist/src/telemetry.js +84 -18
  45. package/dist/src/telemetry.js.map +1 -1
  46. package/dist/src/validate.js +5 -6
  47. package/dist/src/validate.js.map +1 -1
  48. package/docs/mcp-server-safety-index.md +317 -8
  49. package/docs/safety-index/artifacts/1link-mcp.json +66 -0
  50. package/docs/safety-index/artifacts/1link-mcp.md +106 -0
  51. package/docs/safety-index/artifacts/aadhaar-mcp.json +66 -0
  52. package/docs/safety-index/artifacts/aadhaar-mcp.md +106 -0
  53. package/docs/safety-index/artifacts/aikidosec-mcp-server.json +536 -0
  54. package/docs/safety-index/artifacts/aikidosec-mcp-server.md +203 -0
  55. package/docs/safety-index/artifacts/aiou-mcp.json +66 -0
  56. package/docs/safety-index/artifacts/aiou-mcp.md +106 -0
  57. package/docs/safety-index/artifacts/airtable-mcp-server.json +66 -0
  58. package/docs/safety-index/artifacts/airtable-mcp-server.md +106 -0
  59. package/docs/safety-index/artifacts/alpaca-server.json +66 -0
  60. package/docs/safety-index/artifacts/alpaca-server.md +106 -0
  61. package/docs/safety-index/artifacts/antv-chart-server.json +1454 -21
  62. package/docs/safety-index/artifacts/antv-chart-server.md +155 -9
  63. package/docs/safety-index/artifacts/apify-mcp-server.json +66 -0
  64. package/docs/safety-index/artifacts/apify-mcp-server.md +103 -0
  65. package/docs/safety-index/artifacts/apple-music-server.json +66 -0
  66. package/docs/safety-index/artifacts/apple-music-server.md +102 -0
  67. package/docs/safety-index/artifacts/appwrite-mcp.json +66 -0
  68. package/docs/safety-index/artifacts/appwrite-mcp.md +106 -0
  69. package/docs/safety-index/artifacts/aqi-india-mcp.json +66 -0
  70. package/docs/safety-index/artifacts/aqi-india-mcp.md +106 -0
  71. package/docs/safety-index/artifacts/argocd-mcp-server.json +66 -0
  72. package/docs/safety-index/artifacts/argocd-mcp-server.md +106 -0
  73. package/docs/safety-index/artifacts/arxiv-mcp-server.json +66 -0
  74. package/docs/safety-index/artifacts/arxiv-mcp-server.md +100 -0
  75. package/docs/safety-index/artifacts/aws-mcp-server.json +66 -0
  76. package/docs/safety-index/artifacts/aws-mcp-server.md +103 -0
  77. package/docs/safety-index/artifacts/azure-devops-mcp-server.json +66 -0
  78. package/docs/safety-index/artifacts/azure-devops-mcp-server.md +106 -0
  79. package/docs/safety-index/artifacts/azure-mcp-server.json +66 -0
  80. package/docs/safety-index/artifacts/azure-mcp-server.md +102 -0
  81. package/docs/safety-index/artifacts/bhuvan-mcp.json +66 -0
  82. package/docs/safety-index/artifacts/bhuvan-mcp.md +106 -0
  83. package/docs/safety-index/artifacts/brave-search-mcp-server-v2.json +66 -0
  84. package/docs/safety-index/artifacts/brave-search-mcp-server-v2.md +103 -0
  85. package/docs/safety-index/artifacts/brave-search-server.json +341 -0
  86. package/docs/safety-index/artifacts/brave-search-server.md +201 -0
  87. package/docs/safety-index/artifacts/browsermcp-server.json +83 -18
  88. package/docs/safety-index/artifacts/browsermcp-server.md +46 -12
  89. package/docs/safety-index/artifacts/cal-com-mcp.json +66 -0
  90. package/docs/safety-index/artifacts/cal-com-mcp.md +106 -0
  91. package/docs/safety-index/artifacts/canvas-server.json +66 -0
  92. package/docs/safety-index/artifacts/canvas-server.md +105 -0
  93. package/docs/safety-index/artifacts/caselaw-server.json +66 -0
  94. package/docs/safety-index/artifacts/caselaw-server.md +106 -0
  95. package/docs/safety-index/artifacts/chatwoot-mcp.json +66 -0
  96. package/docs/safety-index/artifacts/chatwoot-mcp.md +102 -0
  97. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +596 -25
  98. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +97 -15
  99. package/docs/safety-index/artifacts/circleci-server.json +1606 -0
  100. package/docs/safety-index/artifacts/circleci-server.md +243 -0
  101. package/docs/safety-index/artifacts/clarity-server.json +794 -0
  102. package/docs/safety-index/artifacts/clarity-server.md +201 -0
  103. package/docs/safety-index/artifacts/clay-server.json +66 -0
  104. package/docs/safety-index/artifacts/clay-server.md +106 -0
  105. package/docs/safety-index/artifacts/clickup-mcp-server.json +66 -0
  106. package/docs/safety-index/artifacts/clickup-mcp-server.md +106 -0
  107. package/docs/safety-index/artifacts/cloudflare-mcp-server-v2.json +66 -0
  108. package/docs/safety-index/artifacts/cloudflare-mcp-server-v2.md +102 -0
  109. package/docs/safety-index/artifacts/cloudflare-server.json +66 -0
  110. package/docs/safety-index/artifacts/cloudflare-server.md +106 -0
  111. package/docs/safety-index/artifacts/coinbase-cds-server.json +322 -0
  112. package/docs/safety-index/artifacts/coinbase-cds-server.md +201 -0
  113. package/docs/safety-index/artifacts/confluence-mcp-server.json +1727 -0
  114. package/docs/safety-index/artifacts/confluence-mcp-server.md +255 -0
  115. package/docs/safety-index/artifacts/context7-server.json +85 -18
  116. package/docs/safety-index/artifacts/context7-server.md +52 -11
  117. package/docs/safety-index/artifacts/contract-analysis-server.json +66 -0
  118. package/docs/safety-index/artifacts/contract-analysis-server.md +106 -0
  119. package/docs/safety-index/artifacts/cowin-mcp.json +66 -0
  120. package/docs/safety-index/artifacts/cowin-mcp.md +106 -0
  121. package/docs/safety-index/artifacts/currents-mcp-server.json +66 -0
  122. package/docs/safety-index/artifacts/currents-mcp-server.md +102 -0
  123. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +1565 -34
  124. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +178 -17
  125. package/docs/safety-index/artifacts/dalle-server.json +66 -0
  126. package/docs/safety-index/artifacts/dalle-server.md +104 -0
  127. package/docs/safety-index/artifacts/daraz-mcp.json +66 -0
  128. package/docs/safety-index/artifacts/daraz-mcp.md +106 -0
  129. package/docs/safety-index/artifacts/desktop-commander-mcp-server.json +2348 -0
  130. package/docs/safety-index/artifacts/desktop-commander-mcp-server.md +266 -0
  131. package/docs/safety-index/artifacts/digilocker-mcp.json +66 -0
  132. package/docs/safety-index/artifacts/digilocker-mcp.md +106 -0
  133. package/docs/safety-index/artifacts/discord-mcp-server.json +1297 -0
  134. package/docs/safety-index/artifacts/discord-mcp-server.md +169 -0
  135. package/docs/safety-index/artifacts/discord-mcp.json +1023 -0
  136. package/docs/safety-index/artifacts/discord-mcp.md +229 -0
  137. package/docs/safety-index/artifacts/docker-server.json +395 -0
  138. package/docs/safety-index/artifacts/docker-server.md +204 -0
  139. package/docs/safety-index/artifacts/dynamodb-mcp-server.json +66 -0
  140. package/docs/safety-index/artifacts/dynamodb-mcp-server.md +103 -0
  141. package/docs/safety-index/artifacts/dynatrace-mcp-server.json +66 -0
  142. package/docs/safety-index/artifacts/dynatrace-mcp-server.md +103 -0
  143. package/docs/safety-index/artifacts/easypaisa-mcp.json +553 -0
  144. package/docs/safety-index/artifacts/easypaisa-mcp.md +205 -0
  145. package/docs/safety-index/artifacts/ehsaas-mcp.json +66 -0
  146. package/docs/safety-index/artifacts/ehsaas-mcp.md +106 -0
  147. package/docs/safety-index/artifacts/epic-server.json +66 -0
  148. package/docs/safety-index/artifacts/epic-server.md +106 -0
  149. package/docs/safety-index/artifacts/eslint-mcp-server.json +320 -0
  150. package/docs/safety-index/artifacts/eslint-mcp-server.md +201 -0
  151. package/docs/safety-index/artifacts/espn-server.json +394 -0
  152. package/docs/safety-index/artifacts/espn-server.md +187 -0
  153. package/docs/safety-index/artifacts/everything-server.json +145 -18
  154. package/docs/safety-index/artifacts/everything-server.md +56 -11
  155. package/docs/safety-index/artifacts/exa-server.json +400 -0
  156. package/docs/safety-index/artifacts/exa-server.md +207 -0
  157. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +625 -18
  158. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +95 -11
  159. package/docs/safety-index/artifacts/fbr-mcp.json +66 -0
  160. package/docs/safety-index/artifacts/fbr-mcp.md +106 -0
  161. package/docs/safety-index/artifacts/fetch-server.json +66 -0
  162. package/docs/safety-index/artifacts/fetch-server.md +106 -0
  163. package/docs/safety-index/artifacts/fhir-server.json +66 -0
  164. package/docs/safety-index/artifacts/fhir-server.md +100 -0
  165. package/docs/safety-index/artifacts/figma-server.json +1766 -0
  166. package/docs/safety-index/artifacts/figma-server.md +256 -0
  167. package/docs/safety-index/artifacts/filesystem-mcp-server.json +427 -23
  168. package/docs/safety-index/artifacts/filesystem-mcp-server.md +75 -14
  169. package/docs/safety-index/artifacts/filesystem-server.json +426 -22
  170. package/docs/safety-index/artifacts/filesystem-server.md +73 -12
  171. package/docs/safety-index/artifacts/firecrawl-server.json +4056 -0
  172. package/docs/safety-index/artifacts/firecrawl-server.md +243 -0
  173. package/docs/safety-index/artifacts/flight-server.json +66 -0
  174. package/docs/safety-index/artifacts/flight-server.md +106 -0
  175. package/docs/safety-index/artifacts/foodpanda-pakistan-mcp.json +66 -0
  176. package/docs/safety-index/artifacts/foodpanda-pakistan-mcp.md +106 -0
  177. package/docs/safety-index/artifacts/gcp-mcp-server.json +66 -0
  178. package/docs/safety-index/artifacts/gcp-mcp-server.md +103 -0
  179. package/docs/safety-index/artifacts/github-mcp-server.json +374 -21
  180. package/docs/safety-index/artifacts/github-mcp-server.md +71 -15
  181. package/docs/safety-index/artifacts/gitlab-server.json +229 -0
  182. package/docs/safety-index/artifacts/gitlab-server.md +753 -0
  183. package/docs/safety-index/artifacts/gmail-server.json +66 -0
  184. package/docs/safety-index/artifacts/gmail-server.md +106 -0
  185. package/docs/safety-index/artifacts/google-calendar-server.json +66 -0
  186. package/docs/safety-index/artifacts/google-calendar-server.md +106 -0
  187. package/docs/safety-index/artifacts/google-drive-server.json +66 -0
  188. package/docs/safety-index/artifacts/google-drive-server.md +106 -0
  189. package/docs/safety-index/artifacts/google-sheets-server.json +66 -0
  190. package/docs/safety-index/artifacts/google-sheets-server.md +106 -0
  191. package/docs/safety-index/artifacts/google-tasks-server.json +66 -0
  192. package/docs/safety-index/artifacts/google-tasks-server.md +106 -0
  193. package/docs/safety-index/artifacts/gst-mcp.json +66 -0
  194. package/docs/safety-index/artifacts/gst-mcp.md +106 -0
  195. package/docs/safety-index/artifacts/gupshup-mcp.json +66 -0
  196. package/docs/safety-index/artifacts/gupshup-mcp.md +106 -0
  197. package/docs/safety-index/artifacts/hasura-mcp.json +66 -0
  198. package/docs/safety-index/artifacts/hasura-mcp.md +106 -0
  199. package/docs/safety-index/artifacts/healthcare-ayushman-bharat-mcp.json +66 -0
  200. package/docs/safety-index/artifacts/healthcare-ayushman-bharat-mcp.md +106 -0
  201. package/docs/safety-index/artifacts/hec-pakistan-mcp.json +66 -0
  202. package/docs/safety-index/artifacts/hec-pakistan-mcp.md +106 -0
  203. package/docs/safety-index/artifacts/heroku-server.json +1502 -0
  204. package/docs/safety-index/artifacts/heroku-server.md +236 -0
  205. package/docs/safety-index/artifacts/homekit-server.json +66 -0
  206. package/docs/safety-index/artifacts/homekit-server.md +106 -0
  207. package/docs/safety-index/artifacts/hotel-booking-server.json +66 -0
  208. package/docs/safety-index/artifacts/hotel-booking-server.md +106 -0
  209. package/docs/safety-index/artifacts/hubspot-mcp-server.json +66 -0
  210. package/docs/safety-index/artifacts/hubspot-mcp-server.md +106 -0
  211. package/docs/safety-index/artifacts/huggingface-server.json +66 -0
  212. package/docs/safety-index/artifacts/huggingface-server.md +106 -0
  213. package/docs/safety-index/artifacts/indian-food-nutrition-mcp.json +663 -0
  214. package/docs/safety-index/artifacts/indian-food-nutrition-mcp.md +211 -0
  215. package/docs/safety-index/artifacts/irctc-mcp.json +66 -0
  216. package/docs/safety-index/artifacts/irctc-mcp.md +106 -0
  217. package/docs/safety-index/artifacts/jazz-mcp.json +66 -0
  218. package/docs/safety-index/artifacts/jazz-mcp.md +106 -0
  219. package/docs/safety-index/artifacts/jazzcash-mcp.json +66 -0
  220. package/docs/safety-index/artifacts/jazzcash-mcp.md +102 -0
  221. package/docs/safety-index/artifacts/jina-server.json +66 -0
  222. package/docs/safety-index/artifacts/jina-server.md +106 -0
  223. package/docs/safety-index/artifacts/jira-mcp-server.json +66 -0
  224. package/docs/safety-index/artifacts/jira-mcp-server.md +104 -0
  225. package/docs/safety-index/artifacts/k2-mcp.json +66 -0
  226. package/docs/safety-index/artifacts/k2-mcp.md +106 -0
  227. package/docs/safety-index/artifacts/karachi-stock-exchange-mcp.json +67 -0
  228. package/docs/safety-index/artifacts/karachi-stock-exchange-mcp.md +114 -0
  229. package/docs/safety-index/artifacts/khan-academy-server.json +66 -0
  230. package/docs/safety-index/artifacts/khan-academy-server.md +106 -0
  231. package/docs/safety-index/artifacts/kubernetes-server.json +1126 -29
  232. package/docs/safety-index/artifacts/kubernetes-server.md +141 -18
  233. package/docs/safety-index/artifacts/langfuse-mcp.json +66 -0
  234. package/docs/safety-index/artifacts/langfuse-mcp.md +106 -0
  235. package/docs/safety-index/artifacts/linear-server.json +1494 -0
  236. package/docs/safety-index/artifacts/linear-server.md +237 -0
  237. package/docs/safety-index/artifacts/mapmyindia-mcp.json +66 -0
  238. package/docs/safety-index/artifacts/mapmyindia-mcp.md +106 -0
  239. package/docs/safety-index/artifacts/memory-server.json +191 -18
  240. package/docs/safety-index/artifacts/memory-server.md +52 -10
  241. package/docs/safety-index/artifacts/minecraft-server.json +592 -0
  242. package/docs/safety-index/artifacts/minecraft-server.md +186 -0
  243. package/docs/safety-index/artifacts/mls-server.json +66 -0
  244. package/docs/safety-index/artifacts/mls-server.md +106 -0
  245. package/docs/safety-index/artifacts/mongodb-server.json +66 -0
  246. package/docs/safety-index/artifacts/mongodb-server.md +106 -0
  247. package/docs/safety-index/artifacts/mui-mcp-server.json +419 -0
  248. package/docs/safety-index/artifacts/mui-mcp-server.md +208 -0
  249. package/docs/safety-index/artifacts/mysql-mcp-server.json +66 -0
  250. package/docs/safety-index/artifacts/mysql-mcp-server.md +106 -0
  251. package/docs/safety-index/artifacts/nadra-mcp.json +66 -0
  252. package/docs/safety-index/artifacts/nadra-mcp.md +106 -0
  253. package/docs/safety-index/artifacts/neon-server.json +66 -0
  254. package/docs/safety-index/artifacts/neon-server.md +103 -0
  255. package/docs/safety-index/artifacts/notion-server.json +7151 -0
  256. package/docs/safety-index/artifacts/notion-server.md +236 -0
  257. package/docs/safety-index/artifacts/obsidian-mcp.json +66 -0
  258. package/docs/safety-index/artifacts/obsidian-mcp.md +106 -0
  259. package/docs/safety-index/artifacts/ola-maps-mcp.json +66 -0
  260. package/docs/safety-index/artifacts/ola-maps-mcp.md +106 -0
  261. package/docs/safety-index/artifacts/olx-pakistan-mcp.json +66 -0
  262. package/docs/safety-index/artifacts/olx-pakistan-mcp.md +106 -0
  263. package/docs/safety-index/artifacts/onesignal-server.json +66 -0
  264. package/docs/safety-index/artifacts/onesignal-server.md +106 -0
  265. package/docs/safety-index/artifacts/openai-mcp-server.json +66 -0
  266. package/docs/safety-index/artifacts/openai-mcp-server.md +106 -0
  267. package/docs/safety-index/artifacts/opentofu-server.json +30 -18
  268. package/docs/safety-index/artifacts/opentofu-server.md +27 -9
  269. package/docs/safety-index/artifacts/openweather-server.json +66 -0
  270. package/docs/safety-index/artifacts/openweather-server.md +106 -0
  271. package/docs/safety-index/artifacts/pakistan-cricket-mcp.json +66 -0
  272. package/docs/safety-index/artifacts/pakistan-cricket-mcp.md +106 -0
  273. package/docs/safety-index/artifacts/pakistan-post-mcp.json +66 -0
  274. package/docs/safety-index/artifacts/pakistan-post-mcp.md +106 -0
  275. package/docs/safety-index/artifacts/pakistan-weather-mcp.json +66 -0
  276. package/docs/safety-index/artifacts/pakistan-weather-mcp.md +106 -0
  277. package/docs/safety-index/artifacts/pakwheels-mcp.json +66 -0
  278. package/docs/safety-index/artifacts/pakwheels-mcp.md +106 -0
  279. package/docs/safety-index/artifacts/paytm-mcp.json +66 -0
  280. package/docs/safety-index/artifacts/paytm-mcp.md +106 -0
  281. package/docs/safety-index/artifacts/perplexity-mcp.json +66 -0
  282. package/docs/safety-index/artifacts/perplexity-mcp.md +106 -0
  283. package/docs/safety-index/artifacts/pims-mcp.json +66 -0
  284. package/docs/safety-index/artifacts/pims-mcp.md +106 -0
  285. package/docs/safety-index/artifacts/playwright-mcp-server.json +415 -24
  286. package/docs/safety-index/artifacts/playwright-mcp-server.md +84 -20
  287. package/docs/safety-index/artifacts/postgres-server.json +330 -0
  288. package/docs/safety-index/artifacts/postgres-server.md +208 -0
  289. package/docs/safety-index/artifacts/postman-india-region.json +66 -0
  290. package/docs/safety-index/artifacts/postman-india-region.md +102 -0
  291. package/docs/safety-index/artifacts/postman-mcp-server.json +66 -0
  292. package/docs/safety-index/artifacts/postman-mcp-server.md +102 -0
  293. package/docs/safety-index/artifacts/promptopia-server.json +95 -18
  294. package/docs/safety-index/artifacts/promptopia-server.md +44 -10
  295. package/docs/safety-index/artifacts/pubmed-mcp-server.json +58 -0
  296. package/docs/safety-index/artifacts/pubmed-mcp-server.md +96 -0
  297. package/docs/safety-index/artifacts/punjab-health-mcp.json +66 -0
  298. package/docs/safety-index/artifacts/punjab-health-mcp.md +106 -0
  299. package/docs/safety-index/artifacts/puppeteer-server.json +118 -29
  300. package/docs/safety-index/artifacts/puppeteer-server.md +62 -20
  301. package/docs/safety-index/artifacts/qase-server.json +7055 -0
  302. package/docs/safety-index/artifacts/qase-server.md +329 -0
  303. package/docs/safety-index/artifacts/qdrant-server.json +66 -0
  304. package/docs/safety-index/artifacts/qdrant-server.md +106 -0
  305. package/docs/safety-index/artifacts/raspberrypi-server.json +66 -0
  306. package/docs/safety-index/artifacts/raspberrypi-server.md +106 -0
  307. package/docs/safety-index/artifacts/razorpay-mcp.json +66 -0
  308. package/docs/safety-index/artifacts/razorpay-mcp.md +103 -0
  309. package/docs/safety-index/artifacts/reddit-server.json +66 -0
  310. package/docs/safety-index/artifacts/reddit-server.md +106 -0
  311. package/docs/safety-index/artifacts/redis-server.json +66 -0
  312. package/docs/safety-index/artifacts/redis-server.md +106 -0
  313. package/docs/safety-index/artifacts/ref-tools-server.json +95 -18
  314. package/docs/safety-index/artifacts/ref-tools-server.md +43 -10
  315. package/docs/safety-index/artifacts/resend-mcp.json +66 -0
  316. package/docs/safety-index/artifacts/resend-mcp.md +102 -0
  317. package/docs/safety-index/artifacts/rozgar-mcp.json +66 -0
  318. package/docs/safety-index/artifacts/rozgar-mcp.md +106 -0
  319. package/docs/safety-index/artifacts/s3-mcp-server.json +467 -0
  320. package/docs/safety-index/artifacts/s3-mcp-server.md +209 -0
  321. package/docs/safety-index/artifacts/salesforce-mcp-server.json +66 -0
  322. package/docs/safety-index/artifacts/salesforce-mcp-server.md +106 -0
  323. package/docs/safety-index/artifacts/sehat-sahulat-mcp.json +66 -0
  324. package/docs/safety-index/artifacts/sehat-sahulat-mcp.md +106 -0
  325. package/docs/safety-index/artifacts/sendgrid-mcp.json +66 -0
  326. package/docs/safety-index/artifacts/sendgrid-mcp.md +106 -0
  327. package/docs/safety-index/artifacts/sentry-server.json +66 -0
  328. package/docs/safety-index/artifacts/sentry-server.md +106 -0
  329. package/docs/safety-index/artifacts/sequential-thinking-server.json +59 -18
  330. package/docs/safety-index/artifacts/sequential-thinking-server.md +40 -8
  331. package/docs/safety-index/artifacts/shopify-mcp-server.json +66 -0
  332. package/docs/safety-index/artifacts/shopify-mcp-server.md +106 -0
  333. package/docs/safety-index/artifacts/shopify-mcp.json +66 -0
  334. package/docs/safety-index/artifacts/shopify-mcp.md +106 -0
  335. package/docs/safety-index/artifacts/shortcut-mcp-server.json +66 -0
  336. package/docs/safety-index/artifacts/shortcut-mcp-server.md +102 -0
  337. package/docs/safety-index/artifacts/slack-server.json +66 -0
  338. package/docs/safety-index/artifacts/slack-server.md +102 -0
  339. package/docs/safety-index/artifacts/smartbear-mcp-server.json +21483 -0
  340. package/docs/safety-index/artifacts/smartbear-mcp-server.md +900 -0
  341. package/docs/safety-index/artifacts/spotify-mcp.json +2071 -0
  342. package/docs/safety-index/artifacts/spotify-mcp.md +237 -0
  343. package/docs/safety-index/artifacts/spotify-server.json +66 -0
  344. package/docs/safety-index/artifacts/spotify-server.md +106 -0
  345. package/docs/safety-index/artifacts/sqlite-server.json +67 -0
  346. package/docs/safety-index/artifacts/sqlite-server.md +106 -0
  347. package/docs/safety-index/artifacts/stable-diffusion-server.json +66 -0
  348. package/docs/safety-index/artifacts/stable-diffusion-server.md +106 -0
  349. package/docs/safety-index/artifacts/stock-nse-india.json +66 -0
  350. package/docs/safety-index/artifacts/stock-nse-india.md +106 -0
  351. package/docs/safety-index/artifacts/storybook-mcp-server.json +66 -0
  352. package/docs/safety-index/artifacts/storybook-mcp-server.md +103 -0
  353. package/docs/safety-index/artifacts/stripe-server.json +66 -0
  354. package/docs/safety-index/artifacts/stripe-server.md +106 -0
  355. package/docs/safety-index/artifacts/supabase-server.json +66 -0
  356. package/docs/safety-index/artifacts/supabase-server.md +102 -0
  357. package/docs/safety-index/artifacts/tavily-search-server.json +66 -0
  358. package/docs/safety-index/artifacts/tavily-search-server.md +106 -0
  359. package/docs/safety-index/artifacts/telegram-mcp-server.json +66 -0
  360. package/docs/safety-index/artifacts/telegram-mcp-server.md +103 -0
  361. package/docs/safety-index/artifacts/telenor-pakistan-mcp.json +66 -0
  362. package/docs/safety-index/artifacts/telenor-pakistan-mcp.md +106 -0
  363. package/docs/safety-index/artifacts/textlocal-mcp.json +66 -0
  364. package/docs/safety-index/artifacts/textlocal-mcp.md +106 -0
  365. package/docs/safety-index/artifacts/tooljet-mcp.json +66 -0
  366. package/docs/safety-index/artifacts/tooljet-mcp.md +106 -0
  367. package/docs/safety-index/artifacts/transcend-server.json +3438 -0
  368. package/docs/safety-index/artifacts/transcend-server.md +277 -0
  369. package/docs/safety-index/artifacts/trello-mcp-server.json +916 -0
  370. package/docs/safety-index/artifacts/trello-mcp-server.md +211 -0
  371. package/docs/safety-index/artifacts/twilio-mcp.json +66 -0
  372. package/docs/safety-index/artifacts/twilio-mcp.md +106 -0
  373. package/docs/safety-index/artifacts/udyam-mcp.json +66 -0
  374. package/docs/safety-index/artifacts/udyam-mcp.md +106 -0
  375. package/docs/safety-index/artifacts/ufone-mcp.json +66 -0
  376. package/docs/safety-index/artifacts/ufone-mcp.md +106 -0
  377. package/docs/safety-index/artifacts/ui5-mcp-server.json +24 -24
  378. package/docs/safety-index/artifacts/ui5-mcp-server.md +13 -13
  379. package/docs/safety-index/artifacts/unity-server.json +66 -0
  380. package/docs/safety-index/artifacts/unity-server.md +102 -0
  381. package/docs/safety-index/artifacts/upi-mcp.json +452 -0
  382. package/docs/safety-index/artifacts/upi-mcp.md +201 -0
  383. package/docs/safety-index/artifacts/vercel-ai-server.json +66 -0
  384. package/docs/safety-index/artifacts/vercel-ai-server.md +106 -0
  385. package/docs/safety-index/artifacts/vimeo-server.json +66 -0
  386. package/docs/safety-index/artifacts/vimeo-server.md +106 -0
  387. package/docs/safety-index/artifacts/weather-server.json +66 -0
  388. package/docs/safety-index/artifacts/weather-server.md +106 -0
  389. package/docs/safety-index/artifacts/whatsapp-business-mcp.json +66 -0
  390. package/docs/safety-index/artifacts/whatsapp-business-mcp.md +106 -0
  391. package/docs/safety-index/artifacts/whatsapp-mcp-server.json +66 -0
  392. package/docs/safety-index/artifacts/whatsapp-mcp-server.md +106 -0
  393. package/docs/safety-index/artifacts/whatsapp-mcp.json +66 -0
  394. package/docs/safety-index/artifacts/whatsapp-mcp.md +106 -0
  395. package/docs/safety-index/artifacts/yahoo-finance-server.json +626 -0
  396. package/docs/safety-index/artifacts/yahoo-finance-server.md +187 -0
  397. package/docs/safety-index/artifacts/youtube-mcp-server.json +58 -0
  398. package/docs/safety-index/artifacts/youtube-mcp-server.md +96 -0
  399. package/docs/safety-index/artifacts/youtube-server.json +66 -0
  400. package/docs/safety-index/artifacts/youtube-server.md +103 -0
  401. package/docs/safety-index/artifacts/zendesk-mcp.json +66 -0
  402. package/docs/safety-index/artifacts/zendesk-mcp.md +106 -0
  403. package/docs/safety-index/artifacts/zillow-server.json +66 -0
  404. package/docs/safety-index/artifacts/zillow-server.md +102 -0
  405. package/docs/safety-index/artifacts/zong-mcp.json +66 -0
  406. package/docs/safety-index/artifacts/zong-mcp.md +106 -0
  407. package/docs/safety-index/targets.json +2663 -3
  408. package/package.json +10 -9
@@ -0,0 +1,255 @@
1
+ # MCP Observatory Run Report
2
+
3
+ Generated at 2026-07-15T22:34:57.590Z
4
+
5
+ ## Target and Environment Metadata
6
+
7
+ - Target: `confluence-mcp-server`
8
+ - Adapter: `local-process`
9
+ - Command: `npx -y confluence-mcp-server`
10
+ - Server: `confluence-mcp-server 1.3.3`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
+
14
+ ## Executive Summary
15
+
16
+ **Health Score: 69/100 (D)**
17
+
18
+ | Dimension | Score | Weight |
19
+ | --- | --- | --- |
20
+ | Protocol Compliance | 100/100 | 30% |
21
+ | Schema Quality | 60/100 | 20% |
22
+ | Security | 20/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 | 2 | 2 | 3 | 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: attack-sim: Safe attack simulation found 1 finding(s): 0 high, 1 medium, 0 low.; runtime-profile: Detected 6 potential egress target(s) and 44 potential state mutation(s) with high confidence.; schema-quality: Found 3 quality finding(s) across 25 item(s): 0 warnings, 3 info.
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
36
+ - Partial or flaky checks: runtime-profile, schema-quality, attack-sim
37
+ - Skipped checks: none
38
+ - Unsupported checks: prompts, resources
39
+ - Suggested next step: Start with the failing checks: security-lite, security.
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: **high**):
52
+
53
+ | Target | Protocol | Source | Confidence |
54
+ | --- | --- | --- | --- |
55
+ | baseUrl | unknown | tool_schema | high |
56
+ | Confluence base URL, for example https://confluence.example.com. Required for first configuration; omitted values inherit the current connection. | unknown | description_analysis | medium |
57
+ | Access token. Cloud treats this as an API token; Server auto mode treats it as Bearer. | unknown | description_analysis | medium |
58
+ | confluence_search_pages | unknown | description_analysis | low |
59
+ | confluence_execute_cql_search | unknown | description_analysis | low |
60
+ | Base64 file content, optionally as a data URL | unknown | description_analysis | medium |
61
+
62
+ ### State Mutations
63
+
64
+ The following state-modifying operations were identified from tool schemas:
65
+
66
+ | Resource | Operation | Scope | Source |
67
+ | --- | --- | --- | --- |
68
+ | filesystem | write | working_directory | description_analysis |
69
+ | filesystem | write | working_directory | description_analysis |
70
+ | filesystem | write | 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 | 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 | tool_schema |
107
+ | filesystem | write | working_directory | tool_schema |
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
+
113
+ _Analyzed at 2026-07-15T22:34:58.279Z_
114
+
115
+ ## Regressions and Recoveries
116
+
117
+ _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
118
+
119
+ ## Full Capability Status Table
120
+
121
+ | Focus | Check | Status | Duration (ms) | Message |
122
+ | --- | --- | --- | --- | --- |
123
+ | healthy | conformance | pass | 1.94 | All 7 conformance checks passed. |
124
+ | healthy | tools | pass | 4.51 | Advertised capability responded with the minimal expected shape (25 items). |
125
+ | review | attack-sim | partial | 0.83 | Safe attack simulation found 1 finding(s): 0 high, 1 medium, 0 low. |
126
+ | review | runtime-profile | partial | 0.28 | Detected 6 potential egress target(s) and 44 potential state mutation(s) with high confidence. |
127
+ | review | schema-quality | partial | 1.05 | Found 3 quality finding(s) across 25 item(s): 0 warnings, 3 info. |
128
+ | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
129
+ | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
130
+ | act now | security | fail | 0.87 | Found 1 security finding(s): 1 high, 0 medium, 0 low. |
131
+ | act now | security-lite | fail | 0.06 | Found 1 security finding(s): 1 high, 0 medium, 0 low. |
132
+
133
+ ## Evidence Snippets
134
+
135
+ ### conformance — pass
136
+
137
+ Summary: All 7 conformance checks passed.
138
+
139
+ - Endpoint: `conformance/check`
140
+ - Advertised: `true`
141
+ - Responded: `true`
142
+ - Minimal shape present: `true`
143
+ - Item count: `7`
144
+ - Identifiers: none
145
+ - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 25 tool(s). (+4 more)
146
+
147
+ ### tools — pass
148
+
149
+ Summary: Advertised capability responded with the minimal expected shape (25 items).
150
+
151
+ - Endpoint: `tools/list`
152
+ - Advertised: `true`
153
+ - Responded: `true`
154
+ - Minimal shape present: `true`
155
+ - Item count: `25`
156
+ - Identifiers: confluence_configure_connection, confluence_get_connection_status, confluence_get_current_user, confluence_search_pages, confluence_execute_cql_search (+20 more)
157
+ - Diagnostics: [confluence-mcp] No CONF_* connection env vars found; starting unconfigured., [confluence-mcp] Server running on stdio
158
+
159
+ ### attack-sim — partial
160
+
161
+ Summary: Safe attack simulation found 1 finding(s): 0 high, 1 medium, 0 low.
162
+
163
+ - Endpoint: `attack-sim/safe`
164
+ - Advertised: `true`
165
+ - Responded: `true`
166
+ - Minimal shape present: `true`
167
+ - Item count: `1`
168
+ - Identifiers: confluence_upload_attachment
169
+ - Diagnostics: [medium] Tool "confluence_upload_attachment" combines broad parameters (filePath, fileName) with destructive or non-read-only behavior.
170
+
171
+ ### runtime-profile — partial
172
+
173
+ Summary: Detected 6 potential egress target(s) and 44 potential state mutation(s) with high confidence.
174
+
175
+ - Endpoint: `runtime-profile/analyze`
176
+ - Advertised: `true`
177
+ - Responded: `true`
178
+ - Minimal shape present: `true`
179
+ - Item count: `50`
180
+ - Identifiers: none
181
+ - Diagnostics: Egress entries: 6, State mutations: 44, Confidence: high
182
+
183
+ ### schema-quality — partial
184
+
185
+ Summary: Found 3 quality finding(s) across 25 item(s): 0 warnings, 3 info.
186
+
187
+ - Endpoint: `schema-quality/scan`
188
+ - Advertised: `true`
189
+ - Responded: `true`
190
+ - Minimal shape present: `true`
191
+ - Item count: `3`
192
+ - Identifiers: confluence_configure_connection, confluence_search_pages, confluence_list_pending_page_updates
193
+ - Diagnostics: [info] tool "confluence_configure_connection": Has properties but no 'required' array declared, [info] tool "confluence_search_pages": Has properties but no 'required' array declared, [info] tool "confluence_list_pending_page_updates": Has properties but no 'required' array declared
194
+
195
+ ### prompts — unsupported
196
+
197
+ Summary: Prompts are not advertised by the target.
198
+
199
+ - Endpoint: `prompts/list`
200
+ - Advertised: `false`
201
+ - Responded: `false`
202
+ - Minimal shape present: `false`
203
+ - Item count: `0`
204
+ - Identifiers: none
205
+ - Diagnostics: none
206
+
207
+ ### resources — unsupported
208
+
209
+ Summary: Resources are not advertised by the target.
210
+
211
+ - Endpoint: `resources/list | resources/templates/list`
212
+ - Advertised: `false`
213
+ - Responded: `false`
214
+ - Minimal shape present: `false`
215
+ - Item count: `0`
216
+ - Identifiers: none
217
+ - Diagnostics: none
218
+
219
+ ### security — fail
220
+
221
+ Summary: Found 1 security finding(s): 1 high, 0 medium, 0 low.
222
+
223
+ - Endpoint: `security/scan`
224
+ - Advertised: `true`
225
+ - Responded: `true`
226
+ - Minimal shape present: `true`
227
+ - Item count: `1`
228
+ - Identifiers: confluence_execute_cql_search
229
+ - Diagnostics: [high] Tool "confluence_execute_cql_search" name suggests command execution capability.
230
+
231
+ ### security-lite — fail
232
+
233
+ Summary: Found 1 security finding(s): 1 high, 0 medium, 0 low.
234
+
235
+ - Endpoint: `security/scan-lite`
236
+ - Advertised: `true`
237
+ - Responded: `true`
238
+ - Minimal shape present: `true`
239
+ - Item count: `1`
240
+ - Identifiers: confluence_execute_cql_search
241
+ - Diagnostics: [high] Tool "confluence_execute_cql_search" name suggests command execution capability.
242
+
243
+ ## Reproduction Commands
244
+
245
+ ```bash
246
+ npm run cli -- run --target <path-to-target-config.json>
247
+ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
248
+ ```
249
+
250
+ ## Artifact Provenance
251
+
252
+ - Artifact type: `run`
253
+ - Schema version: `1.0.0`
254
+ - Run ID: `run_2026-07-15T223457590Z_5e715cc0`
255
+ - 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-06T194948132Z_cb0c4915",
6
- "createdAt": "2026-07-06T19:49:48.132Z",
7
- "toolVersion": "0.28.0",
5
+ "runId": "run_2026-07-15T223317716Z_6b43b34a",
6
+ "createdAt": "2026-07-15T22:33:17.716Z",
7
+ "toolVersion": "1.32.1",
8
8
  "target": {
9
9
  "targetId": "context7-server",
10
10
  "adapter": "local-process",
@@ -29,8 +29,8 @@
29
29
  "nodeVersion": "v22.22.1"
30
30
  },
31
31
  "summary": {
32
- "total": 8,
33
- "pass": 7,
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": 1.788749999999709,
46
+ "durationMs": 1.6031249999996362,
47
47
  "message": "Advertised capability responded with the minimal expected shape (2 items).",
48
48
  "evidence": [
49
49
  {
@@ -104,7 +104,7 @@
104
104
  "id": "prompts",
105
105
  "capability": "prompts",
106
106
  "status": "pass",
107
- "durationMs": 0.2839160000003176,
107
+ "durationMs": 0.2611249999999927,
108
108
  "message": "Advertised capability responded with the minimal expected shape (0 items).",
109
109
  "evidence": [
110
110
  {
@@ -124,7 +124,7 @@
124
124
  "id": "resources",
125
125
  "capability": "resources",
126
126
  "status": "pass",
127
- "durationMs": 0.4017499999999927,
127
+ "durationMs": 0.3718750000007276,
128
128
  "message": "Advertised capability responded with the minimal expected shape (0 items).",
129
129
  "evidence": [
130
130
  {
@@ -155,7 +155,7 @@
155
155
  "id": "security-lite",
156
156
  "capability": "security-lite",
157
157
  "status": "pass",
158
- "durationMs": 0.02495900000030815,
158
+ "durationMs": 0.026667000000088592,
159
159
  "message": "No security issues detected (lightweight scan).",
160
160
  "evidence": [
161
161
  {
@@ -167,11 +167,52 @@
167
167
  }
168
168
  ]
169
169
  },
170
+ {
171
+ "id": "runtime-profile",
172
+ "capability": "runtime-profile",
173
+ "status": "pass",
174
+ "durationMs": 0.2845000000006621,
175
+ "message": "Detected 2 potential egress target(s) and 1 potential state mutation(s) with low confidence.",
176
+ "evidence": [
177
+ {
178
+ "endpoint": "runtime-profile/analyze",
179
+ "advertised": true,
180
+ "responded": true,
181
+ "minimalShapePresent": true,
182
+ "itemCount": 3,
183
+ "diagnostics": [
184
+ "Egress entries: 2",
185
+ "State mutations: 1",
186
+ "Confidence: medium"
187
+ ],
188
+ "findings": [
189
+ {
190
+ "target": "The question or task you need help with. This is used to rank library results by relevance to what the user is trying to accomplish. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query.",
191
+ "protocol": "unknown",
192
+ "source": "description_analysis",
193
+ "confidence": "medium"
194
+ },
195
+ {
196
+ "target": "The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad (too vague): 'auth' or 'hooks'. Bad (too broad): 'routing and auth and caching in Next.js'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query.",
197
+ "protocol": "unknown",
198
+ "source": "description_analysis",
199
+ "confidence": "medium"
200
+ },
201
+ {
202
+ "resource": "filesystem",
203
+ "operation": "write",
204
+ "scope": "working_directory",
205
+ "source": "description_analysis"
206
+ }
207
+ ]
208
+ }
209
+ ]
210
+ },
170
211
  {
171
212
  "id": "conformance",
172
213
  "capability": "conformance",
173
214
  "status": "pass",
174
- "durationMs": 1.094916000000012,
215
+ "durationMs": 1.04595800000061,
175
216
  "message": "All 7 conformance checks passed.",
176
217
  "evidence": [
177
218
  {
@@ -197,7 +238,7 @@
197
238
  "id": "schema-quality",
198
239
  "capability": "schema-quality",
199
240
  "status": "pass",
200
- "durationMs": 0.5149579999997513,
241
+ "durationMs": 0.4874160000008487,
201
242
  "message": "All 2 item(s) have good schema quality.",
202
243
  "evidence": [
203
244
  {
@@ -214,7 +255,7 @@
214
255
  "id": "security",
215
256
  "capability": "security",
216
257
  "status": "pass",
217
- "durationMs": 0.20175000000017462,
258
+ "durationMs": 0.25229200000012497,
218
259
  "message": "No security issues detected.",
219
260
  "evidence": [
220
261
  {
@@ -230,7 +271,7 @@
230
271
  "id": "attack-sim",
231
272
  "capability": "attack-sim",
232
273
  "status": "partial",
233
- "durationMs": 1.0464579999998023,
274
+ "durationMs": 1.4219579999999041,
234
275
  "message": "Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low.",
235
276
  "evidence": [
236
277
  {
@@ -328,16 +369,42 @@
328
369
  "weight": 0.1,
329
370
  "score": 100,
330
371
  "details": [
331
- "Connect: 753ms",
372
+ "Connect: 1506ms",
332
373
  "p95 latency: 2ms (3 operations)"
333
374
  ]
334
375
  }
335
376
  ]
336
377
  },
337
378
  "performanceMetrics": {
338
- "connectMs": 753.3337500000002,
339
- "toolsListMs": 1.788749999999709,
340
- "promptsListMs": 0.2839160000003176,
341
- "resourcesListMs": 0.4017499999999927
379
+ "connectMs": 1506.127125,
380
+ "toolsListMs": 1.6031249999996362,
381
+ "promptsListMs": 0.2611249999999927,
382
+ "resourcesListMs": 0.3718750000007276
383
+ },
384
+ "runtimeProfile": {
385
+ "egress": [
386
+ {
387
+ "target": "The question or task you need help with. This is used to rank library results by relevance to what the user is trying to accomplish. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query.",
388
+ "protocol": "unknown",
389
+ "source": "description_analysis",
390
+ "confidence": "medium"
391
+ },
392
+ {
393
+ "target": "The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad (too vague): 'auth' or 'hooks'. Bad (too broad): 'routing and auth and caching in Next.js'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query.",
394
+ "protocol": "unknown",
395
+ "source": "description_analysis",
396
+ "confidence": "medium"
397
+ }
398
+ ],
399
+ "stateMutations": [
400
+ {
401
+ "resource": "filesystem",
402
+ "operation": "write",
403
+ "scope": "working_directory",
404
+ "source": "description_analysis"
405
+ }
406
+ ],
407
+ "analyzedAt": "2026-07-15T22:33:19.225Z",
408
+ "confidence": "medium"
342
409
  }
343
410
  }
@@ -1,6 +1,6 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-07-06T19:49:48.132Z
3
+ Generated at 2026-07-15T22:33:17.716Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
@@ -25,7 +25,7 @@ Generated at 2026-07-06T19:49:48.132Z
25
25
 
26
26
  | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
27
  | --- | --- | --- | --- | --- | --- | --- | --- |
28
- | pass | 8 | 7 | 0 | 1 | 0 | 0 | 0 |
28
+ | pass | 9 | 8 | 0 | 1 | 0 | 0 | 0 |
29
29
 
30
30
  ## At a Glance
31
31
 
@@ -39,6 +39,34 @@ Generated at 2026-07-06T19:49:48.132Z
39
39
  - Suggested next step: Review the caveated checks next: attack-sim.
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
+ ### Egress Manifest
52
+
53
+ The following targets were identified as potentially reachable by this server (confidence: **medium**):
54
+
55
+ | Target | Protocol | Source | Confidence |
56
+ | --- | --- | --- | --- |
57
+ | The question or task you need help with. This is used to rank library results by relevance to what the user is trying to accomplish. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query. | unknown | description_analysis | medium |
58
+ | The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad (too vague): 'auth' or 'hooks'. Bad (too broad): 'routing and auth and caching in Next.js'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query. | 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
+
68
+ _Analyzed at 2026-07-15T22:33:19.225Z_
69
+
42
70
  ## Regressions and Recoveries
43
71
 
44
72
  _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
@@ -47,14 +75,15 @@ _Use the `diff` command against another run artifact to classify regressions and
47
75
 
48
76
  | Focus | Check | Status | Duration (ms) | Message |
49
77
  | --- | --- | --- | --- | --- |
50
- | healthy | conformance | pass | 1.09 | All 7 conformance checks passed. |
51
- | healthy | prompts | pass | 0.28 | Advertised capability responded with the minimal expected shape (0 items). |
52
- | healthy | resources | pass | 0.40 | Advertised capability responded with the minimal expected shape (0 items). |
53
- | healthy | schema-quality | pass | 0.51 | All 2 item(s) have good schema quality. |
54
- | healthy | security | pass | 0.20 | No security issues detected. |
55
- | healthy | security-lite | pass | 0.02 | No security issues detected (lightweight scan). |
56
- | healthy | tools | pass | 1.79 | Advertised capability responded with the minimal expected shape (2 items). |
57
- | review | attack-sim | partial | 1.05 | Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low. |
78
+ | healthy | conformance | pass | 1.05 | All 7 conformance checks passed. |
79
+ | healthy | prompts | pass | 0.26 | Advertised capability responded with the minimal expected shape (0 items). |
80
+ | healthy | resources | pass | 0.37 | Advertised capability responded with the minimal expected shape (0 items). |
81
+ | healthy | runtime-profile | pass | 0.28 | Detected 2 potential egress target(s) and 1 potential state mutation(s) with low confidence. |
82
+ | healthy | schema-quality | pass | 0.49 | All 2 item(s) have good schema quality. |
83
+ | healthy | security | pass | 0.25 | No security issues detected. |
84
+ | healthy | security-lite | pass | 0.03 | No security issues detected (lightweight scan). |
85
+ | healthy | tools | pass | 1.60 | Advertised capability responded with the minimal expected shape (2 items). |
86
+ | review | attack-sim | partial | 1.42 | Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low. |
58
87
 
59
88
  ## Evidence Snippets
60
89
 
@@ -101,6 +130,18 @@ Summary: Advertised capability responded with the minimal expected shape (0 item
101
130
  - Identifiers: none
102
131
  - Diagnostics: Context7 Documentation MCP Server v3.2.3 running on stdio
103
132
 
133
+ ### runtime-profile — pass
134
+
135
+ Summary: Detected 2 potential egress target(s) and 1 potential state mutation(s) with low confidence.
136
+
137
+ - Endpoint: `runtime-profile/analyze`
138
+ - Advertised: `true`
139
+ - Responded: `true`
140
+ - Minimal shape present: `true`
141
+ - Item count: `3`
142
+ - Identifiers: none
143
+ - Diagnostics: Egress entries: 2, State mutations: 1, Confidence: medium
144
+
104
145
  ### schema-quality — pass
105
146
 
106
147
  Summary: All 2 item(s) have good schema quality.
@@ -172,5 +213,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
172
213
 
173
214
  - Artifact type: `run`
174
215
  - Schema version: `1.0.0`
175
- - Run ID: `run_2026-07-06T194948132Z_cb0c4915`
216
+ - Run ID: `run_2026-07-15T223317716Z_6b43b34a`
176
217
  - Gate: `pass`
@@ -0,0 +1,66 @@
1
+ {
2
+ "artifactType": "run",
3
+ "schemaVersion": "1.0.0",
4
+ "gate": "fail",
5
+ "runId": "run_2026-07-15T223400017Z_c2485017",
6
+ "createdAt": "2026-07-15T22:34:00.017Z",
7
+ "toolVersion": "1.32.1",
8
+ "target": {
9
+ "targetId": "contract-analysis-server",
10
+ "adapter": "local-process",
11
+ "command": "npx",
12
+ "args": [
13
+ "-y",
14
+ "contract-analysis-mcp"
15
+ ],
16
+ "cwd": ".",
17
+ "metadata": {
18
+ "package": "contract-analysis-mcp",
19
+ "purpose": "mcp-safety-index",
20
+ "riskClass": "Contract data processing",
21
+ "failureClass": "Document analysis boundary",
22
+ "whyItMatters": "Contract analysis MCP servers parse, summarize, and extract clauses from legal documents — agents handling contracts need boundaries around confidential document data."
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 `contract-analysis-server`.\nCommand: npx -y contract-analysis-mcp\nDiagnosis: The process exited or detached before MCP initialization completed.\nRaw error: MCP error -32000: Connection closed\nLikely causes:\n- The package may expect extra startup arguments or environment variables.\n- The package may not behave like a plain local-process stdio target under this invocation.\n- The server may be crashing immediately and only leaving clues on stderr.\nNext steps:\n- Run the command manually and look for usage output, auth prompts, or crash text.\n- Check whether the package expects a different transport or an app-oriented startup flow.\n- Use the recent stderr lines below before assuming this is a harness bug.\nRecent stderr:\n- npm error 404 'contract-analysis-mcp@*' 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-15T22_34_00_090Z-debug-0.log"
66
+ }