@kryptosai/mcp-observatory 1.32.1 → 1.34.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 (409) hide show
  1. package/README.md +11 -122
  2. package/dist/src/auth.d.ts +22 -0
  3. package/dist/src/auth.js +140 -0
  4. package/dist/src/auth.js.map +1 -0
  5. package/dist/src/cli.js +55 -4
  6. package/dist/src/cli.js.map +1 -1
  7. package/dist/src/commands/audit.js +7 -1
  8. package/dist/src/commands/audit.js.map +1 -1
  9. package/dist/src/commands/demo.d.ts +2 -0
  10. package/dist/src/commands/demo.js +247 -0
  11. package/dist/src/commands/demo.js.map +1 -0
  12. package/dist/src/commands/enforce.js +14 -3
  13. package/dist/src/commands/enforce.js.map +1 -1
  14. package/dist/src/commands/helpers.d.ts +13 -0
  15. package/dist/src/commands/helpers.js +34 -1
  16. package/dist/src/commands/helpers.js.map +1 -1
  17. package/dist/src/commands/init-ci.d.ts +1 -0
  18. package/dist/src/commands/init-ci.js +157 -10
  19. package/dist/src/commands/init-ci.js.map +1 -1
  20. package/dist/src/commands/receipt.js +13 -3
  21. package/dist/src/commands/receipt.js.map +1 -1
  22. package/dist/src/commands/scan.d.ts +14 -0
  23. package/dist/src/commands/scan.js +51 -3
  24. package/dist/src/commands/scan.js.map +1 -1
  25. package/dist/src/commands/score.js +22 -1
  26. package/dist/src/commands/score.js.map +1 -1
  27. package/dist/src/commands/setup-ci-conversion.js +4 -4
  28. package/dist/src/commands/setup-ci-conversion.js.map +1 -1
  29. package/dist/src/commands/skill-scan.js +5 -3
  30. package/dist/src/commands/skill-scan.js.map +1 -1
  31. package/dist/src/commands/test.d.ts +19 -0
  32. package/dist/src/commands/test.js +77 -3
  33. package/dist/src/commands/test.js.map +1 -1
  34. package/dist/src/commercial.d.ts +3 -0
  35. package/dist/src/commercial.js +14 -3
  36. package/dist/src/commercial.js.map +1 -1
  37. package/dist/src/index.d.ts +1 -1
  38. package/dist/src/index.js +1 -1
  39. package/dist/src/index.js.map +1 -1
  40. package/dist/src/receipt.d.ts +9 -0
  41. package/dist/src/receipt.js +24 -1
  42. package/dist/src/receipt.js.map +1 -1
  43. package/dist/src/telemetry.d.ts +25 -3
  44. package/dist/src/telemetry.js +88 -19
  45. package/dist/src/telemetry.js.map +1 -1
  46. package/dist/src/utils/failure-diagnosis.d.ts +7 -0
  47. package/dist/src/utils/failure-diagnosis.js +14 -0
  48. package/dist/src/utils/failure-diagnosis.js.map +1 -1
  49. package/docs/mcp-server-safety-index.md +255 -6
  50. package/docs/safety-index/artifacts/1link-mcp.json +66 -0
  51. package/docs/safety-index/artifacts/1link-mcp.md +106 -0
  52. package/docs/safety-index/artifacts/aadhaar-mcp.json +66 -0
  53. package/docs/safety-index/artifacts/aadhaar-mcp.md +106 -0
  54. package/docs/safety-index/artifacts/aikidosec-mcp-server.json +536 -0
  55. package/docs/safety-index/artifacts/aikidosec-mcp-server.md +203 -0
  56. package/docs/safety-index/artifacts/aiou-mcp.json +66 -0
  57. package/docs/safety-index/artifacts/aiou-mcp.md +106 -0
  58. package/docs/safety-index/artifacts/airtable-mcp-server.json +66 -0
  59. package/docs/safety-index/artifacts/airtable-mcp-server.md +106 -0
  60. package/docs/safety-index/artifacts/alpaca-server.json +66 -0
  61. package/docs/safety-index/artifacts/alpaca-server.md +106 -0
  62. package/docs/safety-index/artifacts/antv-chart-server.json +21 -21
  63. package/docs/safety-index/artifacts/antv-chart-server.md +11 -11
  64. package/docs/safety-index/artifacts/apify-mcp-server.json +66 -0
  65. package/docs/safety-index/artifacts/apify-mcp-server.md +103 -0
  66. package/docs/safety-index/artifacts/apple-music-server.json +66 -0
  67. package/docs/safety-index/artifacts/apple-music-server.md +102 -0
  68. package/docs/safety-index/artifacts/appwrite-mcp.json +66 -0
  69. package/docs/safety-index/artifacts/appwrite-mcp.md +106 -0
  70. package/docs/safety-index/artifacts/aqi-india-mcp.json +66 -0
  71. package/docs/safety-index/artifacts/aqi-india-mcp.md +106 -0
  72. package/docs/safety-index/artifacts/argocd-mcp-server.json +66 -0
  73. package/docs/safety-index/artifacts/argocd-mcp-server.md +106 -0
  74. package/docs/safety-index/artifacts/arxiv-mcp-server.json +66 -0
  75. package/docs/safety-index/artifacts/arxiv-mcp-server.md +100 -0
  76. package/docs/safety-index/artifacts/aws-mcp-server.json +66 -0
  77. package/docs/safety-index/artifacts/aws-mcp-server.md +103 -0
  78. package/docs/safety-index/artifacts/azure-devops-mcp-server.json +66 -0
  79. package/docs/safety-index/artifacts/azure-devops-mcp-server.md +106 -0
  80. package/docs/safety-index/artifacts/azure-mcp-server.json +66 -0
  81. package/docs/safety-index/artifacts/azure-mcp-server.md +102 -0
  82. package/docs/safety-index/artifacts/bhuvan-mcp.json +66 -0
  83. package/docs/safety-index/artifacts/bhuvan-mcp.md +106 -0
  84. package/docs/safety-index/artifacts/brave-search-mcp-server-v2.json +66 -0
  85. package/docs/safety-index/artifacts/brave-search-mcp-server-v2.md +103 -0
  86. package/docs/safety-index/artifacts/brave-search-server.json +18 -18
  87. package/docs/safety-index/artifacts/brave-search-server.md +6 -6
  88. package/docs/safety-index/artifacts/browsermcp-server.json +18 -18
  89. package/docs/safety-index/artifacts/browsermcp-server.md +9 -9
  90. package/docs/safety-index/artifacts/cal-com-mcp.json +66 -0
  91. package/docs/safety-index/artifacts/cal-com-mcp.md +106 -0
  92. package/docs/safety-index/artifacts/canvas-server.json +66 -0
  93. package/docs/safety-index/artifacts/canvas-server.md +105 -0
  94. package/docs/safety-index/artifacts/caselaw-server.json +66 -0
  95. package/docs/safety-index/artifacts/caselaw-server.md +106 -0
  96. package/docs/safety-index/artifacts/chatwoot-mcp.json +66 -0
  97. package/docs/safety-index/artifacts/chatwoot-mcp.md +102 -0
  98. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +23 -23
  99. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +12 -12
  100. package/docs/safety-index/artifacts/circleci-server.json +1606 -0
  101. package/docs/safety-index/artifacts/circleci-server.md +243 -0
  102. package/docs/safety-index/artifacts/clarity-server.json +794 -0
  103. package/docs/safety-index/artifacts/clarity-server.md +201 -0
  104. package/docs/safety-index/artifacts/clay-server.json +4 -4
  105. package/docs/safety-index/artifacts/clay-server.md +3 -3
  106. package/docs/safety-index/artifacts/clickup-mcp-server.json +66 -0
  107. package/docs/safety-index/artifacts/clickup-mcp-server.md +106 -0
  108. package/docs/safety-index/artifacts/cloudflare-mcp-server-v2.json +66 -0
  109. package/docs/safety-index/artifacts/cloudflare-mcp-server-v2.md +102 -0
  110. package/docs/safety-index/artifacts/cloudflare-server.json +4 -4
  111. package/docs/safety-index/artifacts/cloudflare-server.md +4 -4
  112. package/docs/safety-index/artifacts/coinbase-cds-server.json +322 -0
  113. package/docs/safety-index/artifacts/coinbase-cds-server.md +201 -0
  114. package/docs/safety-index/artifacts/confluence-mcp-server.json +1727 -0
  115. package/docs/safety-index/artifacts/confluence-mcp-server.md +255 -0
  116. package/docs/safety-index/artifacts/context7-server.json +18 -18
  117. package/docs/safety-index/artifacts/context7-server.md +12 -12
  118. package/docs/safety-index/artifacts/contract-analysis-server.json +66 -0
  119. package/docs/safety-index/artifacts/contract-analysis-server.md +106 -0
  120. package/docs/safety-index/artifacts/cowin-mcp.json +66 -0
  121. package/docs/safety-index/artifacts/cowin-mcp.md +106 -0
  122. package/docs/safety-index/artifacts/currents-mcp-server.json +66 -0
  123. package/docs/safety-index/artifacts/currents-mcp-server.md +102 -0
  124. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +34 -34
  125. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +15 -15
  126. package/docs/safety-index/artifacts/dalle-server.json +66 -0
  127. package/docs/safety-index/artifacts/dalle-server.md +104 -0
  128. package/docs/safety-index/artifacts/daraz-mcp.json +66 -0
  129. package/docs/safety-index/artifacts/daraz-mcp.md +106 -0
  130. package/docs/safety-index/artifacts/desktop-commander-mcp-server.json +2348 -0
  131. package/docs/safety-index/artifacts/desktop-commander-mcp-server.md +266 -0
  132. package/docs/safety-index/artifacts/digilocker-mcp.json +66 -0
  133. package/docs/safety-index/artifacts/digilocker-mcp.md +106 -0
  134. package/docs/safety-index/artifacts/discord-mcp-server.json +1297 -0
  135. package/docs/safety-index/artifacts/discord-mcp-server.md +169 -0
  136. package/docs/safety-index/artifacts/discord-mcp.json +1023 -0
  137. package/docs/safety-index/artifacts/discord-mcp.md +229 -0
  138. package/docs/safety-index/artifacts/docker-server.json +19 -19
  139. package/docs/safety-index/artifacts/docker-server.md +8 -8
  140. package/docs/safety-index/artifacts/dynamodb-mcp-server.json +66 -0
  141. package/docs/safety-index/artifacts/dynamodb-mcp-server.md +103 -0
  142. package/docs/safety-index/artifacts/dynatrace-mcp-server.json +66 -0
  143. package/docs/safety-index/artifacts/dynatrace-mcp-server.md +103 -0
  144. package/docs/safety-index/artifacts/easypaisa-mcp.json +553 -0
  145. package/docs/safety-index/artifacts/easypaisa-mcp.md +205 -0
  146. package/docs/safety-index/artifacts/ehsaas-mcp.json +66 -0
  147. package/docs/safety-index/artifacts/ehsaas-mcp.md +106 -0
  148. package/docs/safety-index/artifacts/epic-server.json +66 -0
  149. package/docs/safety-index/artifacts/epic-server.md +106 -0
  150. package/docs/safety-index/artifacts/eslint-mcp-server.json +320 -0
  151. package/docs/safety-index/artifacts/eslint-mcp-server.md +201 -0
  152. package/docs/safety-index/artifacts/espn-server.json +394 -0
  153. package/docs/safety-index/artifacts/espn-server.md +187 -0
  154. package/docs/safety-index/artifacts/everything-server.json +18 -18
  155. package/docs/safety-index/artifacts/everything-server.md +12 -12
  156. package/docs/safety-index/artifacts/exa-server.json +22 -22
  157. package/docs/safety-index/artifacts/exa-server.md +14 -14
  158. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +19 -19
  159. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +11 -11
  160. package/docs/safety-index/artifacts/fbr-mcp.json +66 -0
  161. package/docs/safety-index/artifacts/fbr-mcp.md +106 -0
  162. package/docs/safety-index/artifacts/fetch-server.json +4 -4
  163. package/docs/safety-index/artifacts/fetch-server.md +3 -3
  164. package/docs/safety-index/artifacts/fhir-server.json +66 -0
  165. package/docs/safety-index/artifacts/fhir-server.md +100 -0
  166. package/docs/safety-index/artifacts/figma-server.json +18 -18
  167. package/docs/safety-index/artifacts/figma-server.md +10 -10
  168. package/docs/safety-index/artifacts/filesystem-mcp-server.json +18 -18
  169. package/docs/safety-index/artifacts/filesystem-mcp-server.md +10 -10
  170. package/docs/safety-index/artifacts/filesystem-server.json +19 -19
  171. package/docs/safety-index/artifacts/filesystem-server.md +11 -11
  172. package/docs/safety-index/artifacts/firecrawl-server.json +18 -18
  173. package/docs/safety-index/artifacts/firecrawl-server.md +10 -10
  174. package/docs/safety-index/artifacts/flight-server.json +66 -0
  175. package/docs/safety-index/artifacts/flight-server.md +106 -0
  176. package/docs/safety-index/artifacts/foodpanda-pakistan-mcp.json +66 -0
  177. package/docs/safety-index/artifacts/foodpanda-pakistan-mcp.md +106 -0
  178. package/docs/safety-index/artifacts/gcp-mcp-server.json +66 -0
  179. package/docs/safety-index/artifacts/gcp-mcp-server.md +103 -0
  180. package/docs/safety-index/artifacts/github-mcp-server.json +18 -18
  181. package/docs/safety-index/artifacts/github-mcp-server.md +10 -10
  182. package/docs/safety-index/artifacts/gitlab-server.json +16 -16
  183. package/docs/safety-index/artifacts/gitlab-server.md +6 -6
  184. package/docs/safety-index/artifacts/gmail-server.json +4 -4
  185. package/docs/safety-index/artifacts/gmail-server.md +3 -3
  186. package/docs/safety-index/artifacts/google-calendar-server.json +4 -4
  187. package/docs/safety-index/artifacts/google-calendar-server.md +3 -3
  188. package/docs/safety-index/artifacts/google-drive-server.json +4 -4
  189. package/docs/safety-index/artifacts/google-drive-server.md +4 -4
  190. package/docs/safety-index/artifacts/google-sheets-server.json +4 -4
  191. package/docs/safety-index/artifacts/google-sheets-server.md +3 -3
  192. package/docs/safety-index/artifacts/google-tasks-server.json +4 -4
  193. package/docs/safety-index/artifacts/google-tasks-server.md +3 -3
  194. package/docs/safety-index/artifacts/gst-mcp.json +66 -0
  195. package/docs/safety-index/artifacts/gst-mcp.md +106 -0
  196. package/docs/safety-index/artifacts/gupshup-mcp.json +66 -0
  197. package/docs/safety-index/artifacts/gupshup-mcp.md +106 -0
  198. package/docs/safety-index/artifacts/hasura-mcp.json +66 -0
  199. package/docs/safety-index/artifacts/hasura-mcp.md +106 -0
  200. package/docs/safety-index/artifacts/healthcare-ayushman-bharat-mcp.json +66 -0
  201. package/docs/safety-index/artifacts/healthcare-ayushman-bharat-mcp.md +106 -0
  202. package/docs/safety-index/artifacts/hec-pakistan-mcp.json +66 -0
  203. package/docs/safety-index/artifacts/hec-pakistan-mcp.md +106 -0
  204. package/docs/safety-index/artifacts/heroku-server.json +1502 -0
  205. package/docs/safety-index/artifacts/heroku-server.md +236 -0
  206. package/docs/safety-index/artifacts/homekit-server.json +66 -0
  207. package/docs/safety-index/artifacts/homekit-server.md +106 -0
  208. package/docs/safety-index/artifacts/hotel-booking-server.json +66 -0
  209. package/docs/safety-index/artifacts/hotel-booking-server.md +106 -0
  210. package/docs/safety-index/artifacts/hubspot-mcp-server.json +66 -0
  211. package/docs/safety-index/artifacts/hubspot-mcp-server.md +106 -0
  212. package/docs/safety-index/artifacts/huggingface-server.json +4 -4
  213. package/docs/safety-index/artifacts/huggingface-server.md +3 -3
  214. package/docs/safety-index/artifacts/indian-food-nutrition-mcp.json +663 -0
  215. package/docs/safety-index/artifacts/indian-food-nutrition-mcp.md +211 -0
  216. package/docs/safety-index/artifacts/irctc-mcp.json +66 -0
  217. package/docs/safety-index/artifacts/irctc-mcp.md +106 -0
  218. package/docs/safety-index/artifacts/jazz-mcp.json +66 -0
  219. package/docs/safety-index/artifacts/jazz-mcp.md +106 -0
  220. package/docs/safety-index/artifacts/jazzcash-mcp.json +66 -0
  221. package/docs/safety-index/artifacts/jazzcash-mcp.md +102 -0
  222. package/docs/safety-index/artifacts/jina-server.json +4 -4
  223. package/docs/safety-index/artifacts/jina-server.md +3 -3
  224. package/docs/safety-index/artifacts/jira-mcp-server.json +66 -0
  225. package/docs/safety-index/artifacts/jira-mcp-server.md +104 -0
  226. package/docs/safety-index/artifacts/k2-mcp.json +66 -0
  227. package/docs/safety-index/artifacts/k2-mcp.md +106 -0
  228. package/docs/safety-index/artifacts/karachi-stock-exchange-mcp.json +67 -0
  229. package/docs/safety-index/artifacts/karachi-stock-exchange-mcp.md +114 -0
  230. package/docs/safety-index/artifacts/khan-academy-server.json +66 -0
  231. package/docs/safety-index/artifacts/khan-academy-server.md +106 -0
  232. package/docs/safety-index/artifacts/kubernetes-server.json +104 -34
  233. package/docs/safety-index/artifacts/kubernetes-server.md +25 -21
  234. package/docs/safety-index/artifacts/langfuse-mcp.json +66 -0
  235. package/docs/safety-index/artifacts/langfuse-mcp.md +106 -0
  236. package/docs/safety-index/artifacts/linear-server.json +18 -18
  237. package/docs/safety-index/artifacts/linear-server.md +8 -8
  238. package/docs/safety-index/artifacts/mapmyindia-mcp.json +66 -0
  239. package/docs/safety-index/artifacts/mapmyindia-mcp.md +106 -0
  240. package/docs/safety-index/artifacts/memory-server.json +18 -18
  241. package/docs/safety-index/artifacts/memory-server.md +11 -11
  242. package/docs/safety-index/artifacts/minecraft-server.json +592 -0
  243. package/docs/safety-index/artifacts/minecraft-server.md +186 -0
  244. package/docs/safety-index/artifacts/mls-server.json +66 -0
  245. package/docs/safety-index/artifacts/mls-server.md +106 -0
  246. package/docs/safety-index/artifacts/mongodb-server.json +4 -4
  247. package/docs/safety-index/artifacts/mongodb-server.md +4 -4
  248. package/docs/safety-index/artifacts/mui-mcp-server.json +419 -0
  249. package/docs/safety-index/artifacts/mui-mcp-server.md +208 -0
  250. package/docs/safety-index/artifacts/mysql-mcp-server.json +66 -0
  251. package/docs/safety-index/artifacts/mysql-mcp-server.md +106 -0
  252. package/docs/safety-index/artifacts/nadra-mcp.json +66 -0
  253. package/docs/safety-index/artifacts/nadra-mcp.md +106 -0
  254. package/docs/safety-index/artifacts/neon-server.json +4 -4
  255. package/docs/safety-index/artifacts/neon-server.md +3 -3
  256. package/docs/safety-index/artifacts/notion-server.json +18 -18
  257. package/docs/safety-index/artifacts/notion-server.md +10 -10
  258. package/docs/safety-index/artifacts/obsidian-mcp.json +66 -0
  259. package/docs/safety-index/artifacts/obsidian-mcp.md +106 -0
  260. package/docs/safety-index/artifacts/ola-maps-mcp.json +66 -0
  261. package/docs/safety-index/artifacts/ola-maps-mcp.md +106 -0
  262. package/docs/safety-index/artifacts/olx-pakistan-mcp.json +66 -0
  263. package/docs/safety-index/artifacts/olx-pakistan-mcp.md +106 -0
  264. package/docs/safety-index/artifacts/onesignal-server.json +4 -4
  265. package/docs/safety-index/artifacts/onesignal-server.md +3 -3
  266. package/docs/safety-index/artifacts/openai-mcp-server.json +66 -0
  267. package/docs/safety-index/artifacts/openai-mcp-server.md +106 -0
  268. package/docs/safety-index/artifacts/opentofu-server.json +19 -19
  269. package/docs/safety-index/artifacts/opentofu-server.md +10 -10
  270. package/docs/safety-index/artifacts/openweather-server.json +66 -0
  271. package/docs/safety-index/artifacts/openweather-server.md +106 -0
  272. package/docs/safety-index/artifacts/pakistan-cricket-mcp.json +66 -0
  273. package/docs/safety-index/artifacts/pakistan-cricket-mcp.md +106 -0
  274. package/docs/safety-index/artifacts/pakistan-post-mcp.json +66 -0
  275. package/docs/safety-index/artifacts/pakistan-post-mcp.md +106 -0
  276. package/docs/safety-index/artifacts/pakistan-weather-mcp.json +66 -0
  277. package/docs/safety-index/artifacts/pakistan-weather-mcp.md +106 -0
  278. package/docs/safety-index/artifacts/pakwheels-mcp.json +66 -0
  279. package/docs/safety-index/artifacts/pakwheels-mcp.md +106 -0
  280. package/docs/safety-index/artifacts/paytm-mcp.json +66 -0
  281. package/docs/safety-index/artifacts/paytm-mcp.md +106 -0
  282. package/docs/safety-index/artifacts/perplexity-mcp.json +66 -0
  283. package/docs/safety-index/artifacts/perplexity-mcp.md +106 -0
  284. package/docs/safety-index/artifacts/pims-mcp.json +66 -0
  285. package/docs/safety-index/artifacts/pims-mcp.md +106 -0
  286. package/docs/safety-index/artifacts/playwright-mcp-server.json +18 -18
  287. package/docs/safety-index/artifacts/playwright-mcp-server.md +8 -8
  288. package/docs/safety-index/artifacts/postgres-server.json +19 -19
  289. package/docs/safety-index/artifacts/postgres-server.md +9 -9
  290. package/docs/safety-index/artifacts/postman-india-region.json +66 -0
  291. package/docs/safety-index/artifacts/postman-india-region.md +102 -0
  292. package/docs/safety-index/artifacts/postman-mcp-server.json +66 -0
  293. package/docs/safety-index/artifacts/postman-mcp-server.md +102 -0
  294. package/docs/safety-index/artifacts/promptopia-server.json +21 -21
  295. package/docs/safety-index/artifacts/promptopia-server.md +11 -11
  296. package/docs/safety-index/artifacts/pubmed-mcp-server.json +58 -0
  297. package/docs/safety-index/artifacts/pubmed-mcp-server.md +96 -0
  298. package/docs/safety-index/artifacts/punjab-health-mcp.json +66 -0
  299. package/docs/safety-index/artifacts/punjab-health-mcp.md +106 -0
  300. package/docs/safety-index/artifacts/puppeteer-server.json +18 -18
  301. package/docs/safety-index/artifacts/puppeteer-server.md +9 -9
  302. package/docs/safety-index/artifacts/qase-server.json +7055 -0
  303. package/docs/safety-index/artifacts/qase-server.md +329 -0
  304. package/docs/safety-index/artifacts/qdrant-server.json +4 -4
  305. package/docs/safety-index/artifacts/qdrant-server.md +4 -4
  306. package/docs/safety-index/artifacts/raspberrypi-server.json +66 -0
  307. package/docs/safety-index/artifacts/raspberrypi-server.md +106 -0
  308. package/docs/safety-index/artifacts/razorpay-mcp.json +66 -0
  309. package/docs/safety-index/artifacts/razorpay-mcp.md +103 -0
  310. package/docs/safety-index/artifacts/reddit-server.json +4 -4
  311. package/docs/safety-index/artifacts/reddit-server.md +3 -3
  312. package/docs/safety-index/artifacts/redis-server.json +66 -0
  313. package/docs/safety-index/artifacts/redis-server.md +106 -0
  314. package/docs/safety-index/artifacts/ref-tools-server.json +18 -18
  315. package/docs/safety-index/artifacts/ref-tools-server.md +8 -8
  316. package/docs/safety-index/artifacts/resend-mcp.json +66 -0
  317. package/docs/safety-index/artifacts/resend-mcp.md +102 -0
  318. package/docs/safety-index/artifacts/rozgar-mcp.json +66 -0
  319. package/docs/safety-index/artifacts/rozgar-mcp.md +106 -0
  320. package/docs/safety-index/artifacts/s3-mcp-server.json +467 -0
  321. package/docs/safety-index/artifacts/s3-mcp-server.md +209 -0
  322. package/docs/safety-index/artifacts/salesforce-mcp-server.json +66 -0
  323. package/docs/safety-index/artifacts/salesforce-mcp-server.md +106 -0
  324. package/docs/safety-index/artifacts/sehat-sahulat-mcp.json +66 -0
  325. package/docs/safety-index/artifacts/sehat-sahulat-mcp.md +106 -0
  326. package/docs/safety-index/artifacts/sendgrid-mcp.json +66 -0
  327. package/docs/safety-index/artifacts/sendgrid-mcp.md +106 -0
  328. package/docs/safety-index/artifacts/sentry-server.json +3 -3
  329. package/docs/safety-index/artifacts/sentry-server.md +2 -2
  330. package/docs/safety-index/artifacts/sequential-thinking-server.json +18 -18
  331. package/docs/safety-index/artifacts/sequential-thinking-server.md +8 -8
  332. package/docs/safety-index/artifacts/shopify-mcp-server.json +66 -0
  333. package/docs/safety-index/artifacts/shopify-mcp-server.md +106 -0
  334. package/docs/safety-index/artifacts/shopify-mcp.json +66 -0
  335. package/docs/safety-index/artifacts/shopify-mcp.md +106 -0
  336. package/docs/safety-index/artifacts/shortcut-mcp-server.json +66 -0
  337. package/docs/safety-index/artifacts/shortcut-mcp-server.md +102 -0
  338. package/docs/safety-index/artifacts/slack-server.json +3 -3
  339. package/docs/safety-index/artifacts/slack-server.md +2 -2
  340. package/docs/safety-index/artifacts/smartbear-mcp-server.json +21483 -0
  341. package/docs/safety-index/artifacts/smartbear-mcp-server.md +900 -0
  342. package/docs/safety-index/artifacts/spotify-mcp.json +2071 -0
  343. package/docs/safety-index/artifacts/spotify-mcp.md +237 -0
  344. package/docs/safety-index/artifacts/spotify-server.json +66 -0
  345. package/docs/safety-index/artifacts/spotify-server.md +106 -0
  346. package/docs/safety-index/artifacts/sqlite-server.json +4 -4
  347. package/docs/safety-index/artifacts/sqlite-server.md +3 -3
  348. package/docs/safety-index/artifacts/stable-diffusion-server.json +66 -0
  349. package/docs/safety-index/artifacts/stable-diffusion-server.md +106 -0
  350. package/docs/safety-index/artifacts/stock-nse-india.json +66 -0
  351. package/docs/safety-index/artifacts/stock-nse-india.md +106 -0
  352. package/docs/safety-index/artifacts/storybook-mcp-server.json +66 -0
  353. package/docs/safety-index/artifacts/storybook-mcp-server.md +103 -0
  354. package/docs/safety-index/artifacts/stripe-server.json +3 -3
  355. package/docs/safety-index/artifacts/stripe-server.md +2 -2
  356. package/docs/safety-index/artifacts/supabase-server.json +3 -3
  357. package/docs/safety-index/artifacts/supabase-server.md +2 -2
  358. package/docs/safety-index/artifacts/tavily-search-server.json +4 -4
  359. package/docs/safety-index/artifacts/tavily-search-server.md +3 -3
  360. package/docs/safety-index/artifacts/telegram-mcp-server.json +66 -0
  361. package/docs/safety-index/artifacts/telegram-mcp-server.md +103 -0
  362. package/docs/safety-index/artifacts/telenor-pakistan-mcp.json +66 -0
  363. package/docs/safety-index/artifacts/telenor-pakistan-mcp.md +106 -0
  364. package/docs/safety-index/artifacts/textlocal-mcp.json +66 -0
  365. package/docs/safety-index/artifacts/textlocal-mcp.md +106 -0
  366. package/docs/safety-index/artifacts/tooljet-mcp.json +66 -0
  367. package/docs/safety-index/artifacts/tooljet-mcp.md +106 -0
  368. package/docs/safety-index/artifacts/transcend-server.json +3438 -0
  369. package/docs/safety-index/artifacts/transcend-server.md +277 -0
  370. package/docs/safety-index/artifacts/trello-mcp-server.json +916 -0
  371. package/docs/safety-index/artifacts/trello-mcp-server.md +211 -0
  372. package/docs/safety-index/artifacts/twilio-mcp.json +66 -0
  373. package/docs/safety-index/artifacts/twilio-mcp.md +106 -0
  374. package/docs/safety-index/artifacts/udyam-mcp.json +66 -0
  375. package/docs/safety-index/artifacts/udyam-mcp.md +106 -0
  376. package/docs/safety-index/artifacts/ufone-mcp.json +66 -0
  377. package/docs/safety-index/artifacts/ufone-mcp.md +106 -0
  378. package/docs/safety-index/artifacts/ui5-mcp-server.json +21 -21
  379. package/docs/safety-index/artifacts/ui5-mcp-server.md +10 -10
  380. package/docs/safety-index/artifacts/unity-server.json +66 -0
  381. package/docs/safety-index/artifacts/unity-server.md +102 -0
  382. package/docs/safety-index/artifacts/upi-mcp.json +452 -0
  383. package/docs/safety-index/artifacts/upi-mcp.md +201 -0
  384. package/docs/safety-index/artifacts/vercel-ai-server.json +4 -4
  385. package/docs/safety-index/artifacts/vercel-ai-server.md +4 -4
  386. package/docs/safety-index/artifacts/vimeo-server.json +66 -0
  387. package/docs/safety-index/artifacts/vimeo-server.md +106 -0
  388. package/docs/safety-index/artifacts/weather-server.json +66 -0
  389. package/docs/safety-index/artifacts/weather-server.md +106 -0
  390. package/docs/safety-index/artifacts/whatsapp-business-mcp.json +66 -0
  391. package/docs/safety-index/artifacts/whatsapp-business-mcp.md +106 -0
  392. package/docs/safety-index/artifacts/whatsapp-mcp-server.json +66 -0
  393. package/docs/safety-index/artifacts/whatsapp-mcp-server.md +106 -0
  394. package/docs/safety-index/artifacts/whatsapp-mcp.json +66 -0
  395. package/docs/safety-index/artifacts/whatsapp-mcp.md +106 -0
  396. package/docs/safety-index/artifacts/yahoo-finance-server.json +626 -0
  397. package/docs/safety-index/artifacts/yahoo-finance-server.md +187 -0
  398. package/docs/safety-index/artifacts/youtube-mcp-server.json +58 -0
  399. package/docs/safety-index/artifacts/youtube-mcp-server.md +96 -0
  400. package/docs/safety-index/artifacts/youtube-server.json +66 -0
  401. package/docs/safety-index/artifacts/youtube-server.md +103 -0
  402. package/docs/safety-index/artifacts/zendesk-mcp.json +66 -0
  403. package/docs/safety-index/artifacts/zendesk-mcp.md +106 -0
  404. package/docs/safety-index/artifacts/zillow-server.json +66 -0
  405. package/docs/safety-index/artifacts/zillow-server.md +102 -0
  406. package/docs/safety-index/artifacts/zong-mcp.json +66 -0
  407. package/docs/safety-index/artifacts/zong-mcp.md +106 -0
  408. package/docs/safety-index/targets.json +2145 -20
  409. package/package.json +10 -9
