@tryfinch/finch-api-mcp 6.31.0 → 8.0.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 (549) hide show
  1. package/README.md +46 -259
  2. package/code-tool-types.d.mts +16 -0
  3. package/code-tool-types.d.mts.map +1 -0
  4. package/code-tool-types.d.ts +16 -0
  5. package/code-tool-types.d.ts.map +1 -0
  6. package/code-tool-types.js +4 -0
  7. package/code-tool-types.js.map +1 -0
  8. package/code-tool-types.mjs +3 -0
  9. package/code-tool-types.mjs.map +1 -0
  10. package/code-tool.d.mts +12 -0
  11. package/code-tool.d.mts.map +1 -0
  12. package/code-tool.d.ts +12 -0
  13. package/code-tool.d.ts.map +1 -0
  14. package/code-tool.js +55 -0
  15. package/code-tool.js.map +1 -0
  16. package/code-tool.mjs +52 -0
  17. package/code-tool.mjs.map +1 -0
  18. package/docs-search-tool.d.mts +50 -0
  19. package/docs-search-tool.d.mts.map +1 -0
  20. package/docs-search-tool.d.ts +50 -0
  21. package/docs-search-tool.d.ts.map +1 -0
  22. package/docs-search-tool.js +51 -0
  23. package/docs-search-tool.js.map +1 -0
  24. package/docs-search-tool.mjs +47 -0
  25. package/docs-search-tool.mjs.map +1 -0
  26. package/headers.d.mts +4 -0
  27. package/headers.d.mts.map +1 -0
  28. package/headers.d.ts +4 -0
  29. package/headers.d.ts.map +1 -0
  30. package/headers.js +31 -0
  31. package/headers.js.map +1 -0
  32. package/headers.mjs +27 -0
  33. package/headers.mjs.map +1 -0
  34. package/http.d.mts +9 -0
  35. package/http.d.mts.map +1 -0
  36. package/http.d.ts +9 -0
  37. package/http.d.ts.map +1 -0
  38. package/http.js +91 -0
  39. package/http.js.map +1 -0
  40. package/http.mjs +83 -0
  41. package/http.mjs.map +1 -0
  42. package/index.d.mts +1 -0
  43. package/index.d.ts +1 -0
  44. package/index.js +14 -45
  45. package/index.js.map +1 -1
  46. package/index.mjs +17 -47
  47. package/index.mjs.map +1 -1
  48. package/options.d.mts +10 -10
  49. package/options.d.mts.map +1 -1
  50. package/options.d.ts +10 -10
  51. package/options.d.ts.map +1 -1
  52. package/options.js +42 -307
  53. package/options.js.map +1 -1
  54. package/options.mjs +40 -306
  55. package/options.mjs.map +1 -1
  56. package/package.json +121 -12
  57. package/server.d.mts +11 -19
  58. package/server.d.mts.map +1 -1
  59. package/server.d.ts +11 -19
  60. package/server.d.ts.map +1 -1
  61. package/server.js +67 -49
  62. package/server.js.map +1 -1
  63. package/server.mjs +65 -47
  64. package/server.mjs.map +1 -1
  65. package/src/code-tool-types.ts +18 -0
  66. package/src/code-tool.ts +65 -0
  67. package/src/docs-search-tool.ts +59 -0
  68. package/src/headers.ts +35 -0
  69. package/src/http.ts +109 -0
  70. package/src/index.ts +21 -62
  71. package/src/options.ts +57 -326
  72. package/src/server.ts +85 -65
  73. package/src/stdio.ts +12 -0
  74. package/src/types.ts +115 -0
  75. package/stdio.d.mts +2 -0
  76. package/stdio.d.mts.map +1 -0
  77. package/stdio.d.ts +2 -0
  78. package/stdio.d.ts.map +1 -0
  79. package/stdio.js +14 -0
  80. package/stdio.js.map +1 -0
  81. package/stdio.mjs +10 -0
  82. package/stdio.mjs.map +1 -0
  83. package/types.d.mts +52 -0
  84. package/types.d.mts.map +1 -0
  85. package/types.d.ts +52 -0
  86. package/types.d.ts.map +1 -0
  87. package/types.js +58 -0
  88. package/types.js.map +1 -0
  89. package/types.mjs +53 -0
  90. package/types.mjs.map +1 -0
  91. package/compat.d.mts +0 -52
  92. package/compat.d.mts.map +0 -1
  93. package/compat.d.ts +0 -52
  94. package/compat.d.ts.map +0 -1
  95. package/compat.js +0 -342
  96. package/compat.js.map +0 -1
  97. package/compat.mjs +0 -332
  98. package/compat.mjs.map +0 -1
  99. package/dynamic-tools.d.mts +0 -12
  100. package/dynamic-tools.d.mts.map +0 -1
  101. package/dynamic-tools.d.ts +0 -12
  102. package/dynamic-tools.d.ts.map +0 -1
  103. package/dynamic-tools.js +0 -133
  104. package/dynamic-tools.js.map +0 -1
  105. package/dynamic-tools.mjs +0 -130
  106. package/dynamic-tools.mjs.map +0 -1
  107. package/src/compat.ts +0 -429
  108. package/src/dynamic-tools.ts +0 -152
  109. package/src/tools/access-tokens/create-access-tokens.ts +0 -40
  110. package/src/tools/account/disconnect-account.ts +0 -26
  111. package/src/tools/account/introspect-account.ts +0 -26
  112. package/src/tools/connect/sessions/new-connect-sessions.ts +0 -83
  113. package/src/tools/connect/sessions/reauthenticate-connect-sessions.ts +0 -60
  114. package/src/tools/hris/benefits/create-hris-benefits.ts +0 -102
  115. package/src/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.ts +0 -101
  116. package/src/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.ts +0 -31
  117. package/src/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.ts +0 -36
  118. package/src/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.ts +0 -38
  119. package/src/tools/hris/benefits/list-hris-benefits.ts +0 -26
  120. package/src/tools/hris/benefits/list-supported-benefits-hris-benefits.ts +0 -26
  121. package/src/tools/hris/benefits/retrieve-hris-benefits.ts +0 -31
  122. package/src/tools/hris/benefits/update-hris-benefits.ts +0 -35
  123. package/src/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.ts +0 -58
  124. package/src/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.ts +0 -78
  125. package/src/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.ts +0 -32
  126. package/src/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.ts +0 -27
  127. package/src/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.ts +0 -35
  128. package/src/tools/hris/company/retrieve-hris-company.ts +0 -26
  129. package/src/tools/hris/directory/list-hris-directory.ts +0 -36
  130. package/src/tools/hris/directory/list-individuals-hris-directory.ts +0 -36
  131. package/src/tools/hris/documents/list-hris-documents.ts +0 -53
  132. package/src/tools/hris/documents/retreive-hris-documents.ts +0 -32
  133. package/src/tools/hris/employments/retrieve-many-hris-employments.ts +0 -43
  134. package/src/tools/hris/individuals/retrieve-many-hris-individuals.ts +0 -52
  135. package/src/tools/hris/pay-statements/retrieve-many-hris-pay-statements.ts +0 -51
  136. package/src/tools/hris/payments/list-hris-payments.ts +0 -38
  137. package/src/tools/index.ts +0 -175
  138. package/src/tools/jobs/automated/create-jobs-automated.ts +0 -59
  139. package/src/tools/jobs/automated/list-jobs-automated.ts +0 -37
  140. package/src/tools/jobs/automated/retrieve-jobs-automated.ts +0 -31
  141. package/src/tools/jobs/manual/retrieve-jobs-manual.ts +0 -32
  142. package/src/tools/payroll/pay-groups/list-payroll-pay-groups.ts +0 -37
  143. package/src/tools/payroll/pay-groups/retrieve-payroll-pay-groups.ts +0 -31
  144. package/src/tools/providers/list-providers.ts +0 -26
  145. package/src/tools/request-forwarding/forward-request-forwarding.ts +0 -54
  146. package/src/tools/sandbox/company/update-sandbox-company.ts +0 -164
  147. package/src/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.ts +0 -48
  148. package/src/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.ts +0 -39
  149. package/src/tools/sandbox/connections/create-sandbox-connections.ts +0 -48
  150. package/src/tools/sandbox/directory/create-sandbox-directory.ts +0 -303
  151. package/src/tools/sandbox/employment/update-sandbox-employment.ts +0 -223
  152. package/src/tools/sandbox/individual/update-sandbox-individual.ts +0 -154
  153. package/src/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.ts +0 -26
  154. package/src/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.ts +0 -36
  155. package/src/tools/sandbox/jobs/create-sandbox-jobs.ts +0 -33
  156. package/src/tools/sandbox/payment/create-sandbox-payment.ts +0 -308
  157. package/src/tools.ts +0 -1
  158. package/tools/access-tokens/create-access-tokens.d.mts +0 -32
  159. package/tools/access-tokens/create-access-tokens.d.mts.map +0 -1
  160. package/tools/access-tokens/create-access-tokens.d.ts +0 -32
  161. package/tools/access-tokens/create-access-tokens.d.ts.map +0 -1
  162. package/tools/access-tokens/create-access-tokens.js +0 -37
  163. package/tools/access-tokens/create-access-tokens.js.map +0 -1
  164. package/tools/access-tokens/create-access-tokens.mjs +0 -33
  165. package/tools/access-tokens/create-access-tokens.mjs.map +0 -1
  166. package/tools/account/disconnect-account.d.mts +0 -32
  167. package/tools/account/disconnect-account.d.mts.map +0 -1
  168. package/tools/account/disconnect-account.d.ts +0 -32
  169. package/tools/account/disconnect-account.d.ts.map +0 -1
  170. package/tools/account/disconnect-account.js +0 -23
  171. package/tools/account/disconnect-account.js.map +0 -1
  172. package/tools/account/disconnect-account.mjs +0 -19
  173. package/tools/account/disconnect-account.mjs.map +0 -1
  174. package/tools/account/introspect-account.d.mts +0 -32
  175. package/tools/account/introspect-account.d.mts.map +0 -1
  176. package/tools/account/introspect-account.d.ts +0 -32
  177. package/tools/account/introspect-account.d.ts.map +0 -1
  178. package/tools/account/introspect-account.js +0 -23
  179. package/tools/account/introspect-account.js.map +0 -1
  180. package/tools/account/introspect-account.mjs +0 -19
  181. package/tools/account/introspect-account.mjs.map +0 -1
  182. package/tools/connect/sessions/new-connect-sessions.d.mts +0 -32
  183. package/tools/connect/sessions/new-connect-sessions.d.mts.map +0 -1
  184. package/tools/connect/sessions/new-connect-sessions.d.ts +0 -32
  185. package/tools/connect/sessions/new-connect-sessions.d.ts.map +0 -1
  186. package/tools/connect/sessions/new-connect-sessions.js +0 -80
  187. package/tools/connect/sessions/new-connect-sessions.js.map +0 -1
  188. package/tools/connect/sessions/new-connect-sessions.mjs +0 -76
  189. package/tools/connect/sessions/new-connect-sessions.mjs.map +0 -1
  190. package/tools/connect/sessions/reauthenticate-connect-sessions.d.mts +0 -32
  191. package/tools/connect/sessions/reauthenticate-connect-sessions.d.mts.map +0 -1
  192. package/tools/connect/sessions/reauthenticate-connect-sessions.d.ts +0 -32
  193. package/tools/connect/sessions/reauthenticate-connect-sessions.d.ts.map +0 -1
  194. package/tools/connect/sessions/reauthenticate-connect-sessions.js +0 -57
  195. package/tools/connect/sessions/reauthenticate-connect-sessions.js.map +0 -1
  196. package/tools/connect/sessions/reauthenticate-connect-sessions.mjs +0 -53
  197. package/tools/connect/sessions/reauthenticate-connect-sessions.mjs.map +0 -1
  198. package/tools/hris/benefits/create-hris-benefits.d.mts +0 -32
  199. package/tools/hris/benefits/create-hris-benefits.d.mts.map +0 -1
  200. package/tools/hris/benefits/create-hris-benefits.d.ts +0 -32
  201. package/tools/hris/benefits/create-hris-benefits.d.ts.map +0 -1
  202. package/tools/hris/benefits/create-hris-benefits.js +0 -97
  203. package/tools/hris/benefits/create-hris-benefits.js.map +0 -1
  204. package/tools/hris/benefits/create-hris-benefits.mjs +0 -93
  205. package/tools/hris/benefits/create-hris-benefits.mjs.map +0 -1
  206. package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.d.mts +0 -32
  207. package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.d.mts.map +0 -1
  208. package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.d.ts +0 -32
  209. package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.d.ts.map +0 -1
  210. package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.js +0 -94
  211. package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.js.map +0 -1
  212. package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.mjs +0 -90
  213. package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.mjs.map +0 -1
  214. package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.d.mts +0 -32
  215. package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.d.mts.map +0 -1
  216. package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.d.ts +0 -32
  217. package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.d.ts.map +0 -1
  218. package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.js +0 -28
  219. package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.js.map +0 -1
  220. package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.mjs +0 -24
  221. package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.mjs.map +0 -1
  222. package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.d.mts +0 -32
  223. package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.d.mts.map +0 -1
  224. package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.d.ts +0 -32
  225. package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.d.ts.map +0 -1
  226. package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.js +0 -32
  227. package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.js.map +0 -1
  228. package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.mjs +0 -28
  229. package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.mjs.map +0 -1
  230. package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.d.mts +0 -32
  231. package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.d.mts.map +0 -1
  232. package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.d.ts +0 -32
  233. package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.d.ts.map +0 -1
  234. package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.js +0 -35
  235. package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.js.map +0 -1
  236. package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.mjs +0 -31
  237. package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.mjs.map +0 -1
  238. package/tools/hris/benefits/list-hris-benefits.d.mts +0 -32
  239. package/tools/hris/benefits/list-hris-benefits.d.mts.map +0 -1
  240. package/tools/hris/benefits/list-hris-benefits.d.ts +0 -32
  241. package/tools/hris/benefits/list-hris-benefits.d.ts.map +0 -1
  242. package/tools/hris/benefits/list-hris-benefits.js +0 -23
  243. package/tools/hris/benefits/list-hris-benefits.js.map +0 -1
  244. package/tools/hris/benefits/list-hris-benefits.mjs +0 -19
  245. package/tools/hris/benefits/list-hris-benefits.mjs.map +0 -1
  246. package/tools/hris/benefits/list-supported-benefits-hris-benefits.d.mts +0 -32
  247. package/tools/hris/benefits/list-supported-benefits-hris-benefits.d.mts.map +0 -1
  248. package/tools/hris/benefits/list-supported-benefits-hris-benefits.d.ts +0 -32
  249. package/tools/hris/benefits/list-supported-benefits-hris-benefits.d.ts.map +0 -1
  250. package/tools/hris/benefits/list-supported-benefits-hris-benefits.js +0 -23
  251. package/tools/hris/benefits/list-supported-benefits-hris-benefits.js.map +0 -1
  252. package/tools/hris/benefits/list-supported-benefits-hris-benefits.mjs +0 -19
  253. package/tools/hris/benefits/list-supported-benefits-hris-benefits.mjs.map +0 -1
  254. package/tools/hris/benefits/retrieve-hris-benefits.d.mts +0 -32
  255. package/tools/hris/benefits/retrieve-hris-benefits.d.mts.map +0 -1
  256. package/tools/hris/benefits/retrieve-hris-benefits.d.ts +0 -32
  257. package/tools/hris/benefits/retrieve-hris-benefits.d.ts.map +0 -1
  258. package/tools/hris/benefits/retrieve-hris-benefits.js +0 -28
  259. package/tools/hris/benefits/retrieve-hris-benefits.js.map +0 -1
  260. package/tools/hris/benefits/retrieve-hris-benefits.mjs +0 -24
  261. package/tools/hris/benefits/retrieve-hris-benefits.mjs.map +0 -1
  262. package/tools/hris/benefits/update-hris-benefits.d.mts +0 -32
  263. package/tools/hris/benefits/update-hris-benefits.d.mts.map +0 -1
  264. package/tools/hris/benefits/update-hris-benefits.d.ts +0 -32
  265. package/tools/hris/benefits/update-hris-benefits.d.ts.map +0 -1
  266. package/tools/hris/benefits/update-hris-benefits.js +0 -32
  267. package/tools/hris/benefits/update-hris-benefits.js.map +0 -1
  268. package/tools/hris/benefits/update-hris-benefits.mjs +0 -28
  269. package/tools/hris/benefits/update-hris-benefits.mjs.map +0 -1
  270. package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.d.mts +0 -32
  271. package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.d.mts.map +0 -1
  272. package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.d.ts +0 -32
  273. package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.d.ts.map +0 -1
  274. package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.js +0 -51
  275. package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.js.map +0 -1
  276. package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.mjs +0 -47
  277. package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.mjs.map +0 -1
  278. package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.d.mts +0 -32
  279. package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.d.mts.map +0 -1
  280. package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.d.ts +0 -32
  281. package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.d.ts.map +0 -1
  282. package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.js +0 -73
  283. package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.js.map +0 -1
  284. package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.mjs +0 -69
  285. package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.mjs.map +0 -1
  286. package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.d.mts +0 -32
  287. package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.d.mts.map +0 -1
  288. package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.d.ts +0 -32
  289. package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.d.ts.map +0 -1
  290. package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.js +0 -28
  291. package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.js.map +0 -1
  292. package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.mjs +0 -24
  293. package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.mjs.map +0 -1
  294. package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.d.mts +0 -32
  295. package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.d.mts.map +0 -1
  296. package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.d.ts +0 -32
  297. package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.d.ts.map +0 -1
  298. package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.js +0 -23
  299. package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.js.map +0 -1
  300. package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.mjs +0 -19
  301. package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.mjs.map +0 -1
  302. package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.d.mts +0 -32
  303. package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.d.mts.map +0 -1
  304. package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.d.ts +0 -32
  305. package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.d.ts.map +0 -1
  306. package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.js +0 -31
  307. package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.js.map +0 -1
  308. package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.mjs +0 -27
  309. package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.mjs.map +0 -1
  310. package/tools/hris/company/retrieve-hris-company.d.mts +0 -32
  311. package/tools/hris/company/retrieve-hris-company.d.mts.map +0 -1
  312. package/tools/hris/company/retrieve-hris-company.d.ts +0 -32
  313. package/tools/hris/company/retrieve-hris-company.d.ts.map +0 -1
  314. package/tools/hris/company/retrieve-hris-company.js +0 -23
  315. package/tools/hris/company/retrieve-hris-company.js.map +0 -1
  316. package/tools/hris/company/retrieve-hris-company.mjs +0 -19
  317. package/tools/hris/company/retrieve-hris-company.mjs.map +0 -1
  318. package/tools/hris/directory/list-hris-directory.d.mts +0 -32
  319. package/tools/hris/directory/list-hris-directory.d.mts.map +0 -1
  320. package/tools/hris/directory/list-hris-directory.d.ts +0 -32
  321. package/tools/hris/directory/list-hris-directory.d.ts.map +0 -1
  322. package/tools/hris/directory/list-hris-directory.js +0 -33
  323. package/tools/hris/directory/list-hris-directory.js.map +0 -1
  324. package/tools/hris/directory/list-hris-directory.mjs +0 -29
  325. package/tools/hris/directory/list-hris-directory.mjs.map +0 -1
  326. package/tools/hris/directory/list-individuals-hris-directory.d.mts +0 -32
  327. package/tools/hris/directory/list-individuals-hris-directory.d.mts.map +0 -1
  328. package/tools/hris/directory/list-individuals-hris-directory.d.ts +0 -32
  329. package/tools/hris/directory/list-individuals-hris-directory.d.ts.map +0 -1
  330. package/tools/hris/directory/list-individuals-hris-directory.js +0 -33
  331. package/tools/hris/directory/list-individuals-hris-directory.js.map +0 -1
  332. package/tools/hris/directory/list-individuals-hris-directory.mjs +0 -29
  333. package/tools/hris/directory/list-individuals-hris-directory.mjs.map +0 -1
  334. package/tools/hris/documents/list-hris-documents.d.mts +0 -32
  335. package/tools/hris/documents/list-hris-documents.d.mts.map +0 -1
  336. package/tools/hris/documents/list-hris-documents.d.ts +0 -32
  337. package/tools/hris/documents/list-hris-documents.d.ts.map +0 -1
  338. package/tools/hris/documents/list-hris-documents.js +0 -48
  339. package/tools/hris/documents/list-hris-documents.js.map +0 -1
  340. package/tools/hris/documents/list-hris-documents.mjs +0 -44
  341. package/tools/hris/documents/list-hris-documents.mjs.map +0 -1
  342. package/tools/hris/documents/retreive-hris-documents.d.mts +0 -32
  343. package/tools/hris/documents/retreive-hris-documents.d.mts.map +0 -1
  344. package/tools/hris/documents/retreive-hris-documents.d.ts +0 -32
  345. package/tools/hris/documents/retreive-hris-documents.d.ts.map +0 -1
  346. package/tools/hris/documents/retreive-hris-documents.js +0 -28
  347. package/tools/hris/documents/retreive-hris-documents.js.map +0 -1
  348. package/tools/hris/documents/retreive-hris-documents.mjs +0 -24
  349. package/tools/hris/documents/retreive-hris-documents.mjs.map +0 -1
  350. package/tools/hris/employments/retrieve-many-hris-employments.d.mts +0 -32
  351. package/tools/hris/employments/retrieve-many-hris-employments.d.mts.map +0 -1
  352. package/tools/hris/employments/retrieve-many-hris-employments.d.ts +0 -32
  353. package/tools/hris/employments/retrieve-many-hris-employments.d.ts.map +0 -1
  354. package/tools/hris/employments/retrieve-many-hris-employments.js +0 -39
  355. package/tools/hris/employments/retrieve-many-hris-employments.js.map +0 -1
  356. package/tools/hris/employments/retrieve-many-hris-employments.mjs +0 -35
  357. package/tools/hris/employments/retrieve-many-hris-employments.mjs.map +0 -1
  358. package/tools/hris/individuals/retrieve-many-hris-individuals.d.mts +0 -32
  359. package/tools/hris/individuals/retrieve-many-hris-individuals.d.mts.map +0 -1
  360. package/tools/hris/individuals/retrieve-many-hris-individuals.d.ts +0 -32
  361. package/tools/hris/individuals/retrieve-many-hris-individuals.d.ts.map +0 -1
  362. package/tools/hris/individuals/retrieve-many-hris-individuals.js +0 -49
  363. package/tools/hris/individuals/retrieve-many-hris-individuals.js.map +0 -1
  364. package/tools/hris/individuals/retrieve-many-hris-individuals.mjs +0 -45
  365. package/tools/hris/individuals/retrieve-many-hris-individuals.mjs.map +0 -1
  366. package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.d.mts +0 -32
  367. package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.d.mts.map +0 -1
  368. package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.d.ts +0 -32
  369. package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.d.ts.map +0 -1
  370. package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.js +0 -47
  371. package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.js.map +0 -1
  372. package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.mjs +0 -43
  373. package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.mjs.map +0 -1
  374. package/tools/hris/payments/list-hris-payments.d.mts +0 -32
  375. package/tools/hris/payments/list-hris-payments.d.mts.map +0 -1
  376. package/tools/hris/payments/list-hris-payments.d.ts +0 -32
  377. package/tools/hris/payments/list-hris-payments.d.ts.map +0 -1
  378. package/tools/hris/payments/list-hris-payments.js +0 -35
  379. package/tools/hris/payments/list-hris-payments.js.map +0 -1
  380. package/tools/hris/payments/list-hris-payments.mjs +0 -31
  381. package/tools/hris/payments/list-hris-payments.mjs.map +0 -1
  382. package/tools/index.d.mts +0 -21
  383. package/tools/index.d.mts.map +0 -1
  384. package/tools/index.d.ts +0 -21
  385. package/tools/index.d.ts.map +0 -1
  386. package/tools/index.js +0 -146
  387. package/tools/index.js.map +0 -1
  388. package/tools/index.mjs +0 -139
  389. package/tools/index.mjs.map +0 -1
  390. package/tools/jobs/automated/create-jobs-automated.d.mts +0 -32
  391. package/tools/jobs/automated/create-jobs-automated.d.mts.map +0 -1
  392. package/tools/jobs/automated/create-jobs-automated.d.ts +0 -32
  393. package/tools/jobs/automated/create-jobs-automated.d.ts.map +0 -1
  394. package/tools/jobs/automated/create-jobs-automated.js +0 -55
  395. package/tools/jobs/automated/create-jobs-automated.js.map +0 -1
  396. package/tools/jobs/automated/create-jobs-automated.mjs +0 -51
  397. package/tools/jobs/automated/create-jobs-automated.mjs.map +0 -1
  398. package/tools/jobs/automated/list-jobs-automated.d.mts +0 -32
  399. package/tools/jobs/automated/list-jobs-automated.d.mts.map +0 -1
  400. package/tools/jobs/automated/list-jobs-automated.d.ts +0 -32
  401. package/tools/jobs/automated/list-jobs-automated.d.ts.map +0 -1
  402. package/tools/jobs/automated/list-jobs-automated.js +0 -33
  403. package/tools/jobs/automated/list-jobs-automated.js.map +0 -1
  404. package/tools/jobs/automated/list-jobs-automated.mjs +0 -29
  405. package/tools/jobs/automated/list-jobs-automated.mjs.map +0 -1
  406. package/tools/jobs/automated/retrieve-jobs-automated.d.mts +0 -32
  407. package/tools/jobs/automated/retrieve-jobs-automated.d.mts.map +0 -1
  408. package/tools/jobs/automated/retrieve-jobs-automated.d.ts +0 -32
  409. package/tools/jobs/automated/retrieve-jobs-automated.d.ts.map +0 -1
  410. package/tools/jobs/automated/retrieve-jobs-automated.js +0 -28
  411. package/tools/jobs/automated/retrieve-jobs-automated.js.map +0 -1
  412. package/tools/jobs/automated/retrieve-jobs-automated.mjs +0 -24
  413. package/tools/jobs/automated/retrieve-jobs-automated.mjs.map +0 -1
  414. package/tools/jobs/manual/retrieve-jobs-manual.d.mts +0 -32
  415. package/tools/jobs/manual/retrieve-jobs-manual.d.mts.map +0 -1
  416. package/tools/jobs/manual/retrieve-jobs-manual.d.ts +0 -32
  417. package/tools/jobs/manual/retrieve-jobs-manual.d.ts.map +0 -1
  418. package/tools/jobs/manual/retrieve-jobs-manual.js +0 -28
  419. package/tools/jobs/manual/retrieve-jobs-manual.js.map +0 -1
  420. package/tools/jobs/manual/retrieve-jobs-manual.mjs +0 -24
  421. package/tools/jobs/manual/retrieve-jobs-manual.mjs.map +0 -1
  422. package/tools/payroll/pay-groups/list-payroll-pay-groups.d.mts +0 -32
  423. package/tools/payroll/pay-groups/list-payroll-pay-groups.d.mts.map +0 -1
  424. package/tools/payroll/pay-groups/list-payroll-pay-groups.d.ts +0 -32
  425. package/tools/payroll/pay-groups/list-payroll-pay-groups.d.ts.map +0 -1
  426. package/tools/payroll/pay-groups/list-payroll-pay-groups.js +0 -34
  427. package/tools/payroll/pay-groups/list-payroll-pay-groups.js.map +0 -1
  428. package/tools/payroll/pay-groups/list-payroll-pay-groups.mjs +0 -30
  429. package/tools/payroll/pay-groups/list-payroll-pay-groups.mjs.map +0 -1
  430. package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.d.mts +0 -32
  431. package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.d.mts.map +0 -1
  432. package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.d.ts +0 -32
  433. package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.d.ts.map +0 -1
  434. package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.js +0 -28
  435. package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.js.map +0 -1
  436. package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.mjs +0 -24
  437. package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.mjs.map +0 -1
  438. package/tools/providers/list-providers.d.mts +0 -32
  439. package/tools/providers/list-providers.d.mts.map +0 -1
  440. package/tools/providers/list-providers.d.ts +0 -32
  441. package/tools/providers/list-providers.d.ts.map +0 -1
  442. package/tools/providers/list-providers.js +0 -23
  443. package/tools/providers/list-providers.js.map +0 -1
  444. package/tools/providers/list-providers.mjs +0 -19
  445. package/tools/providers/list-providers.mjs.map +0 -1
  446. package/tools/request-forwarding/forward-request-forwarding.d.mts +0 -32
  447. package/tools/request-forwarding/forward-request-forwarding.d.mts.map +0 -1
  448. package/tools/request-forwarding/forward-request-forwarding.d.ts +0 -32
  449. package/tools/request-forwarding/forward-request-forwarding.d.ts.map +0 -1
  450. package/tools/request-forwarding/forward-request-forwarding.js +0 -45
  451. package/tools/request-forwarding/forward-request-forwarding.js.map +0 -1
  452. package/tools/request-forwarding/forward-request-forwarding.mjs +0 -41
  453. package/tools/request-forwarding/forward-request-forwarding.mjs.map +0 -1
  454. package/tools/sandbox/company/update-sandbox-company.d.mts +0 -32
  455. package/tools/sandbox/company/update-sandbox-company.d.mts.map +0 -1
  456. package/tools/sandbox/company/update-sandbox-company.d.ts +0 -32
  457. package/tools/sandbox/company/update-sandbox-company.d.ts.map +0 -1
  458. package/tools/sandbox/company/update-sandbox-company.js +0 -159
  459. package/tools/sandbox/company/update-sandbox-company.js.map +0 -1
  460. package/tools/sandbox/company/update-sandbox-company.mjs +0 -155
  461. package/tools/sandbox/company/update-sandbox-company.mjs.map +0 -1
  462. package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.d.mts +0 -32
  463. package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.d.mts.map +0 -1
  464. package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.d.ts +0 -32
  465. package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.d.ts.map +0 -1
  466. package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.js +0 -44
  467. package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.js.map +0 -1
  468. package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.mjs +0 -40
  469. package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.mjs.map +0 -1
  470. package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.d.mts +0 -32
  471. package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.d.mts.map +0 -1
  472. package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.d.ts +0 -32
  473. package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.d.ts.map +0 -1
  474. package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.js +0 -35
  475. package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.js.map +0 -1
  476. package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.mjs +0 -31
  477. package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.mjs.map +0 -1
  478. package/tools/sandbox/connections/create-sandbox-connections.d.mts +0 -32
  479. package/tools/sandbox/connections/create-sandbox-connections.d.mts.map +0 -1
  480. package/tools/sandbox/connections/create-sandbox-connections.d.ts +0 -32
  481. package/tools/sandbox/connections/create-sandbox-connections.d.ts.map +0 -1
  482. package/tools/sandbox/connections/create-sandbox-connections.js +0 -44
  483. package/tools/sandbox/connections/create-sandbox-connections.js.map +0 -1
  484. package/tools/sandbox/connections/create-sandbox-connections.mjs +0 -40
  485. package/tools/sandbox/connections/create-sandbox-connections.mjs.map +0 -1
  486. package/tools/sandbox/directory/create-sandbox-directory.d.mts +0 -32
  487. package/tools/sandbox/directory/create-sandbox-directory.d.mts.map +0 -1
  488. package/tools/sandbox/directory/create-sandbox-directory.d.ts +0 -32
  489. package/tools/sandbox/directory/create-sandbox-directory.d.ts.map +0 -1
  490. package/tools/sandbox/directory/create-sandbox-directory.js +0 -292
  491. package/tools/sandbox/directory/create-sandbox-directory.js.map +0 -1
  492. package/tools/sandbox/directory/create-sandbox-directory.mjs +0 -288
  493. package/tools/sandbox/directory/create-sandbox-directory.mjs.map +0 -1
  494. package/tools/sandbox/employment/update-sandbox-employment.d.mts +0 -32
  495. package/tools/sandbox/employment/update-sandbox-employment.d.mts.map +0 -1
  496. package/tools/sandbox/employment/update-sandbox-employment.d.ts +0 -32
  497. package/tools/sandbox/employment/update-sandbox-employment.d.ts.map +0 -1
  498. package/tools/sandbox/employment/update-sandbox-employment.js +0 -215
  499. package/tools/sandbox/employment/update-sandbox-employment.js.map +0 -1
  500. package/tools/sandbox/employment/update-sandbox-employment.mjs +0 -211
  501. package/tools/sandbox/employment/update-sandbox-employment.mjs.map +0 -1
  502. package/tools/sandbox/individual/update-sandbox-individual.d.mts +0 -32
  503. package/tools/sandbox/individual/update-sandbox-individual.d.mts.map +0 -1
  504. package/tools/sandbox/individual/update-sandbox-individual.d.ts +0 -32
  505. package/tools/sandbox/individual/update-sandbox-individual.d.ts.map +0 -1
  506. package/tools/sandbox/individual/update-sandbox-individual.js +0 -149
  507. package/tools/sandbox/individual/update-sandbox-individual.js.map +0 -1
  508. package/tools/sandbox/individual/update-sandbox-individual.mjs +0 -145
  509. package/tools/sandbox/individual/update-sandbox-individual.mjs.map +0 -1
  510. package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.d.mts +0 -32
  511. package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.d.mts.map +0 -1
  512. package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.d.ts +0 -32
  513. package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.d.ts.map +0 -1
  514. package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.js +0 -23
  515. package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.js.map +0 -1
  516. package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.mjs +0 -19
  517. package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.mjs.map +0 -1
  518. package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.d.mts +0 -32
  519. package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.d.mts.map +0 -1
  520. package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.d.ts +0 -32
  521. package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.d.ts.map +0 -1
  522. package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.js +0 -33
  523. package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.js.map +0 -1
  524. package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.mjs +0 -29
  525. package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.mjs.map +0 -1
  526. package/tools/sandbox/jobs/create-sandbox-jobs.d.mts +0 -32
  527. package/tools/sandbox/jobs/create-sandbox-jobs.d.mts.map +0 -1
  528. package/tools/sandbox/jobs/create-sandbox-jobs.d.ts +0 -32
  529. package/tools/sandbox/jobs/create-sandbox-jobs.d.ts.map +0 -1
  530. package/tools/sandbox/jobs/create-sandbox-jobs.js +0 -30
  531. package/tools/sandbox/jobs/create-sandbox-jobs.js.map +0 -1
  532. package/tools/sandbox/jobs/create-sandbox-jobs.mjs +0 -26
  533. package/tools/sandbox/jobs/create-sandbox-jobs.mjs.map +0 -1
  534. package/tools/sandbox/payment/create-sandbox-payment.d.mts +0 -32
  535. package/tools/sandbox/payment/create-sandbox-payment.d.mts.map +0 -1
  536. package/tools/sandbox/payment/create-sandbox-payment.d.ts +0 -32
  537. package/tools/sandbox/payment/create-sandbox-payment.d.ts.map +0 -1
  538. package/tools/sandbox/payment/create-sandbox-payment.js +0 -300
  539. package/tools/sandbox/payment/create-sandbox-payment.js.map +0 -1
  540. package/tools/sandbox/payment/create-sandbox-payment.mjs +0 -296
  541. package/tools/sandbox/payment/create-sandbox-payment.mjs.map +0 -1
  542. package/tools.d.mts +0 -2
  543. package/tools.d.mts.map +0 -1
  544. package/tools.d.ts +0 -2
  545. package/tools.d.ts.map +0 -1
  546. package/tools.js +0 -18
  547. package/tools.js.map +0 -1
  548. package/tools.mjs +0 -2
  549. package/tools.mjs.map +0 -1
