vanta-auditor-api-sdk 0.4.0 → 0.4.2
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 +0 -85
- package/examples/package-lock.json +1 -18
- package/jsr.json +1 -1
- package/lib/config.d.ts +3 -3
- package/lib/config.js +3 -3
- package/models/components/addauditorinput.d.ts +0 -17
- package/models/components/addauditorinput.d.ts.map +1 -1
- package/models/components/addauditorinput.js +1 -23
- package/models/components/addauditorinput.js.map +1 -1
- package/models/components/addcommentinput.d.ts +0 -17
- package/models/components/addcommentinput.d.ts.map +1 -1
- package/models/components/addcommentinput.js +1 -23
- package/models/components/addcommentinput.js.map +1 -1
- package/models/components/audit.d.ts +0 -33
- package/models/components/audit.d.ts.map +1 -1
- package/models/components/audit.js +1 -34
- package/models/components/audit.js.map +1 -1
- package/models/components/auditevidencestate.d.ts +0 -26
- package/models/components/auditevidencestate.d.ts.map +1 -1
- package/models/components/auditevidencestate.js +1 -14
- package/models/components/auditevidencestate.js.map +1 -1
- package/models/components/auditevidencetype.d.ts +0 -20
- package/models/components/auditevidencetype.d.ts.map +1 -1
- package/models/components/auditevidencetype.js +1 -14
- package/models/components/auditevidencetype.js.map +1 -1
- package/models/components/auditevidenceupdateinput.d.ts +0 -32
- package/models/components/auditevidenceupdateinput.d.ts.map +1 -1
- package/models/components/auditevidenceupdateinput.js +1 -41
- package/models/components/auditevidenceupdateinput.js.map +1 -1
- package/models/components/auditfocus.d.ts +0 -18
- package/models/components/auditfocus.d.ts.map +1 -1
- package/models/components/auditfocus.js +1 -14
- package/models/components/auditfocus.js.map +1 -1
- package/models/components/auditor.d.ts +0 -23
- package/models/components/auditor.d.ts.map +1 -1
- package/models/components/auditor.js +1 -24
- package/models/components/auditor.js.map +1 -1
- package/models/components/auditorcontrol.d.ts +2 -52
- package/models/components/auditorcontrol.d.ts.map +1 -1
- package/models/components/auditorcontrol.js +1 -51
- package/models/components/auditorcontrol.js.map +1 -1
- package/models/components/auditorenabledstatetransition.d.ts +0 -24
- package/models/components/auditorenabledstatetransition.d.ts.map +1 -1
- package/models/components/auditorenabledstatetransition.js +2 -15
- package/models/components/auditorenabledstatetransition.js.map +1 -1
- package/models/components/comment.d.ts +0 -25
- package/models/components/comment.d.ts.map +1 -1
- package/models/components/comment.js +1 -26
- package/models/components/comment.js.map +1 -1
- package/models/components/control.d.ts +1 -49
- package/models/components/control.d.ts.map +1 -1
- package/models/components/control.js +1 -49
- package/models/components/control.js.map +1 -1
- package/models/components/controldomain.d.ts +0 -90
- package/models/components/controldomain.d.ts.map +1 -1
- package/models/components/controldomain.js +2 -15
- package/models/components/controldomain.js.map +1 -1
- package/models/components/controlsource.d.ts +0 -18
- package/models/components/controlsource.d.ts.map +1 -1
- package/models/components/controlsource.js +1 -14
- package/models/components/controlsource.js.map +1 -1
- package/models/components/createcustomcontrolinput.d.ts +0 -37
- package/models/components/createcustomcontrolinput.d.ts.map +1 -1
- package/models/components/createcustomcontrolinput.js +2 -41
- package/models/components/createcustomcontrolinput.js.map +1 -1
- package/models/components/createcustomevidencerequestinput.d.ts +0 -17
- package/models/components/createcustomevidencerequestinput.d.ts.map +1 -1
- package/models/components/createcustomevidencerequestinput.js +1 -27
- package/models/components/createcustomevidencerequestinput.js.map +1 -1
- package/models/components/customevidencerequest.d.ts +0 -25
- package/models/components/customevidencerequest.d.ts.map +1 -1
- package/models/components/customevidencerequest.js +1 -26
- package/models/components/customevidencerequest.js.map +1 -1
- package/models/components/customfield.d.ts +0 -37
- package/models/components/customfield.d.ts.map +1 -1
- package/models/components/customfield.js +1 -38
- package/models/components/customfield.js.map +1 -1
- package/models/components/evidence.d.ts +1 -31
- package/models/components/evidence.d.ts.map +1 -1
- package/models/components/evidence.js +1 -31
- package/models/components/evidence.js.map +1 -1
- package/models/components/evidencecontrol.d.ts +0 -20
- package/models/components/evidencecontrol.d.ts.map +1 -1
- package/models/components/evidencecontrol.js +1 -21
- package/models/components/evidencecontrol.js.map +1 -1
- package/models/components/evidenceurl.d.ts +0 -22
- package/models/components/evidenceurl.d.ts.map +1 -1
- package/models/components/evidenceurl.js +1 -23
- package/models/components/evidenceurl.js.map +1 -1
- package/models/components/frameworkid.d.ts +0 -84
- package/models/components/frameworkid.d.ts.map +1 -1
- package/models/components/frameworkid.js +2 -15
- package/models/components/frameworkid.js.map +1 -1
- package/models/components/frameworksection.d.ts +0 -32
- package/models/components/frameworksection.d.ts.map +1 -1
- package/models/components/frameworksection.js +1 -39
- package/models/components/frameworksection.js.map +1 -1
- package/models/components/pageinfo.d.ts +0 -22
- package/models/components/pageinfo.d.ts.map +1 -1
- package/models/components/pageinfo.js +1 -23
- package/models/components/pageinfo.js.map +1 -1
- package/models/components/paginatedresponseaudit.d.ts +2 -41
- package/models/components/paginatedresponseaudit.d.ts.map +1 -1
- package/models/components/paginatedresponseaudit.js +1 -40
- package/models/components/paginatedresponseaudit.js.map +1 -1
- package/models/components/paginatedresponseauditorcontrol.d.ts +2 -41
- package/models/components/paginatedresponseauditorcontrol.d.ts.map +1 -1
- package/models/components/paginatedresponseauditorcontrol.js +1 -40
- package/models/components/paginatedresponseauditorcontrol.js.map +1 -1
- package/models/components/paginatedresponsecomment.d.ts +2 -41
- package/models/components/paginatedresponsecomment.d.ts.map +1 -1
- package/models/components/paginatedresponsecomment.js +1 -40
- package/models/components/paginatedresponsecomment.js.map +1 -1
- package/models/components/paginatedresponseevidence.d.ts +2 -41
- package/models/components/paginatedresponseevidence.d.ts.map +1 -1
- package/models/components/paginatedresponseevidence.js +1 -40
- package/models/components/paginatedresponseevidence.js.map +1 -1
- package/models/components/paginatedresponseevidenceurl.d.ts +2 -41
- package/models/components/paginatedresponseevidenceurl.d.ts.map +1 -1
- package/models/components/paginatedresponseevidenceurl.js +1 -40
- package/models/components/paginatedresponseevidenceurl.js.map +1 -1
- package/models/components/recurrenceduration.d.ts +0 -26
- package/models/components/recurrenceduration.d.ts.map +1 -1
- package/models/components/recurrenceduration.js +1 -12
- package/models/components/recurrenceduration.js.map +1 -1
- package/models/components/section.d.ts +0 -20
- package/models/components/section.d.ts.map +1 -1
- package/models/components/section.js +1 -21
- package/models/components/section.js.map +1 -1
- package/models/components/security.d.ts +0 -17
- package/models/components/security.d.ts.map +1 -1
- package/models/components/security.js +1 -21
- package/models/components/security.js.map +1 -1
- package/models/operations/createcommentforauditevidence.d.ts +0 -17
- package/models/operations/createcommentforauditevidence.d.ts.map +1 -1
- package/models/operations/createcommentforauditevidence.js +1 -27
- package/models/operations/createcommentforauditevidence.js.map +1 -1
- package/models/operations/createcustomcontrol.d.ts +0 -17
- package/models/operations/createcustomcontrol.d.ts.map +1 -1
- package/models/operations/createcustomcontrol.js +1 -26
- package/models/operations/createcustomcontrol.js.map +1 -1
- package/models/operations/createcustomevidencerequest.d.ts +0 -17
- package/models/operations/createcustomevidencerequest.d.ts.map +1 -1
- package/models/operations/createcustomevidencerequest.js +1 -26
- package/models/operations/createcustomevidencerequest.js.map +1 -1
- package/models/operations/listauditcomments.d.ts +0 -17
- package/models/operations/listauditcomments.d.ts.map +1 -1
- package/models/operations/listauditcomments.js +1 -24
- package/models/operations/listauditcomments.js.map +1 -1
- package/models/operations/listauditcontrols.d.ts +0 -17
- package/models/operations/listauditcontrols.d.ts.map +1 -1
- package/models/operations/listauditcontrols.js +1 -23
- package/models/operations/listauditcontrols.js.map +1 -1
- package/models/operations/listauditevidence.d.ts +0 -17
- package/models/operations/listauditevidence.d.ts.map +1 -1
- package/models/operations/listauditevidence.js +1 -24
- package/models/operations/listauditevidence.js.map +1 -1
- package/models/operations/listauditevidenceurls.d.ts +0 -17
- package/models/operations/listauditevidenceurls.d.ts.map +1 -1
- package/models/operations/listauditevidenceurls.js +1 -24
- package/models/operations/listauditevidenceurls.js.map +1 -1
- package/models/operations/listaudits.d.ts +0 -17
- package/models/operations/listaudits.d.ts.map +1 -1
- package/models/operations/listaudits.js +1 -24
- package/models/operations/listaudits.js.map +1 -1
- package/models/operations/updateauditevidence.d.ts +0 -17
- package/models/operations/updateauditevidence.d.ts.map +1 -1
- package/models/operations/updateauditevidence.js +1 -27
- package/models/operations/updateauditevidence.js.map +1 -1
- package/package.json +3 -16
- package/src/lib/config.ts +3 -3
- package/src/models/components/addauditorinput.ts +0 -37
- package/src/models/components/addcommentinput.ts +0 -39
- package/src/models/components/audit.ts +1 -64
- package/src/models/components/auditevidencestate.ts +0 -16
- package/src/models/components/auditevidencetype.ts +0 -16
- package/src/models/components/auditevidenceupdateinput.ts +0 -69
- package/src/models/components/auditfocus.ts +0 -15
- package/src/models/components/auditor.ts +0 -39
- package/src/models/components/auditorcontrol.ts +3 -103
- package/src/models/components/auditorenabledstatetransition.ts +1 -17
- package/src/models/components/comment.ts +0 -43
- package/src/models/components/control.ts +2 -93
- package/src/models/components/controldomain.ts +1 -17
- package/src/models/components/controlsource.ts +0 -16
- package/src/models/components/createcustomcontrolinput.ts +1 -61
- package/src/models/components/createcustomevidencerequestinput.ts +0 -42
- package/src/models/components/customevidencerequest.ts +0 -48
- package/src/models/components/customfield.ts +0 -60
- package/src/models/components/evidence.ts +0 -57
- package/src/models/components/evidencecontrol.ts +0 -35
- package/src/models/components/evidenceurl.ts +0 -37
- package/src/models/components/frameworkid.ts +1 -16
- package/src/models/components/frameworksection.ts +1 -71
- package/src/models/components/pageinfo.ts +0 -37
- package/src/models/components/paginatedresponseaudit.ts +2 -80
- package/src/models/components/paginatedresponseauditorcontrol.ts +1 -87
- package/src/models/components/paginatedresponsecomment.ts +2 -86
- package/src/models/components/paginatedresponseevidence.ts +2 -86
- package/src/models/components/paginatedresponseevidenceurl.ts +2 -90
- package/src/models/components/recurrenceduration.ts +0 -12
- package/src/models/components/section.ts +0 -33
- package/src/models/components/security.ts +0 -35
- package/src/models/operations/createcommentforauditevidence.ts +0 -44
- package/src/models/operations/createcustomcontrol.ts +0 -40
- package/src/models/operations/createcustomevidencerequest.ts +0 -43
- package/src/models/operations/listauditcomments.ts +0 -40
- package/src/models/operations/listauditcontrols.ts +0 -37
- package/src/models/operations/listauditevidence.ts +0 -40
- package/src/models/operations/listauditevidenceurls.ts +0 -38
- package/src/models/operations/listaudits.ts +0 -40
- package/src/models/operations/updateauditevidence.ts +0 -41
- package/src/types/enums.ts +55 -6
- package/src/types/index.ts +0 -1
- package/types/enums.d.ts +10 -6
- package/types/enums.d.ts.map +1 -1
- package/types/enums.js +76 -2
- package/types/enums.js.map +1 -1
- package/types/index.d.ts +0 -1
- package/types/index.d.ts.map +1 -1
- package/types/index.js +1 -3
- package/types/index.js.map +1 -1
- package/bin/mcp-server.js +0 -39217
- package/bin/mcp-server.js.map +0 -323
- package/mcp-server/build.d.mts.map +0 -1
- package/mcp-server/build.mjs +0 -14
- package/mcp-server/build.mjs.map +0 -1
- package/mcp-server/cli/start/command.d.ts +0 -2
- package/mcp-server/cli/start/command.d.ts.map +0 -1
- package/mcp-server/cli/start/command.js +0 -125
- package/mcp-server/cli/start/command.js.map +0 -1
- package/mcp-server/cli/start/impl.d.ts +0 -16
- package/mcp-server/cli/start/impl.d.ts.map +0 -1
- package/mcp-server/cli/start/impl.js +0 -102
- package/mcp-server/cli/start/impl.js.map +0 -1
- package/mcp-server/cli.d.ts +0 -6
- package/mcp-server/cli.d.ts.map +0 -1
- package/mcp-server/cli.js +0 -10
- package/mcp-server/cli.js.map +0 -1
- package/mcp-server/console-logger.d.ts +0 -7
- package/mcp-server/console-logger.d.ts.map +0 -1
- package/mcp-server/console-logger.js +0 -59
- package/mcp-server/console-logger.js.map +0 -1
- package/mcp-server/extensions.d.ts +0 -11
- package/mcp-server/extensions.d.ts.map +0 -1
- package/mcp-server/extensions.js +0 -6
- package/mcp-server/extensions.js.map +0 -1
- package/mcp-server/mcp-server.d.ts +0 -2
- package/mcp-server/mcp-server.d.ts.map +0 -1
- package/mcp-server/mcp-server.js +0 -29
- package/mcp-server/mcp-server.js.map +0 -1
- package/mcp-server/prompts.d.ts +0 -26
- package/mcp-server/prompts.d.ts.map +0 -1
- package/mcp-server/prompts.js +0 -51
- package/mcp-server/prompts.js.map +0 -1
- package/mcp-server/resources.d.ts +0 -32
- package/mcp-server/resources.d.ts.map +0 -1
- package/mcp-server/resources.js +0 -87
- package/mcp-server/resources.js.map +0 -1
- package/mcp-server/scopes.d.ts +0 -3
- package/mcp-server/scopes.d.ts.map +0 -1
- package/mcp-server/scopes.js +0 -8
- package/mcp-server/scopes.js.map +0 -1
- package/mcp-server/server.d.ts +0 -13
- package/mcp-server/server.d.ts.map +0 -1
- package/mcp-server/server.js +0 -52
- package/mcp-server/server.js.map +0 -1
- package/mcp-server/shared.d.ts +0 -7
- package/mcp-server/shared.d.ts.map +0 -1
- package/mcp-server/shared.js +0 -98
- package/mcp-server/shared.js.map +0 -1
- package/mcp-server/tools/auditorsCreate.d.ts +0 -8
- package/mcp-server/tools/auditorsCreate.d.ts.map +0 -1
- package/mcp-server/tools/auditorsCreate.js +0 -64
- package/mcp-server/tools/auditorsCreate.js.map +0 -1
- package/mcp-server/tools/auditsCreateCommentForEvidence.d.ts +0 -8
- package/mcp-server/tools/auditsCreateCommentForEvidence.d.ts.map +0 -1
- package/mcp-server/tools/auditsCreateCommentForEvidence.js +0 -64
- package/mcp-server/tools/auditsCreateCommentForEvidence.js.map +0 -1
- package/mcp-server/tools/auditsCreateCustomControl.d.ts +0 -8
- package/mcp-server/tools/auditsCreateCustomControl.d.ts.map +0 -1
- package/mcp-server/tools/auditsCreateCustomControl.js +0 -64
- package/mcp-server/tools/auditsCreateCustomControl.js.map +0 -1
- package/mcp-server/tools/auditsCreateCustomEvidenceRequest.d.ts +0 -8
- package/mcp-server/tools/auditsCreateCustomEvidenceRequest.d.ts.map +0 -1
- package/mcp-server/tools/auditsCreateCustomEvidenceRequest.js +0 -64
- package/mcp-server/tools/auditsCreateCustomEvidenceRequest.js.map +0 -1
- package/mcp-server/tools/auditsGetEvidenceUrls.d.ts +0 -8
- package/mcp-server/tools/auditsGetEvidenceUrls.d.ts.map +0 -1
- package/mcp-server/tools/auditsGetEvidenceUrls.js +0 -65
- package/mcp-server/tools/auditsGetEvidenceUrls.js.map +0 -1
- package/mcp-server/tools/auditsList.d.ts +0 -8
- package/mcp-server/tools/auditsList.d.ts.map +0 -1
- package/mcp-server/tools/auditsList.js +0 -64
- package/mcp-server/tools/auditsList.js.map +0 -1
- package/mcp-server/tools/auditsListComments.d.ts +0 -8
- package/mcp-server/tools/auditsListComments.d.ts.map +0 -1
- package/mcp-server/tools/auditsListComments.js +0 -64
- package/mcp-server/tools/auditsListComments.js.map +0 -1
- package/mcp-server/tools/auditsListControls.d.ts +0 -8
- package/mcp-server/tools/auditsListControls.d.ts.map +0 -1
- package/mcp-server/tools/auditsListControls.js +0 -64
- package/mcp-server/tools/auditsListControls.js.map +0 -1
- package/mcp-server/tools/auditsListEvidence.d.ts +0 -8
- package/mcp-server/tools/auditsListEvidence.d.ts.map +0 -1
- package/mcp-server/tools/auditsListEvidence.js +0 -64
- package/mcp-server/tools/auditsListEvidence.js.map +0 -1
- package/mcp-server/tools/auditsUpdateEvidence.d.ts +0 -8
- package/mcp-server/tools/auditsUpdateEvidence.d.ts.map +0 -1
- package/mcp-server/tools/auditsUpdateEvidence.js +0 -64
- package/mcp-server/tools/auditsUpdateEvidence.js.map +0 -1
- package/mcp-server/tools.d.ts +0 -25
- package/mcp-server/tools.d.ts.map +0 -1
- package/mcp-server/tools.js +0 -82
- package/mcp-server/tools.js.map +0 -1
- package/src/mcp-server/cli/start/command.ts +0 -93
- package/src/mcp-server/cli/start/impl.ts +0 -130
- package/src/mcp-server/cli.ts +0 -13
- package/src/mcp-server/console-logger.ts +0 -71
- package/src/mcp-server/extensions.ts +0 -17
- package/src/mcp-server/mcp-server.ts +0 -26
- package/src/mcp-server/prompts.ts +0 -117
- package/src/mcp-server/resources.ts +0 -172
- package/src/mcp-server/scopes.ts +0 -7
- package/src/mcp-server/server.ts +0 -79
- package/src/mcp-server/shared.ts +0 -74
- package/src/mcp-server/tools/auditorsCreate.ts +0 -37
- package/src/mcp-server/tools/auditsCreateCommentForEvidence.ts +0 -38
- package/src/mcp-server/tools/auditsCreateCustomControl.ts +0 -37
- package/src/mcp-server/tools/auditsCreateCustomEvidenceRequest.ts +0 -39
- package/src/mcp-server/tools/auditsGetEvidenceUrls.ts +0 -38
- package/src/mcp-server/tools/auditsList.ts +0 -37
- package/src/mcp-server/tools/auditsListComments.ts +0 -37
- package/src/mcp-server/tools/auditsListControls.ts +0 -37
- package/src/mcp-server/tools/auditsListEvidence.ts +0 -37
- package/src/mcp-server/tools/auditsUpdateEvidence.ts +0 -37
- package/src/mcp-server/tools.ts +0 -129
package/src/mcp-server/server.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
-
import { VantaCore } from "../core.js";
|
|
7
|
-
import { SDKOptions } from "../lib/config.js";
|
|
8
|
-
import type { ConsoleLogger } from "./console-logger.js";
|
|
9
|
-
import { createRegisterPrompt } from "./prompts.js";
|
|
10
|
-
import {
|
|
11
|
-
createRegisterResource,
|
|
12
|
-
createRegisterResourceTemplate,
|
|
13
|
-
} from "./resources.js";
|
|
14
|
-
import { MCPScope } from "./scopes.js";
|
|
15
|
-
import { createRegisterTool } from "./tools.js";
|
|
16
|
-
import { tool$auditorsCreate } from "./tools/auditorsCreate.js";
|
|
17
|
-
import { tool$auditsCreateCommentForEvidence } from "./tools/auditsCreateCommentForEvidence.js";
|
|
18
|
-
import { tool$auditsCreateCustomControl } from "./tools/auditsCreateCustomControl.js";
|
|
19
|
-
import { tool$auditsCreateCustomEvidenceRequest } from "./tools/auditsCreateCustomEvidenceRequest.js";
|
|
20
|
-
import { tool$auditsGetEvidenceUrls } from "./tools/auditsGetEvidenceUrls.js";
|
|
21
|
-
import { tool$auditsList } from "./tools/auditsList.js";
|
|
22
|
-
import { tool$auditsListComments } from "./tools/auditsListComments.js";
|
|
23
|
-
import { tool$auditsListControls } from "./tools/auditsListControls.js";
|
|
24
|
-
import { tool$auditsListEvidence } from "./tools/auditsListEvidence.js";
|
|
25
|
-
import { tool$auditsUpdateEvidence } from "./tools/auditsUpdateEvidence.js";
|
|
26
|
-
|
|
27
|
-
export function createMCPServer(deps: {
|
|
28
|
-
logger: ConsoleLogger;
|
|
29
|
-
allowedTools?: string[] | undefined;
|
|
30
|
-
scopes?: MCPScope[] | undefined;
|
|
31
|
-
serverURL?: string | undefined;
|
|
32
|
-
bearerAuth?: SDKOptions["bearerAuth"] | undefined;
|
|
33
|
-
serverIdx?: SDKOptions["serverIdx"] | undefined;
|
|
34
|
-
}) {
|
|
35
|
-
const server = new McpServer({
|
|
36
|
-
name: "Vanta",
|
|
37
|
-
version: "0.4.0",
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
const client = new VantaCore({
|
|
41
|
-
bearerAuth: deps.bearerAuth,
|
|
42
|
-
serverURL: deps.serverURL,
|
|
43
|
-
serverIdx: deps.serverIdx,
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
const scopes = new Set(deps.scopes);
|
|
47
|
-
|
|
48
|
-
const allowedTools = deps.allowedTools && new Set(deps.allowedTools);
|
|
49
|
-
const tool = createRegisterTool(
|
|
50
|
-
deps.logger,
|
|
51
|
-
server,
|
|
52
|
-
client,
|
|
53
|
-
scopes,
|
|
54
|
-
allowedTools,
|
|
55
|
-
);
|
|
56
|
-
const resource = createRegisterResource(deps.logger, server, client, scopes);
|
|
57
|
-
const resourceTemplate = createRegisterResourceTemplate(
|
|
58
|
-
deps.logger,
|
|
59
|
-
server,
|
|
60
|
-
client,
|
|
61
|
-
scopes,
|
|
62
|
-
);
|
|
63
|
-
const prompt = createRegisterPrompt(deps.logger, server, client, scopes);
|
|
64
|
-
const register = { tool, resource, resourceTemplate, prompt };
|
|
65
|
-
void register; // suppress unused warnings
|
|
66
|
-
|
|
67
|
-
tool(tool$auditsList);
|
|
68
|
-
tool(tool$auditsGetEvidenceUrls);
|
|
69
|
-
tool(tool$auditsListEvidence);
|
|
70
|
-
tool(tool$auditsListComments);
|
|
71
|
-
tool(tool$auditsListControls);
|
|
72
|
-
tool(tool$auditsCreateCommentForEvidence);
|
|
73
|
-
tool(tool$auditsUpdateEvidence);
|
|
74
|
-
tool(tool$auditsCreateCustomEvidenceRequest);
|
|
75
|
-
tool(tool$auditsCreateCustomControl);
|
|
76
|
-
tool(tool$auditorsCreate);
|
|
77
|
-
|
|
78
|
-
return server;
|
|
79
|
-
}
|
package/src/mcp-server/shared.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import * as z from "zod/v3";
|
|
6
|
-
import { bytesToBase64 } from "../lib/base64.js";
|
|
7
|
-
type BinaryData =
|
|
8
|
-
| Uint8Array
|
|
9
|
-
| ArrayBuffer
|
|
10
|
-
| Blob
|
|
11
|
-
| ReadableStream
|
|
12
|
-
| Response
|
|
13
|
-
| string;
|
|
14
|
-
|
|
15
|
-
export async function consumeStream(
|
|
16
|
-
stream: ReadableStream<Uint8Array>,
|
|
17
|
-
): Promise<Uint8Array> {
|
|
18
|
-
const reader = stream.getReader();
|
|
19
|
-
const chunks: Uint8Array[] = [];
|
|
20
|
-
|
|
21
|
-
try {
|
|
22
|
-
while (true) {
|
|
23
|
-
const { done, value } = await reader.read();
|
|
24
|
-
if (value != null) chunks.push(value);
|
|
25
|
-
if (done) break;
|
|
26
|
-
}
|
|
27
|
-
} finally {
|
|
28
|
-
reader.releaseLock();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return new Uint8Array(await new Blob(chunks).arrayBuffer());
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function isAsyncIterable(
|
|
35
|
-
value: unknown,
|
|
36
|
-
): value is AsyncIterable<string> {
|
|
37
|
-
return (
|
|
38
|
-
typeof value === "object" && value != null && Symbol.asyncIterator in value
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export function isBinaryData(value: unknown): value is BinaryData {
|
|
43
|
-
return (
|
|
44
|
-
value instanceof Uint8Array
|
|
45
|
-
|| value instanceof ArrayBuffer
|
|
46
|
-
|| value instanceof Blob
|
|
47
|
-
|| value instanceof ReadableStream
|
|
48
|
-
|| value instanceof Response
|
|
49
|
-
|| typeof value === "string"
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const base64Schema = z.string().base64();
|
|
54
|
-
|
|
55
|
-
export async function valueToBase64(
|
|
56
|
-
value: BinaryData | null | undefined,
|
|
57
|
-
): Promise<string | null> {
|
|
58
|
-
if (value == null) {
|
|
59
|
-
return null;
|
|
60
|
-
} else if (value instanceof Uint8Array) {
|
|
61
|
-
return bytesToBase64(value);
|
|
62
|
-
} else if (value instanceof ArrayBuffer) {
|
|
63
|
-
return bytesToBase64(new Uint8Array(value));
|
|
64
|
-
} else if (value instanceof Response || value instanceof Blob) {
|
|
65
|
-
return bytesToBase64(new Uint8Array(await value.arrayBuffer()));
|
|
66
|
-
} else if (value instanceof ReadableStream) {
|
|
67
|
-
return bytesToBase64(await consumeStream(value));
|
|
68
|
-
} else if (typeof value === "string") {
|
|
69
|
-
return base64Schema.parse(value);
|
|
70
|
-
} else {
|
|
71
|
-
value satisfies never;
|
|
72
|
-
throw new Error(`Unsupported image value type: ${typeof value}`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditorsCreate } from "../../funcs/auditorsCreate.js";
|
|
6
|
-
import * as components from "../../models/components/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: components.AddAuditorInput$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditorsCreate: ToolDefinition<typeof args> = {
|
|
14
|
-
name: "auditors-create",
|
|
15
|
-
description: `Create an auditor
|
|
16
|
-
|
|
17
|
-
Create an auditor in Vanta.`,
|
|
18
|
-
args,
|
|
19
|
-
tool: async (client, args, ctx) => {
|
|
20
|
-
const [result, apiCall] = await auditorsCreate(
|
|
21
|
-
client,
|
|
22
|
-
args.request,
|
|
23
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
24
|
-
).$inspect();
|
|
25
|
-
|
|
26
|
-
if (!result.ok) {
|
|
27
|
-
return {
|
|
28
|
-
content: [{ type: "text", text: result.error.message }],
|
|
29
|
-
isError: true,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const value = result.value;
|
|
34
|
-
|
|
35
|
-
return formatResult(value, apiCall);
|
|
36
|
-
},
|
|
37
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsCreateCommentForEvidence } from "../../funcs/auditsCreateCommentForEvidence.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.CreateCommentForAuditEvidenceRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsCreateCommentForEvidence: ToolDefinition<typeof args> =
|
|
14
|
-
{
|
|
15
|
-
name: "audits-create-comment-for-evidence",
|
|
16
|
-
description: `Create a comment for audit evidence
|
|
17
|
-
|
|
18
|
-
Create a comment in Vanta for a piece of evidence.`,
|
|
19
|
-
args,
|
|
20
|
-
tool: async (client, args, ctx) => {
|
|
21
|
-
const [result, apiCall] = await auditsCreateCommentForEvidence(
|
|
22
|
-
client,
|
|
23
|
-
args.request,
|
|
24
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
25
|
-
).$inspect();
|
|
26
|
-
|
|
27
|
-
if (!result.ok) {
|
|
28
|
-
return {
|
|
29
|
-
content: [{ type: "text", text: result.error.message }],
|
|
30
|
-
isError: true,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const value = result.value;
|
|
35
|
-
|
|
36
|
-
return formatResult(value, apiCall);
|
|
37
|
-
},
|
|
38
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsCreateCustomControl } from "../../funcs/auditsCreateCustomControl.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.CreateCustomControlRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsCreateCustomControl: ToolDefinition<typeof args> = {
|
|
14
|
-
name: "audits-create-custom-control",
|
|
15
|
-
description: `Create a custom control for an audit
|
|
16
|
-
|
|
17
|
-
Create a custom control for an audit.`,
|
|
18
|
-
args,
|
|
19
|
-
tool: async (client, args, ctx) => {
|
|
20
|
-
const [result, apiCall] = await auditsCreateCustomControl(
|
|
21
|
-
client,
|
|
22
|
-
args.request,
|
|
23
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
24
|
-
).$inspect();
|
|
25
|
-
|
|
26
|
-
if (!result.ok) {
|
|
27
|
-
return {
|
|
28
|
-
content: [{ type: "text", text: result.error.message }],
|
|
29
|
-
isError: true,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const value = result.value;
|
|
34
|
-
|
|
35
|
-
return formatResult(value, apiCall);
|
|
36
|
-
},
|
|
37
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsCreateCustomEvidenceRequest } from "../../funcs/auditsCreateCustomEvidenceRequest.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.CreateCustomEvidenceRequestRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsCreateCustomEvidenceRequest: ToolDefinition<
|
|
14
|
-
typeof args
|
|
15
|
-
> = {
|
|
16
|
-
name: "audits-create-custom-evidence-request",
|
|
17
|
-
description: `Create a custom evidence request for an audit
|
|
18
|
-
|
|
19
|
-
Create a custom evidence request for an audit.`,
|
|
20
|
-
args,
|
|
21
|
-
tool: async (client, args, ctx) => {
|
|
22
|
-
const [result, apiCall] = await auditsCreateCustomEvidenceRequest(
|
|
23
|
-
client,
|
|
24
|
-
args.request,
|
|
25
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
26
|
-
).$inspect();
|
|
27
|
-
|
|
28
|
-
if (!result.ok) {
|
|
29
|
-
return {
|
|
30
|
-
content: [{ type: "text", text: result.error.message }],
|
|
31
|
-
isError: true,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const value = result.value;
|
|
36
|
-
|
|
37
|
-
return formatResult(value, apiCall);
|
|
38
|
-
},
|
|
39
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsGetEvidenceUrls } from "../../funcs/auditsGetEvidenceUrls.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.ListAuditEvidenceUrlsRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsGetEvidenceUrls: ToolDefinition<typeof args> = {
|
|
14
|
-
name: "audits-get-evidence-urls",
|
|
15
|
-
description: `List audit evidence url
|
|
16
|
-
|
|
17
|
-
Returns a paginated list of evidence urls for an audit. This endpoint should be called whenever an
|
|
18
|
-
evidence is created or has a statusUpdatedAt field that is more recent than the most recent polling event.`,
|
|
19
|
-
args,
|
|
20
|
-
tool: async (client, args, ctx) => {
|
|
21
|
-
const [result, apiCall] = await auditsGetEvidenceUrls(
|
|
22
|
-
client,
|
|
23
|
-
args.request,
|
|
24
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
25
|
-
).$inspect();
|
|
26
|
-
|
|
27
|
-
if (!result.ok) {
|
|
28
|
-
return {
|
|
29
|
-
content: [{ type: "text", text: result.error.message }],
|
|
30
|
-
isError: true,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const value = result.value;
|
|
35
|
-
|
|
36
|
-
return formatResult(value, apiCall);
|
|
37
|
-
},
|
|
38
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsList } from "../../funcs/auditsList.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.ListAuditsRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsList: ToolDefinition<typeof args> = {
|
|
14
|
-
name: "audits-list",
|
|
15
|
-
description: `List audits
|
|
16
|
-
|
|
17
|
-
Returns a paginated list of audits scoped to the audit firm.`,
|
|
18
|
-
args,
|
|
19
|
-
tool: async (client, args, ctx) => {
|
|
20
|
-
const [result, apiCall] = await auditsList(
|
|
21
|
-
client,
|
|
22
|
-
args.request,
|
|
23
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
24
|
-
).$inspect();
|
|
25
|
-
|
|
26
|
-
if (!result.ok) {
|
|
27
|
-
return {
|
|
28
|
-
content: [{ type: "text", text: result.error.message }],
|
|
29
|
-
isError: true,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const value = result.value;
|
|
34
|
-
|
|
35
|
-
return formatResult(value, apiCall);
|
|
36
|
-
},
|
|
37
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsListComments } from "../../funcs/auditsListComments.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.ListAuditCommentsRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsListComments: ToolDefinition<typeof args> = {
|
|
14
|
-
name: "audits-list-comments",
|
|
15
|
-
description: `List audit comments
|
|
16
|
-
|
|
17
|
-
Returns a paginated list of comments for an audit.`,
|
|
18
|
-
args,
|
|
19
|
-
tool: async (client, args, ctx) => {
|
|
20
|
-
const [result, apiCall] = await auditsListComments(
|
|
21
|
-
client,
|
|
22
|
-
args.request,
|
|
23
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
24
|
-
).$inspect();
|
|
25
|
-
|
|
26
|
-
if (!result.ok) {
|
|
27
|
-
return {
|
|
28
|
-
content: [{ type: "text", text: result.error.message }],
|
|
29
|
-
isError: true,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const value = result.value;
|
|
34
|
-
|
|
35
|
-
return formatResult(value, apiCall);
|
|
36
|
-
},
|
|
37
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsListControls } from "../../funcs/auditsListControls.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.ListAuditControlsRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsListControls: ToolDefinition<typeof args> = {
|
|
14
|
-
name: "audits-list-controls",
|
|
15
|
-
description: `List audit controls
|
|
16
|
-
|
|
17
|
-
Returns a paginated list of controls for an audit.`,
|
|
18
|
-
args,
|
|
19
|
-
tool: async (client, args, ctx) => {
|
|
20
|
-
const [result, apiCall] = await auditsListControls(
|
|
21
|
-
client,
|
|
22
|
-
args.request,
|
|
23
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
24
|
-
).$inspect();
|
|
25
|
-
|
|
26
|
-
if (!result.ok) {
|
|
27
|
-
return {
|
|
28
|
-
content: [{ type: "text", text: result.error.message }],
|
|
29
|
-
isError: true,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const value = result.value;
|
|
34
|
-
|
|
35
|
-
return formatResult(value, apiCall);
|
|
36
|
-
},
|
|
37
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsListEvidence } from "../../funcs/auditsListEvidence.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.ListAuditEvidenceRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsListEvidence: ToolDefinition<typeof args> = {
|
|
14
|
-
name: "audits-list-evidence",
|
|
15
|
-
description: `List audit evidence
|
|
16
|
-
|
|
17
|
-
Returns a paginated list of evidence for an audit.`,
|
|
18
|
-
args,
|
|
19
|
-
tool: async (client, args, ctx) => {
|
|
20
|
-
const [result, apiCall] = await auditsListEvidence(
|
|
21
|
-
client,
|
|
22
|
-
args.request,
|
|
23
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
24
|
-
).$inspect();
|
|
25
|
-
|
|
26
|
-
if (!result.ok) {
|
|
27
|
-
return {
|
|
28
|
-
content: [{ type: "text", text: result.error.message }],
|
|
29
|
-
isError: true,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const value = result.value;
|
|
34
|
-
|
|
35
|
-
return formatResult(value, apiCall);
|
|
36
|
-
},
|
|
37
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { auditsUpdateEvidence } from "../../funcs/auditsUpdateEvidence.js";
|
|
6
|
-
import * as operations from "../../models/operations/index.js";
|
|
7
|
-
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
-
|
|
9
|
-
const args = {
|
|
10
|
-
request: operations.UpdateAuditEvidenceRequest$inboundSchema,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const tool$auditsUpdateEvidence: ToolDefinition<typeof args> = {
|
|
14
|
-
name: "audits-update-evidence",
|
|
15
|
-
description: `Update audit evidence
|
|
16
|
-
|
|
17
|
-
Update audit evidence.`,
|
|
18
|
-
args,
|
|
19
|
-
tool: async (client, args, ctx) => {
|
|
20
|
-
const [result, apiCall] = await auditsUpdateEvidence(
|
|
21
|
-
client,
|
|
22
|
-
args.request,
|
|
23
|
-
{ fetchOptions: { signal: ctx.signal } },
|
|
24
|
-
).$inspect();
|
|
25
|
-
|
|
26
|
-
if (!result.ok) {
|
|
27
|
-
return {
|
|
28
|
-
content: [{ type: "text", text: result.error.message }],
|
|
29
|
-
isError: true,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const value = result.value;
|
|
34
|
-
|
|
35
|
-
return formatResult(value, apiCall);
|
|
36
|
-
},
|
|
37
|
-
};
|
package/src/mcp-server/tools.ts
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
-
import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
|
|
7
|
-
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
-
import { objectOutputType, ZodRawShape, ZodTypeAny } from "zod/v3";
|
|
9
|
-
import { VantaCore } from "../core.js";
|
|
10
|
-
import { ConsoleLogger } from "./console-logger.js";
|
|
11
|
-
import { MCPScope } from "./scopes.js";
|
|
12
|
-
import { isAsyncIterable, isBinaryData, valueToBase64 } from "./shared.js";
|
|
13
|
-
|
|
14
|
-
export type ToolDefinition<Args extends undefined | ZodRawShape = undefined> =
|
|
15
|
-
Args extends ZodRawShape ? {
|
|
16
|
-
name: string;
|
|
17
|
-
description: string;
|
|
18
|
-
scopes?: MCPScope[];
|
|
19
|
-
args: Args;
|
|
20
|
-
tool: (
|
|
21
|
-
client: VantaCore,
|
|
22
|
-
args: objectOutputType<Args, ZodTypeAny>,
|
|
23
|
-
extra: RequestHandlerExtra,
|
|
24
|
-
) => CallToolResult | Promise<CallToolResult>;
|
|
25
|
-
}
|
|
26
|
-
: {
|
|
27
|
-
name: string;
|
|
28
|
-
description: string;
|
|
29
|
-
scopes?: MCPScope[];
|
|
30
|
-
args?: undefined;
|
|
31
|
-
tool: (
|
|
32
|
-
client: VantaCore,
|
|
33
|
-
extra: RequestHandlerExtra,
|
|
34
|
-
) => CallToolResult | Promise<CallToolResult>;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// Optional function to assist with formatting tool results
|
|
38
|
-
export async function formatResult(
|
|
39
|
-
value: unknown,
|
|
40
|
-
init: { response?: Response | undefined },
|
|
41
|
-
): Promise<CallToolResult> {
|
|
42
|
-
if (typeof value === "undefined") {
|
|
43
|
-
return { content: [] };
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const { response } = init;
|
|
47
|
-
const contentType = response?.headers.get("content-type") ?? "";
|
|
48
|
-
let content: CallToolResult["content"] = [];
|
|
49
|
-
|
|
50
|
-
if (contentType.search(/\bjson\b/g)) {
|
|
51
|
-
content = [{ type: "text", text: JSON.stringify(value) }];
|
|
52
|
-
} else if (
|
|
53
|
-
contentType.startsWith("text/event-stream")
|
|
54
|
-
&& isAsyncIterable(value)
|
|
55
|
-
) {
|
|
56
|
-
content = await consumeSSE(value);
|
|
57
|
-
} else if (contentType.startsWith("text/") && typeof value === "string") {
|
|
58
|
-
content = [{ type: "text", text: value }];
|
|
59
|
-
} else if (isBinaryData(value) && contentType.startsWith("image/")) {
|
|
60
|
-
const data = await valueToBase64(value);
|
|
61
|
-
content = data == null
|
|
62
|
-
? []
|
|
63
|
-
: [{ type: "image", data, mimeType: contentType }];
|
|
64
|
-
} else {
|
|
65
|
-
return {
|
|
66
|
-
content: [{
|
|
67
|
-
type: "text",
|
|
68
|
-
text: `Unsupported content type: "${contentType}"`,
|
|
69
|
-
}],
|
|
70
|
-
isError: true,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return { content };
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
async function consumeSSE(
|
|
78
|
-
value: AsyncIterable<unknown>,
|
|
79
|
-
): Promise<CallToolResult["content"]> {
|
|
80
|
-
const content: CallToolResult["content"] = [];
|
|
81
|
-
|
|
82
|
-
for await (const chunk of value) {
|
|
83
|
-
if (typeof chunk === "string") {
|
|
84
|
-
content.push({ type: "text", text: chunk });
|
|
85
|
-
} else {
|
|
86
|
-
content.push({ type: "text", text: JSON.stringify(chunk) });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return content;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export function createRegisterTool(
|
|
94
|
-
logger: ConsoleLogger,
|
|
95
|
-
server: McpServer,
|
|
96
|
-
sdk: VantaCore,
|
|
97
|
-
allowedScopes: Set<MCPScope>,
|
|
98
|
-
allowedTools?: Set<string>,
|
|
99
|
-
): <A extends ZodRawShape | undefined>(tool: ToolDefinition<A>) => void {
|
|
100
|
-
return <A extends ZodRawShape | undefined>(tool: ToolDefinition<A>): void => {
|
|
101
|
-
if (allowedTools && !allowedTools.has(tool.name)) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
const scopes = tool.scopes ?? [];
|
|
106
|
-
if (allowedScopes.size > 0 && scopes.length === 0) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (
|
|
111
|
-
allowedScopes.size > 0
|
|
112
|
-
&& !scopes.every((s: MCPScope) => allowedScopes.has(s))
|
|
113
|
-
) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (tool.args) {
|
|
118
|
-
server.tool(tool.name, tool.description, tool.args, async (args, ctx) => {
|
|
119
|
-
return tool.tool(sdk, args, ctx);
|
|
120
|
-
});
|
|
121
|
-
} else {
|
|
122
|
-
server.tool(tool.name, tool.description, async (ctx) => {
|
|
123
|
-
return tool.tool(sdk, ctx);
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
logger.debug("Registered tool", { name: tool.name });
|
|
128
|
-
};
|
|
129
|
-
}
|