cataam-mcp-server 0.1.1 → 0.1.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.
- package/README.md +19 -9
- package/dist/client.js +113 -0
- package/dist/client.js.map +1 -1
- package/dist/tools.js +274 -0
- package/dist/tools.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# cataam-mcp-server
|
|
2
2
|
|
|
3
3
|
The MCP connector for Cataam. TypeScript, built on `@modelcontextprotocol/sdk`.
|
|
4
|
-
Exposes Cataam's `/api/audit/**` compliance surface
|
|
4
|
+
Exposes Cataam's `/api/audit/**` compliance surface and the `/api/okf/**` OKF Context
|
|
5
|
+
Engine (open compliance-graph export) as MCP tools.
|
|
5
6
|
|
|
6
7
|
## Layout
|
|
7
8
|
|
|
8
9
|
```
|
|
9
10
|
src/
|
|
10
11
|
config.ts — env-var config + auth-mode selection (apiKey | jwt)
|
|
11
|
-
client.ts — typed HTTP client for /api/audit (
|
|
12
|
-
tools.ts — the
|
|
12
|
+
client.ts — typed HTTP client for /api/audit + /api/okf (X-API-Key and JWT+refresh)
|
|
13
|
+
tools.ts — the MCP tools (one-tool-per-action; write tools require confirm:true)
|
|
13
14
|
index.ts — entry point: stdio (default) or streamable-HTTP transport
|
|
14
15
|
test/
|
|
15
16
|
smoke.mjs — end-to-end test (spawns server over stdio, calls a read tool live)
|
|
@@ -46,12 +47,21 @@ fast with a clear message if neither is configured.
|
|
|
46
47
|
|
|
47
48
|
## Auth scoping note
|
|
48
49
|
|
|
49
|
-
Cataam's `X-API-Key` filter
|
|
50
|
-
All tools
|
|
51
|
-
|
|
50
|
+
Cataam's `X-API-Key` filter covers `/api/audit/**`, `/api/okf/**` (and a reserved
|
|
51
|
+
`/api/iasm/**`). All tools work under **both** auth modes; the OKF tools require a backend
|
|
52
|
+
that scopes the API-key filter to `/api/okf/**` (cataam-mcp-server ≥ 0.1.5 / platform with
|
|
53
|
+
that change) — under JWT they work regardless.
|
|
52
54
|
|
|
53
55
|
## Tools
|
|
54
56
|
|
|
55
|
-
See [`../README.md`](../README.md#mcp-tools).
|
|
56
|
-
|
|
57
|
-
`
|
|
57
|
+
See [`../README.md`](../README.md#mcp-tools).
|
|
58
|
+
|
|
59
|
+
**Compliance (`/api/audit`).** Read: `list_compliance_tests`, `get_compliance_overview`,
|
|
60
|
+
`list_failing_alerts`, `list_evidence_status`. Write (`confirm:true`):
|
|
61
|
+
`rerun_compliance_test`, `update_test_due_date`, `link_test_to_jira`, `publish_policies`,
|
|
62
|
+
`publish_documents`, `remediate_document_control`, `generate_network_diagram_from_iasm`,
|
|
63
|
+
`create_evidence_request`, `attach_evidence`.
|
|
64
|
+
|
|
65
|
+
**OKF Context Engine (`/api/okf`).** Read: `get_okf_status`, `list_okf_exports`,
|
|
66
|
+
`get_okf_artifact` (log.md / MANIFEST.json). Write (`confirm:true`): `generate_okf_export`,
|
|
67
|
+
`configure_okf`, `pin_okf_export`, `resync_okf_git`.
|
package/dist/client.js
CHANGED
|
@@ -126,6 +126,119 @@ export class CataamClient {
|
|
|
126
126
|
linkToJira(auditProgressId, jiraId) {
|
|
127
127
|
return this.request("PATCH", `/api/audit/tests/${auditProgressId}/jira-link`, { body: { jiraId } });
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* POST /api/audit/governance/publish-policies — publish every adopted-but-unpublished policy
|
|
131
|
+
* for the org. A genuine governance action that lifts the readiness policy sub-score.
|
|
132
|
+
*/
|
|
133
|
+
publishPolicies() {
|
|
134
|
+
return this.request("POST", "/api/audit/governance/publish-policies");
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* POST /api/audit/governance/finalize-documents — put every not-yet-in-force document IN_FORCE
|
|
138
|
+
* for the org. Genuine governance action that lifts the readiness evidence sub-score.
|
|
139
|
+
*/
|
|
140
|
+
finalizeDocuments() {
|
|
141
|
+
return this.request("POST", "/api/audit/governance/finalize-documents");
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* POST /api/audit/documents/remediate — author + finalise the document a
|
|
145
|
+
* document-presence control looks for, then re-run the control. The authoring
|
|
146
|
+
* half that finalizeDocuments() (finalise-only) cannot do. Returns the new
|
|
147
|
+
* document id and the genuine post-run verdict.
|
|
148
|
+
*/
|
|
149
|
+
remediateDocumentControl(params) {
|
|
150
|
+
return this.request("POST", "/api/audit/documents/remediate", { body: params });
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* POST /api/audit/documents/network-diagram-from-iasm — generate a SOC 2 evidence
|
|
154
|
+
* document straight from the iASM Attack Graph (discovered topology), finalise it
|
|
155
|
+
* IN_FORCE, and re-run the matching document-presence control. Supports
|
|
156
|
+
* kind="network-diagram" (Network diagram control) and kind="data-inventory"
|
|
157
|
+
* (Maintain data inventory map control). Returns the new document id, asset/edge
|
|
158
|
+
* counts, and the genuine post-run verdict.
|
|
159
|
+
*/
|
|
160
|
+
generateIasmEvidenceDocument(params) {
|
|
161
|
+
return this.request("POST", "/api/audit/documents/network-diagram-from-iasm", { body: params });
|
|
162
|
+
}
|
|
163
|
+
// ---- evidence workflow (manual-test execution) -----------------------
|
|
164
|
+
/** POST /api/audit/evidence/requests/by-test — open an evidence request for a control. */
|
|
165
|
+
createEvidenceRequest(params) {
|
|
166
|
+
return this.request("POST", "/api/audit/evidence/requests/by-test", { body: params });
|
|
167
|
+
}
|
|
168
|
+
/** POST /api/audit/evidence/requests/{id}/items/note — attach a free-text note. */
|
|
169
|
+
attachEvidenceNote(requestId, notes) {
|
|
170
|
+
return this.request("POST", `/api/audit/evidence/requests/${requestId}/items/note`, {
|
|
171
|
+
body: { notes },
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/** POST /api/audit/evidence/requests/{id}/items/link — attach an external link. */
|
|
175
|
+
attachEvidenceLink(requestId, externalLink, notes) {
|
|
176
|
+
return this.request("POST", `/api/audit/evidence/requests/${requestId}/items/link`, {
|
|
177
|
+
body: { externalLink, notes },
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/** GET /api/audit/evidence/requests/test/{testId} — requests already opened for a control. */
|
|
181
|
+
listEvidenceForTest(testId) {
|
|
182
|
+
return this.request("GET", `/api/audit/evidence/requests/test/${testId}`);
|
|
183
|
+
}
|
|
184
|
+
/** GET /api/audit/evidence/summary — org-wide evidence counts. */
|
|
185
|
+
getEvidenceSummary() {
|
|
186
|
+
return this.request("GET", "/api/audit/evidence/summary");
|
|
187
|
+
}
|
|
188
|
+
// ---- OKF Context Engine (/api/okf) -----------------------------------
|
|
189
|
+
/** GET /api/okf/status — engine status: enabled, delivery mode, last sync, export count. */
|
|
190
|
+
getOkfStatus() {
|
|
191
|
+
return this.request("GET", "/api/okf/status");
|
|
192
|
+
}
|
|
193
|
+
/** GET /api/okf/exports — list of point-in-time export bundles (newest first). */
|
|
194
|
+
listOkfExports() {
|
|
195
|
+
return this.request("GET", "/api/okf/exports");
|
|
196
|
+
}
|
|
197
|
+
/** POST /api/okf/export — generate a new signed point-in-time export. */
|
|
198
|
+
generateOkfExport() {
|
|
199
|
+
return this.request("POST", "/api/okf/export");
|
|
200
|
+
}
|
|
201
|
+
/** POST /api/okf/resync — trigger a Git-sync delivery now (Git delivery modes only). */
|
|
202
|
+
resyncOkf() {
|
|
203
|
+
return this.request("POST", "/api/okf/resync");
|
|
204
|
+
}
|
|
205
|
+
/** POST /api/okf/exports/{version}/pin — pin an export (exempt from retention GC). */
|
|
206
|
+
pinOkfExport(version) {
|
|
207
|
+
return this.request("POST", `/api/okf/exports/${encodeURIComponent(version)}/pin`);
|
|
208
|
+
}
|
|
209
|
+
/** PUT /api/okf/config — update engine settings; returns the saved config. */
|
|
210
|
+
configureOkf(body) {
|
|
211
|
+
return this.request("PUT", "/api/okf/config", { body });
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* GET /api/okf/exports/{version}/download?artifact=log|manifest — fetch a TEXT
|
|
215
|
+
* artifact from a bundle. log.md is markdown; manifest is JSON text. The binary
|
|
216
|
+
* "bundle" zip is intentionally not exposed over MCP — the UI signed-URL download
|
|
217
|
+
* is the right channel for that.
|
|
218
|
+
*/
|
|
219
|
+
getOkfArtifact(version, artifact) {
|
|
220
|
+
return this.requestText(`/api/okf/exports/${encodeURIComponent(version)}/download`, { artifact });
|
|
221
|
+
}
|
|
222
|
+
/** Like request() but returns raw response text (no JSON.parse) — for log.md / manifest. */
|
|
223
|
+
async requestText(path, query) {
|
|
224
|
+
const url = new URL(this.cfg.baseUrl + path);
|
|
225
|
+
if (query) {
|
|
226
|
+
for (const [k, v] of Object.entries(query)) {
|
|
227
|
+
if (v !== undefined && v !== "")
|
|
228
|
+
url.searchParams.set(k, String(v));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
const doFetch = async () => fetch(url, { method: "GET", headers: { ...(await this.authHeaders()) } });
|
|
232
|
+
let res = await doFetch();
|
|
233
|
+
if (res.status === 401 && authMode(this.cfg) === "jwt") {
|
|
234
|
+
this.token = undefined;
|
|
235
|
+
await this.login();
|
|
236
|
+
res = await doFetch();
|
|
237
|
+
}
|
|
238
|
+
if (!res.ok)
|
|
239
|
+
throw new CataamError(`GET ${path} → ${res.status}`, res.status, await safeText(res));
|
|
240
|
+
return res.text();
|
|
241
|
+
}
|
|
129
242
|
}
|
|
130
243
|
async function safeText(res) {
|
|
131
244
|
try {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.js
CHANGED
|
@@ -193,5 +193,279 @@ export function registerTools(server, client) {
|
|
|
193
193
|
auditLog("link_test_to_jira", { auditProgressId, jiraId });
|
|
194
194
|
return guard(() => client.linkToJira(auditProgressId, jiraId));
|
|
195
195
|
});
|
|
196
|
+
// ---- ACT: publish governance policies --------------------------------
|
|
197
|
+
server.registerTool("publish_policies", {
|
|
198
|
+
title: "Publish adopted policies",
|
|
199
|
+
description: "Publish every adopted-but-unpublished policy for the org in one step — the governance " +
|
|
200
|
+
"remediation lever that lifts the readiness policy sub-score. This MUTATES state (formally " +
|
|
201
|
+
"publishes the policies and raises human acknowledgement requests). Requires confirm=true. " +
|
|
202
|
+
"Returns { published, alreadyPublished, total }.",
|
|
203
|
+
inputSchema: {
|
|
204
|
+
confirm: CONFIRM,
|
|
205
|
+
},
|
|
206
|
+
}, async ({ confirm }) => {
|
|
207
|
+
if (!confirm)
|
|
208
|
+
return fail("Refused: publish_policies requires confirm=true. Confirm with the user first.");
|
|
209
|
+
auditLog("publish_policies", {});
|
|
210
|
+
return guard(() => client.publishPolicies());
|
|
211
|
+
});
|
|
212
|
+
// ---- ACT: finalize governance documents ------------------------------
|
|
213
|
+
server.registerTool("publish_documents", {
|
|
214
|
+
title: "Finalize adopted documents",
|
|
215
|
+
description: "Put every not-yet-in-force document IN_FORCE for the org in one step — the documents " +
|
|
216
|
+
"counterpart to publish_policies; lifts the readiness evidence sub-score. This MUTATES " +
|
|
217
|
+
"state. Requires confirm=true. Returns { finalized, alreadyInForce, total }.",
|
|
218
|
+
inputSchema: {
|
|
219
|
+
confirm: CONFIRM,
|
|
220
|
+
},
|
|
221
|
+
}, async ({ confirm }) => {
|
|
222
|
+
if (!confirm)
|
|
223
|
+
return fail("Refused: publish_documents requires confirm=true. Confirm with the user first.");
|
|
224
|
+
auditLog("publish_documents", {});
|
|
225
|
+
return guard(() => client.finalizeDocuments());
|
|
226
|
+
});
|
|
227
|
+
// ---- ACT: remediate a failing document-presence control ---------------
|
|
228
|
+
server.registerTool("remediate_document_control", {
|
|
229
|
+
title: "Remediate a document-presence control",
|
|
230
|
+
description: "Fix a FAILING document-presence control (e.g. 'System Description (Section III)', " +
|
|
231
|
+
"'Network diagram', 'Data inventory map', 'Risk Assessment') by AUTHORING the document " +
|
|
232
|
+
"the control looks for and finalising it IN_FORCE, then re-running the control so the " +
|
|
233
|
+
"verdict flips. Use this when the control's reason is 'No in-force document found for this " +
|
|
234
|
+
"control' — publish_documents alone cannot fix it because there is no draft to finalise. " +
|
|
235
|
+
"Pass the control's Tests id (the 'id' from list_compliance_tests). By default the document " +
|
|
236
|
+
"is titled after the control and seeded with an honest scaffold that the org must complete; " +
|
|
237
|
+
"pass title/content to provide your own. This MUTATES state and requires confirm=true. " +
|
|
238
|
+
"Returns { documentId, title, testId, status, passed, authoredScaffold } with the REAL " +
|
|
239
|
+
"post-run verdict — it never reports PASS unless the control actually passed.",
|
|
240
|
+
inputSchema: {
|
|
241
|
+
testId: z
|
|
242
|
+
.number()
|
|
243
|
+
.int()
|
|
244
|
+
.positive()
|
|
245
|
+
.describe("Tests id of the document-presence control (from list_compliance_tests)."),
|
|
246
|
+
title: z
|
|
247
|
+
.string()
|
|
248
|
+
.min(1)
|
|
249
|
+
.optional()
|
|
250
|
+
.describe("Optional document title. Defaults to the control's test name (which satisfies the title match)."),
|
|
251
|
+
content: z
|
|
252
|
+
.string()
|
|
253
|
+
.min(1)
|
|
254
|
+
.optional()
|
|
255
|
+
.describe("Optional document body. Defaults to an honest scaffold with [CONFIRM] items for the org to complete."),
|
|
256
|
+
confirm: CONFIRM,
|
|
257
|
+
},
|
|
258
|
+
}, async ({ testId, title, content, confirm }) => {
|
|
259
|
+
if (!confirm)
|
|
260
|
+
return fail("Refused: remediate_document_control requires confirm=true. Confirm with the user first.");
|
|
261
|
+
auditLog("remediate_document_control", { testId, hasTitle: !!title, hasContent: !!content });
|
|
262
|
+
return guard(() => client.remediateDocumentControl({ testId, title, content }));
|
|
263
|
+
});
|
|
264
|
+
// ---- ACT: generate evidence document from the iASM Attack Graph --------
|
|
265
|
+
server.registerTool("generate_network_diagram_from_iasm", {
|
|
266
|
+
title: "Generate network diagram / data inventory from iASM",
|
|
267
|
+
description: "Generate a SOC 2 evidence document straight from the org's iASM Attack Graph (the " +
|
|
268
|
+
"discovered asset topology) and finalise it IN_FORCE so the matching document-presence " +
|
|
269
|
+
"control passes — 'your attack surface IS your network diagram'. Snapshots the live topology " +
|
|
270
|
+
"(inventory by layer, a Mermaid diagram, provenance, and an embedded JSON snapshot for auditor " +
|
|
271
|
+
"download) as a point-in-time artifact. Prefer this over remediate_document_control for the " +
|
|
272
|
+
"'Network diagram' and 'Maintain data inventory map' controls — it produces a real, " +
|
|
273
|
+
"evidence-backed artifact instead of a blank scaffold. kind='network-diagram' (default) targets " +
|
|
274
|
+
"the Network diagram control; kind='data-inventory' targets the data inventory control. The " +
|
|
275
|
+
"control's testId is resolved automatically unless you pass one. Requires a prior iASM connector " +
|
|
276
|
+
"sync (errors if the graph is empty). MUTATES state; requires confirm=true. Returns " +
|
|
277
|
+
"{ documentId, title, kind, assetCount, edgeCount, status, passed }. Leaves [CONFIRM] items " +
|
|
278
|
+
"(management approval, non-discovered components) for the org to complete; never reports PASS " +
|
|
279
|
+
"unless the control actually passed.",
|
|
280
|
+
inputSchema: {
|
|
281
|
+
kind: z
|
|
282
|
+
.enum(["network-diagram", "data-inventory"])
|
|
283
|
+
.default("network-diagram")
|
|
284
|
+
.describe("Which evidence document to generate from the graph."),
|
|
285
|
+
testId: z
|
|
286
|
+
.number()
|
|
287
|
+
.int()
|
|
288
|
+
.positive()
|
|
289
|
+
.optional()
|
|
290
|
+
.describe("Optional Tests id of the control to satisfy. Auto-resolved from kind if omitted."),
|
|
291
|
+
confirm: CONFIRM,
|
|
292
|
+
},
|
|
293
|
+
}, async ({ kind, testId, confirm }) => {
|
|
294
|
+
if (!confirm)
|
|
295
|
+
return fail("Refused: generate_network_diagram_from_iasm requires confirm=true. Confirm with the user first.");
|
|
296
|
+
auditLog("generate_network_diagram_from_iasm", { kind, testId });
|
|
297
|
+
return guard(() => client.generateIasmEvidenceDocument({ kind, testId }));
|
|
298
|
+
});
|
|
299
|
+
// ---- EVIDENCE: drive manual-test execution ----------------------------
|
|
300
|
+
// Manual controls (HR records, vendor reports, board minutes, …) can't be
|
|
301
|
+
// auto-evaluated. The org admin executes them by opening an evidence request,
|
|
302
|
+
// attaching evidence, and having a human reviewer accept it (acceptance latches
|
|
303
|
+
// the control PASS). These tools cover the assemble+submit half; the reviewer
|
|
304
|
+
// step stays human in the UI — there is intentionally no accept/reject tool.
|
|
305
|
+
server.registerTool("list_evidence_status", {
|
|
306
|
+
title: "List evidence status",
|
|
307
|
+
description: "Read the organization's manual-evidence state: org-wide counts " +
|
|
308
|
+
"(requested / submitted / approved / rejected) and — when a testId is given — the " +
|
|
309
|
+
"evidence requests already opened for that specific control. Use this to see which " +
|
|
310
|
+
"manual tests still need evidence assembled or are awaiting review. The testId is the " +
|
|
311
|
+
"Tests id (the 'id' field from list_compliance_tests), not the auditProgressId.",
|
|
312
|
+
inputSchema: {
|
|
313
|
+
testId: z
|
|
314
|
+
.number()
|
|
315
|
+
.int()
|
|
316
|
+
.positive()
|
|
317
|
+
.optional()
|
|
318
|
+
.describe("Optional Tests id to list that control's evidence requests."),
|
|
319
|
+
},
|
|
320
|
+
}, async ({ testId }) => guard(async () => {
|
|
321
|
+
const [summary, requests] = await Promise.all([
|
|
322
|
+
client.getEvidenceSummary(),
|
|
323
|
+
testId ? client.listEvidenceForTest(testId) : Promise.resolve(null),
|
|
324
|
+
]);
|
|
325
|
+
return { summary, requests };
|
|
326
|
+
}));
|
|
327
|
+
server.registerTool("create_evidence_request", {
|
|
328
|
+
title: "Open an evidence request for a manual control",
|
|
329
|
+
description: "Open an evidence request against a manual compliance control so its execution can be " +
|
|
330
|
+
"tracked and evidenced. This MUTATES state (creates a request record). Requires " +
|
|
331
|
+
"confirm=true. testId is the Tests id from list_compliance_tests. Returns the created " +
|
|
332
|
+
"request including its id — pass that id to attach_evidence.",
|
|
333
|
+
inputSchema: {
|
|
334
|
+
testId: z.number().int().positive().describe("Tests id (from list_compliance_tests)."),
|
|
335
|
+
title: z.string().min(1).describe("Short title for the evidence request."),
|
|
336
|
+
description: z.string().optional().describe("What evidence is being requested / context."),
|
|
337
|
+
evidenceType: z
|
|
338
|
+
.string()
|
|
339
|
+
.optional()
|
|
340
|
+
.describe("Evidence type hint, e.g. 'DOCUMENT', 'LINK', 'ANY' (default ANY)."),
|
|
341
|
+
dueDate: z
|
|
342
|
+
.string()
|
|
343
|
+
.regex(/^\d{4}-\d{2}-\d{2}$/, "Use ISO date YYYY-MM-DD.")
|
|
344
|
+
.optional()
|
|
345
|
+
.describe("Optional due date, ISO YYYY-MM-DD."),
|
|
346
|
+
confirm: CONFIRM,
|
|
347
|
+
},
|
|
348
|
+
}, async ({ confirm, ...params }) => {
|
|
349
|
+
if (!confirm)
|
|
350
|
+
return fail("Refused: create_evidence_request requires confirm=true. Confirm with the user first.");
|
|
351
|
+
auditLog("create_evidence_request", { testId: params.testId, title: params.title });
|
|
352
|
+
return guard(() => client.createEvidenceRequest(params));
|
|
353
|
+
});
|
|
354
|
+
server.registerTool("attach_evidence", {
|
|
355
|
+
title: "Attach evidence to a request",
|
|
356
|
+
description: "Attach a note or an external link as evidence to an existing evidence request. This " +
|
|
357
|
+
"MUTATES state. Requires confirm=true. Provide exactly one of `notes` (free text) or " +
|
|
358
|
+
"`link` (a URL). Attaching evidence does NOT pass the control — a human reviewer must " +
|
|
359
|
+
"accept it in the Cataam UI, which is what latches the control to PASS (separation of " +
|
|
360
|
+
"duties). Find requestId via list_evidence_status or create_evidence_request.",
|
|
361
|
+
inputSchema: {
|
|
362
|
+
requestId: z.number().int().positive().describe("The evidence request id."),
|
|
363
|
+
notes: z.string().optional().describe("Free-text evidence note. Mutually exclusive with link."),
|
|
364
|
+
link: z.string().url().optional().describe("External evidence URL. Mutually exclusive with notes."),
|
|
365
|
+
confirm: CONFIRM,
|
|
366
|
+
},
|
|
367
|
+
}, async ({ requestId, notes, link, confirm }) => {
|
|
368
|
+
if (!confirm)
|
|
369
|
+
return fail("Refused: attach_evidence requires confirm=true. Confirm with the user first.");
|
|
370
|
+
if ((notes && link) || (!notes && !link)) {
|
|
371
|
+
return fail("Provide exactly one of `notes` or `link`.");
|
|
372
|
+
}
|
|
373
|
+
auditLog("attach_evidence", { requestId, kind: link ? "link" : "note" });
|
|
374
|
+
return guard(() => link
|
|
375
|
+
? client.attachEvidenceLink(requestId, link, notes)
|
|
376
|
+
: client.attachEvidenceNote(requestId, notes));
|
|
377
|
+
});
|
|
378
|
+
// ---- OKF Context Engine ----------------------------------------------
|
|
379
|
+
// Read + drive the Open Knowledge Format export of the org's compliance graph.
|
|
380
|
+
server.registerTool("get_okf_status", {
|
|
381
|
+
title: "Get OKF Context Engine status",
|
|
382
|
+
description: "Get the org's OKF (Open Knowledge Format) Context Engine status: whether it's enabled, the " +
|
|
383
|
+
"delivery mode (MANAGED_EXPORT | GIT_SYNC | BOTH), last Git commit/push, last processed " +
|
|
384
|
+
"sequence, and how many export bundles exist. Use to answer 'is OKF on?' or 'when did the " +
|
|
385
|
+
"compliance bundle last sync?'.",
|
|
386
|
+
inputSchema: {},
|
|
387
|
+
}, async () => guard(() => client.getOkfStatus()));
|
|
388
|
+
server.registerTool("list_okf_exports", {
|
|
389
|
+
title: "List OKF export bundles",
|
|
390
|
+
description: "List the org's point-in-time OKF export bundles (newest first): version, status, file count, " +
|
|
391
|
+
"bundle SHA-256, pinned flag and timestamp — each a signed snapshot of the compliance graph " +
|
|
392
|
+
"for auditor handoff. Returns the version id needed by get_okf_artifact / pin_okf_export.",
|
|
393
|
+
inputSchema: {},
|
|
394
|
+
}, async () => guard(() => client.listOkfExports()));
|
|
395
|
+
server.registerTool("get_okf_artifact", {
|
|
396
|
+
title: "Read an OKF bundle artifact (log.md or manifest)",
|
|
397
|
+
description: "Fetch a TEXT artifact from a specific OKF export bundle. artifact='log' returns log.md — the " +
|
|
398
|
+
"chronological audit/state-history timeline (best for 'what changed and when'); " +
|
|
399
|
+
"artifact='manifest' returns MANIFEST.json — the per-file SHA-256 index. Pass the export " +
|
|
400
|
+
"version from list_okf_exports. The binary .zip is downloaded from the Cataam UI, not here.",
|
|
401
|
+
inputSchema: {
|
|
402
|
+
version: z.string().min(1).describe("Export version id (from list_okf_exports)."),
|
|
403
|
+
artifact: z.enum(["log", "manifest"]).default("log").describe("Which text artifact to fetch."),
|
|
404
|
+
},
|
|
405
|
+
}, async ({ version, artifact }) => guard(async () => ({ version, artifact, content: await client.getOkfArtifact(version, artifact) })));
|
|
406
|
+
server.registerTool("generate_okf_export", {
|
|
407
|
+
title: "Generate an OKF export bundle",
|
|
408
|
+
description: "Compile a fresh signed point-in-time OKF bundle of the org's current compliance graph (for " +
|
|
409
|
+
"auditor handoff or AI ingestion). MUTATES state (creates a new export). Requires confirm=true. " +
|
|
410
|
+
"Returns the new export record (version, fileCount, bundleSha256, status).",
|
|
411
|
+
inputSchema: { confirm: CONFIRM },
|
|
412
|
+
}, async ({ confirm }) => {
|
|
413
|
+
if (!confirm)
|
|
414
|
+
return fail("Refused: generate_okf_export requires confirm=true. Confirm with the user first.");
|
|
415
|
+
auditLog("generate_okf_export", {});
|
|
416
|
+
return guard(() => client.generateOkfExport());
|
|
417
|
+
});
|
|
418
|
+
server.registerTool("configure_okf", {
|
|
419
|
+
title: "Configure the OKF Context Engine",
|
|
420
|
+
description: "Update the org's OKF settings: enable/disable, delivery mode (MANAGED_EXPORT | GIT_SYNC | BOTH), " +
|
|
421
|
+
"sync cron, signing, redaction profile, and — for Git modes — provider/repoUrl/branch. MUTATES " +
|
|
422
|
+
"configuration. Requires confirm=true. Returns the saved config. (Git write credentials are " +
|
|
423
|
+
"connected separately under Integrations, not here.)",
|
|
424
|
+
inputSchema: {
|
|
425
|
+
enabled: z.boolean().optional().describe("Turn the engine on/off for this org."),
|
|
426
|
+
deliveryMode: z
|
|
427
|
+
.enum(["MANAGED_EXPORT", "GIT_SYNC", "BOTH"])
|
|
428
|
+
.optional()
|
|
429
|
+
.describe("How the bundle is delivered."),
|
|
430
|
+
scheduleCron: z.string().optional().describe("Spring cron for Git sync, e.g. '0 0 * * * *' (hourly)."),
|
|
431
|
+
provider: z.enum(["GITHUB", "GITLAB", "BITBUCKET"]).optional().describe("Git provider (Git modes)."),
|
|
432
|
+
repoUrl: z.string().optional().describe("Target repository URL (Git modes)."),
|
|
433
|
+
branch: z.string().optional().describe("Target branch (Cataam-owned), default 'cataam-okf'."),
|
|
434
|
+
signingEnabled: z.boolean().optional().describe("Ed25519-sign exports/commits for auditor verification."),
|
|
435
|
+
redactionProfile: z.string().optional().describe("Redaction profile, e.g. 'pii'; omit/empty for none."),
|
|
436
|
+
confirm: CONFIRM,
|
|
437
|
+
},
|
|
438
|
+
}, async ({ confirm, ...body }) => {
|
|
439
|
+
if (!confirm)
|
|
440
|
+
return fail("Refused: configure_okf requires confirm=true. Confirm with the user first.");
|
|
441
|
+
auditLog("configure_okf", body);
|
|
442
|
+
return guard(() => client.configureOkf(body));
|
|
443
|
+
});
|
|
444
|
+
server.registerTool("pin_okf_export", {
|
|
445
|
+
title: "Pin an OKF export",
|
|
446
|
+
description: "Pin an OKF export so it is retained (exempt from retention garbage-collection) — use for an " +
|
|
447
|
+
"audit-of-record snapshot. MUTATES state. Requires confirm=true. Pass the export version.",
|
|
448
|
+
inputSchema: {
|
|
449
|
+
version: z.string().min(1).describe("Export version id (from list_okf_exports)."),
|
|
450
|
+
confirm: CONFIRM,
|
|
451
|
+
},
|
|
452
|
+
}, async ({ version, confirm }) => {
|
|
453
|
+
if (!confirm)
|
|
454
|
+
return fail("Refused: pin_okf_export requires confirm=true. Confirm with the user first.");
|
|
455
|
+
auditLog("pin_okf_export", { version });
|
|
456
|
+
return guard(() => client.pinOkfExport(version));
|
|
457
|
+
});
|
|
458
|
+
server.registerTool("resync_okf_git", {
|
|
459
|
+
title: "Sync the OKF bundle to Git now",
|
|
460
|
+
description: "Trigger an immediate Git-sync delivery of the compliance bundle to the org's configured " +
|
|
461
|
+
"repository (only meaningful when delivery mode includes GIT_SYNC). MUTATES the remote repo. " +
|
|
462
|
+
"Requires confirm=true.",
|
|
463
|
+
inputSchema: { confirm: CONFIRM },
|
|
464
|
+
}, async ({ confirm }) => {
|
|
465
|
+
if (!confirm)
|
|
466
|
+
return fail("Refused: resync_okf_git requires confirm=true. Confirm with the user first.");
|
|
467
|
+
auditLog("resync_okf_git", {});
|
|
468
|
+
return guard(() => client.resyncOkf());
|
|
469
|
+
});
|
|
196
470
|
}
|
|
197
471
|
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cataam-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "MCP connector for Cataam — the GRC/compliance-automation platform (SOC2, GDPR, ISO27001). Exposes the /api/audit compliance surface as MCP tools.",
|
|
3
|
+
"version": "0.1.5",
|
|
4
|
+
"description": "MCP connector for Cataam — the GRC/compliance-automation platform (SOC2, GDPR, ISO27001). Exposes the /api/audit compliance surface and the OKF Context Engine as MCP tools.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|