@zivis/mcp 0.1.18 → 0.2.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.
Files changed (85) hide show
  1. package/dist/auth/index.d.ts +7 -0
  2. package/dist/auth/index.js +32 -0
  3. package/dist/matcher/index.js +1 -1
  4. package/dist/matcher/inference-candidates.js +1 -1
  5. package/dist/pattern-packs/zivis-public-0.2.0/manifest.json +1 -1
  6. package/dist/server.js +27 -162
  7. package/dist/tools/application.d.ts +53 -0
  8. package/dist/tools/application.js +232 -0
  9. package/dist/tools/artifacts.d.ts +21 -57
  10. package/dist/tools/artifacts.js +116 -150
  11. package/dist/tools/devx-run.d.ts +15 -37
  12. package/dist/tools/devx-run.js +66 -77
  13. package/dist/tools/diagram.d.ts +55 -0
  14. package/dist/tools/diagram.js +209 -0
  15. package/dist/tools/document.d.ts +48 -0
  16. package/dist/tools/document.js +137 -0
  17. package/dist/tools/finding.d.ts +133 -0
  18. package/dist/tools/finding.js +211 -0
  19. package/dist/tools/get-started.d.ts +1 -1
  20. package/dist/tools/get-started.js +15 -33
  21. package/dist/tools/security-memory.d.ts +21 -55
  22. package/dist/tools/security-memory.js +93 -138
  23. package/dist/tools/threat-library.d.ts +27 -0
  24. package/dist/tools/threat-library.js +266 -0
  25. package/package.json +1 -1
  26. package/dist/tools/create-diagram.d.ts +0 -39
  27. package/dist/tools/create-diagram.js +0 -74
  28. package/dist/tools/create-document.d.ts +0 -23
  29. package/dist/tools/create-document.js +0 -47
  30. package/dist/tools/create-finding.d.ts +0 -85
  31. package/dist/tools/create-finding.js +0 -136
  32. package/dist/tools/delete-finding.d.ts +0 -19
  33. package/dist/tools/delete-finding.js +0 -36
  34. package/dist/tools/discover-local-infra.d.ts +0 -14
  35. package/dist/tools/discover-local-infra.js +0 -686
  36. package/dist/tools/explain-signal-for-diff.d.ts +0 -34
  37. package/dist/tools/explain-signal-for-diff.js +0 -75
  38. package/dist/tools/get-application-overview.d.ts +0 -22
  39. package/dist/tools/get-application-overview.js +0 -137
  40. package/dist/tools/get-application.d.ts +0 -22
  41. package/dist/tools/get-application.js +0 -77
  42. package/dist/tools/get-diagram.d.ts +0 -22
  43. package/dist/tools/get-diagram.js +0 -49
  44. package/dist/tools/get-document.d.ts +0 -17
  45. package/dist/tools/get-document.js +0 -37
  46. package/dist/tools/get-signal.d.ts +0 -24
  47. package/dist/tools/get-signal.js +0 -75
  48. package/dist/tools/import-openapi-endpoints.d.ts +0 -28
  49. package/dist/tools/import-openapi-endpoints.js +0 -87
  50. package/dist/tools/inspect.d.ts +0 -21
  51. package/dist/tools/inspect.js +0 -222
  52. package/dist/tools/list-applications.d.ts +0 -29
  53. package/dist/tools/list-applications.js +0 -68
  54. package/dist/tools/list-diagrams.d.ts +0 -37
  55. package/dist/tools/list-diagrams.js +0 -74
  56. package/dist/tools/list-documents.d.ts +0 -19
  57. package/dist/tools/list-documents.js +0 -44
  58. package/dist/tools/list-endpoints.d.ts +0 -42
  59. package/dist/tools/list-endpoints.js +0 -92
  60. package/dist/tools/list-signals.d.ts +0 -37
  61. package/dist/tools/list-signals.js +0 -83
  62. package/dist/tools/manage-application.d.ts +0 -64
  63. package/dist/tools/manage-application.js +0 -129
  64. package/dist/tools/manage-diagram.d.ts +0 -41
  65. package/dist/tools/manage-diagram.js +0 -91
  66. package/dist/tools/manage-endpoint-lifecycle.d.ts +0 -80
  67. package/dist/tools/manage-endpoint-lifecycle.js +0 -180
  68. package/dist/tools/security-review.d.ts +0 -40
  69. package/dist/tools/security-review.js +0 -199
  70. package/dist/tools/threat-get-capsule.d.ts +0 -15
  71. package/dist/tools/threat-get-capsule.js +0 -53
  72. package/dist/tools/threat-get-inference-prompt.d.ts +0 -15
  73. package/dist/tools/threat-get-inference-prompt.js +0 -73
  74. package/dist/tools/threat-list-relevant-capsules.d.ts +0 -17
  75. package/dist/tools/threat-list-relevant-capsules.js +0 -158
  76. package/dist/tools/threat-run-matcher.d.ts +0 -17
  77. package/dist/tools/threat-run-matcher.js +0 -145
  78. package/dist/tools/update-document.d.ts +0 -23
  79. package/dist/tools/update-document.js +0 -57
  80. package/dist/tools/update-endpoint.d.ts +0 -60
  81. package/dist/tools/update-endpoint.js +0 -138
  82. package/dist/tools/update-finding.d.ts +0 -61
  83. package/dist/tools/update-finding.js +0 -80
  84. package/dist/tools/update-mermaid-source.d.ts +0 -21
  85. package/dist/tools/update-mermaid-source.js +0 -60
