scorecard-ai-mcp 2.5.0 → 3.0.0-beta.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 (416) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +14 -225
  3. package/code-tool-types.d.mts +6 -7
  4. package/code-tool-types.d.mts.map +1 -1
  5. package/code-tool-types.d.ts +6 -7
  6. package/code-tool-types.d.ts.map +1 -1
  7. package/code-tool.d.mts +2 -2
  8. package/code-tool.d.mts.map +1 -1
  9. package/code-tool.d.ts +2 -2
  10. package/code-tool.d.ts.map +1 -1
  11. package/code-tool.js +54 -128
  12. package/code-tool.js.map +1 -1
  13. package/code-tool.mjs +54 -95
  14. package/code-tool.mjs.map +1 -1
  15. package/docs-search-tool.d.mts +15 -9
  16. package/docs-search-tool.d.mts.map +1 -1
  17. package/docs-search-tool.d.ts +15 -9
  18. package/docs-search-tool.d.ts.map +1 -1
  19. package/docs-search-tool.js +11 -3
  20. package/docs-search-tool.js.map +1 -1
  21. package/docs-search-tool.mjs +11 -3
  22. package/docs-search-tool.mjs.map +1 -1
  23. package/http.d.mts.map +1 -1
  24. package/http.d.ts.map +1 -1
  25. package/http.js +1 -18
  26. package/http.js.map +1 -1
  27. package/http.mjs +1 -18
  28. package/http.mjs.map +1 -1
  29. package/index.js +4 -40
  30. package/index.js.map +1 -1
  31. package/index.mjs +4 -40
  32. package/index.mjs.map +1 -1
  33. package/options.d.mts +0 -9
  34. package/options.d.mts.map +1 -1
  35. package/options.d.ts +0 -9
  36. package/options.d.ts.map +1 -1
  37. package/options.js +6 -361
  38. package/options.js.map +1 -1
  39. package/options.mjs +6 -361
  40. package/options.mjs.map +1 -1
  41. package/package.json +10 -66
  42. package/server.d.mts +3 -8
  43. package/server.d.mts.map +1 -1
  44. package/server.d.ts +3 -8
  45. package/server.d.ts.map +1 -1
  46. package/server.js +12 -65
  47. package/server.js.map +1 -1
  48. package/server.mjs +11 -62
  49. package/server.mjs.map +1 -1
  50. package/src/code-tool-types.ts +6 -5
  51. package/src/code-tool.ts +63 -117
  52. package/src/docs-search-tool.ts +15 -4
  53. package/src/http.ts +1 -19
  54. package/src/index.ts +5 -52
  55. package/src/options.ts +7 -388
  56. package/src/server.ts +12 -72
  57. package/src/stdio.ts +2 -3
  58. package/src/{tools/types.ts → types.ts} +1 -1
  59. package/stdio.d.mts +1 -2
  60. package/stdio.d.mts.map +1 -1
  61. package/stdio.d.ts +1 -2
  62. package/stdio.d.ts.map +1 -1
  63. package/stdio.js +2 -2
  64. package/stdio.js.map +1 -1
  65. package/stdio.mjs +2 -2
  66. package/stdio.mjs.map +1 -1
  67. package/{tools/types.d.mts → types.d.mts} +1 -1
  68. package/types.d.mts.map +1 -0
  69. package/{tools/types.d.ts → types.d.ts} +1 -1
  70. package/types.d.ts.map +1 -0
  71. package/types.js.map +1 -0
  72. package/types.mjs.map +1 -0
  73. package/code-tool-paths.cjs +0 -6
  74. package/code-tool-paths.cjs.map +0 -1
  75. package/code-tool-paths.d.cts +0 -2
  76. package/code-tool-paths.d.cts.map +0 -1
  77. package/code-tool-worker.d.mts +0 -5
  78. package/code-tool-worker.d.mts.map +0 -1
  79. package/code-tool-worker.d.ts +0 -5
  80. package/code-tool-worker.d.ts.map +0 -1
  81. package/code-tool-worker.js +0 -179
  82. package/code-tool-worker.js.map +0 -1
  83. package/code-tool-worker.mjs +0 -174
  84. package/code-tool-worker.mjs.map +0 -1
  85. package/compat.d.mts +0 -58
  86. package/compat.d.mts.map +0 -1
  87. package/compat.d.ts +0 -58
  88. package/compat.d.ts.map +0 -1
  89. package/compat.js +0 -387
  90. package/compat.js.map +0 -1
  91. package/compat.mjs +0 -378
  92. package/compat.mjs.map +0 -1
  93. package/dynamic-tools.d.mts +0 -12
  94. package/dynamic-tools.d.mts.map +0 -1
  95. package/dynamic-tools.d.ts +0 -12
  96. package/dynamic-tools.d.ts.map +0 -1
  97. package/dynamic-tools.js +0 -135
  98. package/dynamic-tools.js.map +0 -1
  99. package/dynamic-tools.mjs +0 -132
  100. package/dynamic-tools.mjs.map +0 -1
  101. package/filtering.d.mts +0 -3
  102. package/filtering.d.mts.map +0 -1
  103. package/filtering.d.ts +0 -3
  104. package/filtering.d.ts.map +0 -1
  105. package/filtering.js +0 -24
  106. package/filtering.js.map +0 -1
  107. package/filtering.mjs +0 -16
  108. package/filtering.mjs.map +0 -1
  109. package/src/code-tool-paths.cts +0 -3
  110. package/src/code-tool-worker.ts +0 -225
  111. package/src/compat.ts +0 -483
  112. package/src/dynamic-tools.ts +0 -159
  113. package/src/filtering.ts +0 -18
  114. package/src/tools/index.ts +0 -131
  115. package/src/tools/metrics/create-metrics.ts +0 -376
  116. package/src/tools/metrics/delete-metrics.ts +0 -54
  117. package/src/tools/metrics/get-metrics.ts +0 -39
  118. package/src/tools/metrics/list-metrics.ts +0 -51
  119. package/src/tools/metrics/update-metrics.ts +0 -376
  120. package/src/tools/projects/create-projects.ts +0 -57
  121. package/src/tools/projects/list-projects.ts +0 -62
  122. package/src/tools/records/create-records.ts +0 -71
  123. package/src/tools/records/delete-records.ts +0 -54
  124. package/src/tools/records/list-records.ts +0 -65
  125. package/src/tools/runs/create-runs.ts +0 -67
  126. package/src/tools/runs/get-runs.ts +0 -54
  127. package/src/tools/runs/list-runs.ts +0 -65
  128. package/src/tools/scores/upsert-scores.ts +0 -65
  129. package/src/tools/systems/delete-systems.ts +0 -54
  130. package/src/tools/systems/get-systems.ts +0 -54
  131. package/src/tools/systems/list-systems.ts +0 -65
  132. package/src/tools/systems/update-systems.ts +0 -64
  133. package/src/tools/systems/upsert-systems.ts +0 -66
  134. package/src/tools/systems/versions/get-systems-versions.ts +0 -56
  135. package/src/tools/systems/versions/upsert-systems-versions.ts +0 -64
  136. package/src/tools/testcases/create-testcases.ts +0 -67
  137. package/src/tools/testcases/delete-testcases.ts +0 -56
  138. package/src/tools/testcases/get-testcases.ts +0 -54
  139. package/src/tools/testcases/list-testcases.ts +0 -65
  140. package/src/tools/testcases/update-testcases.ts +0 -59
  141. package/src/tools/testsets/create-testsets.ts +0 -94
  142. package/src/tools/testsets/delete-testsets.ts +0 -54
  143. package/src/tools/testsets/get-testsets.ts +0 -54
  144. package/src/tools/testsets/list-testsets.ts +0 -65
  145. package/src/tools/testsets/update-testsets.ts +0 -94
  146. package/src/tools.ts +0 -1
  147. package/tools/index.d.mts +0 -10
  148. package/tools/index.d.mts.map +0 -1
  149. package/tools/index.d.ts +0 -10
  150. package/tools/index.d.ts.map +0 -1
  151. package/tools/index.js +0 -115
  152. package/tools/index.js.map +0 -1
  153. package/tools/index.mjs +0 -108
  154. package/tools/index.mjs.map +0 -1
  155. package/tools/metrics/create-metrics.d.mts +0 -45
  156. package/tools/metrics/create-metrics.d.mts.map +0 -1
  157. package/tools/metrics/create-metrics.d.ts +0 -45
  158. package/tools/metrics/create-metrics.d.ts.map +0 -1
  159. package/tools/metrics/create-metrics.js +0 -369
  160. package/tools/metrics/create-metrics.js.map +0 -1
  161. package/tools/metrics/create-metrics.mjs +0 -365
  162. package/tools/metrics/create-metrics.mjs.map +0 -1
  163. package/tools/metrics/delete-metrics.d.mts +0 -45
  164. package/tools/metrics/delete-metrics.d.mts.map +0 -1
  165. package/tools/metrics/delete-metrics.d.ts +0 -45
  166. package/tools/metrics/delete-metrics.d.ts.map +0 -1
  167. package/tools/metrics/delete-metrics.js +0 -50
  168. package/tools/metrics/delete-metrics.js.map +0 -1
  169. package/tools/metrics/delete-metrics.mjs +0 -46
  170. package/tools/metrics/delete-metrics.mjs.map +0 -1
  171. package/tools/metrics/get-metrics.d.mts +0 -45
  172. package/tools/metrics/get-metrics.d.mts.map +0 -1
  173. package/tools/metrics/get-metrics.d.ts +0 -45
  174. package/tools/metrics/get-metrics.d.ts.map +0 -1
  175. package/tools/metrics/get-metrics.js +0 -36
  176. package/tools/metrics/get-metrics.js.map +0 -1
  177. package/tools/metrics/get-metrics.mjs +0 -32
  178. package/tools/metrics/get-metrics.mjs.map +0 -1
  179. package/tools/metrics/list-metrics.d.mts +0 -45
  180. package/tools/metrics/list-metrics.d.mts.map +0 -1
  181. package/tools/metrics/list-metrics.d.ts +0 -45
  182. package/tools/metrics/list-metrics.d.ts.map +0 -1
  183. package/tools/metrics/list-metrics.js +0 -45
  184. package/tools/metrics/list-metrics.js.map +0 -1
  185. package/tools/metrics/list-metrics.mjs +0 -41
  186. package/tools/metrics/list-metrics.mjs.map +0 -1
  187. package/tools/metrics/update-metrics.d.mts +0 -45
  188. package/tools/metrics/update-metrics.d.mts.map +0 -1
  189. package/tools/metrics/update-metrics.d.ts +0 -45
  190. package/tools/metrics/update-metrics.d.ts.map +0 -1
  191. package/tools/metrics/update-metrics.js +0 -369
  192. package/tools/metrics/update-metrics.js.map +0 -1
  193. package/tools/metrics/update-metrics.mjs +0 -365
  194. package/tools/metrics/update-metrics.mjs.map +0 -1
  195. package/tools/projects/create-projects.d.mts +0 -45
  196. package/tools/projects/create-projects.d.mts.map +0 -1
  197. package/tools/projects/create-projects.d.ts +0 -45
  198. package/tools/projects/create-projects.d.ts.map +0 -1
  199. package/tools/projects/create-projects.js +0 -53
  200. package/tools/projects/create-projects.js.map +0 -1
  201. package/tools/projects/create-projects.mjs +0 -49
  202. package/tools/projects/create-projects.mjs.map +0 -1
  203. package/tools/projects/list-projects.d.mts +0 -45
  204. package/tools/projects/list-projects.d.mts.map +0 -1
  205. package/tools/projects/list-projects.d.ts +0 -45
  206. package/tools/projects/list-projects.d.ts.map +0 -1
  207. package/tools/projects/list-projects.js +0 -56
  208. package/tools/projects/list-projects.js.map +0 -1
  209. package/tools/projects/list-projects.mjs +0 -52
  210. package/tools/projects/list-projects.mjs.map +0 -1
  211. package/tools/records/create-records.d.mts +0 -45
  212. package/tools/records/create-records.d.mts.map +0 -1
  213. package/tools/records/create-records.d.ts +0 -45
  214. package/tools/records/create-records.d.ts.map +0 -1
  215. package/tools/records/create-records.js +0 -67
  216. package/tools/records/create-records.js.map +0 -1
  217. package/tools/records/create-records.mjs +0 -63
  218. package/tools/records/create-records.mjs.map +0 -1
  219. package/tools/records/delete-records.d.mts +0 -45
  220. package/tools/records/delete-records.d.mts.map +0 -1
  221. package/tools/records/delete-records.d.ts +0 -45
  222. package/tools/records/delete-records.d.ts.map +0 -1
  223. package/tools/records/delete-records.js +0 -50
  224. package/tools/records/delete-records.js.map +0 -1
  225. package/tools/records/delete-records.mjs +0 -46
  226. package/tools/records/delete-records.mjs.map +0 -1
  227. package/tools/records/list-records.d.mts +0 -45
  228. package/tools/records/list-records.d.mts.map +0 -1
  229. package/tools/records/list-records.d.ts +0 -45
  230. package/tools/records/list-records.d.ts.map +0 -1
  231. package/tools/records/list-records.js +0 -59
  232. package/tools/records/list-records.js.map +0 -1
  233. package/tools/records/list-records.mjs +0 -55
  234. package/tools/records/list-records.mjs.map +0 -1
  235. package/tools/runs/create-runs.d.mts +0 -45
  236. package/tools/runs/create-runs.d.mts.map +0 -1
  237. package/tools/runs/create-runs.d.ts +0 -45
  238. package/tools/runs/create-runs.d.ts.map +0 -1
  239. package/tools/runs/create-runs.js +0 -63
  240. package/tools/runs/create-runs.js.map +0 -1
  241. package/tools/runs/create-runs.mjs +0 -59
  242. package/tools/runs/create-runs.mjs.map +0 -1
  243. package/tools/runs/get-runs.d.mts +0 -45
  244. package/tools/runs/get-runs.d.mts.map +0 -1
  245. package/tools/runs/get-runs.d.ts +0 -45
  246. package/tools/runs/get-runs.d.ts.map +0 -1
  247. package/tools/runs/get-runs.js +0 -50
  248. package/tools/runs/get-runs.js.map +0 -1
  249. package/tools/runs/get-runs.mjs +0 -46
  250. package/tools/runs/get-runs.mjs.map +0 -1
  251. package/tools/runs/list-runs.d.mts +0 -45
  252. package/tools/runs/list-runs.d.mts.map +0 -1
  253. package/tools/runs/list-runs.d.ts +0 -45
  254. package/tools/runs/list-runs.d.ts.map +0 -1
  255. package/tools/runs/list-runs.js +0 -59
  256. package/tools/runs/list-runs.js.map +0 -1
  257. package/tools/runs/list-runs.mjs +0 -55
  258. package/tools/runs/list-runs.mjs.map +0 -1
  259. package/tools/scores/upsert-scores.d.mts +0 -45
  260. package/tools/scores/upsert-scores.d.mts.map +0 -1
  261. package/tools/scores/upsert-scores.d.ts +0 -45
  262. package/tools/scores/upsert-scores.d.ts.map +0 -1
  263. package/tools/scores/upsert-scores.js +0 -58
  264. package/tools/scores/upsert-scores.js.map +0 -1
  265. package/tools/scores/upsert-scores.mjs +0 -54
  266. package/tools/scores/upsert-scores.mjs.map +0 -1
  267. package/tools/systems/delete-systems.d.mts +0 -45
  268. package/tools/systems/delete-systems.d.mts.map +0 -1
  269. package/tools/systems/delete-systems.d.ts +0 -45
  270. package/tools/systems/delete-systems.d.ts.map +0 -1
  271. package/tools/systems/delete-systems.js +0 -50
  272. package/tools/systems/delete-systems.js.map +0 -1
  273. package/tools/systems/delete-systems.mjs +0 -46
  274. package/tools/systems/delete-systems.mjs.map +0 -1
  275. package/tools/systems/get-systems.d.mts +0 -45
  276. package/tools/systems/get-systems.d.mts.map +0 -1
  277. package/tools/systems/get-systems.d.ts +0 -45
  278. package/tools/systems/get-systems.d.ts.map +0 -1
  279. package/tools/systems/get-systems.js +0 -50
  280. package/tools/systems/get-systems.js.map +0 -1
  281. package/tools/systems/get-systems.mjs +0 -46
  282. package/tools/systems/get-systems.mjs.map +0 -1
  283. package/tools/systems/list-systems.d.mts +0 -45
  284. package/tools/systems/list-systems.d.mts.map +0 -1
  285. package/tools/systems/list-systems.d.ts +0 -45
  286. package/tools/systems/list-systems.d.ts.map +0 -1
  287. package/tools/systems/list-systems.js +0 -59
  288. package/tools/systems/list-systems.js.map +0 -1
  289. package/tools/systems/list-systems.mjs +0 -55
  290. package/tools/systems/list-systems.mjs.map +0 -1
  291. package/tools/systems/update-systems.d.mts +0 -45
  292. package/tools/systems/update-systems.d.mts.map +0 -1
  293. package/tools/systems/update-systems.d.ts +0 -45
  294. package/tools/systems/update-systems.d.ts.map +0 -1
  295. package/tools/systems/update-systems.js +0 -60
  296. package/tools/systems/update-systems.js.map +0 -1
  297. package/tools/systems/update-systems.mjs +0 -56
  298. package/tools/systems/update-systems.mjs.map +0 -1
  299. package/tools/systems/upsert-systems.d.mts +0 -45
  300. package/tools/systems/upsert-systems.d.mts.map +0 -1
  301. package/tools/systems/upsert-systems.d.ts +0 -45
  302. package/tools/systems/upsert-systems.d.ts.map +0 -1
  303. package/tools/systems/upsert-systems.js +0 -61
  304. package/tools/systems/upsert-systems.js.map +0 -1
  305. package/tools/systems/upsert-systems.mjs +0 -57
  306. package/tools/systems/upsert-systems.mjs.map +0 -1
  307. package/tools/systems/versions/get-systems-versions.d.mts +0 -45
  308. package/tools/systems/versions/get-systems-versions.d.mts.map +0 -1
  309. package/tools/systems/versions/get-systems-versions.d.ts +0 -45
  310. package/tools/systems/versions/get-systems-versions.d.ts.map +0 -1
  311. package/tools/systems/versions/get-systems-versions.js +0 -50
  312. package/tools/systems/versions/get-systems-versions.js.map +0 -1
  313. package/tools/systems/versions/get-systems-versions.mjs +0 -46
  314. package/tools/systems/versions/get-systems-versions.mjs.map +0 -1
  315. package/tools/systems/versions/upsert-systems-versions.d.mts +0 -45
  316. package/tools/systems/versions/upsert-systems-versions.d.mts.map +0 -1
  317. package/tools/systems/versions/upsert-systems-versions.d.ts +0 -45
  318. package/tools/systems/versions/upsert-systems-versions.d.ts.map +0 -1
  319. package/tools/systems/versions/upsert-systems-versions.js +0 -57
  320. package/tools/systems/versions/upsert-systems-versions.js.map +0 -1
  321. package/tools/systems/versions/upsert-systems-versions.mjs +0 -53
  322. package/tools/systems/versions/upsert-systems-versions.mjs.map +0 -1
  323. package/tools/testcases/create-testcases.d.mts +0 -45
  324. package/tools/testcases/create-testcases.d.mts.map +0 -1
  325. package/tools/testcases/create-testcases.d.ts +0 -45
  326. package/tools/testcases/create-testcases.d.ts.map +0 -1
  327. package/tools/testcases/create-testcases.js +0 -63
  328. package/tools/testcases/create-testcases.js.map +0 -1
  329. package/tools/testcases/create-testcases.mjs +0 -59
  330. package/tools/testcases/create-testcases.mjs.map +0 -1
  331. package/tools/testcases/delete-testcases.d.mts +0 -45
  332. package/tools/testcases/delete-testcases.d.mts.map +0 -1
  333. package/tools/testcases/delete-testcases.d.ts +0 -45
  334. package/tools/testcases/delete-testcases.d.ts.map +0 -1
  335. package/tools/testcases/delete-testcases.js +0 -52
  336. package/tools/testcases/delete-testcases.js.map +0 -1
  337. package/tools/testcases/delete-testcases.mjs +0 -48
  338. package/tools/testcases/delete-testcases.mjs.map +0 -1
  339. package/tools/testcases/get-testcases.d.mts +0 -45
  340. package/tools/testcases/get-testcases.d.mts.map +0 -1
  341. package/tools/testcases/get-testcases.d.ts +0 -45
  342. package/tools/testcases/get-testcases.d.ts.map +0 -1
  343. package/tools/testcases/get-testcases.js +0 -50
  344. package/tools/testcases/get-testcases.js.map +0 -1
  345. package/tools/testcases/get-testcases.mjs +0 -46
  346. package/tools/testcases/get-testcases.mjs.map +0 -1
  347. package/tools/testcases/list-testcases.d.mts +0 -45
  348. package/tools/testcases/list-testcases.d.mts.map +0 -1
  349. package/tools/testcases/list-testcases.d.ts +0 -45
  350. package/tools/testcases/list-testcases.d.ts.map +0 -1
  351. package/tools/testcases/list-testcases.js +0 -59
  352. package/tools/testcases/list-testcases.js.map +0 -1
  353. package/tools/testcases/list-testcases.mjs +0 -55
  354. package/tools/testcases/list-testcases.mjs.map +0 -1
  355. package/tools/testcases/update-testcases.d.mts +0 -45
  356. package/tools/testcases/update-testcases.d.mts.map +0 -1
  357. package/tools/testcases/update-testcases.d.ts +0 -45
  358. package/tools/testcases/update-testcases.d.ts.map +0 -1
  359. package/tools/testcases/update-testcases.js +0 -55
  360. package/tools/testcases/update-testcases.js.map +0 -1
  361. package/tools/testcases/update-testcases.mjs +0 -51
  362. package/tools/testcases/update-testcases.mjs.map +0 -1
  363. package/tools/testsets/create-testsets.d.mts +0 -45
  364. package/tools/testsets/create-testsets.d.mts.map +0 -1
  365. package/tools/testsets/create-testsets.d.ts +0 -45
  366. package/tools/testsets/create-testsets.d.ts.map +0 -1
  367. package/tools/testsets/create-testsets.js +0 -89
  368. package/tools/testsets/create-testsets.js.map +0 -1
  369. package/tools/testsets/create-testsets.mjs +0 -85
  370. package/tools/testsets/create-testsets.mjs.map +0 -1
  371. package/tools/testsets/delete-testsets.d.mts +0 -45
  372. package/tools/testsets/delete-testsets.d.mts.map +0 -1
  373. package/tools/testsets/delete-testsets.d.ts +0 -45
  374. package/tools/testsets/delete-testsets.d.ts.map +0 -1
  375. package/tools/testsets/delete-testsets.js +0 -50
  376. package/tools/testsets/delete-testsets.js.map +0 -1
  377. package/tools/testsets/delete-testsets.mjs +0 -46
  378. package/tools/testsets/delete-testsets.mjs.map +0 -1
  379. package/tools/testsets/get-testsets.d.mts +0 -45
  380. package/tools/testsets/get-testsets.d.mts.map +0 -1
  381. package/tools/testsets/get-testsets.d.ts +0 -45
  382. package/tools/testsets/get-testsets.d.ts.map +0 -1
  383. package/tools/testsets/get-testsets.js +0 -50
  384. package/tools/testsets/get-testsets.js.map +0 -1
  385. package/tools/testsets/get-testsets.mjs +0 -46
  386. package/tools/testsets/get-testsets.mjs.map +0 -1
  387. package/tools/testsets/list-testsets.d.mts +0 -45
  388. package/tools/testsets/list-testsets.d.mts.map +0 -1
  389. package/tools/testsets/list-testsets.d.ts +0 -45
  390. package/tools/testsets/list-testsets.d.ts.map +0 -1
  391. package/tools/testsets/list-testsets.js +0 -59
  392. package/tools/testsets/list-testsets.js.map +0 -1
  393. package/tools/testsets/list-testsets.mjs +0 -55
  394. package/tools/testsets/list-testsets.mjs.map +0 -1
  395. package/tools/testsets/update-testsets.d.mts +0 -45
  396. package/tools/testsets/update-testsets.d.mts.map +0 -1
  397. package/tools/testsets/update-testsets.d.ts +0 -45
  398. package/tools/testsets/update-testsets.d.ts.map +0 -1
  399. package/tools/testsets/update-testsets.js +0 -89
  400. package/tools/testsets/update-testsets.js.map +0 -1
  401. package/tools/testsets/update-testsets.mjs +0 -85
  402. package/tools/testsets/update-testsets.mjs.map +0 -1
  403. package/tools/types.d.mts.map +0 -1
  404. package/tools/types.d.ts.map +0 -1
  405. package/tools/types.js.map +0 -1
  406. package/tools/types.mjs.map +0 -1
  407. package/tools.d.mts +0 -2
  408. package/tools.d.mts.map +0 -1
  409. package/tools.d.ts +0 -2
  410. package/tools.d.ts.map +0 -1
  411. package/tools.js +0 -18
  412. package/tools.js.map +0 -1
  413. package/tools.mjs +0 -2
  414. package/tools.mjs.map +0 -1
  415. /package/{tools/types.js → types.js} +0 -0
  416. /package/{tools/types.mjs → types.mjs} +0 -0