@@ -0,0 +1,1727 @@
1
+ {
2
+ "artifactType": "run",
3
+ "schemaVersion": "1.0.0",
4
+ "gate": "fail",
5
+ "runId": "run_2026-07-15T223457590Z_5e715cc0",
6
+ "createdAt": "2026-07-15T22:34:57.590Z",
7
+ "toolVersion": "1.32.1",
8
+ "target": {
9
+ "targetId": "confluence-mcp-server",
10
+ "adapter": "local-process",
11
+ "command": "npx",
12
+ "args": [
13
+ "-y",
14
+ "confluence-mcp-server"
15
+ ],
16
+ "cwd": ".",
17
+ "metadata": {
18
+ "package": "confluence-mcp-server",
19
+ "purpose": "mcp-safety-index",
20
+ "riskClass": "Wiki/document platform access",
21
+ "failureClass": "Page/space boundary",
22
+ "whyItMatters": "Confluence MCP servers can read, create, update, and search pages across wiki spaces — agents could access and modify internal documentation at scale."
23
+ },
24
+ "serverName": "confluence-mcp-server",
25
+ "serverVersion": "1.3.3"
26
+ },
27
+ "environment": {
28
+ "platform": "darwin 25.5.0",
29
+ "nodeVersion": "v22.22.1"
30
+ },
31
+ "summary": {
32
+ "total": 9,
33
+ "pass": 2,
34
+ "fail": 2,
35
+ "partial": 3,
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": 4.513166999997338,
47
+ "message": "Advertised capability responded with the minimal expected shape (25 items).",
48
+ "evidence": [
49
+ {
50
+ "endpoint": "tools/list",
51
+ "advertised": true,
52
+ "responded": true,
53
+ "minimalShapePresent": true,
54
+ "itemCount": 25,
55
+ "identifiers": [
56
+ "confluence_configure_connection",
57
+ "confluence_get_connection_status",
58
+ "confluence_get_current_user",
59
+ "confluence_search_pages",
60
+ "confluence_execute_cql_search",
61
+ "confluence_get_page",
62
+ "confluence_get_page_outline",
63
+ "confluence_get_page_section",
64
+ "confluence_get_page_anchor_block",
65
+ "confluence_create_page",
66
+ "confluence_update_page",
67
+ "confluence_update_page_section",
68
+ "confluence_preview_page_section_update",
69
+ "confluence_update_page_section_confirmed",
70
+ "confluence_stage_page_update",
71
+ "confluence_stage_page_section_update",
72
+ "confluence_stage_page_anchor_block_update",
73
+ "confluence_list_pending_page_updates",
74
+ "confluence_get_pending_page_update",
75
+ "confluence_discard_pending_page_update",
76
+ "confluence_commit_pending_page_update",
77
+ "confluence_add_anchor_block_to_section",
78
+ "confluence_preview_page_anchor_block_update",
79
+ "confluence_update_page_anchor_block_confirmed",
80
+ "confluence_upload_attachment"
81
+ ],
82
+ "diagnostics": [
83
+ "[confluence-mcp] No CONF_* connection env vars found; starting unconfigured.",
84
+ "[confluence-mcp] Server running on stdio"
85
+ ],
86
+ "schemas": {
87
+ "confluence_configure_connection": {
88
+ "type": "object",
89
+ "properties": {
90
+ "baseUrl": {
91
+ "type": "string",
92
+ "minLength": 1,
93
+ "description": "Confluence base URL, for example https://confluence.example.com. Required for first configuration; omitted values inherit the current connection."
94
+ },
95
+ "mode": {
96
+ "type": "string",
97
+ "enum": [
98
+ "cloud",
99
+ "server",
100
+ "dc",
101
+ "datacenter",
102
+ "data-center"
103
+ ],
104
+ "description": "Deployment mode (default server). dc/datacenter map to server."
105
+ },
106
+ "authMode": {
107
+ "type": "string",
108
+ "enum": [
109
+ "auto",
110
+ "basic",
111
+ "bearer"
112
+ ],
113
+ "description": "Authentication mode (default auto). Cloud always uses Basic."
114
+ },
115
+ "username": {
116
+ "type": "string",
117
+ "description": "Login username or Cloud email address."
118
+ },
119
+ "token": {
120
+ "type": "string",
121
+ "description": "Access token. Cloud treats this as an API token; Server auto mode treats it as Bearer."
122
+ },
123
+ "password": {
124
+ "type": "string",
125
+ "description": "Password. Server auto/basic mode uses this with username."
126
+ },
127
+ "defaultSpace": {
128
+ "type": "string",
129
+ "description": "Default Confluence space key used when a tool omits spaceKey."
130
+ },
131
+ "verify": {
132
+ "type": "boolean",
133
+ "description": "Verify credentials by calling whoami after configuring (default true)."
134
+ }
135
+ },
136
+ "additionalProperties": false,
137
+ "$schema": "http://json-schema.org/draft-07/schema#"
138
+ },
139
+ "confluence_get_connection_status": {
140
+ "type": "object",
141
+ "properties": {},
142
+ "$schema": "http://json-schema.org/draft-07/schema#"
143
+ },
144
+ "confluence_get_current_user": {
145
+ "type": "object",
146
+ "properties": {},
147
+ "$schema": "http://json-schema.org/draft-07/schema#"
148
+ },
149
+ "confluence_search_pages": {
150
+ "type": "object",
151
+ "properties": {
152
+ "query": {
153
+ "type": "string",
154
+ "description": "Search keywords (optional, empty string means only space/type filter)"
155
+ },
156
+ "spaceKey": {
157
+ "type": "string",
158
+ "description": "Confluence space key (uses CONF_DEFAULT_SPACE if omitted)"
159
+ },
160
+ "limit": {
161
+ "type": "integer",
162
+ "minimum": 1,
163
+ "maximum": 25,
164
+ "description": "Max results to return (default 10, max 25)"
165
+ }
166
+ },
167
+ "additionalProperties": false,
168
+ "$schema": "http://json-schema.org/draft-07/schema#"
169
+ },
170
+ "confluence_execute_cql_search": {
171
+ "type": "object",
172
+ "properties": {
173
+ "cql": {
174
+ "type": "string",
175
+ "description": "Raw Confluence CQL expression"
176
+ },
177
+ "limit": {
178
+ "type": "integer",
179
+ "minimum": 1,
180
+ "maximum": 50,
181
+ "description": "Max results to return (default 10, max 50)"
182
+ },
183
+ "expand": {
184
+ "type": "string",
185
+ "description": "Comma-separated expand fields (default: space,version)"
186
+ }
187
+ },
188
+ "required": [
189
+ "cql"
190
+ ],
191
+ "additionalProperties": false,
192
+ "$schema": "http://json-schema.org/draft-07/schema#"
193
+ },
194
+ "confluence_get_page": {
195
+ "type": "object",
196
+ "properties": {
197
+ "pageId": {
198
+ "type": "string",
199
+ "description": "Confluence page ID"
200
+ },
201
+ "expand": {
202
+ "type": "string",
203
+ "description": "Comma-separated expand fields (default: body.storage,version,space)"
204
+ }
205
+ },
206
+ "required": [
207
+ "pageId"
208
+ ],
209
+ "additionalProperties": false,
210
+ "$schema": "http://json-schema.org/draft-07/schema#"
211
+ },
212
+ "confluence_get_page_outline": {
213
+ "type": "object",
214
+ "properties": {
215
+ "pageId": {
216
+ "type": "string",
217
+ "description": "Confluence page ID"
218
+ }
219
+ },
220
+ "required": [
221
+ "pageId"
222
+ ],
223
+ "additionalProperties": false,
224
+ "$schema": "http://json-schema.org/draft-07/schema#"
225
+ },
226
+ "confluence_get_page_section": {
227
+ "type": "object",
228
+ "properties": {
229
+ "pageId": {
230
+ "type": "string",
231
+ "description": "Confluence page ID"
232
+ },
233
+ "heading": {
234
+ "type": "string",
235
+ "description": "Heading text used to locate the target section"
236
+ },
237
+ "occurrence": {
238
+ "type": "integer",
239
+ "minimum": 1,
240
+ "description": "When the same heading appears multiple times, choose which occurrence (default 1)"
241
+ },
242
+ "includeHeading": {
243
+ "type": "boolean",
244
+ "description": "Include the heading tag in the returned section (default true)"
245
+ },
246
+ "matchMode": {
247
+ "type": "string",
248
+ "enum": [
249
+ "exact",
250
+ "contains"
251
+ ],
252
+ "description": "Heading match mode: exact or contains (default exact)"
253
+ }
254
+ },
255
+ "required": [
256
+ "pageId",
257
+ "heading"
258
+ ],
259
+ "additionalProperties": false,
260
+ "$schema": "http://json-schema.org/draft-07/schema#"
261
+ },
262
+ "confluence_get_page_anchor_block": {
263
+ "type": "object",
264
+ "properties": {
265
+ "pageId": {
266
+ "type": "string",
267
+ "description": "Confluence page ID"
268
+ },
269
+ "startAnchor": {
270
+ "type": "string",
271
+ "description": "Start anchor name"
272
+ },
273
+ "endAnchor": {
274
+ "type": "string",
275
+ "description": "End anchor name"
276
+ }
277
+ },
278
+ "required": [
279
+ "pageId",
280
+ "startAnchor",
281
+ "endAnchor"
282
+ ],
283
+ "additionalProperties": false,
284
+ "$schema": "http://json-schema.org/draft-07/schema#"
285
+ },
286
+ "confluence_create_page": {
287
+ "type": "object",
288
+ "properties": {
289
+ "title": {
290
+ "type": "string",
291
+ "description": "Page title"
292
+ },
293
+ "bodyStorageValue": {
294
+ "type": "string",
295
+ "description": "Page body in Confluence storage format (XHTML)"
296
+ },
297
+ "spaceKey": {
298
+ "type": "string",
299
+ "description": "Confluence space key (uses CONF_DEFAULT_SPACE if omitted)"
300
+ },
301
+ "parentId": {
302
+ "type": "string",
303
+ "description": "Optional parent page ID (ancestor)"
304
+ }
305
+ },
306
+ "required": [
307
+ "title",
308
+ "bodyStorageValue"
309
+ ],
310
+ "additionalProperties": false,
311
+ "$schema": "http://json-schema.org/draft-07/schema#"
312
+ },
313
+ "confluence_update_page": {
314
+ "type": "object",
315
+ "properties": {
316
+ "pageId": {
317
+ "type": "string",
318
+ "description": "Confluence page ID"
319
+ },
320
+ "title": {
321
+ "type": "string",
322
+ "description": "New page title (keeps current title if omitted)"
323
+ },
324
+ "bodyStorageValue": {
325
+ "type": "string",
326
+ "description": "New page body in Confluence storage format (XHTML)"
327
+ },
328
+ "minorEdit": {
329
+ "type": "boolean",
330
+ "description": "Whether this is a minor edit (default true)"
331
+ },
332
+ "message": {
333
+ "type": "string",
334
+ "description": "Version update message / change comment"
335
+ }
336
+ },
337
+ "required": [
338
+ "pageId",
339
+ "bodyStorageValue"
340
+ ],
341
+ "additionalProperties": false,
342
+ "$schema": "http://json-schema.org/draft-07/schema#"
343
+ },
344
+ "confluence_update_page_section": {
345
+ "type": "object",
346
+ "properties": {
347
+ "pageId": {
348
+ "type": "string",
349
+ "description": "Confluence page ID"
350
+ },
351
+ "heading": {
352
+ "type": "string",
353
+ "description": "Heading text used to locate the target section"
354
+ },
355
+ "sectionStorageValue": {
356
+ "type": "string",
357
+ "description": "Replacement storage XHTML for the target section"
358
+ },
359
+ "occurrence": {
360
+ "type": "integer",
361
+ "minimum": 1,
362
+ "description": "When the same heading appears multiple times, choose which occurrence (default 1)"
363
+ },
364
+ "includeHeading": {
365
+ "type": "boolean",
366
+ "description": "When true replace from the heading tag itself; when false only replace the body below it (default true)"
367
+ },
368
+ "matchMode": {
369
+ "type": "string",
370
+ "enum": [
371
+ "exact",
372
+ "contains"
373
+ ],
374
+ "description": "Heading match mode: exact or contains (default exact)"
375
+ },
376
+ "title": {
377
+ "type": "string",
378
+ "description": "New page title (keeps current title if omitted)"
379
+ },
380
+ "minorEdit": {
381
+ "type": "boolean",
382
+ "description": "Whether this is a minor edit (default true)"
383
+ },
384
+ "message": {
385
+ "type": "string",
386
+ "description": "Version update message / change comment"
387
+ }
388
+ },
389
+ "required": [
390
+ "pageId",
391
+ "heading",
392
+ "sectionStorageValue"
393
+ ],
394
+ "additionalProperties": false,
395
+ "$schema": "http://json-schema.org/draft-07/schema#"
396
+ },
397
+ "confluence_preview_page_section_update": {
398
+ "type": "object",
399
+ "properties": {
400
+ "pageId": {
401
+ "type": "string",
402
+ "description": "Confluence page ID"
403
+ },
404
+ "heading": {
405
+ "type": "string",
406
+ "description": "Heading text used to locate the target section"
407
+ },
408
+ "sectionStorageValue": {
409
+ "type": "string",
410
+ "description": "Proposed replacement storage XHTML for the target section"
411
+ },
412
+ "occurrence": {
413
+ "type": "integer",
414
+ "minimum": 1,
415
+ "description": "When the same heading appears multiple times, choose which occurrence (default 1)"
416
+ },
417
+ "includeHeading": {
418
+ "type": "boolean",
419
+ "description": "Include the heading tag in the previewed replace range (default true)"
420
+ },
421
+ "matchMode": {
422
+ "type": "string",
423
+ "enum": [
424
+ "exact",
425
+ "contains"
426
+ ],
427
+ "description": "Heading match mode: exact or contains (default exact)"
428
+ }
429
+ },
430
+ "required": [
431
+ "pageId",
432
+ "heading",
433
+ "sectionStorageValue"
434
+ ],
435
+ "additionalProperties": false,
436
+ "$schema": "http://json-schema.org/draft-07/schema#"
437
+ },
438
+ "confluence_update_page_section_confirmed": {
439
+ "type": "object",
440
+ "properties": {
441
+ "pageId": {
442
+ "type": "string",
443
+ "description": "Confluence page ID"
444
+ },
445
+ "heading": {
446
+ "type": "string",
447
+ "description": "Heading text used to locate the target section"
448
+ },
449
+ "sectionStorageValue": {
450
+ "type": "string",
451
+ "description": "Replacement storage XHTML for the target section"
452
+ },
453
+ "expectedCurrentHash": {
454
+ "type": "string",
455
+ "description": "Hash returned by confluence_preview_page_section_update"
456
+ },
457
+ "occurrence": {
458
+ "type": "integer",
459
+ "minimum": 1,
460
+ "description": "When the same heading appears multiple times, choose which occurrence (default 1)"
461
+ },
462
+ "includeHeading": {
463
+ "type": "boolean",
464
+ "description": "When true replace from the heading tag itself; when false only replace the body below it (default true)"
465
+ },
466
+ "matchMode": {
467
+ "type": "string",
468
+ "enum": [
469
+ "exact",
470
+ "contains"
471
+ ],
472
+ "description": "Heading match mode: exact or contains (default exact)"
473
+ },
474
+ "title": {
475
+ "type": "string",
476
+ "description": "New page title (keeps current title if omitted)"
477
+ },
478
+ "minorEdit": {
479
+ "type": "boolean",
480
+ "description": "Whether this is a minor edit (default true)"
481
+ },
482
+ "message": {
483
+ "type": "string",
484
+ "description": "Version update message / change comment"
485
+ }
486
+ },
487
+ "required": [
488
+ "pageId",
489
+ "heading",
490
+ "sectionStorageValue",
491
+ "expectedCurrentHash"
492
+ ],
493
+ "additionalProperties": false,
494
+ "$schema": "http://json-schema.org/draft-07/schema#"
495
+ },
496
+ "confluence_stage_page_update": {
497
+ "type": "object",
498
+ "properties": {
499
+ "pageId": {
500
+ "type": "string",
501
+ "description": "Confluence page ID"
502
+ },
503
+ "bodyStorageValue": {
504
+ "type": "string",
505
+ "description": "Proposed new page body in Confluence storage format (XHTML)"
506
+ },
507
+ "title": {
508
+ "type": "string",
509
+ "description": "Proposed new page title (keeps current title if omitted)"
510
+ }
511
+ },
512
+ "required": [
513
+ "pageId",
514
+ "bodyStorageValue"
515
+ ],
516
+ "additionalProperties": false,
517
+ "$schema": "http://json-schema.org/draft-07/schema#"
518
+ },
519
+ "confluence_stage_page_section_update": {
520
+ "type": "object",
521
+ "properties": {
522
+ "pageId": {
523
+ "type": "string",
524
+ "description": "Confluence page ID"
525
+ },
526
+ "heading": {
527
+ "type": "string",
528
+ "description": "Heading text used to locate the target section"
529
+ },
530
+ "sectionStorageValue": {
531
+ "type": "string",
532
+ "description": "Proposed replacement storage XHTML for the target section"
533
+ },
534
+ "occurrence": {
535
+ "type": "integer",
536
+ "minimum": 1,
537
+ "description": "When the same heading appears multiple times, choose which occurrence (default 1)"
538
+ },
539
+ "includeHeading": {
540
+ "type": "boolean",
541
+ "description": "When true replace from the heading tag itself; when false only replace the body below it (default true)"
542
+ },
543
+ "matchMode": {
544
+ "type": "string",
545
+ "enum": [
546
+ "exact",
547
+ "contains"
548
+ ],
549
+ "description": "Heading match mode: exact or contains (default exact)"
550
+ },
551
+ "title": {
552
+ "type": "string",
553
+ "description": "Proposed new page title (keeps current title if omitted)"
554
+ }
555
+ },
556
+ "required": [
557
+ "pageId",
558
+ "heading",
559
+ "sectionStorageValue"
560
+ ],
561
+ "additionalProperties": false,
562
+ "$schema": "http://json-schema.org/draft-07/schema#"
563
+ },
564
+ "confluence_stage_page_anchor_block_update": {
565
+ "type": "object",
566
+ "properties": {
567
+ "pageId": {
568
+ "type": "string",
569
+ "description": "Confluence page ID"
570
+ },
571
+ "startAnchor": {
572
+ "type": "string",
573
+ "description": "Start anchor name"
574
+ },
575
+ "endAnchor": {
576
+ "type": "string",
577
+ "description": "End anchor name"
578
+ },
579
+ "blockStorageValue": {
580
+ "type": "string",
581
+ "description": "Proposed replacement storage XHTML between the two anchors"
582
+ },
583
+ "title": {
584
+ "type": "string",
585
+ "description": "Proposed new page title (keeps current title if omitted)"
586
+ }
587
+ },
588
+ "required": [
589
+ "pageId",
590
+ "startAnchor",
591
+ "endAnchor",
592
+ "blockStorageValue"
593
+ ],
594
+ "additionalProperties": false,
595
+ "$schema": "http://json-schema.org/draft-07/schema#"
596
+ },
597
+ "confluence_list_pending_page_updates": {
598
+ "type": "object",
599
+ "properties": {
600
+ "pageId": {
601
+ "type": "string",
602
+ "description": "Only list pending updates for this Confluence page ID"
603
+ }
604
+ },
605
+ "additionalProperties": false,
606
+ "$schema": "http://json-schema.org/draft-07/schema#"
607
+ },
608
+ "confluence_get_pending_page_update": {
609
+ "type": "object",
610
+ "properties": {
611
+ "draftId": {
612
+ "type": "string",
613
+ "description": "Draft ID returned by a stage tool"
614
+ }
615
+ },
616
+ "required": [
617
+ "draftId"
618
+ ],
619
+ "additionalProperties": false,
620
+ "$schema": "http://json-schema.org/draft-07/schema#"
621
+ },
622
+ "confluence_discard_pending_page_update": {
623
+ "type": "object",
624
+ "properties": {
625
+ "draftId": {
626
+ "type": "string",
627
+ "description": "Draft ID returned by a stage tool"
628
+ }
629
+ },
630
+ "required": [
631
+ "draftId"
632
+ ],
633
+ "additionalProperties": false,
634
+ "$schema": "http://json-schema.org/draft-07/schema#"
635
+ },
636
+ "confluence_commit_pending_page_update": {
637
+ "type": "object",
638
+ "properties": {
639
+ "draftId": {
640
+ "type": "string",
641
+ "description": "Draft ID returned by a stage tool"
642
+ },
643
+ "minorEdit": {
644
+ "type": "boolean",
645
+ "description": "Whether this is a minor edit (default true)"
646
+ },
647
+ "message": {
648
+ "type": "string",
649
+ "description": "Version update message / change comment"
650
+ }
651
+ },
652
+ "required": [
653
+ "draftId"
654
+ ],
655
+ "additionalProperties": false,
656
+ "$schema": "http://json-schema.org/draft-07/schema#"
657
+ },
658
+ "confluence_add_anchor_block_to_section": {
659
+ "type": "object",
660
+ "properties": {
661
+ "pageId": {
662
+ "type": "string",
663
+ "description": "Confluence page ID"
664
+ },
665
+ "heading": {
666
+ "type": "string",
667
+ "description": "Heading text used to locate the section"
668
+ },
669
+ "startAnchor": {
670
+ "type": "string",
671
+ "description": "Start anchor name to insert before the section"
672
+ },
673
+ "endAnchor": {
674
+ "type": "string",
675
+ "description": "End anchor name to insert after the section"
676
+ },
677
+ "occurrence": {
678
+ "type": "integer",
679
+ "minimum": 1,
680
+ "description": "When the same heading appears multiple times, choose which occurrence (default 1)"
681
+ },
682
+ "matchMode": {
683
+ "type": "string",
684
+ "enum": [
685
+ "exact",
686
+ "contains"
687
+ ],
688
+ "description": "Heading match mode: exact or contains (default exact)"
689
+ },
690
+ "title": {
691
+ "type": "string",
692
+ "description": "New page title (keeps current title if omitted)"
693
+ },
694
+ "minorEdit": {
695
+ "type": "boolean",
696
+ "description": "Whether this is a minor edit (default true)"
697
+ },
698
+ "message": {
699
+ "type": "string",
700
+ "description": "Version update message / change comment"
701
+ }
702
+ },
703
+ "required": [
704
+ "pageId",
705
+ "heading",
706
+ "startAnchor",
707
+ "endAnchor"
708
+ ],
709
+ "additionalProperties": false,
710
+ "$schema": "http://json-schema.org/draft-07/schema#"
711
+ },
712
+ "confluence_preview_page_anchor_block_update": {
713
+ "type": "object",
714
+ "properties": {
715
+ "pageId": {
716
+ "type": "string",
717
+ "description": "Confluence page ID"
718
+ },
719
+ "startAnchor": {
720
+ "type": "string",
721
+ "description": "Start anchor name"
722
+ },
723
+ "endAnchor": {
724
+ "type": "string",
725
+ "description": "End anchor name"
726
+ },
727
+ "blockStorageValue": {
728
+ "type": "string",
729
+ "description": "Proposed replacement storage XHTML between the two anchors"
730
+ }
731
+ },
732
+ "required": [
733
+ "pageId",
734
+ "startAnchor",
735
+ "endAnchor",
736
+ "blockStorageValue"
737
+ ],
738
+ "additionalProperties": false,
739
+ "$schema": "http://json-schema.org/draft-07/schema#"
740
+ },
741
+ "confluence_update_page_anchor_block_confirmed": {
742
+ "type": "object",
743
+ "properties": {
744
+ "pageId": {
745
+ "type": "string",
746
+ "description": "Confluence page ID"
747
+ },
748
+ "startAnchor": {
749
+ "type": "string",
750
+ "description": "Start anchor name"
751
+ },
752
+ "endAnchor": {
753
+ "type": "string",
754
+ "description": "End anchor name"
755
+ },
756
+ "blockStorageValue": {
757
+ "type": "string",
758
+ "description": "Replacement storage XHTML between the two anchors"
759
+ },
760
+ "expectedCurrentHash": {
761
+ "type": "string",
762
+ "description": "Hash returned by confluence_preview_page_anchor_block_update"
763
+ },
764
+ "title": {
765
+ "type": "string",
766
+ "description": "New page title (keeps current title if omitted)"
767
+ },
768
+ "minorEdit": {
769
+ "type": "boolean",
770
+ "description": "Whether this is a minor edit (default true)"
771
+ },
772
+ "message": {
773
+ "type": "string",
774
+ "description": "Version update message / change comment"
775
+ }
776
+ },
777
+ "required": [
778
+ "pageId",
779
+ "startAnchor",
780
+ "endAnchor",
781
+ "blockStorageValue",
782
+ "expectedCurrentHash"
783
+ ],
784
+ "additionalProperties": false,
785
+ "$schema": "http://json-schema.org/draft-07/schema#"
786
+ },
787
+ "confluence_upload_attachment": {
788
+ "type": "object",
789
+ "properties": {
790
+ "pageId": {
791
+ "type": "string",
792
+ "description": "Confluence page ID"
793
+ },
794
+ "filePath": {
795
+ "type": "string",
796
+ "description": "Local file path to upload from the MCP server machine"
797
+ },
798
+ "base64Data": {
799
+ "type": "string",
800
+ "description": "Base64 file content, optionally as a data URL"
801
+ },
802
+ "fileName": {
803
+ "type": "string",
804
+ "description": "Attachment file name. Required for base64Data; defaults to basename(filePath)"
805
+ },
806
+ "contentType": {
807
+ "type": "string",
808
+ "description": "MIME type such as image/png. Inferred from fileName when omitted"
809
+ },
810
+ "comment": {
811
+ "type": "string",
812
+ "description": "Attachment version comment"
813
+ },
814
+ "minorEdit": {
815
+ "type": "boolean",
816
+ "description": "Whether this attachment version is a minor edit (default true)"
817
+ },
818
+ "overwrite": {
819
+ "type": "boolean",
820
+ "description": "Update same-name attachment as a new version when true (default true); fail on duplicates when false"
821
+ }
822
+ },
823
+ "required": [
824
+ "pageId"
825
+ ],
826
+ "additionalProperties": false,
827
+ "$schema": "http://json-schema.org/draft-07/schema#"
828
+ }
829
+ }
830
+ }
831
+ ]
832
+ },
833
+ {
834
+ "id": "prompts",
835
+ "capability": "prompts",
836
+ "status": "unsupported",
837
+ "durationMs": 0.0007909999985713512,
838
+ "message": "Prompts are not advertised by the target.",
839
+ "evidence": [
840
+ {
841
+ "endpoint": "prompts/list",
842
+ "advertised": false,
843
+ "responded": false,
844
+ "minimalShapePresent": false,
845
+ "diagnostics": []
846
+ }
847
+ ]
848
+ },
849
+ {
850
+ "id": "resources",
851
+ "capability": "resources",
852
+ "status": "unsupported",
853
+ "durationMs": 0.0005830000009154901,
854
+ "message": "Resources are not advertised by the target.",
855
+ "evidence": [
856
+ {
857
+ "endpoint": "resources/list | resources/templates/list",
858
+ "advertised": false,
859
+ "responded": false,
860
+ "minimalShapePresent": false,
861
+ "diagnostics": []
862
+ }
863
+ ]
864
+ },
865
+ {
866
+ "id": "security-lite",
867
+ "capability": "security-lite",
868
+ "status": "fail",
869
+ "durationMs": 0.06362499999522697,
870
+ "message": "Found 1 security finding(s): 1 high, 0 medium, 0 low.",
871
+ "evidence": [
872
+ {
873
+ "endpoint": "security/scan-lite",
874
+ "advertised": true,
875
+ "responded": true,
876
+ "minimalShapePresent": true,
877
+ "itemCount": 1,
878
+ "identifiers": [
879
+ "confluence_execute_cql_search"
880
+ ],
881
+ "diagnostics": [
882
+ "[high] Tool \"confluence_execute_cql_search\" name suggests command execution capability."
883
+ ],
884
+ "findings": [
885
+ {
886
+ "ruleId": "shell-injection",
887
+ "severity": "high",
888
+ "toolName": "confluence_execute_cql_search",
889
+ "message": "Tool \"confluence_execute_cql_search\" name suggests command execution capability."
890
+ }
891
+ ]
892
+ }
893
+ ]
894
+ },
895
+ {
896
+ "id": "runtime-profile",
897
+ "capability": "runtime-profile",
898
+ "status": "partial",
899
+ "durationMs": 0.27937499999825377,
900
+ "message": "Detected 6 potential egress target(s) and 44 potential state mutation(s) with high confidence.",
901
+ "evidence": [
902
+ {
903
+ "endpoint": "runtime-profile/analyze",
904
+ "advertised": true,
905
+ "responded": true,
906
+ "minimalShapePresent": true,
907
+ "itemCount": 50,
908
+ "diagnostics": [
909
+ "Egress entries: 6",
910
+ "State mutations: 44",
911
+ "Confidence: high"
912
+ ],
913
+ "findings": [
914
+ {
915
+ "target": "baseUrl",
916
+ "protocol": "unknown",
917
+ "source": "tool_schema",
918
+ "confidence": "high"
919
+ },
920
+ {
921
+ "target": "Confluence base URL, for example https://confluence.example.com. Required for first configuration; omitted values inherit the current connection.",
922
+ "protocol": "unknown",
923
+ "source": "description_analysis",
924
+ "confidence": "medium"
925
+ },
926
+ {
927
+ "target": "Access token. Cloud treats this as an API token; Server auto mode treats it as Bearer.",
928
+ "protocol": "unknown",
929
+ "source": "description_analysis",
930
+ "confidence": "medium"
931
+ },
932
+ {
933
+ "target": "confluence_search_pages",
934
+ "protocol": "unknown",
935
+ "source": "description_analysis",
936
+ "confidence": "low"
937
+ },
938
+ {
939
+ "target": "confluence_execute_cql_search",
940
+ "protocol": "unknown",
941
+ "source": "description_analysis",
942
+ "confidence": "low"
943
+ },
944
+ {
945
+ "target": "Base64 file content, optionally as a data URL",
946
+ "protocol": "unknown",
947
+ "source": "description_analysis",
948
+ "confidence": "medium"
949
+ },
950
+ {
951
+ "resource": "filesystem",
952
+ "operation": "write",
953
+ "scope": "working_directory",
954
+ "source": "description_analysis"
955
+ },
956
+ {
957
+ "resource": "filesystem",
958
+ "operation": "write",
959
+ "scope": "working_directory",
960
+ "source": "description_analysis"
961
+ },
962
+ {
963
+ "resource": "filesystem",
964
+ "operation": "write",
965
+ "scope": "working_directory",
966
+ "source": "description_analysis"
967
+ },
968
+ {
969
+ "resource": "filesystem",
970
+ "operation": "write",
971
+ "scope": "working_directory",
972
+ "source": "description_analysis"
973
+ },
974
+ {
975
+ "resource": "filesystem",
976
+ "operation": "write",
977
+ "scope": "working_directory",
978
+ "source": "description_analysis"
979
+ },
980
+ {
981
+ "resource": "filesystem",
982
+ "operation": "write",
983
+ "scope": "working_directory",
984
+ "source": "description_analysis"
985
+ },
986
+ {
987
+ "resource": "filesystem",
988
+ "operation": "write",
989
+ "scope": "working_directory",
990
+ "source": "description_analysis"
991
+ },
992
+ {
993
+ "resource": "filesystem",
994
+ "operation": "write",
995
+ "scope": "working_directory",
996
+ "source": "description_analysis"
997
+ },
998
+ {
999
+ "resource": "filesystem",
1000
+ "operation": "write",
1001
+ "scope": "working_directory",
1002
+ "source": "description_analysis"
1003
+ },
1004
+ {
1005
+ "resource": "filesystem",
1006
+ "operation": "write",
1007
+ "scope": "working_directory",
1008
+ "source": "description_analysis"
1009
+ },
1010
+ {
1011
+ "resource": "filesystem",
1012
+ "operation": "write",
1013
+ "scope": "working_directory",
1014
+ "source": "description_analysis"
1015
+ },
1016
+ {
1017
+ "resource": "filesystem",
1018
+ "operation": "write",
1019
+ "scope": "working_directory",
1020
+ "source": "description_analysis"
1021
+ },
1022
+ {
1023
+ "resource": "filesystem",
1024
+ "operation": "write",
1025
+ "scope": "working_directory",
1026
+ "source": "description_analysis"
1027
+ },
1028
+ {
1029
+ "resource": "filesystem",
1030
+ "operation": "write",
1031
+ "scope": "working_directory",
1032
+ "source": "description_analysis"
1033
+ },
1034
+ {
1035
+ "resource": "filesystem",
1036
+ "operation": "write",
1037
+ "scope": "working_directory",
1038
+ "source": "description_analysis"
1039
+ },
1040
+ {
1041
+ "resource": "filesystem",
1042
+ "operation": "write",
1043
+ "scope": "working_directory",
1044
+ "source": "description_analysis"
1045
+ },
1046
+ {
1047
+ "resource": "filesystem",
1048
+ "operation": "write",
1049
+ "scope": "working_directory",
1050
+ "source": "description_analysis"
1051
+ },
1052
+ {
1053
+ "resource": "filesystem",
1054
+ "operation": "write",
1055
+ "scope": "working_directory",
1056
+ "source": "description_analysis"
1057
+ },
1058
+ {
1059
+ "resource": "filesystem",
1060
+ "operation": "write",
1061
+ "scope": "working_directory",
1062
+ "source": "description_analysis"
1063
+ },
1064
+ {
1065
+ "resource": "filesystem",
1066
+ "operation": "write",
1067
+ "scope": "working_directory",
1068
+ "source": "description_analysis"
1069
+ },
1070
+ {
1071
+ "resource": "filesystem",
1072
+ "operation": "write",
1073
+ "scope": "working_directory",
1074
+ "source": "description_analysis"
1075
+ },
1076
+ {
1077
+ "resource": "filesystem",
1078
+ "operation": "write",
1079
+ "scope": "working_directory",
1080
+ "source": "description_analysis"
1081
+ },
1082
+ {
1083
+ "resource": "filesystem",
1084
+ "operation": "write",
1085
+ "scope": "working_directory",
1086
+ "source": "description_analysis"
1087
+ },
1088
+ {
1089
+ "resource": "filesystem",
1090
+ "operation": "write",
1091
+ "scope": "working_directory",
1092
+ "source": "description_analysis"
1093
+ },
1094
+ {
1095
+ "resource": "filesystem",
1096
+ "operation": "write",
1097
+ "scope": "working_directory",
1098
+ "source": "description_analysis"
1099
+ },
1100
+ {
1101
+ "resource": "filesystem",
1102
+ "operation": "write",
1103
+ "scope": "working_directory",
1104
+ "source": "description_analysis"
1105
+ },
1106
+ {
1107
+ "resource": "filesystem",
1108
+ "operation": "write",
1109
+ "scope": "working_directory",
1110
+ "source": "description_analysis"
1111
+ },
1112
+ {
1113
+ "resource": "filesystem",
1114
+ "operation": "write",
1115
+ "scope": "working_directory",
1116
+ "source": "description_analysis"
1117
+ },
1118
+ {
1119
+ "resource": "filesystem",
1120
+ "operation": "write",
1121
+ "scope": "working_directory",
1122
+ "source": "description_analysis"
1123
+ },
1124
+ {
1125
+ "resource": "filesystem",
1126
+ "operation": "write",
1127
+ "scope": "working_directory",
1128
+ "source": "description_analysis"
1129
+ },
1130
+ {
1131
+ "resource": "filesystem",
1132
+ "operation": "write",
1133
+ "scope": "working_directory",
1134
+ "source": "description_analysis"
1135
+ },
1136
+ {
1137
+ "resource": "filesystem",
1138
+ "operation": "write",
1139
+ "scope": "working_directory",
1140
+ "source": "description_analysis"
1141
+ },
1142
+ {
1143
+ "resource": "filesystem",
1144
+ "operation": "write",
1145
+ "scope": "working_directory",
1146
+ "source": "description_analysis"
1147
+ },
1148
+ {
1149
+ "resource": "filesystem",
1150
+ "operation": "write",
1151
+ "scope": "working_directory",
1152
+ "source": "description_analysis"
1153
+ },
1154
+ {
1155
+ "resource": "filesystem",
1156
+ "operation": "write",
1157
+ "scope": "working_directory",
1158
+ "source": "description_analysis"
1159
+ },
1160
+ {
1161
+ "resource": "filesystem",
1162
+ "operation": "write",
1163
+ "scope": "working_directory",
1164
+ "source": "description_analysis"
1165
+ },
1166
+ {
1167
+ "resource": "filesystem",
1168
+ "operation": "write",
1169
+ "scope": "working_directory",
1170
+ "source": "description_analysis"
1171
+ },
1172
+ {
1173
+ "resource": "filesystem",
1174
+ "operation": "write",
1175
+ "scope": "working_directory",
1176
+ "source": "description_analysis"
1177
+ },
1178
+ {
1179
+ "resource": "filesystem",
1180
+ "operation": "write",
1181
+ "scope": "working_directory",
1182
+ "source": "tool_schema"
1183
+ },
1184
+ {
1185
+ "resource": "filesystem",
1186
+ "operation": "write",
1187
+ "scope": "working_directory",
1188
+ "source": "tool_schema"
1189
+ },
1190
+ {
1191
+ "resource": "filesystem",
1192
+ "operation": "write",
1193
+ "scope": "working_directory",
1194
+ "source": "description_analysis"
1195
+ },
1196
+ {
1197
+ "resource": "filesystem",
1198
+ "operation": "write",
1199
+ "scope": "working_directory",
1200
+ "source": "description_analysis"
1201
+ },
1202
+ {
1203
+ "resource": "filesystem",
1204
+ "operation": "write",
1205
+ "scope": "working_directory",
1206
+ "source": "description_analysis"
1207
+ },
1208
+ {
1209
+ "resource": "filesystem",
1210
+ "operation": "write",
1211
+ "scope": "working_directory",
1212
+ "source": "description_analysis"
1213
+ }
1214
+ ]
1215
+ }
1216
+ ]
1217
+ },
1218
+ {
1219
+ "id": "conformance",
1220
+ "capability": "conformance",
1221
+ "status": "pass",
1222
+ "durationMs": 1.9405000000115251,
1223
+ "message": "All 7 conformance checks passed.",
1224
+ "evidence": [
1225
+ {
1226
+ "endpoint": "conformance/check",
1227
+ "advertised": true,
1228
+ "responded": true,
1229
+ "minimalShapePresent": true,
1230
+ "itemCount": 7,
1231
+ "identifiers": [],
1232
+ "diagnostics": [
1233
+ "[pass] capabilities-present: Server returned capabilities object.",
1234
+ "[pass] server-info: Server provided initialization info.",
1235
+ "[pass] tools-capability-match: tools/list returned 25 tool(s).",
1236
+ "[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
1237
+ "[pass] resources-capability-match: Resources not advertised — endpoint check skipped.",
1238
+ "[pass] tool-response-content: Tool \"confluence_configure_connection\" response has valid content array.",
1239
+ "[pass] error-handling: Server returned proper error code -32601 for unknown method."
1240
+ ]
1241
+ }
1242
+ ]
1243
+ },
1244
+ {
1245
+ "id": "schema-quality",
1246
+ "capability": "schema-quality",
1247
+ "status": "partial",
1248
+ "durationMs": 1.0485000000044238,
1249
+ "message": "Found 3 quality finding(s) across 25 item(s): 0 warnings, 3 info.",
1250
+ "evidence": [
1251
+ {
1252
+ "endpoint": "schema-quality/scan",
1253
+ "advertised": true,
1254
+ "responded": true,
1255
+ "minimalShapePresent": true,
1256
+ "itemCount": 3,
1257
+ "identifiers": [
1258
+ "confluence_configure_connection",
1259
+ "confluence_search_pages",
1260
+ "confluence_list_pending_page_updates"
1261
+ ],
1262
+ "diagnostics": [
1263
+ "[info] tool \"confluence_configure_connection\": Has properties but no 'required' array declared",
1264
+ "[info] tool \"confluence_search_pages\": Has properties but no 'required' array declared",
1265
+ "[info] tool \"confluence_list_pending_page_updates\": Has properties but no 'required' array declared"
1266
+ ],
1267
+ "findings": [
1268
+ {
1269
+ "itemType": "tool",
1270
+ "itemName": "confluence_configure_connection",
1271
+ "issue": "Has properties but no 'required' array declared",
1272
+ "severity": "info"
1273
+ },
1274
+ {
1275
+ "itemType": "tool",
1276
+ "itemName": "confluence_search_pages",
1277
+ "issue": "Has properties but no 'required' array declared",
1278
+ "severity": "info"
1279
+ },
1280
+ {
1281
+ "itemType": "tool",
1282
+ "itemName": "confluence_list_pending_page_updates",
1283
+ "issue": "Has properties but no 'required' array declared",
1284
+ "severity": "info"
1285
+ }
1286
+ ]
1287
+ }
1288
+ ]
1289
+ },
1290
+ {
1291
+ "id": "security",
1292
+ "capability": "security",
1293
+ "status": "fail",
1294
+ "durationMs": 0.8724999999976717,
1295
+ "message": "Found 1 security finding(s): 1 high, 0 medium, 0 low.",
1296
+ "evidence": [
1297
+ {
1298
+ "endpoint": "security/scan",
1299
+ "advertised": true,
1300
+ "responded": true,
1301
+ "minimalShapePresent": true,
1302
+ "itemCount": 1,
1303
+ "identifiers": [
1304
+ "confluence_execute_cql_search"
1305
+ ],
1306
+ "diagnostics": [
1307
+ "[high] Tool \"confluence_execute_cql_search\" name suggests command execution capability."
1308
+ ],
1309
+ "findings": [
1310
+ {
1311
+ "ruleId": "shell-injection",
1312
+ "severity": "high",
1313
+ "toolName": "confluence_execute_cql_search",
1314
+ "message": "Tool \"confluence_execute_cql_search\" name suggests command execution capability."
1315
+ }
1316
+ ]
1317
+ }
1318
+ ]
1319
+ },
1320
+ {
1321
+ "id": "attack-sim",
1322
+ "capability": "attack-sim",
1323
+ "status": "partial",
1324
+ "durationMs": 0.8293750000011642,
1325
+ "message": "Safe attack simulation found 1 finding(s): 0 high, 1 medium, 0 low.",
1326
+ "evidence": [
1327
+ {
1328
+ "endpoint": "attack-sim/safe",
1329
+ "advertised": true,
1330
+ "responded": true,
1331
+ "minimalShapePresent": true,
1332
+ "itemCount": 1,
1333
+ "identifiers": [
1334
+ "confluence_upload_attachment"
1335
+ ],
1336
+ "diagnostics": [
1337
+ "[medium] Tool \"confluence_upload_attachment\" combines broad parameters (filePath, fileName) with destructive or non-read-only behavior."
1338
+ ],
1339
+ "findings": [
1340
+ {
1341
+ "ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
1342
+ "attackClass": "permission-boundary",
1343
+ "severity": "medium",
1344
+ "itemType": "tool",
1345
+ "itemName": "confluence_upload_attachment",
1346
+ "message": "Tool \"confluence_upload_attachment\" combines broad parameters (filePath, fileName) with destructive or non-read-only behavior.",
1347
+ "evidence": {
1348
+ "broadParams": [
1349
+ "filePath",
1350
+ "fileName"
1351
+ ],
1352
+ "description": "Upload an attachment to a Confluence page. Supports local filePath or base64Data; same-name files are updated by default. Returns attachment fields and image storage markup when applicable."
1353
+ },
1354
+ "recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
1355
+ "recommendedAction": "gate"
1356
+ }
1357
+ ]
1358
+ }
1359
+ ]
1360
+ }
1361
+ ],
1362
+ "healthScore": {
1363
+ "overall": 69,
1364
+ "grade": "D",
1365
+ "dimensions": [
1366
+ {
1367
+ "name": "Protocol Compliance",
1368
+ "weight": 0.3,
1369
+ "score": 100,
1370
+ "details": [
1371
+ "conformance: pass (100/100)"
1372
+ ]
1373
+ },
1374
+ {
1375
+ "name": "Schema Quality",
1376
+ "weight": 0.2,
1377
+ "score": 60,
1378
+ "details": [
1379
+ "schema-quality: partial (60/100)"
1380
+ ]
1381
+ },
1382
+ {
1383
+ "name": "Security",
1384
+ "weight": 0.2,
1385
+ "score": 20,
1386
+ "details": [
1387
+ "security-lite: fail (0/100)",
1388
+ "security: fail (0/100)",
1389
+ "attack-sim: partial (60/100)"
1390
+ ]
1391
+ },
1392
+ {
1393
+ "name": "Reliability",
1394
+ "weight": 0.2,
1395
+ "score": 67,
1396
+ "details": [
1397
+ "tools: pass (100/100)",
1398
+ "prompts: unsupported (50/100)",
1399
+ "resources: unsupported (50/100)"
1400
+ ]
1401
+ },
1402
+ {
1403
+ "name": "Performance",
1404
+ "weight": 0.1,
1405
+ "score": 100,
1406
+ "details": [
1407
+ "Connect: 683ms",
1408
+ "p95 latency: 5ms (3 operations)"
1409
+ ]
1410
+ }
1411
+ ]
1412
+ },
1413
+ "performanceMetrics": {
1414
+ "connectMs": 683.4728750000068,
1415
+ "toolsListMs": 4.513166999997338,
1416
+ "promptsListMs": 0.0007909999985713512,
1417
+ "resourcesListMs": 0.0005830000009154901
1418
+ },
1419
+ "runtimeProfile": {
1420
+ "egress": [
1421
+ {
1422
+ "target": "baseUrl",
1423
+ "protocol": "unknown",
1424
+ "source": "tool_schema",
1425
+ "confidence": "high"
1426
+ },
1427
+ {
1428
+ "target": "Confluence base URL, for example https://confluence.example.com. Required for first configuration; omitted values inherit the current connection.",
1429
+ "protocol": "unknown",
1430
+ "source": "description_analysis",
1431
+ "confidence": "medium"
1432
+ },
1433
+ {
1434
+ "target": "Access token. Cloud treats this as an API token; Server auto mode treats it as Bearer.",
1435
+ "protocol": "unknown",
1436
+ "source": "description_analysis",
1437
+ "confidence": "medium"
1438
+ },
1439
+ {
1440
+ "target": "confluence_search_pages",
1441
+ "protocol": "unknown",
1442
+ "source": "description_analysis",
1443
+ "confidence": "low"
1444
+ },
1445
+ {
1446
+ "target": "confluence_execute_cql_search",
1447
+ "protocol": "unknown",
1448
+ "source": "description_analysis",
1449
+ "confidence": "low"
1450
+ },
1451
+ {
1452
+ "target": "Base64 file content, optionally as a data URL",
1453
+ "protocol": "unknown",
1454
+ "source": "description_analysis",
1455
+ "confidence": "medium"
1456
+ }
1457
+ ],
1458
+ "stateMutations": [
1459
+ {
1460
+ "resource": "filesystem",
1461
+ "operation": "write",
1462
+ "scope": "working_directory",
1463
+ "source": "description_analysis"
1464
+ },
1465
+ {
1466
+ "resource": "filesystem",
1467
+ "operation": "write",
1468
+ "scope": "working_directory",
1469
+ "source": "description_analysis"
1470
+ },
1471
+ {
1472
+ "resource": "filesystem",
1473
+ "operation": "write",
1474
+ "scope": "working_directory",
1475
+ "source": "description_analysis"
1476
+ },
1477
+ {
1478
+ "resource": "filesystem",
1479
+ "operation": "write",
1480
+ "scope": "working_directory",
1481
+ "source": "description_analysis"
1482
+ },
1483
+ {
1484
+ "resource": "filesystem",
1485
+ "operation": "write",
1486
+ "scope": "working_directory",
1487
+ "source": "description_analysis"
1488
+ },
1489
+ {
1490
+ "resource": "filesystem",
1491
+ "operation": "write",
1492
+ "scope": "working_directory",
1493
+ "source": "description_analysis"
1494
+ },
1495
+ {
1496
+ "resource": "filesystem",
1497
+ "operation": "write",
1498
+ "scope": "working_directory",
1499
+ "source": "description_analysis"
1500
+ },
1501
+ {
1502
+ "resource": "filesystem",
1503
+ "operation": "write",
1504
+ "scope": "working_directory",
1505
+ "source": "description_analysis"
1506
+ },
1507
+ {
1508
+ "resource": "filesystem",
1509
+ "operation": "write",
1510
+ "scope": "working_directory",
1511
+ "source": "description_analysis"
1512
+ },
1513
+ {
1514
+ "resource": "filesystem",
1515
+ "operation": "write",
1516
+ "scope": "working_directory",
1517
+ "source": "description_analysis"
1518
+ },
1519
+ {
1520
+ "resource": "filesystem",
1521
+ "operation": "write",
1522
+ "scope": "working_directory",
1523
+ "source": "description_analysis"
1524
+ },
1525
+ {
1526
+ "resource": "filesystem",
1527
+ "operation": "write",
1528
+ "scope": "working_directory",
1529
+ "source": "description_analysis"
1530
+ },
1531
+ {
1532
+ "resource": "filesystem",
1533
+ "operation": "write",
1534
+ "scope": "working_directory",
1535
+ "source": "description_analysis"
1536
+ },
1537
+ {
1538
+ "resource": "filesystem",
1539
+ "operation": "write",
1540
+ "scope": "working_directory",
1541
+ "source": "description_analysis"
1542
+ },
1543
+ {
1544
+ "resource": "filesystem",
1545
+ "operation": "write",
1546
+ "scope": "working_directory",
1547
+ "source": "description_analysis"
1548
+ },
1549
+ {
1550
+ "resource": "filesystem",
1551
+ "operation": "write",
1552
+ "scope": "working_directory",
1553
+ "source": "description_analysis"
1554
+ },
1555
+ {
1556
+ "resource": "filesystem",
1557
+ "operation": "write",
1558
+ "scope": "working_directory",
1559
+ "source": "description_analysis"
1560
+ },
1561
+ {
1562
+ "resource": "filesystem",
1563
+ "operation": "write",
1564
+ "scope": "working_directory",
1565
+ "source": "description_analysis"
1566
+ },
1567
+ {
1568
+ "resource": "filesystem",
1569
+ "operation": "write",
1570
+ "scope": "working_directory",
1571
+ "source": "description_analysis"
1572
+ },
1573
+ {
1574
+ "resource": "filesystem",
1575
+ "operation": "write",
1576
+ "scope": "working_directory",
1577
+ "source": "description_analysis"
1578
+ },
1579
+ {
1580
+ "resource": "filesystem",
1581
+ "operation": "write",
1582
+ "scope": "working_directory",
1583
+ "source": "description_analysis"
1584
+ },
1585
+ {
1586
+ "resource": "filesystem",
1587
+ "operation": "write",
1588
+ "scope": "working_directory",
1589
+ "source": "description_analysis"
1590
+ },
1591
+ {
1592
+ "resource": "filesystem",
1593
+ "operation": "write",
1594
+ "scope": "working_directory",
1595
+ "source": "description_analysis"
1596
+ },
1597
+ {
1598
+ "resource": "filesystem",
1599
+ "operation": "write",
1600
+ "scope": "working_directory",
1601
+ "source": "description_analysis"
1602
+ },
1603
+ {
1604
+ "resource": "filesystem",
1605
+ "operation": "write",
1606
+ "scope": "working_directory",
1607
+ "source": "description_analysis"
1608
+ },
1609
+ {
1610
+ "resource": "filesystem",
1611
+ "operation": "write",
1612
+ "scope": "working_directory",
1613
+ "source": "description_analysis"
1614
+ },
1615
+ {
1616
+ "resource": "filesystem",
1617
+ "operation": "write",
1618
+ "scope": "working_directory",
1619
+ "source": "description_analysis"
1620
+ },
1621
+ {
1622
+ "resource": "filesystem",
1623
+ "operation": "write",
1624
+ "scope": "working_directory",
1625
+ "source": "description_analysis"
1626
+ },
1627
+ {
1628
+ "resource": "filesystem",
1629
+ "operation": "write",
1630
+ "scope": "working_directory",
1631
+ "source": "description_analysis"
1632
+ },
1633
+ {
1634
+ "resource": "filesystem",
1635
+ "operation": "write",
1636
+ "scope": "working_directory",
1637
+ "source": "description_analysis"
1638
+ },
1639
+ {
1640
+ "resource": "filesystem",
1641
+ "operation": "write",
1642
+ "scope": "working_directory",
1643
+ "source": "description_analysis"
1644
+ },
1645
+ {
1646
+ "resource": "filesystem",
1647
+ "operation": "write",
1648
+ "scope": "working_directory",
1649
+ "source": "description_analysis"
1650
+ },
1651
+ {
1652
+ "resource": "filesystem",
1653
+ "operation": "write",
1654
+ "scope": "working_directory",
1655
+ "source": "description_analysis"
1656
+ },
1657
+ {
1658
+ "resource": "filesystem",
1659
+ "operation": "write",
1660
+ "scope": "working_directory",
1661
+ "source": "description_analysis"
1662
+ },
1663
+ {
1664
+ "resource": "filesystem",
1665
+ "operation": "write",
1666
+ "scope": "working_directory",
1667
+ "source": "description_analysis"
1668
+ },
1669
+ {
1670
+ "resource": "filesystem",
1671
+ "operation": "write",
1672
+ "scope": "working_directory",
1673
+ "source": "description_analysis"
1674
+ },
1675
+ {
1676
+ "resource": "filesystem",
1677
+ "operation": "write",
1678
+ "scope": "working_directory",
1679
+ "source": "description_analysis"
1680
+ },
1681
+ {
1682
+ "resource": "filesystem",
1683
+ "operation": "write",
1684
+ "scope": "working_directory",
1685
+ "source": "description_analysis"
1686
+ },
1687
+ {
1688
+ "resource": "filesystem",
1689
+ "operation": "write",
1690
+ "scope": "working_directory",
1691
+ "source": "tool_schema"
1692
+ },
1693
+ {
1694
+ "resource": "filesystem",
1695
+ "operation": "write",
1696
+ "scope": "working_directory",
1697
+ "source": "tool_schema"
1698
+ },
1699
+ {
1700
+ "resource": "filesystem",
1701
+ "operation": "write",
1702
+ "scope": "working_directory",
1703
+ "source": "description_analysis"
1704
+ },
1705
+ {
1706
+ "resource": "filesystem",
1707
+ "operation": "write",
1708
+ "scope": "working_directory",
1709
+ "source": "description_analysis"
1710
+ },
1711
+ {
1712
+ "resource": "filesystem",
1713
+ "operation": "write",
1714
+ "scope": "working_directory",
1715
+ "source": "description_analysis"
1716
+ },
1717
+ {
1718
+ "resource": "filesystem",
1719
+ "operation": "write",
1720
+ "scope": "working_directory",
1721
+ "source": "description_analysis"
1722
+ }
1723
+ ],
1724
+ "analyzedAt": "2026-07-15T22:34:58.279Z",
1725
+ "confidence": "high"
1726
+ }
1727
+ }