@@ -1,80 +0,0 @@
1
- import { z } from "zod";
2
- import { sanitizeResponse, sanitizeInboundText } from "../sanitize.js";
3
- export const UPDATE_FINDING_NAME = "zivis_update_finding";
4
- export const UPDATE_FINDING_DESCRIPTION = `Update an existing security finding — edit its fields or change its status.
5
-
6
- Use to correct or flesh out a finding (title, severity, description, category, remediation, CWE/OWASP), or to move it through its lifecycle (triaged, resolved, dismissed, suppressed). Only pass the fields you want to change. Every change is audited. Pass the finding's id (from zivis_create_finding or the findings list). To delete a finding, use zivis_delete_finding instead.`;
7
- export const UPDATE_FINDING_SCHEMA = {
8
- finding_id: z.string().describe("UUID of the finding to update"),
9
- title: z.string().optional().describe("New title"),
10
- severity: z
11
- .enum(["critical", "high", "medium", "low", "info"])
12
- .optional()
13
- .describe("New severity"),
14
- description: z.string().optional().describe("New description / details (markdown allowed)"),
15
- category: z
16
- .enum(["vulnerability", "misconfiguration", "secret", "anomaly", "other"])
17
- .optional()
18
- .describe("New category"),
19
- remediation_steps: z.string().optional().describe("New remediation guidance"),
20
- cwe_id: z.string().optional().describe("CWE id, e.g. 'CWE-89'"),
21
- owasp_id: z.string().optional().describe("OWASP id, e.g. 'A01'"),
22
- status: z
23
- .enum(["open", "triaged", "in_progress", "resolved", "dismissed", "suppressed"])
24
- .optional()
25
- .describe("New lifecycle status. Use zivis_delete_finding to delete."),
26
- dismiss_reason: z
27
- .enum(["false_positive", "risk_accepted", "duplicate", "wont_fix"])
28
- .optional()
29
- .describe("Reason, when status=dismissed"),
30
- note: z.string().optional().describe("Optional note recorded in the audit history"),
31
- };
32
- function errorResult(message) {
33
- return {
34
- content: [{ type: "text", text: `Error: ${message}` }],
35
- isError: true,
36
- };
37
- }
38
- function successResult(data) {
39
- return {
40
- content: [{ type: "text", text: JSON.stringify(sanitizeResponse(data), null, 2) }],
41
- };
42
- }
43
- export function createUpdateFindingHandler(apiClient) {
44
- return async (params) => {
45
- try {
46
- if (!params.finding_id || !params.finding_id.trim()) {
47
- return errorResult("finding_id is required");
48
- }
49
- const body = {};
50
- if (params.title !== undefined)
51
- body.title = sanitizeInboundText(params.title, 500);
52
- if (params.severity !== undefined)
53
- body.severity = params.severity;
54
- if (params.description !== undefined)
55
- body.description = sanitizeInboundText(params.description, 8000);
56
- if (params.category !== undefined)
57
- body.category = params.category;
58
- if (params.remediation_steps !== undefined)
59
- body.remediationSteps = sanitizeInboundText(params.remediation_steps, 4000);
60
- if (params.cwe_id !== undefined)
61
- body.cweId = params.cwe_id;
62
- if (params.owasp_id !== undefined)
63
- body.owaspId = params.owasp_id;
64
- if (params.status !== undefined)
65
- body.status = params.status;
66
- if (params.dismiss_reason !== undefined)
67
- body.dismissReason = sanitizeInboundText(params.dismiss_reason, 2000);
68
- if (params.note !== undefined)
69
- body.note = sanitizeInboundText(params.note, 4000);
70
- if (Object.keys(body).length === 0) {
71
- return errorResult("Provide at least one field to update");
72
- }
73
- const data = await apiClient.patch(`/api/findings/unified/${encodeURIComponent(params.finding_id)}`, body);
74
- return successResult(data);
75
- }
76
- catch (err) {
77
- return errorResult(err?.message ?? "Failed to update finding");
78
- }
79
- };
80
- }
@@ -1,21 +0,0 @@
1
- import { z } from "zod";
2
- import type { ApiClient } from "../api-client.js";
3
- export declare const UPDATE_MERMAID_SOURCE_NAME = "zivis_update_mermaid_source";
4
- export declare const UPDATE_MERMAID_SOURCE_DESCRIPTION = "Replace the Mermaid source of a diagram with new Mermaid syntax.\n\n**Use this when:** you want to add, rename, delete, or reconnect nodes in a diagram via Mermaid syntax.\n\n**Workflow:**\n1. Call zivis_get_diagram first to read the current Mermaid source.\n2. Reason about the requested change (rename a node, add a connection, restructure a subgraph, etc.).\n3. Produce a COMPLETE, valid Mermaid source string.\n4. Call this tool with the new source \u2014 it replaces the entire content atomically.\n\n**Keep the overall structure.** Only change what the user asked for. Preserve unrelated nodes, edges, labels, subgraphs, styles.";
5
- export declare const UPDATE_MERMAID_SOURCE_SCHEMA: {
6
- diagram_id: z.ZodString;
7
- mermaid_source: z.ZodString;
8
- description: z.ZodOptional<z.ZodString>;
9
- };
10
- type UpdateMermaidSourceParams = {
11
- diagram_id: string;
12
- mermaid_source: string;
13
- description?: string;
14
- };
15
- export declare function createUpdateMermaidSourceHandler(apiClient: ApiClient): (params: UpdateMermaidSourceParams) => Promise<{
16
- content: {
17
- type: "text";
18
- text: string;
19
- }[];
20
- }>;
21
- export {};
@@ -1,60 +0,0 @@
1
- import { z } from "zod";
2
- import { sanitizeResponse } from "../sanitize.js";
3
- export const UPDATE_MERMAID_SOURCE_NAME = "zivis_update_mermaid_source";
4
- export const UPDATE_MERMAID_SOURCE_DESCRIPTION = `Replace the Mermaid source of a diagram with new Mermaid syntax.
5
-
6
- **Use this when:** you want to add, rename, delete, or reconnect nodes in a diagram via Mermaid syntax.
7
-
8
- **Workflow:**
9
- 1. Call zivis_get_diagram first to read the current Mermaid source.
10
- 2. Reason about the requested change (rename a node, add a connection, restructure a subgraph, etc.).
11
- 3. Produce a COMPLETE, valid Mermaid source string.
12
- 4. Call this tool with the new source — it replaces the entire content atomically.
13
-
14
- **Keep the overall structure.** Only change what the user asked for. Preserve unrelated nodes, edges, labels, subgraphs, styles.`;
15
- export const UPDATE_MERMAID_SOURCE_SCHEMA = {
16
- diagram_id: z.string().describe("UUID of the diagram to update"),
17
- mermaid_source: z
18
- .string()
19
- .min(1)
20
- .describe("Full Mermaid syntax for the diagram. Replaces the existing content entirely."),
21
- description: z
22
- .string()
23
- .optional()
24
- .describe("Optional short description of the change (for audit/log). E.g. 'Renamed Login node to Auth Service'."),
25
- };
26
- function errorResult(message) {
27
- return {
28
- content: [{ type: "text", text: `Error: ${message}` }],
29
- isError: true,
30
- };
31
- }
32
- function successResult(data) {
33
- return {
34
- content: [{ type: "text", text: JSON.stringify(sanitizeResponse(data), null, 2) }],
35
- };
36
- }
37
- export function createUpdateMermaidSourceHandler(apiClient) {
38
- return async (params) => {
39
- try {
40
- const { diagram_id, mermaid_source, description } = params;
41
- if (!diagram_id)
42
- return errorResult("diagram_id is required");
43
- if (!mermaid_source || mermaid_source.trim().length === 0) {
44
- return errorResult("mermaid_source is required and cannot be empty");
45
- }
46
- const body = { content: mermaid_source };
47
- if (description)
48
- body.description = description;
49
- const updated = await apiClient.patch(`/api/diagrams/${diagram_id}`, body);
50
- return successResult({
51
- ok: true,
52
- diagram_id,
53
- updated,
54
- });
55
- }
56
- catch (err) {
57
- return errorResult(err?.message ?? "Failed to update Mermaid source");
58
- }
59
- };
60
- }