@trycompai/mcp-server 0.3.3 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +2 -2
  2. package/bin/mcp-server.js +2319 -1685
  3. package/bin/mcp-server.js.map +23 -13
  4. package/esm/funcs/ismsISMSControllerSetCoverageV1.d.ts +16 -0
  5. package/esm/funcs/ismsISMSControllerSetCoverageV1.d.ts.map +1 -0
  6. package/esm/funcs/ismsISMSControllerSetCoverageV1.js +89 -0
  7. package/esm/funcs/ismsISMSControllerSetCoverageV1.js.map +1 -0
  8. package/esm/funcs/ismsISMSRegistersControllerCreateRowV1.d.ts +1 -1
  9. package/esm/funcs/ismsISMSRegistersControllerCreateRowV1.js +1 -1
  10. package/esm/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.d.ts +16 -0
  11. package/esm/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.d.ts.map +1 -0
  12. package/esm/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js +89 -0
  13. package/esm/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js.map +1 -0
  14. package/esm/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.d.ts +16 -0
  15. package/esm/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.d.ts.map +1 -0
  16. package/esm/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.js +90 -0
  17. package/esm/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.js.map +1 -0
  18. package/esm/landing-page.js +1 -1
  19. package/esm/lib/config.d.ts +3 -3
  20. package/esm/lib/config.js +3 -3
  21. package/esm/mcp-server/mcp-server.js +1 -1
  22. package/esm/mcp-server/server.d.ts.map +1 -1
  23. package/esm/mcp-server/server.js +7 -1
  24. package/esm/mcp-server/server.js.map +1 -1
  25. package/esm/mcp-server/tools/ismsISMSControllerSetCoverageV1.d.ts +7 -0
  26. package/esm/mcp-server/tools/ismsISMSControllerSetCoverageV1.d.ts.map +1 -0
  27. package/esm/mcp-server/tools/ismsISMSControllerSetCoverageV1.js +35 -0
  28. package/esm/mcp-server/tools/ismsISMSControllerSetCoverageV1.js.map +1 -0
  29. package/esm/mcp-server/tools/ismsISMSRegistersControllerCreateRowV1.js +1 -1
  30. package/esm/mcp-server/tools/ismsISMSRegistersControllerCreateRowV1.js.map +1 -1
  31. package/esm/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.d.ts +7 -0
  32. package/esm/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.d.ts.map +1 -0
  33. package/esm/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js +35 -0
  34. package/esm/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js.map +1 -0
  35. package/esm/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.d.ts +7 -0
  36. package/esm/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.d.ts.map +1 -0
  37. package/esm/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.js +35 -0
  38. package/esm/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.js.map +1 -0
  39. package/esm/models/createriskdto.d.ts +1 -1
  40. package/esm/models/ismscontrollersetcoveragev1op.d.ts +31 -0
  41. package/esm/models/ismscontrollersetcoveragev1op.d.ts.map +1 -0
  42. package/esm/models/ismscontrollersetcoveragev1op.js +28 -0
  43. package/esm/models/ismscontrollersetcoveragev1op.js.map +1 -0
  44. package/esm/models/ismsregisterscontrollercreaterowv1op.d.ts +181 -1
  45. package/esm/models/ismsregisterscontrollercreaterowv1op.d.ts.map +1 -1
  46. package/esm/models/ismsregisterscontrollercreaterowv1op.js +173 -1
  47. package/esm/models/ismsregisterscontrollercreaterowv1op.js.map +1 -1
  48. package/esm/models/ismsregisterscontrollerdeleterowv1op.d.ts +49 -1
  49. package/esm/models/ismsregisterscontrollerdeleterowv1op.d.ts.map +1 -1
  50. package/esm/models/ismsregisterscontrollerdeleterowv1op.js +44 -1
  51. package/esm/models/ismsregisterscontrollerdeleterowv1op.js.map +1 -1
  52. package/esm/models/ismsregisterscontrollerimportvendorsassoftwarev1op.d.ts +14 -0
  53. package/esm/models/ismsregisterscontrollerimportvendorsassoftwarev1op.d.ts.map +1 -0
  54. package/esm/models/ismsregisterscontrollerimportvendorsassoftwarev1op.js +14 -0
  55. package/esm/models/ismsregisterscontrollerimportvendorsassoftwarev1op.js.map +1 -0
  56. package/esm/models/ismsregisterscontrollerupdaterowv1op.d.ts +181 -1
  57. package/esm/models/ismsregisterscontrollerupdaterowv1op.d.ts.map +1 -1
  58. package/esm/models/ismsregisterscontrollerupdaterowv1op.js +173 -1
  59. package/esm/models/ismsregisterscontrollerupdaterowv1op.js.map +1 -1
  60. package/esm/models/policiescontrollerextractpolicydocumentv1op.d.ts +9 -0
  61. package/esm/models/policiescontrollerextractpolicydocumentv1op.d.ts.map +1 -0
  62. package/esm/models/policiescontrollerextractpolicydocumentv1op.js +12 -0
  63. package/esm/models/policiescontrollerextractpolicydocumentv1op.js.map +1 -0
  64. package/esm/models/policydocumentextractionresponsedto.d.ts +18 -0
  65. package/esm/models/policydocumentextractionresponsedto.d.ts.map +1 -0
  66. package/esm/models/policydocumentextractionresponsedto.js +13 -0
  67. package/esm/models/policydocumentextractionresponsedto.js.map +1 -0
  68. package/esm/models/requestpolicydocumentextractiondto.d.ts +6 -0
  69. package/esm/models/requestpolicydocumentextractiondto.d.ts.map +1 -0
  70. package/esm/models/requestpolicydocumentextractiondto.js +9 -0
  71. package/esm/models/requestpolicydocumentextractiondto.js.map +1 -0
  72. package/esm/models/riskscontrollercreateriskv1op.d.ts +1 -1
  73. package/esm/models/riskscontrollergetallrisksv1op.d.ts +2 -2
  74. package/esm/models/riskscontrollergetriskbyidv1op.d.ts +1 -1
  75. package/esm/models/riskscontrollerupdateriskv1op.d.ts +1 -1
  76. package/esm/models/updateriskdto.d.ts +1 -1
  77. package/esm/tool-names.d.ts.map +1 -1
  78. package/esm/tool-names.js +13 -1
  79. package/esm/tool-names.js.map +1 -1
  80. package/package.json +8 -4
  81. package/src/funcs/ismsISMSControllerSetCoverageV1.ts +154 -0
  82. package/src/funcs/ismsISMSRegistersControllerCreateRowV1.ts +1 -1
  83. package/src/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.ts +159 -0
  84. package/src/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.ts +160 -0
  85. package/src/landing-page.ts +1 -1
  86. package/src/lib/config.ts +3 -3
  87. package/src/mcp-server/mcp-server.ts +1 -1
  88. package/src/mcp-server/server.ts +7 -1
  89. package/src/mcp-server/tools/ismsISMSControllerSetCoverageV1.ts +44 -0
  90. package/src/mcp-server/tools/ismsISMSRegistersControllerCreateRowV1.ts +1 -1
  91. package/src/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.ts +45 -0
  92. package/src/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.ts +44 -0
  93. package/src/models/ismscontrollersetcoveragev1op.ts +67 -0
  94. package/src/models/ismsregisterscontrollercreaterowv1op.ts +249 -2
  95. package/src/models/ismsregisterscontrollerdeleterowv1op.ts +56 -2
  96. package/src/models/ismsregisterscontrollerimportvendorsassoftwarev1op.ts +38 -0
  97. package/src/models/ismsregisterscontrollerupdaterowv1op.ts +249 -2
  98. package/src/models/policiescontrollerextractpolicydocumentv1op.ts +25 -0
  99. package/src/models/policydocumentextractionresponsedto.ts +44 -0
  100. package/src/models/requestpolicydocumentextractiondto.ts +18 -0
  101. package/src/tool-names.ts +13 -1
