kollguard-mcp 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.mjs +12 -3
  2. package/package.json +1 -1
package/index.mjs CHANGED
@@ -29,13 +29,20 @@ async function kgGet(path) {
29
29
  }
30
30
 
31
31
  const TOOLS = [
32
+ {
33
+ name: 'kollguard_list_projects',
34
+ description:
35
+ 'List the projects (groups of repos/databases) in your KollGuard org, with their ids and names. Call this first when the org has more than one project, then pass a projectId to the other tools to scope results to one project.',
36
+ inputSchema: { type: 'object', properties: {} },
37
+ },
32
38
  {
33
39
  name: 'kollguard_list_findings',
34
40
  description:
35
- 'List your security/compliance findings from KollGuard scans (GitHub repos + databases), each mapped to SOC 2 / HIPAA and 10 more frameworks with remediation. Optionally filter.',
41
+ 'List your security/compliance findings from KollGuard scans (GitHub repos + databases), each mapped to SOC 2 / HIPAA and 10 more frameworks with remediation. Optionally filter — pass projectId to scope to one project (get ids from kollguard_list_projects).',
36
42
  inputSchema: {
37
43
  type: 'object',
38
44
  properties: {
45
+ projectId: { type: 'string', description: 'Scope to one project (id from kollguard_list_projects)' },
39
46
  severity: { type: 'string', enum: ['low', 'medium', 'high', 'critical'], description: 'Filter by severity' },
40
47
  status: { type: 'string', description: "Filter by status (e.g. 'open', 'acknowledged', 'remediated', 'accepted_risk')" },
41
48
  framework: { type: 'string', description: "Filter to a framework (e.g. 'SOC2', 'HIPAA', 'ISO 27001')" },
@@ -66,9 +73,11 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }))
66
73
  server.setRequestHandler(CallToolRequestSchema, async (req) => {
67
74
  const { name, arguments: args = {} } = req.params;
68
75
  let path;
69
- if (name === 'kollguard_list_findings') {
76
+ if (name === 'kollguard_list_projects') {
77
+ path = '/projects';
78
+ } else if (name === 'kollguard_list_findings') {
70
79
  const qs = new URLSearchParams();
71
- for (const k of ['severity', 'status', 'framework']) if (args[k]) qs.set(k, String(args[k]));
80
+ for (const k of ['projectId', 'severity', 'status', 'framework']) if (args[k]) qs.set(k, String(args[k]));
72
81
  path = '/findings' + (qs.toString() ? `?${qs.toString()}` : '');
73
82
  } else if (name === 'kollguard_get_posture') {
74
83
  path = '/posture';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kollguard-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for KollGuard — read your SOC 2 / HIPAA security findings & posture from any MCP client (Claude Code, Cursor, VS Code, Windsurf, Zed).",
5
5
  "type": "module",
6
6
  "bin": {