scorecard-ai-mcp 2.1.0 → 2.2.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 (118) hide show
  1. package/README.md +5 -0
  2. package/docs-search-tool.d.mts +44 -0
  3. package/docs-search-tool.d.mts.map +1 -0
  4. package/docs-search-tool.d.ts +44 -0
  5. package/docs-search-tool.d.ts.map +1 -0
  6. package/docs-search-tool.js +43 -0
  7. package/docs-search-tool.js.map +1 -0
  8. package/docs-search-tool.mjs +39 -0
  9. package/docs-search-tool.mjs.map +1 -0
  10. package/options.d.mts +1 -0
  11. package/options.d.mts.map +1 -1
  12. package/options.d.ts +1 -0
  13. package/options.d.ts.map +1 -1
  14. package/options.js +13 -6
  15. package/options.js.map +1 -1
  16. package/options.mjs +13 -6
  17. package/options.mjs.map +1 -1
  18. package/package.json +13 -2
  19. package/server.d.mts.map +1 -1
  20. package/server.d.ts.map +1 -1
  21. package/server.js +8 -4
  22. package/server.js.map +1 -1
  23. package/server.mjs +8 -4
  24. package/server.mjs.map +1 -1
  25. package/src/docs-search-tool.ts +48 -0
  26. package/src/options.ts +17 -7
  27. package/src/server.ts +8 -5
  28. package/src/tools/index.ts +10 -0
  29. package/src/tools/metrics/create-metrics.ts +120 -2
  30. package/src/tools/metrics/get-metrics.ts +39 -0
  31. package/src/tools/metrics/list-metrics.ts +51 -0
  32. package/src/tools/metrics/update-metrics.ts +120 -2
  33. package/src/tools/records/list-records.ts +58 -0
  34. package/src/tools/runs/create-runs.ts +1 -1
  35. package/src/tools/runs/get-runs.ts +47 -0
  36. package/src/tools/runs/list-runs.ts +58 -0
  37. package/src/tools/systems/delete-systems.ts +1 -1
  38. package/src/tools/testcases/create-testcases.ts +1 -1
  39. package/src/tools/testcases/delete-testcases.ts +1 -1
  40. package/src/tools/testsets/delete-testsets.ts +1 -1
  41. package/tools/index.d.mts.map +1 -1
  42. package/tools/index.d.ts.map +1 -1
  43. package/tools/index.js +10 -0
  44. package/tools/index.js.map +1 -1
  45. package/tools/index.mjs +10 -0
  46. package/tools/index.mjs.map +1 -1
  47. package/tools/metrics/create-metrics.d.mts.map +1 -1
  48. package/tools/metrics/create-metrics.d.ts.map +1 -1
  49. package/tools/metrics/create-metrics.js +119 -2
  50. package/tools/metrics/create-metrics.js.map +1 -1
  51. package/tools/metrics/create-metrics.mjs +119 -2
  52. package/tools/metrics/create-metrics.mjs.map +1 -1
  53. package/tools/metrics/get-metrics.d.mts +45 -0
  54. package/tools/metrics/get-metrics.d.mts.map +1 -0
  55. package/tools/metrics/get-metrics.d.ts +45 -0
  56. package/tools/metrics/get-metrics.d.ts.map +1 -0
  57. package/tools/metrics/get-metrics.js +36 -0
  58. package/tools/metrics/get-metrics.js.map +1 -0
  59. package/tools/metrics/get-metrics.mjs +32 -0
  60. package/tools/metrics/get-metrics.mjs.map +1 -0
  61. package/tools/metrics/list-metrics.d.mts +45 -0
  62. package/tools/metrics/list-metrics.d.mts.map +1 -0
  63. package/tools/metrics/list-metrics.d.ts +45 -0
  64. package/tools/metrics/list-metrics.d.ts.map +1 -0
  65. package/tools/metrics/list-metrics.js +45 -0
  66. package/tools/metrics/list-metrics.js.map +1 -0
  67. package/tools/metrics/list-metrics.mjs +41 -0
  68. package/tools/metrics/list-metrics.mjs.map +1 -0
  69. package/tools/metrics/update-metrics.d.mts.map +1 -1
  70. package/tools/metrics/update-metrics.d.ts.map +1 -1
  71. package/tools/metrics/update-metrics.js +119 -2
  72. package/tools/metrics/update-metrics.js.map +1 -1
  73. package/tools/metrics/update-metrics.mjs +119 -2
  74. package/tools/metrics/update-metrics.mjs.map +1 -1
  75. package/tools/records/list-records.d.mts +45 -0
  76. package/tools/records/list-records.d.mts.map +1 -0
  77. package/tools/records/list-records.d.ts +45 -0
  78. package/tools/records/list-records.d.ts.map +1 -0
  79. package/tools/records/list-records.js +51 -0
  80. package/tools/records/list-records.js.map +1 -0
  81. package/tools/records/list-records.mjs +47 -0
  82. package/tools/records/list-records.mjs.map +1 -0
  83. package/tools/runs/create-runs.js +1 -1
  84. package/tools/runs/create-runs.js.map +1 -1
  85. package/tools/runs/create-runs.mjs +1 -1
  86. package/tools/runs/create-runs.mjs.map +1 -1
  87. package/tools/runs/get-runs.d.mts +45 -0
  88. package/tools/runs/get-runs.d.mts.map +1 -0
  89. package/tools/runs/get-runs.d.ts +45 -0
  90. package/tools/runs/get-runs.d.ts.map +1 -0
  91. package/tools/runs/get-runs.js +42 -0
  92. package/tools/runs/get-runs.js.map +1 -0
  93. package/tools/runs/get-runs.mjs +38 -0
  94. package/tools/runs/get-runs.mjs.map +1 -0
  95. package/tools/runs/list-runs.d.mts +45 -0
  96. package/tools/runs/list-runs.d.mts.map +1 -0
  97. package/tools/runs/list-runs.d.ts +45 -0
  98. package/tools/runs/list-runs.d.ts.map +1 -0
  99. package/tools/runs/list-runs.js +51 -0
  100. package/tools/runs/list-runs.js.map +1 -0
  101. package/tools/runs/list-runs.mjs +47 -0
  102. package/tools/runs/list-runs.mjs.map +1 -0
  103. package/tools/systems/delete-systems.js +1 -1
  104. package/tools/systems/delete-systems.js.map +1 -1
  105. package/tools/systems/delete-systems.mjs +1 -1
  106. package/tools/systems/delete-systems.mjs.map +1 -1
  107. package/tools/testcases/create-testcases.js +1 -1
  108. package/tools/testcases/create-testcases.js.map +1 -1
  109. package/tools/testcases/create-testcases.mjs +1 -1
  110. package/tools/testcases/create-testcases.mjs.map +1 -1
  111. package/tools/testcases/delete-testcases.js +1 -1
  112. package/tools/testcases/delete-testcases.js.map +1 -1
  113. package/tools/testcases/delete-testcases.mjs +1 -1
  114. package/tools/testcases/delete-testcases.mjs.map +1 -1
  115. package/tools/testsets/delete-testsets.js +1 -1
  116. package/tools/testsets/delete-testsets.js.map +1 -1
  117. package/tools/testsets/delete-testsets.mjs +1 -1
  118. package/tools/testsets/delete-testsets.mjs.map +1 -1