package/server.d.ts CHANGED
@@ -1,38 +1,30 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
- import { Endpoint, HandlerFunction } from "./tools.js";
4
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import { ClientOptions } from '@tryfinch/finch-api';
5
4
  import Finch from '@tryfinch/finch-api';
6
- import { ClientCapabilities } from "./compat.js";
7
- import { ParsedOptions } from "./options.js";
8
- export { endpoints } from "./tools.js";
5
+ import { McpOptions } from "./options.js";
6
+ import { HandlerFunction, McpTool } from "./types.js";
7
+ export { McpOptions } from "./options.js";
8
+ export { ClientOptions } from '@tryfinch/finch-api';
9
+ export declare const newMcpServer: () => McpServer;
9
10
  export declare const server: McpServer;
10
11
  /**
11
12
  * Initializes the provided MCP Server with the given tools and handlers.
12
13
  * If not provided, the default client, tools and handlers will be used.
13
14
  */
14
- export declare function init(params: {
15
+ export declare function initMcpServer(params: {
15
16
  server: Server | McpServer;
16
- client?: Finch;
17
- endpoints?: {
18
- tool: Tool;
19
- handler: HandlerFunction;
20
- }[];
21
- capabilities?: Partial<ClientCapabilities>;
17
+ clientOptions?: ClientOptions;
18
+ mcpOptions?: McpOptions;
22
19
  }): void;
23
20
  /**
24
21
  * Selects the tools to include in the MCP Server based on the provided options.
25
22
  */
26
- export declare function selectTools(endpoints: Endpoint[], options: ParsedOptions): Endpoint[];
23
+ export declare function selectTools(options?: McpOptions): McpTool[];
27
24
  /**
28
25
  * Runs the provided handler with the given client and arguments.
29
26
  */
30
- export declare function executeHandler(tool: Tool, handler: HandlerFunction, client: Finch, args: Record<string, unknown> | undefined, compatibilityOptions?: Partial<ClientCapabilities>): Promise<{
31
- content: {
32
- type: string;
33
- text: string;
34
- }[];
35
- }>;
27
+ export declare function executeHandler(handler: HandlerFunction, client: Finch, args: Record<string, unknown> | undefined): Promise<import("./types").ToolCallResult>;
36
28
  export declare const readEnv: (env: string) => string | undefined;
37
29
  export declare const readEnvOrError: (env: string) => string;
38
30
  //# sourceMappingURL=server.d.ts.map
package/server.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,EAAE,MAAM,2CAA2C;OAC3D,EAAE,SAAS,EAAE,MAAM,yCAAyC;OAC5D,EAAE,QAAQ,EAAa,eAAe,EAAS;OAC/C,EAAiD,IAAI,EAAE,MAAM,oCAAoC;OACjG,KAAK,MAAM,qBAAqB;OAChC,EAEL,kBAAkB,EAGnB;OAEM,EAAE,aAAa,EAAE;OACjB,EAAE,SAAS,EAAE;AAGpB,eAAO,MAAM,MAAM,WAUlB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,EAAE,CAAC;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC5C,QAuBA;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,cAkBxE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,oBAAoB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;;;;;GAenD;AAED,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAO9C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAM5C,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,EAAE,MAAM,2CAA2C;OAC3D,EAAE,SAAS,EAAE,MAAM,yCAAyC;OAM5D,EAAE,aAAa,EAAE,MAAM,qBAAqB;OAC5C,KAAK,MAAM,qBAAqB;OAGhC,EAAE,UAAU,EAAE;OACd,EAAE,eAAe,EAAE,OAAO,EAAE;OAE5B,EAAE,UAAU,EAAE;OACd,EAAE,aAAa,EAAE,MAAM,qBAAqB;AAEnD,eAAO,MAAM,YAAY,iBAOtB,CAAC;AAGJ,eAAO,MAAM,MAAM,WAAiB,CAAC;AAErC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,QAqEA;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE,CAM3D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,6CAG1C;AAED,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAO9C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAM5C,CAAC"}
package/server.js CHANGED
@@ -4,84 +4,102 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.readEnvOrError = exports.readEnv = exports.server = exports.endpoints = void 0;
8
- exports.init = init;
7
+ exports.readEnvOrError = exports.readEnv = exports.server = exports.newMcpServer = void 0;
8
+ exports.initMcpServer = initMcpServer;
9
9
  exports.selectTools = selectTools;
10
10
  exports.executeHandler = executeHandler;
11
11
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
12
- const tools_1 = require("./tools.js");
13
12
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
14
13
  const finch_api_1 = __importDefault(require("@tryfinch/finch-api"));
15
- const compat_1 = require("./compat.js");
16
- const dynamic_tools_1 = require("./dynamic-tools.js");
17
- var tools_2 = require("./tools.js");
18
- Object.defineProperty(exports, "endpoints", { enumerable: true, get: function () { return tools_2.endpoints; } });
19
- // Create server instance
20
- exports.server = new mcp_js_1.McpServer({
14
+ const code_tool_1 = require("./code-tool.js");
15
+ const docs_search_tool_1 = __importDefault(require("./docs-search-tool.js"));
16
+ const newMcpServer = () => new mcp_js_1.McpServer({
21
17
  name: 'tryfinch_finch_api_api',
22
- version: '6.31.0',
23
- }, {
24
- capabilities: {
25
- tools: {},
26
- },
27
- });
18
+ version: '8.0.0',
19
+ }, { capabilities: { tools: {}, logging: {} } });
20
+ exports.newMcpServer = newMcpServer;
21
+ // Create server instance
22
+ exports.server = (0, exports.newMcpServer)();
28
23
  /**
29
24
  * Initializes the provided MCP Server with the given tools and handlers.
30
25
  * If not provided, the default client, tools and handlers will be used.
31
26
  */
32
- function init(params) {
27
+ function initMcpServer(params) {
33
28
  const server = params.server instanceof mcp_js_1.McpServer ? params.server.server : params.server;
34
- const providedEndpoints = params.endpoints || tools_1.endpoints;
35
- const endpointMap = Object.fromEntries(providedEndpoints.map((endpoint) => [endpoint.tool.name, endpoint]));
36
- const client = params.client || new finch_api_1.default({ accessToken: (0, exports.readEnv)('FINCH_ACCESS_TOKEN') });
29
+ const logAtLevel = (level) => (message, ...rest) => {
30
+ void server.sendLoggingMessage({
31
+ level,
32
+ data: { message, rest },
33
+ });
34
+ };
35
+ const logger = {
36
+ debug: logAtLevel('debug'),
37
+ info: logAtLevel('info'),
38
+ warn: logAtLevel('warning'),
39
+ error: logAtLevel('error'),
40
+ };
41
+ let client = new finch_api_1.default({
42
+ ...{ accessToken: (0, exports.readEnv)('FINCH_ACCESS_TOKEN') },
43
+ logger,
44
+ ...params.clientOptions,
45
+ defaultHeaders: {
46
+ ...params.clientOptions?.defaultHeaders,
47
+ 'X-Stainless-MCP': 'true',
48
+ },
49
+ });
50
+ const providedTools = selectTools(params.mcpOptions);
51
+ const toolMap = Object.fromEntries(providedTools.map((mcpTool) => [mcpTool.tool.name, mcpTool]));
37
52
  server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
38
53
  return {
39
- tools: providedEndpoints.map((endpoint) => endpoint.tool),
54
+ tools: providedTools.map((mcpTool) => mcpTool.tool),
40
55
  };
41
56
  });
42
57
  server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
43
58
  const { name, arguments: args } = request.params;
44
- const endpoint = endpointMap[name];
45
- if (!endpoint) {
59
+ const mcpTool = toolMap[name];
60
+ if (!mcpTool) {
46
61
  throw new Error(`Unknown tool: ${name}`);
47
62
  }
48
- return executeHandler(endpoint.tool, endpoint.handler, client, args, params.capabilities);
63
+ return executeHandler(mcpTool.handler, client, args);
64
+ });
65
+ server.setRequestHandler(types_js_1.SetLevelRequestSchema, async (request) => {
66
+ const { level } = request.params;
67
+ switch (level) {
68
+ case 'debug':
69
+ client = client.withOptions({ logLevel: 'debug' });
70
+ break;
71
+ case 'info':
72
+ client = client.withOptions({ logLevel: 'info' });
73
+ break;
74
+ case 'notice':
75
+ case 'warning':
76
+ client = client.withOptions({ logLevel: 'warn' });
77
+ break;
78
+ case 'error':
79
+ client = client.withOptions({ logLevel: 'error' });
80
+ break;
81
+ default:
82
+ client = client.withOptions({ logLevel: 'off' });
83
+ break;
84
+ }
85
+ return {};
49
86
  });
50
87
  }
