@tryfinch/finch-api-mcp 6.30.0 → 7.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.
- package/README.md +85 -10
- package/code-tool-types.d.mts +16 -0
- package/code-tool-types.d.mts.map +1 -0
- package/code-tool-types.d.ts +16 -0
- package/code-tool-types.d.ts.map +1 -0
- package/code-tool-types.js +4 -0
- package/code-tool-types.js.map +1 -0
- package/code-tool-types.mjs +3 -0
- package/code-tool-types.mjs.map +1 -0
- package/code-tool.d.mts +54 -0
- package/code-tool.d.mts.map +1 -0
- package/code-tool.d.ts +54 -0
- package/code-tool.d.ts.map +1 -0
- package/code-tool.js +54 -0
- package/code-tool.js.map +1 -0
- package/code-tool.mjs +51 -0
- package/code-tool.mjs.map +1 -0
- package/compat.d.mts +6 -0
- package/compat.d.mts.map +1 -1
- package/compat.d.ts +6 -0
- package/compat.d.ts.map +1 -1
- package/compat.js +52 -7
- package/compat.js.map +1 -1
- package/compat.mjs +52 -6
- package/compat.mjs.map +1 -1
- package/docs-search-tool.d.mts +50 -0
- package/docs-search-tool.d.mts.map +1 -0
- package/docs-search-tool.d.ts +50 -0
- package/docs-search-tool.d.ts.map +1 -0
- package/docs-search-tool.js +51 -0
- package/docs-search-tool.js.map +1 -0
- package/docs-search-tool.mjs +47 -0
- package/docs-search-tool.mjs.map +1 -0
- package/dynamic-tools.d.mts +2 -2
- package/dynamic-tools.d.mts.map +1 -1
- package/dynamic-tools.d.ts +2 -2
- package/dynamic-tools.d.ts.map +1 -1
- package/dynamic-tools.js +11 -9
- package/dynamic-tools.js.map +1 -1
- package/dynamic-tools.mjs +11 -9
- package/dynamic-tools.mjs.map +1 -1
- package/filtering.d.mts +3 -0
- package/filtering.d.mts.map +1 -0
- package/filtering.d.ts +3 -0
- package/filtering.d.ts.map +1 -0
- package/filtering.js +24 -0
- package/filtering.js.map +1 -0
- package/filtering.mjs +16 -0
- package/filtering.mjs.map +1 -0
- package/headers.d.mts +4 -0
- package/headers.d.mts.map +1 -0
- package/headers.d.ts +4 -0
- package/headers.d.ts.map +1 -0
- package/headers.js +31 -0
- package/headers.js.map +1 -0
- package/headers.mjs +27 -0
- package/headers.mjs.map +1 -0
- package/http.d.mts +9 -0
- package/http.d.mts.map +1 -0
- package/http.d.ts +9 -0
- package/http.d.ts.map +1 -0
- package/http.js +108 -0
- package/http.js.map +1 -0
- package/http.mjs +100 -0
- package/http.mjs.map +1 -0
- package/index.d.mts +1 -0
- package/index.d.ts +1 -0
- package/index.js +15 -10
- package/index.js.map +1 -1
- package/index.mjs +18 -12
- package/index.mjs.map +1 -1
- package/options.d.mts +17 -8
- package/options.d.mts.map +1 -1
- package/options.d.ts +17 -8
- package/options.d.ts.map +1 -1
- package/options.js +151 -61
- package/options.js.map +1 -1
- package/options.mjs +149 -60
- package/options.mjs.map +1 -1
- package/package.json +161 -12
- package/server.d.mts +12 -15
- package/server.d.mts.map +1 -1
- package/server.d.ts +12 -15
- package/server.d.ts.map +1 -1
- package/server.js +107 -36
- package/server.js.map +1 -1
- package/server.mjs +105 -36
- package/server.mjs.map +1 -1
- package/src/code-tool-types.ts +18 -0
- package/src/code-tool.ts +64 -0
- package/src/compat.ts +60 -6
- package/src/docs-search-tool.ts +59 -0
- package/src/dynamic-tools.ts +13 -12
- package/src/filtering.ts +18 -0
- package/src/headers.ts +35 -0
- package/src/http.ts +127 -0
- package/src/index.ts +20 -14
- package/src/options.ts +185 -73
- package/src/server.ts +128 -48
- package/src/stdio.ts +13 -0
- package/src/tools/access-tokens/create-access-tokens.ts +30 -5
- package/src/tools/account/disconnect-account.ts +28 -5
- package/src/tools/account/introspect-account.ts +30 -5
- package/src/tools/connect/sessions/new-connect-sessions.ts +46 -14
- package/src/tools/connect/sessions/reauthenticate-connect-sessions.ts +32 -9
- package/src/tools/hris/benefits/create-hris-benefits.ts +45 -18
- package/src/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.ts +55 -10
- package/src/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.ts +37 -5
- package/src/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.ts +36 -5
- package/src/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.ts +37 -5
- package/src/tools/hris/benefits/list-hris-benefits.ts +38 -5
- package/src/tools/hris/benefits/list-supported-benefits-hris-benefits.ts +38 -5
- package/src/tools/hris/benefits/retrieve-hris-benefits.ts +37 -5
- package/src/tools/hris/benefits/update-hris-benefits.ts +35 -5
- package/src/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.ts +35 -5
- package/src/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.ts +35 -7
- package/src/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.ts +36 -5
- package/src/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.ts +37 -5
- package/src/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.ts +37 -5
- package/src/tools/hris/company/retrieve-hris-company.ts +37 -5
- package/src/tools/hris/directory/list-hris-directory.ts +36 -5
- package/src/tools/hris/documents/list-hris-documents.ts +34 -5
- package/src/tools/hris/documents/retreive-hris-documents.ts +36 -5
- package/src/tools/hris/employments/retrieve-many-hris-employments.ts +24 -3
- package/src/tools/hris/individuals/retrieve-many-hris-individuals.ts +34 -7
- package/src/tools/hris/pay-statements/retrieve-many-hris-pay-statements.ts +24 -3
- package/src/tools/hris/payments/list-hris-payments.ts +36 -5
- package/src/tools/index.ts +6 -20
- package/src/tools/jobs/automated/create-jobs-automated.ts +28 -5
- package/src/tools/jobs/automated/list-jobs-automated.ts +27 -5
- package/src/tools/jobs/automated/retrieve-jobs-automated.ts +28 -5
- package/src/tools/jobs/manual/retrieve-jobs-manual.ts +27 -5
- package/src/tools/payroll/pay-groups/list-payroll-pay-groups.ts +36 -5
- package/src/tools/payroll/pay-groups/retrieve-payroll-pay-groups.ts +37 -5
- package/src/tools/providers/list-providers.ts +31 -5
- package/src/tools/request-forwarding/forward-request-forwarding.ts +31 -9
- package/src/tools/sandbox/company/update-sandbox-company.ts +37 -9
- package/src/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.ts +28 -5
- package/src/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.ts +29 -6
- package/src/tools/sandbox/connections/create-sandbox-connections.ts +26 -5
- package/src/tools/sandbox/directory/create-sandbox-directory.ts +31 -14
- package/src/tools/sandbox/employment/update-sandbox-employment.ts +23 -9
- package/src/tools/sandbox/individual/update-sandbox-individual.ts +30 -7
- package/src/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.ts +32 -5
- package/src/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.ts +30 -5
- package/src/tools/sandbox/jobs/create-sandbox-jobs.ts +26 -5
- package/src/tools/sandbox/payment/create-sandbox-payment.ts +89 -173
- package/src/tools/types.ts +115 -0
- package/stdio.d.mts +3 -0
- package/stdio.d.mts.map +1 -0
- package/stdio.d.ts +3 -0
- package/stdio.d.ts.map +1 -0
- package/stdio.js +14 -0
- package/stdio.js.map +1 -0
- package/stdio.mjs +10 -0
- package/stdio.mjs.map +1 -0
- package/tools/access-tokens/create-access-tokens.d.mts +26 -7
- package/tools/access-tokens/create-access-tokens.d.mts.map +1 -1
- package/tools/access-tokens/create-access-tokens.d.ts +26 -7
- package/tools/access-tokens/create-access-tokens.d.ts.map +1 -1
- package/tools/access-tokens/create-access-tokens.js +32 -4
- package/tools/access-tokens/create-access-tokens.js.map +1 -1
- package/tools/access-tokens/create-access-tokens.mjs +29 -4
- package/tools/access-tokens/create-access-tokens.mjs.map +1 -1
- package/tools/account/disconnect-account.d.mts +26 -7
- package/tools/account/disconnect-account.d.mts.map +1 -1
- package/tools/account/disconnect-account.d.ts +26 -7
- package/tools/account/disconnect-account.d.ts.map +1 -1
- package/tools/account/disconnect-account.js +30 -4
- package/tools/account/disconnect-account.js.map +1 -1
- package/tools/account/disconnect-account.mjs +27 -4
- package/tools/account/disconnect-account.mjs.map +1 -1
- package/tools/account/introspect-account.d.mts +26 -7
- package/tools/account/introspect-account.d.mts.map +1 -1
- package/tools/account/introspect-account.d.ts +26 -7
- package/tools/account/introspect-account.d.ts.map +1 -1
- package/tools/account/introspect-account.js +32 -4
- package/tools/account/introspect-account.js.map +1 -1
- package/tools/account/introspect-account.mjs +29 -4
- package/tools/account/introspect-account.mjs.map +1 -1
- package/tools/connect/sessions/new-connect-sessions.d.mts +26 -7
- package/tools/connect/sessions/new-connect-sessions.d.mts.map +1 -1
- package/tools/connect/sessions/new-connect-sessions.d.ts +26 -7
- package/tools/connect/sessions/new-connect-sessions.d.ts.map +1 -1
- package/tools/connect/sessions/new-connect-sessions.js +47 -13
- package/tools/connect/sessions/new-connect-sessions.js.map +1 -1
- package/tools/connect/sessions/new-connect-sessions.mjs +44 -13
- package/tools/connect/sessions/new-connect-sessions.mjs.map +1 -1
- package/tools/connect/sessions/reauthenticate-connect-sessions.d.mts +26 -7
- package/tools/connect/sessions/reauthenticate-connect-sessions.d.mts.map +1 -1
- package/tools/connect/sessions/reauthenticate-connect-sessions.d.ts +26 -7
- package/tools/connect/sessions/reauthenticate-connect-sessions.d.ts.map +1 -1
- package/tools/connect/sessions/reauthenticate-connect-sessions.js +32 -8
- package/tools/connect/sessions/reauthenticate-connect-sessions.js.map +1 -1
- package/tools/connect/sessions/reauthenticate-connect-sessions.mjs +29 -8
- package/tools/connect/sessions/reauthenticate-connect-sessions.mjs.map +1 -1
- package/tools/hris/benefits/create-hris-benefits.d.mts +26 -7
- package/tools/hris/benefits/create-hris-benefits.d.mts.map +1 -1
- package/tools/hris/benefits/create-hris-benefits.d.ts +26 -7
- package/tools/hris/benefits/create-hris-benefits.d.ts.map +1 -1
- package/tools/hris/benefits/create-hris-benefits.js +48 -17
- package/tools/hris/benefits/create-hris-benefits.js.map +1 -1
- package/tools/hris/benefits/create-hris-benefits.mjs +45 -17
- package/tools/hris/benefits/create-hris-benefits.mjs.map +1 -1
- package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.d.mts +26 -7
- package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.d.mts.map +1 -1
- package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.d.ts +26 -7
- package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.d.ts.map +1 -1
- package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.js +54 -9
- package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.js.map +1 -1
- package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.mjs +51 -9
- package/tools/hris/benefits/individuals/enroll-many-benefits-hris-individuals.mjs.map +1 -1
- package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.d.mts +26 -7
- package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.d.mts.map +1 -1
- package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.d.ts +26 -7
- package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.d.ts.map +1 -1
- package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.js +37 -4
- package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.js.map +1 -1
- package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.mjs +34 -4
- package/tools/hris/benefits/individuals/enrolled-ids-benefits-hris-individuals.mjs.map +1 -1
- package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.d.mts +26 -7
- package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.d.mts.map +1 -1
- package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.d.ts +26 -7
- package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.d.ts.map +1 -1
- package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.js +38 -4
- package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.js.map +1 -1
- package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.mjs +35 -4
- package/tools/hris/benefits/individuals/retrieve-many-benefits-benefits-hris-individuals.mjs.map +1 -1
- package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.d.mts +26 -7
- package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.d.mts.map +1 -1
- package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.d.ts +26 -7
- package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.d.ts.map +1 -1
- package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.js +37 -4
- package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.js.map +1 -1
- package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.mjs +34 -4
- package/tools/hris/benefits/individuals/unenroll-many-benefits-hris-individuals.mjs.map +1 -1
- package/tools/hris/benefits/list-hris-benefits.d.mts +26 -7
- package/tools/hris/benefits/list-hris-benefits.d.mts.map +1 -1
- package/tools/hris/benefits/list-hris-benefits.d.ts +26 -7
- package/tools/hris/benefits/list-hris-benefits.d.ts.map +1 -1
- package/tools/hris/benefits/list-hris-benefits.js +40 -4
- package/tools/hris/benefits/list-hris-benefits.js.map +1 -1
- package/tools/hris/benefits/list-hris-benefits.mjs +37 -4
- package/tools/hris/benefits/list-hris-benefits.mjs.map +1 -1
- package/tools/hris/benefits/list-supported-benefits-hris-benefits.d.mts +26 -7
- package/tools/hris/benefits/list-supported-benefits-hris-benefits.d.mts.map +1 -1
- package/tools/hris/benefits/list-supported-benefits-hris-benefits.d.ts +26 -7
- package/tools/hris/benefits/list-supported-benefits-hris-benefits.d.ts.map +1 -1
- package/tools/hris/benefits/list-supported-benefits-hris-benefits.js +40 -4
- package/tools/hris/benefits/list-supported-benefits-hris-benefits.js.map +1 -1
- package/tools/hris/benefits/list-supported-benefits-hris-benefits.mjs +37 -4
- package/tools/hris/benefits/list-supported-benefits-hris-benefits.mjs.map +1 -1
- package/tools/hris/benefits/retrieve-hris-benefits.d.mts +26 -7
- package/tools/hris/benefits/retrieve-hris-benefits.d.mts.map +1 -1
- package/tools/hris/benefits/retrieve-hris-benefits.d.ts +26 -7
- package/tools/hris/benefits/retrieve-hris-benefits.d.ts.map +1 -1
- package/tools/hris/benefits/retrieve-hris-benefits.js +37 -4
- package/tools/hris/benefits/retrieve-hris-benefits.js.map +1 -1
- package/tools/hris/benefits/retrieve-hris-benefits.mjs +34 -4
- package/tools/hris/benefits/retrieve-hris-benefits.mjs.map +1 -1
- package/tools/hris/benefits/update-hris-benefits.d.mts +26 -7
- package/tools/hris/benefits/update-hris-benefits.d.mts.map +1 -1
- package/tools/hris/benefits/update-hris-benefits.d.ts +26 -7
- package/tools/hris/benefits/update-hris-benefits.d.ts.map +1 -1
- package/tools/hris/benefits/update-hris-benefits.js +35 -4
- package/tools/hris/benefits/update-hris-benefits.js.map +1 -1
- package/tools/hris/benefits/update-hris-benefits.mjs +32 -4
- package/tools/hris/benefits/update-hris-benefits.mjs.map +1 -1
- package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.d.mts +26 -7
- package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.d.mts.map +1 -1
- package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.d.ts +26 -7
- package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.d.ts.map +1 -1
- package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.js +38 -4
- package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.js.map +1 -1
- package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.mjs +35 -4
- package/tools/hris/company/pay-statement-item/list-company-hris-pay-statement-item.mjs.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.d.mts +26 -7
- package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.d.mts.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.d.ts +26 -7
- package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.d.ts.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.js +36 -6
- package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.js.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.mjs +33 -6
- package/tools/hris/company/pay-statement-item/rules/create-pay-statement-item-company-hris-rules.mjs.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.d.mts +26 -7
- package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.d.mts.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.d.ts +26 -7
- package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.d.ts.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.js +37 -4
- package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.js.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.mjs +34 -4
- package/tools/hris/company/pay-statement-item/rules/delete-pay-statement-item-company-hris-rules.mjs.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.d.mts +26 -7
- package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.d.mts.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.d.ts +26 -7
- package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.d.ts.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.js +40 -4
- package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.js.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.mjs +37 -4
- package/tools/hris/company/pay-statement-item/rules/list-pay-statement-item-company-hris-rules.mjs.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.d.mts +26 -7
- package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.d.mts.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.d.ts +26 -7
- package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.d.ts.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.js +38 -4
- package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.js.map +1 -1
- package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.mjs +35 -4
- package/tools/hris/company/pay-statement-item/rules/update-pay-statement-item-company-hris-rules.mjs.map +1 -1
- package/tools/hris/company/retrieve-hris-company.d.mts +26 -7
- package/tools/hris/company/retrieve-hris-company.d.mts.map +1 -1
- package/tools/hris/company/retrieve-hris-company.d.ts +26 -7
- package/tools/hris/company/retrieve-hris-company.d.ts.map +1 -1
- package/tools/hris/company/retrieve-hris-company.js +39 -4
- package/tools/hris/company/retrieve-hris-company.js.map +1 -1
- package/tools/hris/company/retrieve-hris-company.mjs +36 -4
- package/tools/hris/company/retrieve-hris-company.mjs.map +1 -1
- package/tools/hris/directory/list-hris-directory.d.mts +26 -7
- package/tools/hris/directory/list-hris-directory.d.mts.map +1 -1
- package/tools/hris/directory/list-hris-directory.d.ts +26 -7
- package/tools/hris/directory/list-hris-directory.d.ts.map +1 -1
- package/tools/hris/directory/list-hris-directory.js +38 -4
- package/tools/hris/directory/list-hris-directory.js.map +1 -1
- package/tools/hris/directory/list-hris-directory.mjs +35 -4
- package/tools/hris/directory/list-hris-directory.mjs.map +1 -1
- package/tools/hris/documents/list-hris-documents.d.mts +26 -7
- package/tools/hris/documents/list-hris-documents.d.mts.map +1 -1
- package/tools/hris/documents/list-hris-documents.d.ts +26 -7
- package/tools/hris/documents/list-hris-documents.d.ts.map +1 -1
- package/tools/hris/documents/list-hris-documents.js +37 -4
- package/tools/hris/documents/list-hris-documents.js.map +1 -1
- package/tools/hris/documents/list-hris-documents.mjs +34 -4
- package/tools/hris/documents/list-hris-documents.mjs.map +1 -1
- package/tools/hris/documents/retreive-hris-documents.d.mts +26 -7
- package/tools/hris/documents/retreive-hris-documents.d.mts.map +1 -1
- package/tools/hris/documents/retreive-hris-documents.d.ts +26 -7
- package/tools/hris/documents/retreive-hris-documents.d.ts.map +1 -1
- package/tools/hris/documents/retreive-hris-documents.js +37 -4
- package/tools/hris/documents/retreive-hris-documents.js.map +1 -1
- package/tools/hris/documents/retreive-hris-documents.mjs +34 -4
- package/tools/hris/documents/retreive-hris-documents.mjs.map +1 -1
- package/tools/hris/employments/retrieve-many-hris-employments.d.mts +26 -7
- package/tools/hris/employments/retrieve-many-hris-employments.d.mts.map +1 -1
- package/tools/hris/employments/retrieve-many-hris-employments.d.ts +26 -7
- package/tools/hris/employments/retrieve-many-hris-employments.d.ts.map +1 -1
- package/tools/hris/employments/retrieve-many-hris-employments.js +28 -2
- package/tools/hris/employments/retrieve-many-hris-employments.js.map +1 -1
- package/tools/hris/employments/retrieve-many-hris-employments.mjs +25 -2
- package/tools/hris/employments/retrieve-many-hris-employments.mjs.map +1 -1
- package/tools/hris/individuals/retrieve-many-hris-individuals.d.mts +26 -7
- package/tools/hris/individuals/retrieve-many-hris-individuals.d.mts.map +1 -1
- package/tools/hris/individuals/retrieve-many-hris-individuals.d.ts +26 -7
- package/tools/hris/individuals/retrieve-many-hris-individuals.d.ts.map +1 -1
- package/tools/hris/individuals/retrieve-many-hris-individuals.js +36 -6
- package/tools/hris/individuals/retrieve-many-hris-individuals.js.map +1 -1
- package/tools/hris/individuals/retrieve-many-hris-individuals.mjs +33 -6
- package/tools/hris/individuals/retrieve-many-hris-individuals.mjs.map +1 -1
- package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.d.mts +26 -7
- package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.d.mts.map +1 -1
- package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.d.ts +26 -7
- package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.d.ts.map +1 -1
- package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.js +28 -2
- package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.js.map +1 -1
- package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.mjs +25 -2
- package/tools/hris/pay-statements/retrieve-many-hris-pay-statements.mjs.map +1 -1
- package/tools/hris/payments/list-hris-payments.d.mts +26 -7
- package/tools/hris/payments/list-hris-payments.d.mts.map +1 -1
- package/tools/hris/payments/list-hris-payments.d.ts +26 -7
- package/tools/hris/payments/list-hris-payments.d.ts.map +1 -1
- package/tools/hris/payments/list-hris-payments.js +38 -4
- package/tools/hris/payments/list-hris-payments.js.map +1 -1
- package/tools/hris/payments/list-hris-payments.mjs +35 -4
- package/tools/hris/payments/list-hris-payments.mjs.map +1 -1
- package/tools/index.d.mts +2 -13
- package/tools/index.d.mts.map +1 -1
- package/tools/index.d.ts +2 -13
- package/tools/index.d.ts.map +1 -1
- package/tools/index.js +3 -4
- package/tools/index.js.map +1 -1
- package/tools/index.mjs +3 -4
- package/tools/index.mjs.map +1 -1
- package/tools/jobs/automated/create-jobs-automated.d.mts +26 -7
- package/tools/jobs/automated/create-jobs-automated.d.mts.map +1 -1
- package/tools/jobs/automated/create-jobs-automated.d.ts +26 -7
- package/tools/jobs/automated/create-jobs-automated.d.ts.map +1 -1
- package/tools/jobs/automated/create-jobs-automated.js +31 -4
- package/tools/jobs/automated/create-jobs-automated.js.map +1 -1
- package/tools/jobs/automated/create-jobs-automated.mjs +28 -4
- package/tools/jobs/automated/create-jobs-automated.mjs.map +1 -1
- package/tools/jobs/automated/list-jobs-automated.d.mts +26 -7
- package/tools/jobs/automated/list-jobs-automated.d.mts.map +1 -1
- package/tools/jobs/automated/list-jobs-automated.d.ts +26 -7
- package/tools/jobs/automated/list-jobs-automated.d.ts.map +1 -1
- package/tools/jobs/automated/list-jobs-automated.js +30 -4
- package/tools/jobs/automated/list-jobs-automated.js.map +1 -1
- package/tools/jobs/automated/list-jobs-automated.mjs +27 -4
- package/tools/jobs/automated/list-jobs-automated.mjs.map +1 -1
- package/tools/jobs/automated/retrieve-jobs-automated.d.mts +26 -7
- package/tools/jobs/automated/retrieve-jobs-automated.d.mts.map +1 -1
- package/tools/jobs/automated/retrieve-jobs-automated.d.ts +26 -7
- package/tools/jobs/automated/retrieve-jobs-automated.d.ts.map +1 -1
- package/tools/jobs/automated/retrieve-jobs-automated.js +30 -4
- package/tools/jobs/automated/retrieve-jobs-automated.js.map +1 -1
- package/tools/jobs/automated/retrieve-jobs-automated.mjs +27 -4
- package/tools/jobs/automated/retrieve-jobs-automated.mjs.map +1 -1
- package/tools/jobs/manual/retrieve-jobs-manual.d.mts +26 -7
- package/tools/jobs/manual/retrieve-jobs-manual.d.mts.map +1 -1
- package/tools/jobs/manual/retrieve-jobs-manual.d.ts +26 -7
- package/tools/jobs/manual/retrieve-jobs-manual.d.ts.map +1 -1
- package/tools/jobs/manual/retrieve-jobs-manual.js +30 -4
- package/tools/jobs/manual/retrieve-jobs-manual.js.map +1 -1
- package/tools/jobs/manual/retrieve-jobs-manual.mjs +27 -4
- package/tools/jobs/manual/retrieve-jobs-manual.mjs.map +1 -1
- package/tools/payroll/pay-groups/list-payroll-pay-groups.d.mts +26 -7
- package/tools/payroll/pay-groups/list-payroll-pay-groups.d.mts.map +1 -1
- package/tools/payroll/pay-groups/list-payroll-pay-groups.d.ts +26 -7
- package/tools/payroll/pay-groups/list-payroll-pay-groups.d.ts.map +1 -1
- package/tools/payroll/pay-groups/list-payroll-pay-groups.js +38 -4
- package/tools/payroll/pay-groups/list-payroll-pay-groups.js.map +1 -1
- package/tools/payroll/pay-groups/list-payroll-pay-groups.mjs +35 -4
- package/tools/payroll/pay-groups/list-payroll-pay-groups.mjs.map +1 -1
- package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.d.mts +26 -7
- package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.d.mts.map +1 -1
- package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.d.ts +26 -7
- package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.d.ts.map +1 -1
- package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.js +37 -4
- package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.js.map +1 -1
- package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.mjs +34 -4
- package/tools/payroll/pay-groups/retrieve-payroll-pay-groups.mjs.map +1 -1
- package/tools/providers/list-providers.d.mts +26 -7
- package/tools/providers/list-providers.d.mts.map +1 -1
- package/tools/providers/list-providers.d.ts +26 -7
- package/tools/providers/list-providers.d.ts.map +1 -1
- package/tools/providers/list-providers.js +33 -4
- package/tools/providers/list-providers.js.map +1 -1
- package/tools/providers/list-providers.mjs +30 -4
- package/tools/providers/list-providers.mjs.map +1 -1
- package/tools/request-forwarding/forward-request-forwarding.d.mts +26 -7
- package/tools/request-forwarding/forward-request-forwarding.d.mts.map +1 -1
- package/tools/request-forwarding/forward-request-forwarding.d.ts +26 -7
- package/tools/request-forwarding/forward-request-forwarding.d.ts.map +1 -1
- package/tools/request-forwarding/forward-request-forwarding.js +34 -8
- package/tools/request-forwarding/forward-request-forwarding.js.map +1 -1
- package/tools/request-forwarding/forward-request-forwarding.mjs +31 -8
- package/tools/request-forwarding/forward-request-forwarding.mjs.map +1 -1
- package/tools/sandbox/company/update-sandbox-company.d.mts +26 -7
- package/tools/sandbox/company/update-sandbox-company.d.mts.map +1 -1
- package/tools/sandbox/company/update-sandbox-company.d.ts +26 -7
- package/tools/sandbox/company/update-sandbox-company.d.ts.map +1 -1
- package/tools/sandbox/company/update-sandbox-company.js +39 -8
- package/tools/sandbox/company/update-sandbox-company.js.map +1 -1
- package/tools/sandbox/company/update-sandbox-company.mjs +36 -8
- package/tools/sandbox/company/update-sandbox-company.mjs.map +1 -1
- package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.d.mts +26 -7
- package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.d.mts.map +1 -1
- package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.d.ts +26 -7
- package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.d.ts.map +1 -1
- package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.js +28 -4
- package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.js.map +1 -1
- package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.mjs +25 -4
- package/tools/sandbox/connections/accounts/create-connections-sandbox-accounts.mjs.map +1 -1
- package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.d.mts +26 -7
- package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.d.mts.map +1 -1
- package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.d.ts +26 -7
- package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.d.ts.map +1 -1
- package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.js +30 -5
- package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.js.map +1 -1
- package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.mjs +27 -5
- package/tools/sandbox/connections/accounts/update-connections-sandbox-accounts.mjs.map +1 -1
- package/tools/sandbox/connections/create-sandbox-connections.d.mts +26 -7
- package/tools/sandbox/connections/create-sandbox-connections.d.mts.map +1 -1
- package/tools/sandbox/connections/create-sandbox-connections.d.ts +26 -7
- package/tools/sandbox/connections/create-sandbox-connections.d.ts.map +1 -1
- package/tools/sandbox/connections/create-sandbox-connections.js +28 -4
- package/tools/sandbox/connections/create-sandbox-connections.js.map +1 -1
- package/tools/sandbox/connections/create-sandbox-connections.mjs +25 -4
- package/tools/sandbox/connections/create-sandbox-connections.mjs.map +1 -1
- package/tools/sandbox/directory/create-sandbox-directory.d.mts +26 -7
- package/tools/sandbox/directory/create-sandbox-directory.d.mts.map +1 -1
- package/tools/sandbox/directory/create-sandbox-directory.d.ts +26 -7
- package/tools/sandbox/directory/create-sandbox-directory.d.ts.map +1 -1
- package/tools/sandbox/directory/create-sandbox-directory.js +32 -13
- package/tools/sandbox/directory/create-sandbox-directory.js.map +1 -1
- package/tools/sandbox/directory/create-sandbox-directory.mjs +29 -13
- package/tools/sandbox/directory/create-sandbox-directory.mjs.map +1 -1
- package/tools/sandbox/employment/update-sandbox-employment.d.mts +26 -7
- package/tools/sandbox/employment/update-sandbox-employment.d.mts.map +1 -1
- package/tools/sandbox/employment/update-sandbox-employment.d.ts +26 -7
- package/tools/sandbox/employment/update-sandbox-employment.d.ts.map +1 -1
- package/tools/sandbox/employment/update-sandbox-employment.js +26 -8
- package/tools/sandbox/employment/update-sandbox-employment.js.map +1 -1
- package/tools/sandbox/employment/update-sandbox-employment.mjs +23 -8
- package/tools/sandbox/employment/update-sandbox-employment.mjs.map +1 -1
- package/tools/sandbox/individual/update-sandbox-individual.d.mts +26 -7
- package/tools/sandbox/individual/update-sandbox-individual.d.mts.map +1 -1
- package/tools/sandbox/individual/update-sandbox-individual.d.ts +26 -7
- package/tools/sandbox/individual/update-sandbox-individual.d.ts.map +1 -1
- package/tools/sandbox/individual/update-sandbox-individual.js +30 -6
- package/tools/sandbox/individual/update-sandbox-individual.js.map +1 -1
- package/tools/sandbox/individual/update-sandbox-individual.mjs +27 -6
- package/tools/sandbox/individual/update-sandbox-individual.mjs.map +1 -1
- package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.d.mts +26 -7
- package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.d.mts.map +1 -1
- package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.d.ts +26 -7
- package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.d.ts.map +1 -1
- package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.js +32 -4
- package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.js.map +1 -1
- package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.mjs +29 -4
- package/tools/sandbox/jobs/configuration/retrieve-jobs-sandbox-configuration.mjs.map +1 -1
- package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.d.mts +26 -7
- package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.d.mts.map +1 -1
- package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.d.ts +26 -7
- package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.d.ts.map +1 -1
- package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.js +30 -4
- package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.js.map +1 -1
- package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.mjs +27 -4
- package/tools/sandbox/jobs/configuration/update-jobs-sandbox-configuration.mjs.map +1 -1
- package/tools/sandbox/jobs/create-sandbox-jobs.d.mts +26 -7
- package/tools/sandbox/jobs/create-sandbox-jobs.d.mts.map +1 -1
- package/tools/sandbox/jobs/create-sandbox-jobs.d.ts +26 -7
- package/tools/sandbox/jobs/create-sandbox-jobs.d.ts.map +1 -1
- package/tools/sandbox/jobs/create-sandbox-jobs.js +28 -4
- package/tools/sandbox/jobs/create-sandbox-jobs.js.map +1 -1
- package/tools/sandbox/jobs/create-sandbox-jobs.mjs +25 -4
- package/tools/sandbox/jobs/create-sandbox-jobs.mjs.map +1 -1
- package/tools/sandbox/payment/create-sandbox-payment.d.mts +26 -7
- package/tools/sandbox/payment/create-sandbox-payment.d.mts.map +1 -1
- package/tools/sandbox/payment/create-sandbox-payment.d.ts +26 -7
- package/tools/sandbox/payment/create-sandbox-payment.d.ts.map +1 -1
- package/tools/sandbox/payment/create-sandbox-payment.js +91 -167
- package/tools/sandbox/payment/create-sandbox-payment.js.map +1 -1
- package/tools/sandbox/payment/create-sandbox-payment.mjs +88 -167
- package/tools/sandbox/payment/create-sandbox-payment.mjs.map +1 -1
- package/tools/types.d.mts +52 -0
- package/tools/types.d.mts.map +1 -0
- package/tools/types.d.ts +52 -0
- package/tools/types.d.ts.map +1 -0
- package/tools/types.js +58 -0
- package/tools/types.js.map +1 -0
- package/tools/types.mjs +53 -0
- package/tools/types.mjs.map +1 -0
- package/src/tools/hris/directory/list-individuals-hris-directory.ts +0 -36
- package/tools/hris/directory/list-individuals-hris-directory.d.mts +0 -32
- package/tools/hris/directory/list-individuals-hris-directory.d.mts.map +0 -1
- package/tools/hris/directory/list-individuals-hris-directory.d.ts +0 -32
- package/tools/hris/directory/list-individuals-hris-directory.d.ts.map +0 -1
- package/tools/hris/directory/list-individuals-hris-directory.js +0 -33
- package/tools/hris/directory/list-individuals-hris-directory.js.map +0 -1
- package/tools/hris/directory/list-individuals-hris-directory.mjs +0 -29
- package/tools/hris/directory/list-individuals-hris-directory.mjs.map +0 -1
|
@@ -0,0 +1,59 @@
|
|
|
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: '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/dynamic-tools.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Finch from '@tryfinch/finch-api';
|
|
2
|
-
import { Endpoint } from './tools';
|
|
2
|
+
import { Endpoint, asTextContentResult, ToolCallResult } from './tools/types';
|
|
3
3
|
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { Cabidela } from '@cloudflare/cabidela';
|
|
@@ -14,7 +14,7 @@ function zodToInputSchema(schema: z.ZodSchema) {
|
|
|
14
14
|
/**
|
|
15
15
|
* A list of tools that expose all the endpoints in the API dynamically.
|
|
16
16
|
*
|
|
17
|
-
* Instead of exposing every endpoint as
|
|
17
|
+
* Instead of exposing every endpoint as its own tool, which uses up too many tokens for LLMs to use at once,
|
|
18
18
|
* we expose a single tool that can be used to search for endpoints by name, resource, operation, or tag, and then
|
|
19
19
|
* a generic endpoint that can be used to invoke any endpoint with the provided arguments.
|
|
20
20
|
*
|
|
@@ -38,10 +38,10 @@ export function dynamicTools(endpoints: Endpoint[]): Endpoint[] {
|
|
|
38
38
|
},
|
|
39
39
|
tool: {
|
|
40
40
|
name: 'list_api_endpoints',
|
|
41
|
-
description: 'List or search for all endpoints in the Finch
|
|
41
|
+
description: 'List or search for all endpoints in the Finch TypeScript API',
|
|
42
42
|
inputSchema: zodToInputSchema(listEndpointsSchema),
|
|
43
43
|
},
|
|
44
|
-
handler: async (client: Finch, args: Record<string, unknown> | undefined) => {
|
|
44
|
+
handler: async (client: Finch, args: Record<string, unknown> | undefined): Promise<ToolCallResult> => {
|
|
45
45
|
const query = args && listEndpointsSchema.parse(args).search_query?.trim();
|
|
46
46
|
|
|
47
47
|
const filteredEndpoints =
|
|
@@ -49,15 +49,16 @@ export function dynamicTools(endpoints: Endpoint[]): Endpoint[] {
|
|
|
49
49
|
endpoints.filter((endpoint) => {
|
|
50
50
|
const fieldsToMatch = [
|
|
51
51
|
endpoint.tool.name,
|
|
52
|
+
endpoint.tool.description,
|
|
52
53
|
endpoint.metadata.resource,
|
|
53
54
|
endpoint.metadata.operation,
|
|
54
55
|
...endpoint.metadata.tags,
|
|
55
56
|
];
|
|
56
|
-
return fieldsToMatch.some((field) => field.toLowerCase().includes(query.toLowerCase()));
|
|
57
|
+
return fieldsToMatch.some((field) => field && field.toLowerCase().includes(query.toLowerCase()));
|
|
57
58
|
})
|
|
58
59
|
: endpoints;
|
|
59
60
|
|
|
60
|
-
return {
|
|
61
|
+
return asTextContentResult({
|
|
61
62
|
tools: filteredEndpoints.map(({ tool, metadata }) => ({
|
|
62
63
|
name: tool.name,
|
|
63
64
|
description: tool.description,
|
|
@@ -65,7 +66,7 @@ export function dynamicTools(endpoints: Endpoint[]): Endpoint[] {
|
|
|
65
66
|
operation: metadata.operation,
|
|
66
67
|
tags: metadata.tags,
|
|
67
68
|
})),
|
|
68
|
-
};
|
|
69
|
+
});
|
|
69
70
|
},
|
|
70
71
|
};
|
|
71
72
|
|
|
@@ -81,7 +82,7 @@ export function dynamicTools(endpoints: Endpoint[]): Endpoint[] {
|
|
|
81
82
|
tool: {
|
|
82
83
|
name: 'get_api_endpoint_schema',
|
|
83
84
|
description:
|
|
84
|
-
'Get the schema for an endpoint in the Finch
|
|
85
|
+
'Get the schema for an endpoint in the Finch TypeScript API. You can use the schema returned by this tool to invoke an endpoint with the `invoke_api_endpoint` tool.',
|
|
85
86
|
inputSchema: zodToInputSchema(getEndpointSchema),
|
|
86
87
|
},
|
|
87
88
|
handler: async (client: Finch, args: Record<string, unknown> | undefined) => {
|
|
@@ -94,7 +95,7 @@ export function dynamicTools(endpoints: Endpoint[]): Endpoint[] {
|
|
|
94
95
|
if (!endpoint) {
|
|
95
96
|
throw new Error(`Endpoint ${endpointName} not found`);
|
|
96
97
|
}
|
|
97
|
-
return endpoint.tool;
|
|
98
|
+
return asTextContentResult(endpoint.tool);
|
|
98
99
|
},
|
|
99
100
|
};
|
|
100
101
|
|
|
@@ -116,10 +117,10 @@ export function dynamicTools(endpoints: Endpoint[]): Endpoint[] {
|
|
|
116
117
|
tool: {
|
|
117
118
|
name: 'invoke_api_endpoint',
|
|
118
119
|
description:
|
|
119
|
-
'Invoke an endpoint in the Finch
|
|
120
|
+
'Invoke an endpoint in the Finch TypeScript API. Note: use the `list_api_endpoints` tool to get the list of endpoints and `get_api_endpoint_schema` tool to get the schema for an endpoint.',
|
|
120
121
|
inputSchema: zodToInputSchema(invokeEndpointSchema),
|
|
121
122
|
},
|
|
122
|
-
handler: async (client: Finch, args: Record<string, unknown> | undefined) => {
|
|
123
|
+
handler: async (client: Finch, args: Record<string, unknown> | undefined): Promise<ToolCallResult> => {
|
|
123
124
|
if (!args) {
|
|
124
125
|
throw new Error('No endpoint provided');
|
|
125
126
|
}
|
|
@@ -144,7 +145,7 @@ export function dynamicTools(endpoints: Endpoint[]): Endpoint[] {
|
|
|
144
145
|
throw new Error(`Invalid arguments for endpoint ${endpoint_name}:\n${error}`);
|
|
145
146
|
}
|
|
146
147
|
|
|
147
|
-
return endpoint.handler(client, endpointArgs);
|
|
148
|
+
return await endpoint.handler(client, endpointArgs);
|
|
148
149
|
},
|
|
149
150
|
};
|
|
150
151
|
|
package/src/filtering.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import initJq from 'jq-web';
|
|
3
|
+
|
|
4
|
+
export async function maybeFilter(jqFilter: unknown | undefined, response: any): Promise<any> {
|
|
5
|
+
if (jqFilter && typeof jqFilter === 'string') {
|
|
6
|
+
return await jq(response, jqFilter);
|
|
7
|
+
} else {
|
|
8
|
+
return response;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async function jq(json: any, jqFilter: string) {
|
|
13
|
+
return (await initJq).json(json, jqFilter);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function isJqError(error: any): error is Error {
|
|
17
|
+
return error instanceof Error && 'stderr' in error;
|
|
18
|
+
}
|
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
|
+
};
|
package/src/http.ts
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp';
|
|
4
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
5
|
+
|
|
6
|
+
import express from 'express';
|
|
7
|
+
import { fromError } from 'zod-validation-error/v3';
|
|
8
|
+
import { McpOptions, parseQueryOptions } from './options';
|
|
9
|
+
import { ClientOptions, initMcpServer, newMcpServer } from './server';
|
|
10
|
+
import { parseAuthHeaders } from './headers';
|
|
11
|
+
|
|
12
|
+
const newServer = ({
|
|
13
|
+
clientOptions,
|
|
14
|
+
mcpOptions: defaultMcpOptions,
|
|
15
|
+
req,
|
|
16
|
+
res,
|
|
17
|
+
}: {
|
|
18
|
+
clientOptions: ClientOptions;
|
|
19
|
+
mcpOptions: McpOptions;
|
|
20
|
+
req: express.Request;
|
|
21
|
+
res: express.Response;
|
|
22
|
+
}): McpServer | null => {
|
|
23
|
+
const server = newMcpServer();
|
|
24
|
+
|
|
25
|
+
let mcpOptions: McpOptions;
|
|
26
|
+
try {
|
|
27
|
+
mcpOptions = parseQueryOptions(defaultMcpOptions, req.query);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
res.status(400).json({
|
|
30
|
+
jsonrpc: '2.0',
|
|
31
|
+
error: {
|
|
32
|
+
code: -32000,
|
|
33
|
+
message: `Invalid request: ${fromError(error)}`,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
try {
|
|
40
|
+
const authOptions = parseAuthHeaders(req);
|
|
41
|
+
initMcpServer({
|
|
42
|
+
server: server,
|
|
43
|
+
clientOptions: {
|
|
44
|
+
...clientOptions,
|
|
45
|
+
...authOptions,
|
|
46
|
+
},
|
|
47
|
+
mcpOptions,
|
|
48
|
+
});
|
|
49
|
+
} catch (error) {
|
|
50
|
+
res.status(401).json({
|
|
51
|
+
jsonrpc: '2.0',
|
|
52
|
+
error: {
|
|
53
|
+
code: -32000,
|
|
54
|
+
message: `Unauthorized: ${error instanceof Error ? error.message : error}`,
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return server;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const post =
|
|
64
|
+
(options: { clientOptions: ClientOptions; mcpOptions: McpOptions }) =>
|
|
65
|
+
async (req: express.Request, res: express.Response) => {
|
|
66
|
+
const server = newServer({ ...options, req, res });
|
|
67
|
+
// If we return null, we already set the authorization error.
|
|
68
|
+
if (server === null) return;
|
|
69
|
+
const transport = new StreamableHTTPServerTransport({
|
|
70
|
+
// Stateless server
|
|
71
|
+
sessionIdGenerator: undefined,
|
|
72
|
+
});
|
|
73
|
+
await server.connect(transport);
|
|
74
|
+
await transport.handleRequest(req, res, req.body);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const get = async (req: express.Request, res: express.Response) => {
|
|
78
|
+
res.status(405).json({
|
|
79
|
+
jsonrpc: '2.0',
|
|
80
|
+
error: {
|
|
81
|
+
code: -32000,
|
|
82
|
+
message: 'Method not supported',
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const del = async (req: express.Request, res: express.Response) => {
|
|
88
|
+
res.status(405).json({
|
|
89
|
+
jsonrpc: '2.0',
|
|
90
|
+
error: {
|
|
91
|
+
code: -32000,
|
|
92
|
+
message: 'Method not supported',
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const streamableHTTPApp = ({
|
|
98
|
+
clientOptions = {},
|
|
99
|
+
mcpOptions = {},
|
|
100
|
+
}: {
|
|
101
|
+
clientOptions?: ClientOptions;
|
|
102
|
+
mcpOptions?: McpOptions;
|
|
103
|
+
}): express.Express => {
|
|
104
|
+
const app = express();
|
|
105
|
+
app.set('query parser', 'extended');
|
|
106
|
+
app.use(express.json());
|
|
107
|
+
|
|
108
|
+
app.get('/', get);
|
|
109
|
+
app.post('/', post({ clientOptions, mcpOptions }));
|
|
110
|
+
app.delete('/', del);
|
|
111
|
+
|
|
112
|
+
return app;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export const launchStreamableHTTPServer = async (options: McpOptions, port: number | string | undefined) => {
|
|
116
|
+
const app = streamableHTTPApp({ mcpOptions: options });
|
|
117
|
+
const server = app.listen(port);
|
|
118
|
+
const address = server.address();
|
|
119
|
+
|
|
120
|
+
if (typeof address === 'string') {
|
|
121
|
+
console.error(`MCP Server running on streamable HTTP at ${address}`);
|
|
122
|
+
} else if (address !== null) {
|
|
123
|
+
console.error(`MCP Server running on streamable HTTP on port ${address.port}`);
|
|
124
|
+
} else {
|
|
125
|
+
console.error(`MCP Server running on streamable HTTP on port ${port}`);
|
|
126
|
+
}
|
|
127
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { selectTools } from './server';
|
|
3
4
|
import { Endpoint, endpoints } from './tools';
|
|
4
|
-
import {
|
|
5
|
+
import { McpOptions, parseCLIOptions } from './options';
|
|
6
|
+
import { launchStdioServer } from './stdio';
|
|
7
|
+
import { launchStreamableHTTPServer } from './http';
|
|
5
8
|
|
|
6
9
|
async function main() {
|
|
7
10
|
const options = parseOptionsOrError();
|
|
@@ -11,18 +14,21 @@ async function main() {
|
|
|
11
14
|
return;
|
|
12
15
|
}
|
|
13
16
|
|
|
14
|
-
const
|
|
17
|
+
const selectedTools = await selectToolsOrError(endpoints, options);
|
|
15
18
|
|
|
16
19
|
console.error(
|
|
17
|
-
`MCP Server starting with ${
|
|
18
|
-
|
|
20
|
+
`MCP Server starting with ${selectedTools.length} tools:`,
|
|
21
|
+
selectedTools.map((e) => e.tool.name),
|
|
19
22
|
);
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
switch (options.transport) {
|
|
25
|
+
case 'stdio':
|
|
26
|
+
await launchStdioServer(options);
|
|
27
|
+
break;
|
|
28
|
+
case 'http':
|
|
29
|
+
await launchStreamableHTTPServer(options, options.port ?? options.socket);
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
26
32
|
}
|
|
27
33
|
|
|
28
34
|
if (require.main === module) {
|
|
@@ -34,16 +40,16 @@ if (require.main === module) {
|
|
|
34
40
|
|
|
35
41
|
function parseOptionsOrError() {
|
|
36
42
|
try {
|
|
37
|
-
return
|
|
43
|
+
return parseCLIOptions();
|
|
38
44
|
} catch (error) {
|
|
39
45
|
console.error('Error parsing options:', error);
|
|
40
46
|
process.exit(1);
|
|
41
47
|
}
|
|
42
48
|
}
|
|
43
49
|
|
|
44
|
-
function selectToolsOrError(endpoints: Endpoint[], options:
|
|
50
|
+
async function selectToolsOrError(endpoints: Endpoint[], options: McpOptions): Promise<Endpoint[]> {
|
|
45
51
|
try {
|
|
46
|
-
const includedTools = selectTools(endpoints, options);
|
|
52
|
+
const includedTools = await selectTools(endpoints, options);
|
|
47
53
|
if (includedTools.length === 0) {
|
|
48
54
|
console.error('No tools match the provided filters.');
|
|
49
55
|
process.exit(1);
|