@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,229 @@
1
+ # MCP Observatory Run Report
2
+
3
+ Generated at 2026-07-15T22:35:03.838Z
4
+
5
+ ## Target and Environment Metadata
6
+
7
+ - Target: `discord-mcp`
8
+ - Adapter: `local-process`
9
+ - Command: `npx -y discord-mcp`
10
+ - Server: `discord-mcp 2.4.0`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
+
14
+ ## Executive Summary
15
+
16
+ **Health Score: 85/100 (B)**
17
+
18
+ | Dimension | Score | Weight |
19
+ | --- | --- | --- |
20
+ | Protocol Compliance | 100/100 | 30% |
21
+ | Schema Quality | 60/100 | 20% |
22
+ | Security | 100/100 | 20% |
23
+ | Reliability | 67/100 | 20% |
24
+ | Performance | 100/100 | 10% |
25
+
26
+ | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
+ | --- | --- | --- | --- | --- | --- | --- | --- |
28
+ | pass | 9 | 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: runtime-profile: Detected 2 potential egress target(s) and 22 potential state mutation(s) with high confidence.; schema-quality: Found 1 quality finding(s) across 19 item(s): 0 warnings, 1 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: runtime-profile, schema-quality
37
+ - Skipped checks: none
38
+ - Unsupported checks: prompts, resources
39
+ - Suggested next step: Review the caveated checks next: runtime-profile, schema-quality.
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
+ | url | unknown | tool_schema | high |
56
+ | Discord CDN URL of the attachment to download | unknown | description_analysis | medium |
57
+
58
+ ### State Mutations
59
+
60
+ The following state-modifying operations were identified from tool schemas:
61
+
62
+ | Resource | Operation | Scope | Source |
63
+ | --- | --- | --- | --- |
64
+ | filesystem | write | working_directory | description_analysis |
65
+ | filesystem | write | working_directory | description_analysis |
66
+ | filesystem | write | working_directory | description_analysis |
67
+ | filesystem | write | working_directory | description_analysis |
68
+ | filesystem | write | working_directory | description_analysis |
69
+ | filesystem | write | working_directory | description_analysis |
70
+ | filesystem | 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 | tool_schema |
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
+
87
+ _Analyzed at 2026-07-15T22:35:04.573Z_
88
+
89
+ ## Regressions and Recoveries
90
+
91
+ _Use the `diff` command against another run artifact to classify regressions and recoveries over time._
92
+
93
+ ## Full Capability Status Table
94
+
95
+ | Focus | Check | Status | Duration (ms) | Message |
96
+ | --- | --- | --- | --- | --- |
97
+ | healthy | attack-sim | pass | 0.65 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
98
+ | healthy | conformance | pass | 2.39 | All 7 conformance checks passed. |
99
+ | healthy | security | pass | 0.41 | No security issues detected. |
100
+ | healthy | security-lite | pass | 0.04 | No security issues detected (lightweight scan). |
101
+ | healthy | tools | pass | 3.47 | Advertised capability responded with the minimal expected shape (19 items). |
102
+ | review | runtime-profile | partial | 0.14 | Detected 2 potential egress target(s) and 22 potential state mutation(s) with high confidence. |
103
+ | review | schema-quality | partial | 0.59 | Found 1 quality finding(s) across 19 item(s): 0 warnings, 1 info. |
104
+ | confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
105
+ | confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
106
+
107
+ ## Evidence Snippets
108
+
109
+ ### attack-sim — pass
110
+
111
+ Summary: Safe attack simulation found no high-risk MCP attack-readiness findings.
112
+
113
+ - Endpoint: `attack-sim/safe`
114
+ - Advertised: `true`
115
+ - Responded: `true`
116
+ - Minimal shape present: `true`
117
+ - Item count: `0`
118
+ - Identifiers: none
119
+ - Diagnostics: none
120
+
121
+ ### conformance — pass
122
+
123
+ Summary: All 7 conformance checks passed.
124
+
125
+ - Endpoint: `conformance/check`
126
+ - Advertised: `true`
127
+ - Responded: `true`
128
+ - Minimal shape present: `true`
129
+ - Item count: `7`
130
+ - Identifiers: none
131
+ - Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 19 tool(s). (+4 more)
132
+
133
+ ### security — pass
134
+
135
+ Summary: No security issues detected.
136
+
137
+ - Endpoint: `security/scan`
138
+ - Advertised: `true`
139
+ - Responded: `true`
140
+ - Minimal shape present: `true`
141
+ - Item count: `0`
142
+ - Identifiers: none
143
+ - Diagnostics: none
144
+
145
+ ### security-lite — pass
146
+
147
+ Summary: No security issues detected (lightweight scan).
148
+
149
+ - Endpoint: `security/scan-lite`
150
+ - Advertised: `true`
151
+ - Responded: `true`
152
+ - Minimal shape present: `true`
153
+ - Item count: `0`
154
+ - Identifiers: none
155
+ - Diagnostics: none
156
+
157
+ ### tools — pass
158
+
159
+ Summary: Advertised capability responded with the minimal expected shape (19 items).
160
+
161
+ - Endpoint: `tools/list`
162
+ - Advertised: `true`
163
+ - Responded: `true`
164
+ - Minimal shape present: `true`
165
+ - Item count: `19`
166
+ - Identifiers: discord_send_message, discord_edit_message, discord_delete_message, discord_add_reaction, discord_remove_reaction (+14 more)
167
+ - Diagnostics: {"level":30,"time":1784154904566,"service":"discord-mcp","msg":"Discord MCP server starting","tools":19,"toolNames":["discord_send_message","discord_edit_message","discord_delete_message","discord_add_reaction","discord_remove_reaction","discord_get_message_history","discord_search_messages","discord_get_message","discord_list_attachments","discord_download_attachment","discord_cleanup_download","discord_get_channel","discord_get_dm_channels","discord_create_dm","discord_get_friends","discord_add_friend","discord_remove_friend","discord_update_presence","discord_clear_presence"],"version":"2.4.0"}
168
+
169
+ ### runtime-profile — partial
170
+
171
+ Summary: Detected 2 potential egress target(s) and 22 potential state mutation(s) with high confidence.
172
+
173
+ - Endpoint: `runtime-profile/analyze`
174
+ - Advertised: `true`
175
+ - Responded: `true`
176
+ - Minimal shape present: `true`
177
+ - Item count: `24`
178
+ - Identifiers: none
179
+ - Diagnostics: Egress entries: 2, State mutations: 22, Confidence: high
180
+
181
+ ### schema-quality — partial
182
+
183
+ Summary: Found 1 quality finding(s) across 19 item(s): 0 warnings, 1 info.
184
+
185
+ - Endpoint: `schema-quality/scan`
186
+ - Advertised: `true`
187
+ - Responded: `true`
188
+ - Minimal shape present: `true`
189
+ - Item count: `1`
190
+ - Identifiers: discord_update_presence
191
+ - Diagnostics: [info] tool "discord_update_presence": Has properties but no 'required' array declared
192
+
193
+ ### prompts — unsupported
194
+
195
+ Summary: Prompts are not advertised by the target.
196
+
197
+ - Endpoint: `prompts/list`
198
+ - Advertised: `false`
199
+ - Responded: `false`
200
+ - Minimal shape present: `false`
201
+ - Item count: `0`
202
+ - Identifiers: none
203
+ - Diagnostics: none
204
+
205
+ ### resources — unsupported
206
+
207
+ Summary: Resources are not advertised by the target.
208
+
209
+ - Endpoint: `resources/list | resources/templates/list`
210
+ - Advertised: `false`
211
+ - Responded: `false`
212
+ - Minimal shape present: `false`
213
+ - Item count: `0`
214
+ - Identifiers: none
215
+ - Diagnostics: none
216
+
217
+ ## Reproduction Commands
218
+
219
+ ```bash
220
+ npm run cli -- run --target <path-to-target-config.json>
221
+ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
222
+ ```
223
+
224
+ ## Artifact Provenance
225
+
226
+ - Artifact type: `run`
227
+ - Schema version: `1.0.0`
228
+ - Run ID: `run_2026-07-15T223503838Z_eb17b47b`
229
+ - Gate: `pass`
@@ -0,0 +1,395 @@
1
+ {
2
+ "artifactType": "run",
3
+ "schemaVersion": "1.0.0",
4
+ "gate": "fail",
5
+ "runId": "run_2026-07-15T223346900Z_b73ad8db",
6
+ "createdAt": "2026-07-15T22:33:46.900Z",
7
+ "toolVersion": "1.32.1",
8
+ "target": {
9
+ "targetId": "docker-server",
10
+ "adapter": "local-process",
11
+ "command": "npx",
12
+ "args": [
13
+ "-y",
14
+ "mcp-server-docker"
15
+ ],
16
+ "cwd": ".",
17
+ "metadata": {
18
+ "package": "mcp-server-docker",
19
+ "purpose": "mcp-safety-index",
20
+ "riskClass": "Container orchestration",
21
+ "failureClass": "Container/image boundary",
22
+ "whyItMatters": "Docker MCP servers expose container run, exec, and image management tools — container-level command execution is a high-trust boundary."
23
+ },
24
+ "serverName": "mcp-server-docker",
25
+ "serverVersion": "1.0.0"
26
+ },
27
+ "environment": {
28
+ "platform": "darwin 25.5.0",
29
+ "nodeVersion": "v22.22.1"
30
+ },
31
+ "summary": {
32
+ "total": 9,
33
+ "pass": 3,
34
+ "fail": 3,
35
+ "partial": 1,
36
+ "unsupported": 2,
37
+ "flaky": 0,
38
+ "skipped": 0,
39
+ "gate": "fail"
40
+ },
41
+ "checks": [
42
+ {
43
+ "id": "tools",
44
+ "capability": "tools",
45
+ "status": "pass",
46
+ "durationMs": 0.5254159999967669,
47
+ "message": "Advertised capability responded with the minimal expected shape (1 item).",
48
+ "evidence": [
49
+ {
50
+ "endpoint": "tools/list",
51
+ "advertised": true,
52
+ "responded": true,
53
+ "minimalShapePresent": true,
54
+ "itemCount": 1,
55
+ "identifiers": [
56
+ "run_command"
57
+ ],
58
+ "diagnostics": [
59
+ "Warning: No allowed containers specified in ALLOWED_CONTAINERS environment variable",
60
+ "MCP Server Docker started",
61
+ "Default service: laravel_app",
62
+ "Allowed containers: laravel_app"
63
+ ],
64
+ "schemas": {
65
+ "run_command": {
66
+ "type": "object",
67
+ "properties": {
68
+ "command": {
69
+ "type": "string",
70
+ "description": "The command to execute in the container"
71
+ },
72
+ "service": {
73
+ "type": "string",
74
+ "description": "Docker Compose service name (optional, uses default: laravel_app if not specified)"
75
+ }
76
+ },
77
+ "required": [
78
+ "command"
79
+ ]
80
+ }
81
+ }
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "id": "prompts",
87
+ "capability": "prompts",
88
+ "status": "unsupported",
89
+ "durationMs": 0.0008329999982379377,
90
+ "message": "Prompts are not advertised by the target.",
91
+ "evidence": [
92
+ {
93
+ "endpoint": "prompts/list",
94
+ "advertised": false,
95
+ "responded": false,
96
+ "minimalShapePresent": false,
97
+ "diagnostics": []
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ "id": "resources",
103
+ "capability": "resources",
104
+ "status": "unsupported",
105
+ "durationMs": 0.0005830000009154901,
106
+ "message": "Resources are not advertised by the target.",
107
+ "evidence": [
108
+ {
109
+ "endpoint": "resources/list | resources/templates/list",
110
+ "advertised": false,
111
+ "responded": false,
112
+ "minimalShapePresent": false,
113
+ "diagnostics": []
114
+ }
115
+ ]
116
+ },
117
+ {
118
+ "id": "security-lite",
119
+ "capability": "security-lite",
120
+ "status": "fail",
121
+ "durationMs": 0.012541999996756203,
122
+ "message": "Found 1 security finding(s): 1 high, 0 medium, 0 low.",
123
+ "evidence": [
124
+ {
125
+ "endpoint": "security/scan-lite",
126
+ "advertised": true,
127
+ "responded": true,
128
+ "minimalShapePresent": true,
129
+ "itemCount": 1,
130
+ "identifiers": [
131
+ "run_command"
132
+ ],
133
+ "diagnostics": [
134
+ "[high] Tool \"run_command\" has parameter \"command\" which may allow arbitrary command execution."
135
+ ],
136
+ "findings": [
137
+ {
138
+ "ruleId": "shell-injection",
139
+ "severity": "high",
140
+ "toolName": "run_command",
141
+ "message": "Tool \"run_command\" has parameter \"command\" which may allow arbitrary command execution."
142
+ }
143
+ ]
144
+ }
145
+ ]
146
+ },
147
+ {
148
+ "id": "runtime-profile",
149
+ "capability": "runtime-profile",
150
+ "status": "partial",
151
+ "durationMs": 0.03562499999679858,
152
+ "message": "Detected 0 potential egress target(s) and 4 potential state mutation(s) with high confidence.",
153
+ "evidence": [
154
+ {
155
+ "endpoint": "runtime-profile/analyze",
156
+ "advertised": true,
157
+ "responded": true,
158
+ "minimalShapePresent": true,
159
+ "itemCount": 4,
160
+ "diagnostics": [
161
+ "Egress entries: 0",
162
+ "State mutations: 4",
163
+ "Confidence: high"
164
+ ],
165
+ "findings": [
166
+ {
167
+ "resource": "network",
168
+ "operation": "execute",
169
+ "scope": "specific_path",
170
+ "source": "tool_schema"
171
+ },
172
+ {
173
+ "resource": "filesystem",
174
+ "operation": "write",
175
+ "scope": "working_directory",
176
+ "source": "description_analysis"
177
+ },
178
+ {
179
+ "resource": "filesystem",
180
+ "operation": "write",
181
+ "scope": "working_directory",
182
+ "source": "description_analysis"
183
+ },
184
+ {
185
+ "resource": "filesystem",
186
+ "operation": "execute",
187
+ "scope": "working_directory",
188
+ "source": "description_analysis"
189
+ }
190
+ ]
191
+ }
192
+ ]
193
+ },
194
+ {
195
+ "id": "conformance",
196
+ "capability": "conformance",
197
+ "status": "pass",
198
+ "durationMs": 0.5707499999989523,
199
+ "message": "All 7 conformance checks passed.",
200
+ "evidence": [
201
+ {
202
+ "endpoint": "conformance/check",
203
+ "advertised": true,
204
+ "responded": true,
205
+ "minimalShapePresent": true,
206
+ "itemCount": 7,
207
+ "identifiers": [],
208
+ "diagnostics": [
209
+ "[pass] capabilities-present: Server returned capabilities object.",
210
+ "[pass] server-info: Server provided initialization info.",
211
+ "[pass] tools-capability-match: tools/list returned 1 tool(s).",
212
+ "[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
213
+ "[pass] resources-capability-match: Resources not advertised — endpoint check skipped.",
214
+ "[pass] tool-response-content: No safe tool to invoke — content validation skipped.",
215
+ "[pass] error-handling: Server returned proper error code -32601 for unknown method."
216
+ ]
217
+ }
218
+ ]
219
+ },
220
+ {
221
+ "id": "schema-quality",
222
+ "capability": "schema-quality",
223
+ "status": "pass",
224
+ "durationMs": 0.08562499999970896,
225
+ "message": "All 1 item(s) have good schema quality.",
226
+ "evidence": [
227
+ {
228
+ "endpoint": "schema-quality/scan",
229
+ "advertised": true,
230
+ "responded": true,
231
+ "minimalShapePresent": true,
232
+ "itemCount": 0,
233
+ "identifiers": []
234
+ }
235
+ ]
236
+ },
237
+ {
238
+ "id": "security",
239
+ "capability": "security",
240
+ "status": "fail",
241
+ "durationMs": 0.21887499999866122,
242
+ "message": "Found 1 security finding(s): 1 high, 0 medium, 0 low.",
243
+ "evidence": [
244
+ {
245
+ "endpoint": "security/scan",
246
+ "advertised": true,
247
+ "responded": true,
248
+ "minimalShapePresent": true,
249
+ "itemCount": 1,
250
+ "identifiers": [
251
+ "run_command"
252
+ ],
253
+ "diagnostics": [
254
+ "[high] Tool \"run_command\" has parameter \"command\" which may allow arbitrary command execution."
255
+ ],
256
+ "findings": [
257
+ {
258
+ "ruleId": "shell-injection",
259
+ "severity": "high",
260
+ "toolName": "run_command",
261
+ "message": "Tool \"run_command\" has parameter \"command\" which may allow arbitrary command execution."
262
+ }
263
+ ]
264
+ }
265
+ ]
266
+ },
267
+ {
268
+ "id": "attack-sim",
269
+ "capability": "attack-sim",
270
+ "status": "fail",
271
+ "durationMs": 0.15812500000174623,
272
+ "message": "Safe attack simulation found 1 finding(s): 1 high, 0 medium, 0 low.",
273
+ "evidence": [
274
+ {
275
+ "endpoint": "attack-sim/safe",
276
+ "advertised": true,
277
+ "responded": true,
278
+ "minimalShapePresent": true,
279
+ "itemCount": 1,
280
+ "identifiers": [
281
+ "run_command"
282
+ ],
283
+ "diagnostics": [
284
+ "[high] Tool \"run_command\" combines broad parameters (command) with destructive or non-read-only behavior."
285
+ ],
286
+ "findings": [
287
+ {
288
+ "ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
289
+ "attackClass": "permission-boundary",
290
+ "severity": "high",
291
+ "itemType": "tool",
292
+ "itemName": "run_command",
293
+ "message": "Tool \"run_command\" combines broad parameters (command) with destructive or non-read-only behavior.",
294
+ "evidence": {
295
+ "broadParams": [
296
+ "command"
297
+ ],
298
+ "description": "Execute a command inside a Docker container service"
299
+ },
300
+ "recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
301
+ "recommendedAction": "quarantine"
302
+ }
303
+ ]
304
+ }
305
+ ]
306
+ }
307
+ ],
308
+ "healthScore": {
309
+ "overall": 73,
310
+ "grade": "C",
311
+ "dimensions": [
312
+ {
313
+ "name": "Protocol Compliance",
314
+ "weight": 0.3,
315
+ "score": 100,
316
+ "details": [
317
+ "conformance: pass (100/100)"
318
+ ]
319
+ },
320
+ {
321
+ "name": "Schema Quality",
322
+ "weight": 0.2,
323
+ "score": 100,
324
+ "details": [
325
+ "schema-quality: pass (100/100)"
326
+ ]
327
+ },
328
+ {
329
+ "name": "Security",
330
+ "weight": 0.2,
331
+ "score": 0,
332
+ "details": [
333
+ "security-lite: fail (0/100)",
334
+ "security: fail (0/100)",
335
+ "attack-sim: fail (0/100)"
336
+ ]
337
+ },
338
+ {
339
+ "name": "Reliability",
340
+ "weight": 0.2,
341
+ "score": 67,
342
+ "details": [
343
+ "tools: pass (100/100)",
344
+ "prompts: unsupported (50/100)",
345
+ "resources: unsupported (50/100)"
346
+ ]
347
+ },
348
+ {
349
+ "name": "Performance",
350
+ "weight": 0.1,
351
+ "score": 100,
352
+ "details": [
353
+ "Connect: 665ms",
354
+ "p95 latency: 1ms (3 operations)"
355
+ ]
356
+ }
357
+ ]
358
+ },
359
+ "performanceMetrics": {
360
+ "connectMs": 664.9754169999942,
361
+ "toolsListMs": 0.5254159999967669,
362
+ "promptsListMs": 0.0008329999982379377,
363
+ "resourcesListMs": 0.0005830000009154901
364
+ },
365
+ "runtimeProfile": {
366
+ "stateMutations": [
367
+ {
368
+ "resource": "network",
369
+ "operation": "execute",
370
+ "scope": "specific_path",
371
+ "source": "tool_schema"
372
+ },
373
+ {
374
+ "resource": "filesystem",
375
+ "operation": "write",
376
+ "scope": "working_directory",
377
+ "source": "description_analysis"
378
+ },
379
+ {
380
+ "resource": "filesystem",
381
+ "operation": "write",
382
+ "scope": "working_directory",
383
+ "source": "description_analysis"
384
+ },
385
+ {
386
+ "resource": "filesystem",
387
+ "operation": "execute",
388
+ "scope": "working_directory",
389
+ "source": "description_analysis"
390
+ }
391
+ ],
392
+ "analyzedAt": "2026-07-15T22:33:47.565Z",
393
+ "confidence": "high"
394
+ }
395
+ }