51
88
  /**
52
89
  * Selects the tools to include in the MCP Server based on the provided options.
53
90
  */
54
- function selectTools(endpoints, options) {
55
- const filteredEndpoints = (0, tools_1.query)(options.filters, endpoints);
56
- const includedTools = filteredEndpoints;
57
- if (options.includeAllTools && includedTools.length === 0) {
58
- includedTools.push(...endpoints);
59
- }
60
- if (options.includeDynamicTools) {
61
- includedTools.push(...(0, dynamic_tools_1.dynamicTools)(endpoints));
62
- }
63
- if (includedTools.length === 0) {
64
- includedTools.push(...endpoints);
91
+ function selectTools(options) {
92
+ const includedTools = [(0, code_tool_1.codeTool)()];
93
+ if (options?.includeDocsTools ?? true) {
94
+ includedTools.push(docs_search_tool_1.default);
65
95
  }
66
- return (0, compat_1.applyCompatibilityTransformations)(includedTools, options.capabilities);
96
+ return includedTools;
67
97
  }
68
98
  /**
69
99
  * Runs the provided handler with the given client and arguments.
70
100
  */
71
- async function executeHandler(tool, handler, client, args, compatibilityOptions) {
72
- const options = { ...compat_1.defaultClientCapabilities, ...compatibilityOptions };
73
- if (options.validJson && args) {
74
- args = args = (0, compat_1.parseEmbeddedJSON)(args, tool.inputSchema);
75
- }
76
- const result = await handler(client, args || {});
77
- return {
78
- content: [
79
- {
80
- type: 'text',
81
- text: JSON.stringify(result, null, 2),
82
- },
83
- ],
84
- };
101
+ async function executeHandler(handler, client, args) {
102
+ return await handler(client, args || {});
85
103
  }
86
104
  const readEnv = (env) => {
87
105
  if (typeof globalThis.process !== 'undefined') {
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
@@ -1,77 +1,95 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
- import { endpoints, query } from "./tools.mjs";
4
- import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, SetLevelRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
4
  import Finch from '@tryfinch/finch-api';
6
- import { applyCompatibilityTransformations, defaultClientCapabilities, parseEmbeddedJSON, } from "./compat.mjs";
7
- import { dynamicTools } from "./dynamic-tools.mjs";
8
- export { endpoints } from "./tools.mjs";
9
- // Create server instance
10
- export const server = new McpServer({
5
+ import { codeTool } from "./code-tool.mjs";
6
+ import docsSearchTool from "./docs-search-tool.mjs";
7
+ export const newMcpServer = () => new McpServer({
11
8
  name: 'tryfinch_finch_api_api',
12
- version: '6.31.0',
13
- }, {
14
- capabilities: {
15
- tools: {},
16
- },
17
- });
9
+ version: '8.0.0',
10
+ }, { capabilities: { tools: {}, logging: {} } });
11
+ // Create server instance
12
+ export const server = newMcpServer();
18
13
  /**
19
14
  * Initializes the provided MCP Server with the given tools and handlers.
20
15
  * If not provided, the default client, tools and handlers will be used.
21
16
  */
22
- export function init(params) {
17
+ export function initMcpServer(params) {
23
18
  const server = params.server instanceof McpServer ? params.server.server : params.server;
24
- const providedEndpoints = params.endpoints || endpoints;
25
- const endpointMap = Object.fromEntries(providedEndpoints.map((endpoint) => [endpoint.tool.name, endpoint]));
26
- const client = params.client || new Finch({ accessToken: readEnv('FINCH_ACCESS_TOKEN') });
19
+ const logAtLevel = (level) => (message, ...rest) => {
20
+ void server.sendLoggingMessage({
21
+ level,
22
+ data: { message, rest },
23
+ });
24
+ };
25
+ const logger = {
26
+ debug: logAtLevel('debug'),
27
+ info: logAtLevel('info'),
28
+ warn: logAtLevel('warning'),
29
+ error: logAtLevel('error'),
30
+ };
31
+ let client = new Finch({
32
+ ...{ accessToken: readEnv('FINCH_ACCESS_TOKEN') },
33
+ logger,
34
+ ...params.clientOptions,
35
+ defaultHeaders: {
36
+ ...params.clientOptions?.defaultHeaders,
37
+ 'X-Stainless-MCP': 'true',
38
+ },
39
+ });
40
+ const providedTools = selectTools(params.mcpOptions);
41
+ const toolMap = Object.fromEntries(providedTools.map((mcpTool) => [mcpTool.tool.name, mcpTool]));
27
42
  server.setRequestHandler(ListToolsRequestSchema, async () => {
28
43
  return {
29
- tools: providedEndpoints.map((endpoint) => endpoint.tool),
44
+ tools: providedTools.map((mcpTool) => mcpTool.tool),
30
45
  };
31
46
  });
32
47
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
33
48
  const { name, arguments: args } = request.params;
34
- const endpoint = endpointMap[name];
35
- if (!endpoint) {
49
+ const mcpTool = toolMap[name];
50
+ if (!mcpTool) {
36
51
  throw new Error(`Unknown tool: ${name}`);
37
52
  }
38
- return executeHandler(endpoint.tool, endpoint.handler, client, args, params.capabilities);
53
+ return executeHandler(mcpTool.handler, client, args);
54
+ });
55
+ server.setRequestHandler(SetLevelRequestSchema, async (request) => {
56
+ const { level } = request.params;
57
+ switch (level) {
58
+ case 'debug':
59
+ client = client.withOptions({ logLevel: 'debug' });
60
+ break;
61
+ case 'info':
62
+ client = client.withOptions({ logLevel: 'info' });
63
+ break;
64
+ case 'notice':
65
+ case 'warning':
66
+ client = client.withOptions({ logLevel: 'warn' });
67
+ break;
68
+ case 'error':
69
+ client = client.withOptions({ logLevel: 'error' });
70
+ break;
71
+ default:
72
+ client = client.withOptions({ logLevel: 'off' });
73
+ break;
74
+ }
75
+ return {};
39
76
  });
40
77
  }
41
78
  /**
42
79
  * Selects the tools to include in the MCP Server based on the provided options.
43
80
  */
44
- export function selectTools(endpoints, options) {
45
- const filteredEndpoints = query(options.filters, endpoints);
46
- const includedTools = filteredEndpoints;
47
- if (options.includeAllTools && includedTools.length === 0) {
48
- includedTools.push(...endpoints);
49
- }
50
- if (options.includeDynamicTools) {
51
- includedTools.push(...dynamicTools(endpoints));
52
- }
53
- if (includedTools.length === 0) {
54
- includedTools.push(...endpoints);
81
+ export function selectTools(options) {
82
+ const includedTools = [codeTool()];
83
+ if (options?.includeDocsTools ?? true) {
84
+ includedTools.push(docsSearchTool);
55
85
  }
56
- return applyCompatibilityTransformations(includedTools, options.capabilities);
86
+ return includedTools;
57
87
  }
58
88
  /**
59
89
  * Runs the provided handler with the given client and arguments.
60
90
  */
61
- export async function executeHandler(tool, handler, client, args, compatibilityOptions) {
62
- const options = { ...defaultClientCapabilities, ...compatibilityOptions };
63
- if (options.validJson && args) {
64
- args = args = parseEmbeddedJSON(args, tool.inputSchema);
65
- }
66
- const result = await handler(client, args || {});
67
- return {
68
- content: [
69
- {
70
- type: 'text',
71
- text: JSON.stringify(result, null, 2),
72
- },
73
- ],
74
- };
91
+ export async function executeHandler(handler, client, args) {
92
+ return await handler(client, args || {});
75
93
  }
76
94
  export const readEnv = (env) => {
77
95
  if (typeof globalThis.process !== 'undefined') {
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":"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"}
@@ -0,0 +1,18 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { ClientOptions } from '@tryfinch/finch-api';
4
+
5
+ export type WorkerInput = {
6
+ opts: ClientOptions;
7
+ code: string;
8
+ };
9
+ export type WorkerSuccess = {
10
+ result: unknown | null;
11
+ logLines: string[];
12
+ errLines: string[];
13
+ };
14
+ export type WorkerError = {
15
+ message: string | undefined;
16
+ logLines: string[];
17
+ errLines: string[];
18
+ };
@@ -0,0 +1,65 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { McpTool, Metadata, ToolCallResult, asTextContentResult } from './types';
4
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
5
+ import { readEnv } from './server';
6
+ import { WorkerSuccess } from './code-tool-types';
7
+ /**
8
+ * A tool that runs code against a copy of the SDK.
9
+ *
10
+ * Instead of exposing every endpoint as its own tool, which uses up too many tokens for LLMs to use at once,
11
+ * we expose a single tool that can be used to search for endpoints by name, resource, operation, or tag, and then
12
+ * a generic endpoint that can be used to invoke any endpoint with the provided arguments.
13
+ *
14
+ * @param endpoints - The endpoints to include in the list.
15
+ */
16
+ export function codeTool(): McpTool {
17
+ const metadata: Metadata = { resource: 'all', operation: 'write', tags: [] };
18
+ const tool: Tool = {
19
+ name: 'execute',
20
+ description:
21
+ 'Runs JavaScript code to interact with the API.\n\nYou are a skilled programmer writing code to interface with the service.\nDefine an async function named "run" that takes a single parameter of an initialized SDK client and it will be run.\nWrite code within this template:\n\n```\nasync function run(client) {\n // Fill this out\n}\n```\n\nYou will be returned anything that your function returns, plus the results of any console.log statements.\nIf any code triggers an error, the tool will return an error response, so you do not need to add error handling unless you want to output something more helpful than the raw error.\nIt is not necessary to add comments to code, unless by adding those comments you believe that you can generate better code.\nThis code will run in a container, and you will not be able to use fetch or otherwise interact with the network calls other than through the client you are given.\nAny variables you define won\'t live between successive uses of this call, so make sure to return or log any data you might need later.',
22
+ inputSchema: { type: 'object', properties: { code: { type: 'string' } } },
23
+ };
24
+ const handler = async (_: unknown, args: any): Promise<ToolCallResult> => {
25
+ const code = args.code as string;
26
+
27
+ // this is not required, but passing a Stainless API key for the matching project_name
28
+ // will allow you to run code-mode queries against non-published versions of your SDK.
29
+ const stainlessAPIKey = readEnv('STAINLESS_API_KEY');
30
+ const codeModeEndpoint =
31
+ readEnv('CODE_MODE_ENDPOINT_URL') ?? 'https://api.stainless.com/api/ai/code-tool';
32
+
33
+ const res = await fetch(codeModeEndpoint, {
34
+ method: 'POST',
35
+ headers: {
36
+ ...(stainlessAPIKey && { Authorization: stainlessAPIKey }),
37
+ 'Content-Type': 'application/json',
38
+ client_envs: JSON.stringify({
39
+ FINCH_ACCESS_TOKEN: readEnv('FINCH_ACCESS_TOKEN'),
40
+ FINCH_CLIENT_ID: readEnv('FINCH_CLIENT_ID'),
41
+ FINCH_CLIENT_SECRET: readEnv('FINCH_CLIENT_SECRET'),
42
+ FINCH_WEBHOOK_SECRET: readEnv('FINCH_WEBHOOK_SECRET'),
43
+ FINCH_BASE_URL: readEnv('FINCH_BASE_URL'),
44
+ }),
45
+ },
46
+ body: JSON.stringify({
47
+ project_name: 'finch',
48
+ client_opts: { accessToken: readEnv('FINCH_ACCESS_TOKEN') },
49
+ code,
50
+ }),
51
+ });
52
+
53
+ if (!res.ok) {
54
+ throw new Error(
55
+ `${res.status}: ${
56
+ res.statusText
57
+ } error when trying to contact Code Tool server. Details: ${await res.text()}`,
58
+ );
59
+ }
60
+
61
+ return asTextContentResult((await res.json()) as WorkerSuccess);
62
+ };
63
+
64
+ return { metadata, tool, handler };
65
+ }
@@ -0,0 +1,59 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from './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: 'Search for documentation for how to use the client to interact with the API.',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ query: {
21
+ type: 'string',
22
+ description: 'The query to search for.',
23
+ },
24
+ language: {
25
+ type: 'string',
26
+ description: 'The language for the SDK to search for.',
27
+ enum: ['http', 'python', 'go', 'typescript', 'javascript', 'terraform', 'ruby', 'java', 'kotlin'],
28
+ },
29
+ detail: {
30
+ type: 'string',
31
+ description: 'The amount of detail to return.',
32
+ enum: ['default', 'verbose'],
33
+ },
34
+ },
35
+ required: ['query', 'language'],
36
+ },
37
+ annotations: {
38
+ readOnlyHint: true,
39
+ },
40
+ };
41
+
42
+ const docsSearchURL =
43
+ process.env['DOCS_SEARCH_URL'] || 'https://api.stainless.com/api/projects/finch/docs/search';
44
+
45
+ export const handler = async (_: unknown, args: Record<string, unknown> | undefined) => {
46
+ const body = args as any;
47
+ const query = new URLSearchParams(body).toString();
48
+ const result = await fetch(`${docsSearchURL}?${query}`);
49
+
50
+ if (!result.ok) {
51
+ throw new Error(
52
+ `${result.status}: ${result.statusText} when using doc search tool. Details: ${await result.text()}`,
53
+ );
54
+ }
55
+
56
+ return asTextContentResult(await result.json());
57
+ };
58
+
59
+ export default { metadata, tool, handler };
package/src/headers.ts ADDED
@@ -0,0 +1,35 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { IncomingMessage } from 'node:http';
4
+ import { ClientOptions } from '@tryfinch/finch-api';
5
+
6
+ export const parseAuthHeaders = (req: IncomingMessage): Partial<ClientOptions> => {
7
+ if (req.headers.authorization) {
8
+ const scheme = req.headers.authorization.split(' ')[0]!;
9
+ const value = req.headers.authorization.slice(scheme.length + 1);
10
+ switch (scheme) {
11
+ case 'Bearer':
12
+ return { accessToken: req.headers.authorization.slice('Bearer '.length) };
13
+ case 'Basic':
14
+ const rawValue = Buffer.from(value, 'base64').toString();
15
+ return {
16
+ clientID: rawValue.slice(0, rawValue.search(':')),
17
+ clientSecret: rawValue.slice(rawValue.search(':') + 1),
18
+ };
19
+ default:
20
+ throw new Error(
21
+ 'Unsupported authorization scheme. Expected the "Authorization" header to be a supported scheme (Bearer, Basic).',
22
+ );
23
+ }
24
+ }
25
+
26
+ const clientID =
27
+ Array.isArray(req.headers['x-finch-client-id']) ?
28
+ req.headers['x-finch-client-id'][0]
29
+ : req.headers['x-finch-client-id'];
30
+ const clientSecret =
31
+ Array.isArray(req.headers['x-finch-client-secret']) ?
32
+ req.headers['x-finch-client-secret'][0]
33
+ : req.headers['x-finch-client-secret'];
34
+ return { clientID, clientSecret };
35
+ };