package/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"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"}
package/server.mjs CHANGED
@@ -6,11 +6,12 @@ import Scorecard from 'scorecard-ai';
6
6
  import { applyCompatibilityTransformations, defaultClientCapabilities, knownClients, parseEmbeddedJSON, } from "./compat.mjs";
7
7
  import { dynamicTools } from "./dynamic-tools.mjs";
8
8
  import { codeTool } from "./code-tool.mjs";
9
+ import docsSearchTool from "./docs-search-tool.mjs";
9
10
  export { ClientType } from "./compat.mjs";
10
11
  export { endpoints } from "./tools.mjs";
11
12
  export const newMcpServer = () => new McpServer({
12
13
  name: 'scorecard_ai_api',
13
- version: '2.1.0',
14
+ version: '2.2.0',
14
15
  }, { capabilities: { tools: {}, logging: {} } });
15
16
  // Create server instance
16
17
  export const server = newMcpServer();
@@ -105,7 +106,7 @@ export function initMcpServer(params) {
105
106
  */
106
107
  export async function selectTools(endpoints, options) {
107
108
  const filteredEndpoints = query(options?.filters ?? [], endpoints);
108
- let includedTools = filteredEndpoints;
109
+ let includedTools = filteredEndpoints.slice();
109
110
  if (includedTools.length > 0) {
110
111
  if (options?.includeDynamicTools) {
111
112
  includedTools = dynamicTools(includedTools);
@@ -113,7 +114,7 @@ export async function selectTools(endpoints, options) {
113
114
  }
114
115
  else {
115
116
  if (options?.includeAllTools) {
116
- includedTools = endpoints;
117
+ includedTools = endpoints.slice();
117
118
  }
118
119
  else if (options?.includeDynamicTools) {
119
120
  includedTools = dynamicTools(endpoints);
@@ -122,9 +123,12 @@ export async function selectTools(endpoints, options) {
122
123
  includedTools = [await codeTool()];
123
124
  }
124
125
  else {
125
- includedTools = endpoints;
126
+ includedTools = endpoints.slice();
126
127
  }
127
128
  }
129
+ if (options?.includeDocsTools ?? true) {
130
+ includedTools.push(docsSearchTool);
131
+ }
128
132
  const capabilities = { ...defaultClientCapabilities, ...options?.capabilities };
129
133
  return applyCompatibilityTransformations(includedTools, capabilities);
130
134
  }
package/server.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.mjs","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.mjs","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAG/E,EAAE,SAAS,EAAE,MAAM,yCAAyC;OAC5D,EAAY,SAAS,EAAmB,KAAK,EAAE;OAC/C,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GAGtB,MAAM,oCAAoC;OAEpC,SAAS,MAAM,cAAc;OAC7B,EACL,iCAAiC,EAEjC,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,GAClB;OACM,EAAE,YAAY,EAAE;OAChB,EAAE,QAAQ,EAAE;OACZ,cAAc;OAId,EAAE,UAAU,EAAE;OAGd,EAAE,SAAS,EAAE;AAEpB,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAC/B,IAAI,SAAS,CACX;IACE,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,OAAO;CACjB,EACD,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAC7C,CAAC;AAEJ,yBAAyB;AACzB,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAI7B;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,YAAY,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACzF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAE3C,IAAI,iBAAiB,GAAsB,IAAI,CAAC;IAChD,IAAI,WAAW,GAAoC,IAAI,CAAC;IAExD,MAAM,SAAS,GAAG,KAAK,EAAE,cAA+B,EAAE,EAAE;QAC1D,IAAI,cAAc,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,MAAM;gBACf,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC/D,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;wBACjE,CAAC,CAAC,SAAS,CAAC;YACd,UAAU,CAAC,YAAY,GAAG;gBACxB,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACzD,GAAG,UAAU,CAAC,YAAY;aAC3B,CAAC;QACJ,CAAC;QACD,iBAAiB,KAAjB,iBAAiB,GAAK,MAAM,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,EAAC;QAC/D,WAAW,KAAX,WAAW,GAAK,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC;IAC1G,CAAC,CAAC;IAEF,MAAM,UAAU,GACd,CAAC,KAA6C,EAAE,EAAE,CAClD,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QACtC,KAAK,MAAM,CAAC,kBAAkB,CAAC;YAC7B,KAAK;YACL,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;IACL,CAAC,CAAC;IACJ,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;QAC3B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;KAC3B,CAAC;IAEF,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC;QACzB,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,SAAS,CAAQ,EAAE;QAC1E,MAAM;QACN,GAAG,MAAM,CAAC,aAAa;QACvB,cAAc,EAAE;YACd,GAAG,MAAM,CAAC,aAAa,EAAE,cAAc;YACvC,iBAAiB,EAAE,MAAM;SAC1B;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO;YACL,KAAK,EAAE,iBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;SAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjD,MAAM,QAAQ,GAAG,WAAY,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS;gBACZ,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR;gBACE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjD,MAAM;QACV,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAqB,EAAE,OAAoB;IAC3E,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;IAEnE,IAAI,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAE9C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;YACjC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7B,aAAa,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;YACxC,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;YACrC,aAAa,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,gBAAgB,IAAI,IAAI,EAAE,CAAC;QACtC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,YAAY,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,CAAC;IAChF,OAAO,iCAAiC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAU,EACV,OAAwB,EACxB,MAAiB,EACjB,IAAyC,EACzC,oBAAkD;IAElD,MAAM,OAAO,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC1E,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAsB,EAAE;IACzD,IAAI,OAAQ,UAAkB,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACvD,OAAQ,UAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;SAAM,IAAI,OAAQ,UAAkB,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC3D,OAAQ,UAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO;AACT,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE;IACpD,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,aAAa,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from './tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+
7
+ export const metadata: Metadata = {
8
+ resource: 'all',
9
+ operation: 'read',
10
+ tags: [],
11
+ httpMethod: 'get',
12
+ };
13
+
14
+ export const tool: Tool = {
15
+ name: 'search_docs',
16
+ description:
17
+ 'Search for documentation for how to use the client to interact with the API.\nThe tool will return an array of Markdown-formatted documentation pages.',
18
+ inputSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ query: {
22
+ type: 'string',
23
+ description: 'The query to search for.',
24
+ },
25
+ language: {
26
+ type: 'string',
27
+ description: 'The language for the SDK to search for.',
28
+ enum: ['http', 'python', 'go', 'typescript', 'terraform', 'ruby', 'java', 'kotlin'],
29
+ },
30
+ },
31
+ required: ['query', 'language'],
32
+ },
33
+ annotations: {
34
+ readOnlyHint: true,
35
+ },
36
+ };
37
+
38
+ const docsSearchURL =
39
+ process.env['DOCS_SEARCH_URL'] || 'https://api.stainless.com/api/projects/scorecard/docs/search';
40
+
41
+ export const handler = async (_: unknown, args: Record<string, unknown> | undefined) => {
42
+ const body = args as any;
43
+ const query = new URLSearchParams(body).toString();
44
+ const result = await fetch(`${docsSearchURL}?${query}`);
45
+ return asTextContentResult(await result.json());
46
+ };
47
+
48
+ export default { metadata, tool, handler };
package/src/options.ts CHANGED
@@ -17,6 +17,7 @@ export type McpOptions = {
17
17
  includeDynamicTools?: boolean | undefined;
18
18
  includeAllTools?: boolean | undefined;
19
19
  includeCodeTools?: boolean | undefined;
20
+ includeDocsTools?: boolean | undefined;
20
21
  filters?: Filter[] | undefined;
21
22
  capabilities?: Partial<ClientCapabilities> | undefined;
22
23
  };
@@ -55,13 +56,13 @@ export function parseCLIOptions(): CLIOptions {
55
56
  .option('tools', {
56
57
  type: 'string',
57
58
  array: true,
58
- choices: ['dynamic', 'all', 'code'],
59
+ choices: ['dynamic', 'all', 'code', 'docs'],
59
60
  description: 'Use dynamic tools or all tools',
60
61
  })
61
62
  .option('no-tools', {
62
63
  type: 'string',
63
64
  array: true,
64
- choices: ['dynamic', 'all', 'code'],
65
+ choices: ['dynamic', 'all', 'code', 'docs'],
65
66
  description: 'Do not use any dynamic or all tools',
66
67
  })
67
68
  .option('tool', {
@@ -245,13 +246,15 @@ export function parseCLIOptions(): CLIOptions {
245
246
  }
246
247
  }
247
248
 
248
- const shouldIncludeToolType = (toolType: 'dynamic' | 'all' | 'code') =>
249
- explicitTools ? argv.tools?.includes(toolType) && !argv.noTools?.includes(toolType) : undefined;
249
+ const shouldIncludeToolType = (toolType: 'dynamic' | 'all' | 'code' | 'docs') =>
250
+ argv.noTools?.includes(toolType) ? false
251
+ : argv.tools?.includes(toolType) ? true
252
+ : undefined;
250
253
 
251
- const explicitTools = Boolean(argv.tools || argv.noTools);
252
254
  const includeDynamicTools = shouldIncludeToolType('dynamic');
253
255
  const includeAllTools = shouldIncludeToolType('all');
254
256
  const includeCodeTools = shouldIncludeToolType('code');
257
+ const includeDocsTools = shouldIncludeToolType('docs');
255
258
 
256
259
  const transport = argv.transport as 'stdio' | 'http';
257
260
 
@@ -261,6 +264,7 @@ export function parseCLIOptions(): CLIOptions {
261
264
  includeDynamicTools,
262
265
  includeAllTools,
263
266
  includeCodeTools,
267
+ includeDocsTools,
264
268
  filters,
265
269
  capabilities: clientCapabilities,
266
270
  list: argv.list || false,
@@ -280,8 +284,8 @@ const coerceArray = <T extends z.ZodTypeAny>(zodType: T) =>
280
284
  );
281
285
 
282
286
  const QueryOptions = z.object({
283
- tools: coerceArray(z.enum(['dynamic', 'all'])).describe('Use dynamic tools or all tools'),
284
- no_tools: coerceArray(z.enum(['dynamic', 'all'])).describe('Do not use dynamic tools or all tools'),
287
+ tools: coerceArray(z.enum(['dynamic', 'all', 'docs'])).describe('Use dynamic tools or all tools'),
288
+ no_tools: coerceArray(z.enum(['dynamic', 'all', 'docs'])).describe('Do not use dynamic tools or all tools'),
285
289
  tool: coerceArray(z.string()).describe('Include tools matching the specified names'),
286
290
  resource: coerceArray(z.string()).describe('Include tools matching the specified resources'),
287
291
  operation: coerceArray(z.enum(['read', 'write'])).describe(
@@ -376,11 +380,17 @@ export function parseQueryOptions(defaultOptions: McpOptions, query: unknown): M
376
380
  : queryOptions.tools?.includes('all') ? true
377
381
  : defaultOptions.includeAllTools;
378
382
 
383
+ let docsTools: boolean | undefined =
384
+ queryOptions.no_tools && queryOptions.no_tools?.includes('docs') ? false
385
+ : queryOptions.tools?.includes('docs') ? true
386
+ : defaultOptions.includeDocsTools;
387
+
379
388
  return {
380
389
  client: queryOptions.client ?? defaultOptions.client,
381
390
  includeDynamicTools: dynamicTools,
382
391
  includeAllTools: allTools,
383
392
  includeCodeTools: undefined,
393
+ includeDocsTools: docsTools,
384
394
  filters,
385
395
  capabilities: clientCapabilities,
386
396
  };
package/src/server.ts CHANGED
@@ -21,6 +21,7 @@ import {
21
21
  } from './compat';
22
22
  import { dynamicTools } from './dynamic-tools';
23
23
  import { codeTool } from './code-tool';
24
+ import docsSearchTool from './docs-search-tool';
24
25
  import { McpOptions } from './options';
25
26
 
26
27
  export { McpOptions } from './options';
@@ -33,7 +34,7 @@ export const newMcpServer = () =>
33
34
  new McpServer(
34
35
  {
35
36
  name: 'scorecard_ai_api',
36
- version: '2.1.0',
37
+ version: '2.2.0',
37
38
  },
38
39
  { capabilities: { tools: {}, logging: {} } },
39
40
  );
@@ -148,7 +149,7 @@ export function initMcpServer(params: {
148
149
  export async function selectTools(endpoints: Endpoint[], options?: McpOptions): Promise<Endpoint[]> {
149
150
  const filteredEndpoints = query(options?.filters ?? [], endpoints);
150
151
 
151
- let includedTools = filteredEndpoints;
152
+ let includedTools = filteredEndpoints.slice();
152
153
 
153
154
  if (includedTools.length > 0) {
154
155
  if (options?.includeDynamicTools) {
@@ -156,16 +157,18 @@ export async function selectTools(endpoints: Endpoint[], options?: McpOptions):
156
157
  }
157
158
  } else {
158
159
  if (options?.includeAllTools) {
159
- includedTools = endpoints;
160
+ includedTools = endpoints.slice();
160
161
  } else if (options?.includeDynamicTools) {
161
162
  includedTools = dynamicTools(endpoints);
162
163
  } else if (options?.includeCodeTools) {
163
164
  includedTools = [await codeTool()];
164
165
  } else {
165
- includedTools = endpoints;
166
+ includedTools = endpoints.slice();
166
167
  }
167
168
  }
168
-
169
+ if (options?.includeDocsTools ?? true) {
170
+ includedTools.push(docsSearchTool);
171
+ }
169
172
  const capabilities = { ...defaultClientCapabilities, ...options?.capabilities };
170
173
  return applyCompatibilityTransformations(includedTools, capabilities);
171
174
  }
@@ -17,9 +17,14 @@ import list_testcases from './testcases/list-testcases';
17
17
  import delete_testcases from './testcases/delete-testcases';
18
18
  import get_testcases from './testcases/get-testcases';
19
19
  import create_runs from './runs/create-runs';
20
+ import list_runs from './runs/list-runs';
21
+ import get_runs from './runs/get-runs';
20
22
  import create_metrics from './metrics/create-metrics';
21
23
  import update_metrics from './metrics/update-metrics';
24
+ import list_metrics from './metrics/list-metrics';
25
+ import get_metrics from './metrics/get-metrics';
22
26
  import create_records from './records/create-records';
27
+ import list_records from './records/list-records';
23
28
  import upsert_scores from './scores/upsert-scores';
24
29
  import update_systems from './systems/update-systems';
25
30
  import list_systems from './systems/list-systems';
@@ -48,9 +53,14 @@ addEndpoint(list_testcases);
48
53
  addEndpoint(delete_testcases);
49
54
  addEndpoint(get_testcases);
50
55
  addEndpoint(create_runs);
56
+ addEndpoint(list_runs);
57
+ addEndpoint(get_runs);
51
58
  addEndpoint(create_metrics);
52
59
  addEndpoint(update_metrics);
60
+ addEndpoint(list_metrics);
61
+ addEndpoint(get_metrics);
53
62
  addEndpoint(create_records);
63
+ addEndpoint(list_records);
54
64
  addEndpoint(upsert_scores);
55
65
  addEndpoint(update_systems);
56
66
  addEndpoint(list_systems);
@@ -130,7 +130,7 @@ export const tool: Tool = {
130
130
  },
131
131
  guidelines: {
132
132
  type: 'string',
133
- description: 'Optional guidelines for heuristic evaluation logic.',
133
+ description: 'Guidelines for heuristic evaluation logic.',
134
134
  },
135
135
  passingThreshold: {
136
136
  type: 'integer',
@@ -139,6 +139,124 @@ export const tool: Tool = {
139
139
  },
140
140
  required: ['projectId', 'evalType', 'name', 'outputType'],
141
141
  },
142
+ {
143
+ type: 'object',
144
+ properties: {
145
+ projectId: {
146
+ type: 'string',
147
+ },
148
+ evalType: {
149
+ type: 'string',
150
+ description: 'AI-based evaluation type.',
151
+ enum: ['ai'],
152
+ },
153
+ name: {
154
+ type: 'string',
155
+ description: 'The name of the Metric.',
156
+ },
157
+ outputType: {
158
+ type: 'string',
159
+ description: 'Float output type (0-1).',
160
+ enum: ['float'],
161
+ },
162
+ promptTemplate: {
163
+ type: 'string',
164
+ description:
165
+ 'The complete prompt template for AI evaluation. Should include placeholders for dynamic content.',
166
+ },
167
+ description: {
168
+ type: 'string',
169
+ description: 'The description of the Metric.',
170
+ },
171
+ evalModelName: {
172
+ type: 'string',
173
+ description: 'The AI model to use for evaluation.',
174
+ },
175
+ guidelines: {
176
+ type: 'string',
177
+ description: 'Guidelines for AI evaluation on how to score the metric.',
178
+ },
179
+ passingThreshold: {
180
+ type: 'number',
181
+ description: 'Threshold for determining pass/fail from float scores (0.0-1.0).',
182
+ },
183
+ temperature: {
184
+ type: 'number',
185
+ description: 'The temperature for AI evaluation (0-2).',
186
+ },
187
+ },
188
+ required: ['projectId', 'evalType', 'name', 'outputType', 'promptTemplate'],
189
+ },
190
+ {
191
+ type: 'object',
192
+ properties: {
193
+ projectId: {
194
+ type: 'string',
195
+ },
196
+ evalType: {
197
+ type: 'string',
198
+ description: 'Human-based evaluation type.',
199
+ enum: ['human'],
200
+ },
201
+ name: {
202
+ type: 'string',
203
+ description: 'The name of the Metric.',
204
+ },
205
+ outputType: {
206
+ type: 'string',
207
+ description: 'Float output type (0-1).',
208
+ enum: ['float'],
209
+ },
210
+ description: {
211
+ type: 'string',
212
+ description: 'The description of the Metric.',
213
+ },
214
+ guidelines: {
215
+ type: 'string',
216
+ description: 'Guidelines for human evaluators.',
217
+ },
218
+ passingThreshold: {
219
+ type: 'number',
220
+ description: 'Threshold for determining pass/fail from float scores (0.0-1.0).',
221
+ },
222
+ },
223
+ required: ['projectId', 'evalType', 'name', 'outputType'],
224
+ },
225
+ {
226
+ type: 'object',
227
+ properties: {
228
+ projectId: {
229
+ type: 'string',
230
+ },
231
+ evalType: {
232
+ type: 'string',
233
+ description: 'Heuristic-based evaluation type.',
234
+ enum: ['heuristic'],
235
+ },
236
+ name: {
237
+ type: 'string',
238
+ description: 'The name of the Metric.',
239
+ },
240
+ outputType: {
241
+ type: 'string',
242
+ description: 'Float output type (0-1).',
243
+ enum: ['float'],
244
+ },
245
+ description: {
246
+ type: 'string',
247
+ description: 'The description of the Metric.',
248
+ },
249
+ guidelines: {
250
+ type: 'string',
251
+ description: 'Guidelines for heuristic evaluation logic.',
252
+ },
253
+ passingThreshold: {
254
+ type: 'number',
255
+ description: 'Threshold for determining pass/fail from float scores (0.0-1.0).',
256
+ },
257
+ },
258
+ required: ['projectId', 'evalType', 'name', 'outputType'],
259
+ },
142
260
  {
143
261
  type: 'object',
144
262
  properties: {
@@ -240,7 +358,7 @@ export const tool: Tool = {
240
358
  },
241
359
  guidelines: {
242
360
  type: 'string',
243
- description: 'Optional guidelines for heuristic evaluation logic.',
361
+ description: 'Guidelines for heuristic evaluation logic.',
244
362
  },
245
363
  },
246
364
  required: ['projectId', 'evalType', 'name', 'outputType'],
@@ -0,0 +1,39 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ import Scorecard from 'scorecard-ai';
7
+
8
+ export const metadata: Metadata = {
9
+ resource: 'metrics',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/metrics/{metricId}',
14
+ operationId: 'getMetric',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'get_metrics',
19
+ description: 'Retrieve a specific Metric by ID.',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ metricId: {
24
+ type: 'string',
25
+ },
26
+ },
27
+ required: ['metricId'],
28
+ },
29
+ annotations: {
30
+ readOnlyHint: true,
31
+ },
32
+ };
33
+
34
+ export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
35
+ const { metricId, ...body } = args as any;
36
+ return asTextContentResult(await client.metrics.get(metricId));
37
+ };
38
+
39
+ export default { metadata, tool, handler };
@@ -0,0 +1,51 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from 'scorecard-ai-mcp/tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ import Scorecard from 'scorecard-ai';
7
+
8
+ export const metadata: Metadata = {
9
+ resource: 'metrics',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/projects/{projectId}/metrics',
14
+ operationId: 'listMetrics',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'list_metrics',
19
+ description:
20
+ 'List Metrics configured for the specified Project. Metrics are returned in reverse chronological order.',
21
+ inputSchema: {
22
+ type: 'object',
23
+ properties: {
24
+ projectId: {
25
+ type: 'string',
26
+ },
27
+ cursor: {
28
+ type: 'string',
29
+ description:
30
+ 'Cursor for pagination. Pass the `nextCursor` from the previous response to get the next page of results.',
31
+ },
32
+ limit: {
33
+ type: 'integer',
34
+ description:
35
+ 'Maximum number of items to return (1-100). Use with `cursor` for pagination through large sets.',
36
+ },
37
+ },
38
+ required: ['projectId'],
39
+ },
40
+ annotations: {
41
+ readOnlyHint: true,
42
+ },
43
+ };
44
+
45
+ export const handler = async (client: Scorecard, args: Record<string, unknown> | undefined) => {
46
+ const { projectId, ...body } = args as any;
47
+ const response = await client.metrics.list(projectId, body).asResponse();
48
+ return asTextContentResult(await response.json());
49
+ };
50
+
51
+ export default { metadata, tool, handler };