@@ -0,0 +1,159 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: ec10e1a51c70
4
+ */
5
+
6
+ import { CompAiCore } from "../core.js";
7
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import { APIError } from "../models/errors/apierror.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
22
+ import {
23
+ IsmsRegistersControllerImportVendorsAsSoftwareV1Request,
24
+ IsmsRegistersControllerImportVendorsAsSoftwareV1Request$zodSchema,
25
+ } from "../models/ismsregisterscontrollerimportvendorsassoftwarev1op.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Add vendors to the Approved Software Register in one action
31
+ *
32
+ * @remarks
33
+ * Adds the chosen vendors as approved software rows in one transaction. Vendors already listed are skipped, not duplicated. "Where it is used" is left unanswered: a supplier record does not say where its product runs.
34
+ */
35
+ export function ismsISMSRegistersControllerImportVendorsAsSoftwareV1(
36
+ client$: CompAiCore,
37
+ request: IsmsRegistersControllerImportVendorsAsSoftwareV1Request,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ Response,
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client$,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client$: CompAiCore,
60
+ request: IsmsRegistersControllerImportVendorsAsSoftwareV1Request,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ Response,
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const parsed$ = safeParse(
78
+ request,
79
+ (value$) =>
80
+ IsmsRegistersControllerImportVendorsAsSoftwareV1Request$zodSchema.parse(
81
+ value$,
82
+ ),
83
+ "Input validation failed",
84
+ );
85
+ if (!parsed$.ok) {
86
+ return [parsed$, { status: "invalid" }];
87
+ }
88
+ const payload$ = parsed$.value;
89
+ const body$ = encodeJSON("body", payload$.body, { explode: true });
90
+
91
+ const pathParams$ = {
92
+ id: encodeSimple("id", payload$.id, {
93
+ explode: false,
94
+ charEncoding: "percent",
95
+ }),
96
+ };
97
+ const path$ = pathToFunc(
98
+ "/v1/isms/documents/{id}/approved-software/import-vendors",
99
+ )(
100
+ pathParams$,
101
+ );
102
+
103
+ const headers$ = new Headers(compactMap({
104
+ "Content-Type": "application/json",
105
+ Accept: "*/*",
106
+ }));
107
+ const securityInput = await extractSecurity(client$._options.security);
108
+ const requestSecurity = resolveGlobalSecurity(securityInput);
109
+
110
+ const context = {
111
+ options: client$._options,
112
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
113
+ operationID: "IsmsRegistersController_importVendorsAsSoftware_v1",
114
+ oAuth2Scopes: null,
115
+ resolvedSecurity: requestSecurity,
116
+ securitySource: client$._options.security,
117
+ retryConfig: options?.retries
118
+ || client$._options.retryConfig
119
+ || { strategy: "none" },
120
+ retryCodes: options?.retryCodes || [
121
+ "429",
122
+ "500",
123
+ "502",
124
+ "503",
125
+ "504",
126
+ ],
127
+ };
128
+
129
+ const requestRes = client$._createRequest(context, {
130
+ security: requestSecurity,
131
+ method: "POST",
132
+ baseURL: options?.serverURL,
133
+ path: path$,
134
+ headers: headers$,
135
+ body: body$,
136
+ userAgent: client$._options.userAgent,
137
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
138
+ || 120000,
139
+ }, options);
140
+ if (!requestRes.ok) {
141
+ return [requestRes, { status: "invalid" }];
142
+ }
143
+ const req$ = requestRes.value;
144
+
145
+ const doResult = await client$._do(req$, {
146
+ context,
147
+ errorCodes: [],
148
+ retryConfig: context.retryConfig,
149
+ retryCodes: context.retryCodes,
150
+ });
151
+ if (!doResult.ok) {
152
+ return [doResult, { status: "request-error", request: req$ }];
153
+ }
154
+ return [doResult, {
155
+ status: "complete",
156
+ "request": req$,
157
+ response: doResult.value,
158
+ }];
159
+ }
@@ -0,0 +1,160 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 734646bd07fa
4
+ */
5
+
6
+ import { CompAiCore } from "../core.js";
7
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import { APIError } from "../models/errors/apierror.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
22
+ import {
23
+ PoliciesControllerExtractPolicyDocumentV1Request,
24
+ PoliciesControllerExtractPolicyDocumentV1Request$zodSchema,
25
+ } from "../models/policiescontrollerextractpolicydocumentv1op.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Re-read an attached policy document into the editor
31
+ *
32
+ * @remarks
33
+ * Queues a fresh read of the PDF already attached to a policy, storing its text as the version's editor content. Use when an uploaded policy still reads as empty because its first read never produced any text.
34
+ */
35
+ export function policiesPoliciesControllerExtractPolicyDocumentV1(
36
+ client$: CompAiCore,
37
+ request: PoliciesControllerExtractPolicyDocumentV1Request,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ Response,
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client$,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client$: CompAiCore,
60
+ request: PoliciesControllerExtractPolicyDocumentV1Request,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ Response,
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const parsed$ = safeParse(
78
+ request,
79
+ (value$) =>
80
+ PoliciesControllerExtractPolicyDocumentV1Request$zodSchema.parse(value$),
81
+ "Input validation failed",
82
+ );
83
+ if (!parsed$.ok) {
84
+ return [parsed$, { status: "invalid" }];
85
+ }
86
+ const payload$ = parsed$.value;
87
+ const body$ = encodeJSON("body", payload$.body, { explode: true });
88
+
89
+ const pathParams$ = {
90
+ id: encodeSimple("id", payload$.id, {
91
+ explode: false,
92
+ charEncoding: "percent",
93
+ }),
94
+ };
95
+ const path$ = pathToFunc("/v1/policies/{id}/extract-document")(
96
+ pathParams$,
97
+ );
98
+
99
+ const headers$ = new Headers(compactMap({
100
+ "Content-Type": "application/json",
101
+ Accept: "application/json",
102
+ "X-Organization-Id": encodeSimple(
103
+ "X-Organization-Id",
104
+ payload$.xOrganizationId,
105
+ { explode: false, charEncoding: "none" },
106
+ ),
107
+ }));
108
+ const securityInput = await extractSecurity(client$._options.security);
109
+ const requestSecurity = resolveGlobalSecurity(securityInput);
110
+
111
+ const context = {
112
+ options: client$._options,
113
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
114
+ operationID: "PoliciesController_extractPolicyDocument_v1",
115
+ oAuth2Scopes: null,
116
+ resolvedSecurity: requestSecurity,
117
+ securitySource: client$._options.security,
118
+ retryConfig: options?.retries
119
+ || client$._options.retryConfig
120
+ || { strategy: "none" },
121
+ retryCodes: options?.retryCodes || [
122
+ "429",
123
+ "500",
124
+ "502",
125
+ "503",
126
+ "504",
127
+ ],
128
+ };
129
+
130
+ const requestRes = client$._createRequest(context, {
131
+ security: requestSecurity,
132
+ method: "POST",
133
+ baseURL: options?.serverURL,
134
+ path: path$,
135
+ headers: headers$,
136
+ body: body$,
137
+ userAgent: client$._options.userAgent,
138
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
139
+ || 120000,
140
+ }, options);
141
+ if (!requestRes.ok) {
142
+ return [requestRes, { status: "invalid" }];
143
+ }
144
+ const req$ = requestRes.value;
145
+
146
+ const doResult = await client$._do(req$, {
147
+ context,
148
+ errorCodes: [],
149
+ retryConfig: context.retryConfig,
150
+ retryCodes: context.retryCodes,
151
+ });
152
+ if (!doResult.ok) {
153
+ return [doResult, { status: "request-error", request: req$ }];
154
+ }
155
+ return [doResult, {
156
+ status: "complete",
157
+ "request": req$,
158
+ response: doResult.value,
159
+ }];
160
+ }
@@ -931,7 +931,7 @@ http_headers = { "apikey" = "YOUR_APIKEY" }`;
931
931
  <h1>Instructions</h1>
932
932
  <p>One-click installation for Claude Desktop users</p>
933
933
  <div class="instruction-item">
934
- <a href="https://github.com/trycompai/comp-v2/releases/download/v0.3.3/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
934
+ <a href="https://github.com/trycompai/comp-v2/releases/download/v0.3.5/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
935
935
  📥 Download MCP Bundle
936
936
  </a>
937
937
  </div>
package/src/lib/config.ts CHANGED
@@ -66,8 +66,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
66
66
  export const SDK_METADATA = {
67
67
  language: "typescript",
68
68
  openapiDocVersion: "1.0",
69
- sdkVersion: "0.3.3",
70
- genVersion: "2.928.0",
69
+ sdkVersion: "0.3.5",
70
+ genVersion: "2.931.0",
71
71
  userAgent:
72
- "speakeasy-sdk/mcp-typescript 0.3.3 2.928.0 1.0 @trycompai/mcp-server",
72
+ "speakeasy-sdk/mcp-typescript 0.3.5 2.931.0 1.0 @trycompai/mcp-server",
73
73
  } as const;
@@ -22,7 +22,7 @@ const routes = buildRouteMap({
22
22
  export const app = buildApplication(routes, {
23
23
  name: "mcp",
24
24
  versionInfo: {
25
- currentVersion: "0.3.3",
25
+ currentVersion: "0.3.5",
26
26
  },
27
27
  });
28
28
 
@@ -173,11 +173,13 @@ import { tool$ismsISMSControllerRemoveControlV1 } from "./tools/ismsISMSControll
173
173
  import { tool$ismsISMSControllerRemoveDocumentFileV1 } from "./tools/ismsISMSControllerRemoveDocumentFileV1.js";
174
174
  import { tool$ismsISMSControllerRiskTreatmentV1 } from "./tools/ismsISMSControllerRiskTreatmentV1.js";
175
175
  import { tool$ismsISMSControllerSetContentSourceV1 } from "./tools/ismsISMSControllerSetContentSourceV1.js";
176
+ import { tool$ismsISMSControllerSetCoverageV1 } from "./tools/ismsISMSControllerSetCoverageV1.js";
176
177
  import { tool$ismsISMSControllerSubmitForApprovalV1 } from "./tools/ismsISMSControllerSubmitForApprovalV1.js";
177
178
  import { tool$ismsISMSControllerUploadDocumentFileV1 } from "./tools/ismsISMSControllerUploadDocumentFileV1.js";
178
179
  import { tool$ismsISMSRegistersControllerBulkCreateMeasurementsV1 } from "./tools/ismsISMSRegistersControllerBulkCreateMeasurementsV1.js";
179
180
  import { tool$ismsISMSRegistersControllerCreateRowV1 } from "./tools/ismsISMSRegistersControllerCreateRowV1.js";
180
181
  import { tool$ismsISMSRegistersControllerDeleteRowV1 } from "./tools/ismsISMSRegistersControllerDeleteRowV1.js";
182
+ import { tool$ismsISMSRegistersControllerImportVendorsAsSoftwareV1 } from "./tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js";
181
183
  import { tool$ismsISMSRegistersControllerSaveNarrativeV1 } from "./tools/ismsISMSRegistersControllerSaveNarrativeV1.js";
182
184
  import { tool$ismsISMSRegistersControllerUpdateRowV1 } from "./tools/ismsISMSRegistersControllerUpdateRowV1.js";
183
185
  import { tool$knowledgeBaseKnowledgeBaseControllerDeleteAllManualAnswersV1 } from "./tools/knowledgeBaseKnowledgeBaseControllerDeleteAllManualAnswersV1.js";
@@ -257,6 +259,7 @@ import { tool$policiesPoliciesControllerDeletePolicyV1 } from "./tools/policiesP
257
259
  import { tool$policiesPoliciesControllerDeletePolicyVersionV1 } from "./tools/policiesPoliciesControllerDeletePolicyVersionV1.js";
258
260
  import { tool$policiesPoliciesControllerDenyPolicyChangesV1 } from "./tools/policiesPoliciesControllerDenyPolicyChangesV1.js";
259
261
  import { tool$policiesPoliciesControllerDownloadAllPoliciesV1 } from "./tools/policiesPoliciesControllerDownloadAllPoliciesV1.js";
262
+ import { tool$policiesPoliciesControllerExtractPolicyDocumentV1 } from "./tools/policiesPoliciesControllerExtractPolicyDocumentV1.js";
260
263
  import { tool$policiesPoliciesControllerGetAllPoliciesV1 } from "./tools/policiesPoliciesControllerGetAllPoliciesV1.js";
261
264
  import { tool$policiesPoliciesControllerGetPdfSignedUrlV1 } from "./tools/policiesPoliciesControllerGetPdfSignedUrlV1.js";
262
265
  import { tool$policiesPoliciesControllerGetPdfUrlV1 } from "./tools/policiesPoliciesControllerGetPdfUrlV1.js";
@@ -454,7 +457,7 @@ export function createMCPServer(deps: {
454
457
  }) {
455
458
  const server = new McpServer({
456
459
  name: "CompAi",
457
- version: "0.3.3",
460
+ version: "0.3.5",
458
461
  });
459
462
 
460
463
  const getClient = deps.getSDK || (() =>
@@ -645,6 +648,7 @@ export function createMCPServer(deps: {
645
648
  tool(tool$policiesPoliciesControllerDeletePolicyPdfV1);
646
649
  tool(tool$policiesPoliciesControllerRequestPolicyPdfUploadUrlV1);
647
650
  tool(tool$policiesPoliciesControllerConfirmPolicyPdfUploadedV1);
651
+ tool(tool$policiesPoliciesControllerExtractPolicyDocumentV1);
648
652
  tool(tool$policiesPoliciesControllerGetPdfUrlV1);
649
653
  tool(tool$policiesPoliciesControllerRemovePolicyControlV1);
650
654
  tool(tool$policiesPoliciesControllerGetPolicyV1);
@@ -820,6 +824,7 @@ export function createMCPServer(deps: {
820
824
  tool(tool$ismsISMSControllerGetDocumentV1);
821
825
  tool(tool$ismsISMSControllerAddControlsV1);
822
826
  tool(tool$ismsISMSControllerRemoveControlV1);
827
+ tool(tool$ismsISMSControllerSetCoverageV1);
823
828
  tool(tool$ismsISMSControllerGenerateV1);
824
829
  tool(tool$ismsISMSControllerSubmitForApprovalV1);
825
830
  tool(tool$ismsISMSControllerApproveV1);
@@ -835,6 +840,7 @@ export function createMCPServer(deps: {
835
840
  tool(tool$ismsISMSRegistersControllerUpdateRowV1);
836
841
  tool(tool$ismsISMSRegistersControllerDeleteRowV1);
837
842
  tool(tool$ismsISMSRegistersControllerBulkCreateMeasurementsV1);
843
+ tool(tool$ismsISMSRegistersControllerImportVendorsAsSoftwareV1);
838
844
  tool(tool$ismsISMSRegistersControllerSaveNarrativeV1);
839
845
  tool(tool$taskManagementTaskManagementControllerGetTaskItemsStatsV1);
840
846
  tool(tool$taskManagementTaskManagementControllerGetTaskItemsV1);
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: ec379fd3a90c
4
+ */
5
+
6
+ import { ismsISMSControllerSetCoverageV1 } from "../../funcs/ismsISMSControllerSetCoverageV1.js";
7
+ import { IsmsControllerSetCoverageV1Request$zodSchema } from "../../models/ismscontrollersetcoveragev1op.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: IsmsControllerSetCoverageV1Request$zodSchema,
12
+ };
13
+
14
+ export const tool$ismsISMSControllerSetCoverageV1: ToolDefinition<typeof args> =
15
+ {
16
+ name: "set-coverage",
17
+ description: `Set how much of an ISMS document Comp AI holds
18
+
19
+ Marks a whole ISMS document as included, maintained outside Comp AI, or not applicable, which requires a written justification. External renders a pointer to where the content lives. Per-section coverage is not available yet.`,
20
+ annotations: {
21
+ "title": "",
22
+ "destructiveHint": false,
23
+ "idempotentHint": false,
24
+ "openWorldHint": false,
25
+ "readOnlyHint": false,
26
+ },
27
+ args,
28
+ tool: async (client, args, ctx) => {
29
+ const [result] = await ismsISMSControllerSetCoverageV1(
30
+ client,
31
+ args.request,
32
+ { fetchOptions: { signal: ctx.signal } },
33
+ ).$inspect();
34
+
35
+ if (!result.ok) {
36
+ return {
37
+ content: [{ type: "text", text: result.error.message }],
38
+ isError: true,
39
+ };
40
+ }
41
+
42
+ return formatResult(result.value);
43
+ },
44
+ };
@@ -17,7 +17,7 @@ export const tool$ismsISMSRegistersControllerCreateRowV1: ToolDefinition<
17
17
  name: "create-row",
18
18
  description: `Create a row in an ISMS register