@@ -1,66 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'systems',
11
- operation: 'write',
12
- tags: [],
13
- httpMethod: 'post',
14
- httpPath: '/projects/{projectId}/systems',
15
- operationId: 'upsertSystem',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'upsert_systems',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a new system. If one with the same name in the project exists, it updates it instead.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/system',\n $defs: {\n system: {\n type: 'object',\n description: 'A System Under Test (SUT).\\n\\nSystems are templates - to run evaluations, pair them with a SystemVersion that provides specific\\nparameter values.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the system.'\n },\n description: {\n type: 'string',\n description: 'The description of the system.'\n },\n name: {\n type: 'string',\n description: 'The name of the system. Unique within the project.'\n },\n productionVersion: {\n $ref: '#/$defs/system_version'\n },\n versions: {\n type: 'array',\n description: 'The versions of the system.',\n items: {\n type: 'object',\n description: 'A SystemVersion defines the specific settings for a System Under Test.\\n\\nSystem versions contain parameter values that determine system behavior during evaluation.\\nThey are immutable snapshots - once created, they never change.\\n\\nWhen running evaluations, you reference a specific systemVersionId to establish which system version to test.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the system version.'\n },\n name: {\n type: 'string',\n description: 'The name of the system version.'\n }\n },\n required: [ 'id',\n 'name'\n ]\n }\n }\n },\n required: [ 'id',\n 'description',\n 'name',\n 'productionVersion',\n 'versions'\n ]\n },\n system_version: {\n type: 'object',\n description: 'A SystemVersion defines the specific settings for a System Under Test.\\n\\nSystem versions contain parameter values that determine system behavior during evaluation.\\nThey are immutable snapshots - once created, they never change.\\n\\nWhen running evaluations, you reference a specific systemVersionId to establish which system version to test.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the system version.'\n },\n config: {\n type: 'object',\n description: 'The configuration of the system version.',\n additionalProperties: true\n },\n name: {\n type: 'string',\n description: 'The name of the system version.'\n },\n systemId: {\n type: 'string',\n description: 'The ID of the system the system version belongs to.'\n }\n },\n required: [ 'id',\n 'config',\n 'name',\n 'systemId'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- projectId: {
26
- type: 'string',
27
- },
28
- config: {
29
- type: 'object',
30
- description: 'The configuration of the system.',
31
- additionalProperties: true,
32
- },
33
- description: {
34
- type: 'string',
35
- description: 'The description of the system.',
36
- },
37
- name: {
38
- type: 'string',
39
- description:
40
- 'The name of the system. Should be unique within the project. Default is "Default system"',
41
- },
42
- jq_filter: {
43
- type: 'string',
44
- title: 'jq Filter',
45
- description:
46
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
47
- },
48
- },
49
- required: ['projectId', 'config'],
50
- },
51
- annotations: {},
52
- };
53
-
54
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
55
- const { projectId, jq_filter, ...body } = args as any;
56
- try {
57
- return asTextContentResult(await maybeFilter(jq_filter, await client.systems.upsert(projectId, body)));
58
- } catch (error) {
59
- if (isJqError(error)) {
60
- return asErrorResult(error.message);
61
- }
62
- throw error;
63
- }
64
- };
65
-
66
- export default { metadata, tool, handler };
@@ -1,56 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'systems.versions',
11
- operation: 'read',
12
- tags: [],
13
- httpMethod: 'get',
14
- httpPath: '/systems/versions/{systemVersionId}',
15
- operationId: 'getSystemVersion',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'get_systems_versions',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieve a specific system version by ID.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/system_version',\n $defs: {\n system_version: {\n type: 'object',\n description: 'A SystemVersion defines the specific settings for a System Under Test.\\n\\nSystem versions contain parameter values that determine system behavior during evaluation.\\nThey are immutable snapshots - once created, they never change.\\n\\nWhen running evaluations, you reference a specific systemVersionId to establish which system version to test.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the system version.'\n },\n config: {\n type: 'object',\n description: 'The configuration of the system version.',\n additionalProperties: true\n },\n name: {\n type: 'string',\n description: 'The name of the system version.'\n },\n systemId: {\n type: 'string',\n description: 'The ID of the system the system version belongs to.'\n }\n },\n required: [ 'id',\n 'config',\n 'name',\n 'systemId'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- systemVersionId: {
26
- type: 'string',
27
- },
28
- jq_filter: {
29
- type: 'string',
30
- title: 'jq Filter',
31
- description:
32
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
33
- },
34
- },
35
- required: ['systemVersionId'],
36
- },
37
- annotations: {
38
- readOnlyHint: true,
39
- },
40
- };
41
-
42
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
43
- const { systemVersionId, jq_filter, ...body } = args as any;
44
- try {
45
- return asTextContentResult(
46
- await maybeFilter(jq_filter, await client.systems.versions.get(systemVersionId)),
47
- );
48
- } catch (error) {
49
- if (isJqError(error)) {
50
- return asErrorResult(error.message);
51
- }
52
- throw error;
53
- }
54
- };
55
-
56
- export default { metadata, tool, handler };
@@ -1,64 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'systems.versions',
11
- operation: 'write',
12
- tags: [],
13
- httpMethod: 'post',
14
- httpPath: '/systems/{systemId}/versions',
15
- operationId: 'upsertSystemVersion',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'upsert_systems_versions',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a new system version if it does not already exist. Does **not** set the created version to be the system's production version.\n\nIf there is already a system version with the same config, its name will be updated.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/system_version',\n $defs: {\n system_version: {\n type: 'object',\n description: 'A SystemVersion defines the specific settings for a System Under Test.\\n\\nSystem versions contain parameter values that determine system behavior during evaluation.\\nThey are immutable snapshots - once created, they never change.\\n\\nWhen running evaluations, you reference a specific systemVersionId to establish which system version to test.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the system version.'\n },\n config: {\n type: 'object',\n description: 'The configuration of the system version.',\n additionalProperties: true\n },\n name: {\n type: 'string',\n description: 'The name of the system version.'\n },\n systemId: {\n type: 'string',\n description: 'The ID of the system the system version belongs to.'\n }\n },\n required: [ 'id',\n 'config',\n 'name',\n 'systemId'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- systemId: {
26
- type: 'string',
27
- },
28
- config: {
29
- type: 'object',
30
- description: 'The configuration of the system version.',
31
- additionalProperties: true,
32
- },
33
- name: {
34
- type: 'string',
35
- description:
36
- "The name of the system version. If creating a new system version and the name isn't provided, it will be autogenerated.",
37
- },
38
- jq_filter: {
39
- type: 'string',
40
- title: 'jq Filter',
41
- description:
42
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
43
- },
44
- },
45
- required: ['systemId', 'config'],
46
- },
47
- annotations: {},
48
- };
49
-
50
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
51
- const { systemId, jq_filter, ...body } = args as any;
52
- try {
53
- return asTextContentResult(
54
- await maybeFilter(jq_filter, await client.systems.versions.upsert(systemId, body)),
55
- );
56
- } catch (error) {
57
- if (isJqError(error)) {
58
- return asErrorResult(error.message);
59
- }
60
- throw error;
61
- }
62
- };
63
-
64
- export default { metadata, tool, handler };
@@ -1,67 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'testcases',
11
- operation: 'write',
12
- tags: [],
13
- httpMethod: 'post',
14
- httpPath: '/testsets/{testsetId}/testcases',
15
- operationId: 'createTestcases',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'create_testcases',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate multiple Testcases in the specified Testset.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/testcase_create_response',\n $defs: {\n testcase_create_response: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/testcase'\n }\n }\n },\n required: [ 'items'\n ]\n },\n testcase: {\n type: 'object',\n description: 'A test case in the Scorecard system. Contains JSON data that is validated against the schema defined by its Testset.\\nThe `inputs` and `expected` fields are derived from the `data` field based on the Testset\\'s `fieldMapping`, and include all mapped fields, including those with validation errors.\\nTestcases are stored regardless of validation results, with any validation errors included in the `validationErrors` field.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the Testcase.'\n },\n expected: {\n type: 'object',\n description: 'Derived from data based on the Testset\\'s fieldMapping. Contains all fields marked as expected outputs, including those with validation errors.',\n additionalProperties: true\n },\n inputs: {\n type: 'object',\n description: 'Derived from data based on the Testset\\'s fieldMapping. Contains all fields marked as inputs, including those with validation errors.',\n additionalProperties: true\n },\n jsonData: {\n type: 'object',\n description: 'The JSON data of the Testcase, which is validated against the Testset\\'s schema.',\n additionalProperties: true\n },\n testsetId: {\n type: 'string',\n description: 'The ID of the Testset this Testcase belongs to.'\n },\n validationErrors: {\n type: 'array',\n description: 'Validation errors found in the Testcase data. If present, the Testcase doesn\\'t fully conform to its Testset\\'s schema.',\n items: {\n type: 'object',\n properties: {\n message: {\n type: 'string',\n description: 'Human-readable error description.'\n },\n path: {\n type: 'string',\n description: 'JSON Pointer to the field with the validation error.'\n }\n },\n required: [ 'message',\n 'path'\n ]\n }\n }\n },\n required: [ 'id',\n 'expected',\n 'inputs',\n 'jsonData',\n 'testsetId'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- testsetId: {
26
- type: 'string',
27
- },
28
- items: {
29
- type: 'array',
30
- description: 'Testcases to create (max 100).',
31
- items: {
32
- type: 'object',
33
- properties: {
34
- jsonData: {
35
- type: 'object',
36
- description: "The JSON data of the Testcase, which is validated against the Testset's schema.",
37
- additionalProperties: true,
38
- },
39
- },
40
- required: ['jsonData'],
41
- },
42
- },
43
- jq_filter: {
44
- type: 'string',
45
- title: 'jq Filter',
46
- description:
47
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
48
- },
49
- },
50
- required: ['testsetId', 'items'],
51
- },
52
- annotations: {},
53
- };
54
-
55
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
56
- const { testsetId, jq_filter, ...body } = args as any;
57
- try {
58
- return asTextContentResult(await maybeFilter(jq_filter, await client.testcases.create(testsetId, body)));
59
- } catch (error) {
60
- if (isJqError(error)) {
61
- return asErrorResult(error.message);
62
- }
63
- throw error;
64
- }
65
- };
66
-
67
- export default { metadata, tool, handler };
@@ -1,56 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'testcases',
11
- operation: 'write',
12
- tags: [],
13
- httpMethod: 'post',
14
- httpPath: '/testcases/bulk-delete',
15
- operationId: 'deleteTestcases',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'delete_testcases',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nDelete multiple Testcases by their IDs.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/testcase_delete_response',\n $defs: {\n testcase_delete_response: {\n type: 'object',\n properties: {\n success: {\n type: 'boolean',\n description: 'Whether the deletion was successful.'\n }\n },\n required: [ 'success'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- ids: {
26
- type: 'array',
27
- description: 'IDs of Testcases to delete.',
28
- items: {
29
- type: 'string',
30
- },
31
- },
32
- jq_filter: {
33
- type: 'string',
34
- title: 'jq Filter',
35
- description:
36
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
37
- },
38
- },
39
- required: ['ids'],
40
- },
41
- annotations: {},
42
- };
43
-
44
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
45
- const { jq_filter, ...body } = args as any;
46
- try {
47
- return asTextContentResult(await maybeFilter(jq_filter, await client.testcases.delete(body)));
48
- } catch (error) {
49
- if (isJqError(error)) {
50
- return asErrorResult(error.message);
51
- }
52
- throw error;
53
- }
54
- };
55
-
56
- export default { metadata, tool, handler };
@@ -1,54 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'testcases',
11
- operation: 'read',
12
- tags: [],
13
- httpMethod: 'get',
14
- httpPath: '/testcases/{testcaseId}',
15
- operationId: 'getTestcase',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'get_testcases',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieve a specific Testcase by ID.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/testcase',\n $defs: {\n testcase: {\n type: 'object',\n description: 'A test case in the Scorecard system. Contains JSON data that is validated against the schema defined by its Testset.\\nThe `inputs` and `expected` fields are derived from the `data` field based on the Testset\\'s `fieldMapping`, and include all mapped fields, including those with validation errors.\\nTestcases are stored regardless of validation results, with any validation errors included in the `validationErrors` field.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the Testcase.'\n },\n expected: {\n type: 'object',\n description: 'Derived from data based on the Testset\\'s fieldMapping. Contains all fields marked as expected outputs, including those with validation errors.',\n additionalProperties: true\n },\n inputs: {\n type: 'object',\n description: 'Derived from data based on the Testset\\'s fieldMapping. Contains all fields marked as inputs, including those with validation errors.',\n additionalProperties: true\n },\n jsonData: {\n type: 'object',\n description: 'The JSON data of the Testcase, which is validated against the Testset\\'s schema.',\n additionalProperties: true\n },\n testsetId: {\n type: 'string',\n description: 'The ID of the Testset this Testcase belongs to.'\n },\n validationErrors: {\n type: 'array',\n description: 'Validation errors found in the Testcase data. If present, the Testcase doesn\\'t fully conform to its Testset\\'s schema.',\n items: {\n type: 'object',\n properties: {\n message: {\n type: 'string',\n description: 'Human-readable error description.'\n },\n path: {\n type: 'string',\n description: 'JSON Pointer to the field with the validation error.'\n }\n },\n required: [ 'message',\n 'path'\n ]\n }\n }\n },\n required: [ 'id',\n 'expected',\n 'inputs',\n 'jsonData',\n 'testsetId'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- testcaseId: {
26
- type: 'string',
27
- },
28
- jq_filter: {
29
- type: 'string',
30
- title: 'jq Filter',
31
- description:
32
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
33
- },
34
- },
35
- required: ['testcaseId'],
36
- },
37
- annotations: {
38
- readOnlyHint: true,
39
- },
40
- };
41
-
42
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
43
- const { testcaseId, jq_filter, ...body } = args as any;
44
- try {
45
- return asTextContentResult(await maybeFilter(jq_filter, await client.testcases.get(testcaseId)));
46
- } catch (error) {
47
- if (isJqError(error)) {
48
- return asErrorResult(error.message);
49
- }
50
- throw error;
51
- }
52
- };
53
-
54
- export default { metadata, tool, handler };
@@ -1,65 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'testcases',
11
- operation: 'read',
12
- tags: [],
13
- httpMethod: 'get',
14
- httpPath: '/testsets/{testsetId}/testcases',
15
- operationId: 'listTestcases',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'list_testcases',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieve a paginated list of Testcases belonging to a Testset.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/testcase'\n }\n },\n hasMore: {\n type: 'boolean'\n },\n nextCursor: {\n type: 'string'\n },\n total: {\n type: 'integer'\n }\n },\n required: [ 'data',\n 'hasMore',\n 'nextCursor'\n ],\n $defs: {\n testcase: {\n type: 'object',\n description: 'A test case in the Scorecard system. Contains JSON data that is validated against the schema defined by its Testset.\\nThe `inputs` and `expected` fields are derived from the `data` field based on the Testset\\'s `fieldMapping`, and include all mapped fields, including those with validation errors.\\nTestcases are stored regardless of validation results, with any validation errors included in the `validationErrors` field.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the Testcase.'\n },\n expected: {\n type: 'object',\n description: 'Derived from data based on the Testset\\'s fieldMapping. Contains all fields marked as expected outputs, including those with validation errors.',\n additionalProperties: true\n },\n inputs: {\n type: 'object',\n description: 'Derived from data based on the Testset\\'s fieldMapping. Contains all fields marked as inputs, including those with validation errors.',\n additionalProperties: true\n },\n jsonData: {\n type: 'object',\n description: 'The JSON data of the Testcase, which is validated against the Testset\\'s schema.',\n additionalProperties: true\n },\n testsetId: {\n type: 'string',\n description: 'The ID of the Testset this Testcase belongs to.'\n },\n validationErrors: {\n type: 'array',\n description: 'Validation errors found in the Testcase data. If present, the Testcase doesn\\'t fully conform to its Testset\\'s schema.',\n items: {\n type: 'object',\n properties: {\n message: {\n type: 'string',\n description: 'Human-readable error description.'\n },\n path: {\n type: 'string',\n description: 'JSON Pointer to the field with the validation error.'\n }\n },\n required: [ 'message',\n 'path'\n ]\n }\n }\n },\n required: [ 'id',\n 'expected',\n 'inputs',\n 'jsonData',\n 'testsetId'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- testsetId: {
26
- type: 'string',
27
- },
28
- cursor: {
29
- type: 'string',
30
- description:
31
- 'Cursor for pagination. Pass the `nextCursor` from the previous response to get the next page of results.',
32
- },
33
- limit: {
34
- type: 'integer',
35
- description:
36
- 'Maximum number of items to return (1-100). Use with `cursor` for pagination through large sets.',
37
- },
38
- jq_filter: {
39
- type: 'string',
40
- title: 'jq Filter',
41
- description:
42
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
43
- },
44
- },
45
- required: ['testsetId'],
46
- },
47
- annotations: {
48
- readOnlyHint: true,
49
- },
50
- };
51
-
52
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
53
- const { testsetId, jq_filter, ...body } = args as any;
54
- const response = await client.testcases.list(testsetId, body).asResponse();
55
- try {
56
- return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
57
- } catch (error) {
58
- if (isJqError(error)) {
59
- return asErrorResult(error.message);
60
- }
61
- throw error;
62
- }
63
- };
64
-
65
- export default { metadata, tool, handler };
@@ -1,59 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'testcases',
11
- operation: 'write',
12
- tags: [],
13
- httpMethod: 'put',
14
- httpPath: '/testcases/{testcaseId}',
15
- operationId: 'updateTestcase',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'update_testcases',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nReplace the data of an existing Testcase while keeping its ID.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/testcase',\n $defs: {\n testcase: {\n type: 'object',\n description: 'A test case in the Scorecard system. Contains JSON data that is validated against the schema defined by its Testset.\\nThe `inputs` and `expected` fields are derived from the `data` field based on the Testset\\'s `fieldMapping`, and include all mapped fields, including those with validation errors.\\nTestcases are stored regardless of validation results, with any validation errors included in the `validationErrors` field.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the Testcase.'\n },\n expected: {\n type: 'object',\n description: 'Derived from data based on the Testset\\'s fieldMapping. Contains all fields marked as expected outputs, including those with validation errors.',\n additionalProperties: true\n },\n inputs: {\n type: 'object',\n description: 'Derived from data based on the Testset\\'s fieldMapping. Contains all fields marked as inputs, including those with validation errors.',\n additionalProperties: true\n },\n jsonData: {\n type: 'object',\n description: 'The JSON data of the Testcase, which is validated against the Testset\\'s schema.',\n additionalProperties: true\n },\n testsetId: {\n type: 'string',\n description: 'The ID of the Testset this Testcase belongs to.'\n },\n validationErrors: {\n type: 'array',\n description: 'Validation errors found in the Testcase data. If present, the Testcase doesn\\'t fully conform to its Testset\\'s schema.',\n items: {\n type: 'object',\n properties: {\n message: {\n type: 'string',\n description: 'Human-readable error description.'\n },\n path: {\n type: 'string',\n description: 'JSON Pointer to the field with the validation error.'\n }\n },\n required: [ 'message',\n 'path'\n ]\n }\n }\n },\n required: [ 'id',\n 'expected',\n 'inputs',\n 'jsonData',\n 'testsetId'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- testcaseId: {
26
- type: 'string',
27
- },
28
- jsonData: {
29
- type: 'object',
30
- description: "The JSON data of the Testcase, which is validated against the Testset's schema.",
31
- additionalProperties: true,
32
- },
33
- jq_filter: {
34
- type: 'string',
35
- title: 'jq Filter',
36
- description:
37
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
38
- },
39
- },
40
- required: ['testcaseId', 'jsonData'],
41
- },
42
- annotations: {
43
- idempotentHint: true,
44
- },
45
- };
46
-
47
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
48
- const { testcaseId, jq_filter, ...body } = args as any;
49
- try {
50
- return asTextContentResult(await maybeFilter(jq_filter, await client.testcases.update(testcaseId, body)));
51
- } catch (error) {
52
- if (isJqError(error)) {
53
- return asErrorResult(error.message);
54
- }
55
- throw error;
56
- }
57
- };
58
-
59
- export default { metadata, tool, handler };
@@ -1,94 +0,0 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { isJqError, maybeFilter } from 'scorecard-ai-mcp/filtering';
4
- import { Metadata, asErrorResult, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
5
-
6
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
- import Scorecard from 'scorecard-ai';
8
-
9
- export const metadata: Metadata = {
10
- resource: 'testsets',
11
- operation: 'write',
12
- tags: [],
13
- httpMethod: 'post',
14
- httpPath: '/projects/{projectId}/testsets',
15
- operationId: 'createTestset',
16
- };
17
-
18
- export const tool: Tool = {
19
- name: 'create_testsets',
20
- description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a new Testset for a Project. The Testset will be created in the Project specified in the path.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/testset',\n $defs: {\n testset: {\n type: 'object',\n description: 'A collection of Testcases that share the same schema.\\nEach Testset defines the structure of its Testcases through a JSON schema.\\nThe `fieldMapping` object maps top-level keys of the Testcase schema to their roles (input/expected output).\\nFields not mentioned in the `fieldMapping` during creation or update are treated as metadata.\\n\\n## JSON Schema validation constraints supported:\\n\\n- **Required fields** - Fields listed in the schema\\'s `required` array must be present in Testcases.\\n- **Type validation** - Values must match the specified type (string, number, boolean, null, integer, object, array).\\n- **Enum validation** - Values must be one of the options specified in the `enum` array.\\n- **Object property validation** - Properties of objects must conform to their defined schemas.\\n- **Array item validation** - Items in arrays must conform to the `items` schema.\\n- **Logical composition** - Values must conform to at least one schema in the `anyOf` array.\\n\\nTestcases that fail validation will still be stored, but will include `validationErrors` detailing the issues.\\nExtra fields in the Testcase data that are not in the schema will be stored but are ignored during validation.',\n properties: {\n id: {\n type: 'string',\n description: 'The ID of the Testset.'\n },\n description: {\n type: 'string',\n description: 'The description of the Testset.'\n },\n fieldMapping: {\n type: 'object',\n description: 'Maps top-level keys of the Testcase schema to their roles (input/expected output). Unmapped fields are treated as metadata.',\n properties: {\n expected: {\n type: 'array',\n description: 'Fields that represent expected outputs.',\n items: {\n type: 'string'\n }\n },\n inputs: {\n type: 'array',\n description: 'Fields that represent inputs to the AI system.',\n items: {\n type: 'string'\n }\n },\n metadata: {\n type: 'array',\n description: 'Fields that are not inputs or expected outputs.',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'expected',\n 'inputs',\n 'metadata'\n ]\n },\n jsonSchema: {\n type: 'object',\n description: 'The JSON schema for each Testcase in the Testset.',\n additionalProperties: true\n },\n name: {\n type: 'string',\n description: 'The name of the Testset.'\n }\n },\n required: [ 'id',\n 'description',\n 'fieldMapping',\n 'jsonSchema',\n 'name'\n ]\n }\n }\n}\n```",
22
- inputSchema: {
23
- type: 'object',
24
- properties: {
25
- projectId: {
26
- type: 'string',
27
- },
28
- description: {
29
- type: 'string',
30
- description: 'The description of the Testset.',
31
- },
32
- fieldMapping: {
33
- type: 'object',
34
- description:
35
- 'Maps top-level keys of the Testcase schema to their roles (input/expected output). Unmapped fields are treated as metadata.',
36
- properties: {
37
- expected: {
38
- type: 'array',
39
- description: 'Fields that represent expected outputs.',
40
- items: {
41
- type: 'string',
42
- },
43
- },
44
- inputs: {
45
- type: 'array',
46
- description: 'Fields that represent inputs to the AI system.',
47
- items: {
48
- type: 'string',
49
- },
50
- },
51
- metadata: {
52
- type: 'array',
53
- description: 'Fields that are not inputs or expected outputs.',
54
- items: {
55
- type: 'string',
56
- },
57
- },
58
- },
59
- required: ['expected', 'inputs', 'metadata'],
60
- },
61
- jsonSchema: {
62
- type: 'object',
63
- description: 'The JSON schema for each Testcase in the Testset.',
64
- additionalProperties: true,
65
- },
66
- name: {
67
- type: 'string',
68
- description: 'The name of the Testset.',
69
- },
70
- jq_filter: {
71
- type: 'string',
72
- title: 'jq Filter',
73
- description:
74
- 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
75
- },
76
- },
77
- required: ['projectId', 'description', 'fieldMapping', 'jsonSchema', 'name'],
78
- },
79
- annotations: {},
80
- };
81
-
82
- export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
83
- const { projectId, jq_filter, ...body } = args as any;
84
- try {
85
- return asTextContentResult(await maybeFilter(jq_filter, await client.testsets.create(projectId, body)));
86
- } catch (error) {
87
- if (isJqError(error)) {
88
- return asErrorResult(error.message);
89
- }
90
- throw error;
91
- }
92
- };
93
-
94
- export default { metadata, tool, handler };