19
19
 
20
- Adds a row to an ISMS register. Valid values: context-issues, interested-parties, requirements, objectives, roles, role-assignments, metrics, measurements, audits, audit-controls, audit-findings, reviews, review-inputs, review-actions.`,
20
+ Create a row in an ISMS register in Comp AI. Build and maintain the ISO 27001 ISMS document set — scope, leadership commitment, context, interested parties, objectives, roles, monitoring, internal audit, and management review.`,
21
21
  annotations: {
22
22
  "title": "",
23
23
  "destructiveHint": false,
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 64e8d6b5a4c3
4
+ */
5
+
6
+ import { ismsISMSRegistersControllerImportVendorsAsSoftwareV1 } from "../../funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js";
7
+ import { IsmsRegistersControllerImportVendorsAsSoftwareV1Request$zodSchema } from "../../models/ismsregisterscontrollerimportvendorsassoftwarev1op.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: IsmsRegistersControllerImportVendorsAsSoftwareV1Request$zodSchema,
12
+ };
13
+
14
+ export const tool$ismsISMSRegistersControllerImportVendorsAsSoftwareV1:
15
+ ToolDefinition<typeof args> = {
16
+ name: "import-vendors-as-software",
17
+ description: `Add vendors to the Approved Software Register in one action
18
+
19
+ Adds the chosen vendors as approved software rows in one transaction. Vendors already listed are skipped, not duplicated. "Where it is used" is left unanswered: a supplier record does not say where its product runs.`,
20
+ annotations: {
21
+ "title": "",
22
+ "destructiveHint": false,
23
+ "idempotentHint": false,
24
+ "openWorldHint": false,
25
+ "readOnlyHint": false,
26
+ },
27
+ args,
28
+ tool: async (client, args, ctx) => {
29
+ const [result] =
30
+ await ismsISMSRegistersControllerImportVendorsAsSoftwareV1(
31
+ client,
32
+ args.request,
33
+ { fetchOptions: { signal: ctx.signal } },
34
+ ).$inspect();
35
+
36
+ if (!result.ok) {
37
+ return {
38
+ content: [{ type: "text", text: result.error.message }],
39
+ isError: true,
40
+ };
41
+ }
42
+
43
+ return formatResult(result.value);
44
+ },
45
+ };
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: fd7a8fbac445
4
+ */
5
+
6
+ import { policiesPoliciesControllerExtractPolicyDocumentV1 } from "../../funcs/policiesPoliciesControllerExtractPolicyDocumentV1.js";
7
+ import { PoliciesControllerExtractPolicyDocumentV1Request$zodSchema } from "../../models/policiescontrollerextractpolicydocumentv1op.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: PoliciesControllerExtractPolicyDocumentV1Request$zodSchema,
12
+ };
13
+
14
+ export const tool$policiesPoliciesControllerExtractPolicyDocumentV1:
15
+ ToolDefinition<typeof args> = {
16
+ name: "extract-policy-document",
17
+ description: `Re-read an attached policy document into the editor
18
+
19
+ Queues a fresh read of the PDF already attached to a policy, storing its text as the version's editor content. Use when an uploaded policy still reads as empty because its first read never produced any text.`,
20
+ annotations: {
21
+ "title": "",
22
+ "destructiveHint": false,
23
+ "idempotentHint": false,
24
+ "openWorldHint": false,
25
+ "readOnlyHint": false,
26
+ },
27
+ args,
28
+ tool: async (client, args, ctx) => {
29
+ const [result] = await policiesPoliciesControllerExtractPolicyDocumentV1(
30
+ client,
31
+ args.request,
32
+ { fetchOptions: { signal: ctx.signal } },
33
+ ).$inspect();
34
+
35
+ if (!result.ok) {
36
+ return {
37
+ content: [{ type: "text", text: result.error.message }],
38
+ isError: true,
39
+ };
40
+ }
41
+
42
+ return formatResult(result.value);
43
+ },
44
+ };
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: cdce17718bae
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import { ClosedEnum } from "../types/enums.js";
8
+
9
+ export const IsmsControllerSetCoverageV1Status = {
10
+ Included: "included",
11
+ External: "external",
12
+ NotApplicable: "not_applicable",
13
+ } as const;
14
+ export type IsmsControllerSetCoverageV1Status = ClosedEnum<
15
+ typeof IsmsControllerSetCoverageV1Status
16
+ >;
17
+
18
+ export const IsmsControllerSetCoverageV1Status$zodSchema = z.enum([
19
+ "included",
20
+ "external",
21
+ "not_applicable",
22
+ ]);
23
+
24
+ /**
25
+ * Coverage decision for a whole ISMS document (per-section coverage is not available yet)
26
+ */
27
+ export type IsmsControllerSetCoverageV1RequestBody = {
28
+ sectionKey?: string | undefined;
29
+ status: IsmsControllerSetCoverageV1Status;
30
+ externalLocation?: string | null | undefined;
31
+ externalLastReviewedAt?: string | null | undefined;
32
+ naJustification?: string | null | undefined;
33
+ naAnnexAControlRef?: string | null | undefined;
34
+ };
35
+
36
+ export const IsmsControllerSetCoverageV1RequestBody$zodSchema: z.ZodType<
37
+ IsmsControllerSetCoverageV1RequestBody
38
+ > = z.object({
39
+ externalLastReviewedAt: z.string().nullable().optional().describe(
40
+ "YYYY-MM-DD",
41
+ ),
42
+ externalLocation: z.string().nullable().optional(),
43
+ naAnnexAControlRef: z.string().nullable().optional().describe(
44
+ "Annex A control the justification answers, e.g. \"5.1\".",
45
+ ),
46
+ naJustification: z.string().nullable().optional(),
47
+ sectionKey: z.string().optional().describe(
48
+ "Omit, or send an empty or whitespace-only string: coverage always applies to the whole document. Per-section coverage is not available yet, so any other value is rejected with 400.",
49
+ ),
50
+ status: IsmsControllerSetCoverageV1Status$zodSchema,
51
+ }).describe(
52
+ "Coverage decision for a whole ISMS document (per-section coverage is not available yet)",
53
+ );
54
+
55
+ export type IsmsControllerSetCoverageV1Request = {
56
+ id: string;
57
+ body: IsmsControllerSetCoverageV1RequestBody;
58
+ };
59
+
60
+ export const IsmsControllerSetCoverageV1Request$zodSchema: z.ZodType<
61
+ IsmsControllerSetCoverageV1Request
62
+ > = z.object({
63
+ body: z.lazy(() => IsmsControllerSetCoverageV1RequestBody$zodSchema).describe(
64
+ "Coverage decision for a whole ISMS document (per-section coverage is not available yet)",
65
+ ),
66
+ id: z.string(),
67
+ });