sophos-central-mcp-server 0.8.1 → 0.8.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 CHANGED
@@ -168,7 +168,7 @@ The script:
168
168
  npm test
169
169
  ```
170
170
 
171
- Builds, then runs the `node:test` suites in `test/` with `fetch` stubbed: the Fusion GraphQL transport (including the HTTP 200 with `errors` case), the QL builder, the reference-data cache, and the path-keyed retry for the intermittent case-write fault, the migration guard, the policy assignment and web profile writes (body shapes, refusals, target lookups and read-back) against an in-memory policy store, the no-retry rule for a POST or mutation after a 5xx, a registration check that lists all 311 tools over an in-memory transport and checks the descriptions for the measured warnings, the `SOPHOS_FUSION_GRAPHQL_URL` check, and the HTTP transport (Origin guard, bearer token, listen address, concurrent calls) run against an in-memory Sophos. Nothing in `npm test` reaches Sophos.
171
+ Builds, then runs the `node:test` suites in `test/` with `fetch` stubbed: the Fusion GraphQL transport (including the HTTP 200 with `errors` case), the QL builder, the reference-data cache, and the path-keyed retry for the intermittent case-write fault, the migration guard, the policy assignment and web profile writes (body shapes, refusals, target lookups and read-back) against an in-memory policy store, the no-retry rule for a POST or mutation after a 5xx, the read-modify-write and PATCH update tools, a registration check that lists all 311 tools over an in-memory transport and checks the descriptions for the measured warnings, the `SOPHOS_FUSION_GRAPHQL_URL` check, and the HTTP transport (Origin guard, bearer token, listen address, concurrent calls) run against an in-memory Sophos. Nothing in `npm test` reaches Sophos.
172
172
 
173
173
  To exercise the Fusion tools against a live tenant, put credentials in `.env` (or export them) and run:
174
174
 
@@ -616,12 +616,12 @@ for about 3 minutes to cover that window.
616
616
  | Tool | Description |
617
617
  |------|-------------|
618
618
  | `sophos_get_mobile_auto_enrollment` | Get auto-enrollment settings |
619
- | `sophos_update_mobile_auto_enrollment` | Update auto-enrollment settings |
619
+ | `sophos_update_mobile_auto_enrollment` | Update auto-enrollment settings (keeps what you leave out) |
620
620
  | `sophos_list_mobile_os` | List supported mobile OS platforms |
621
621
  | `sophos_list_mobile_devices` | List mobile devices with filters |
622
622
  | `sophos_get_mobile_device` | Get device detail |
623
- | `sophos_create_mobile_device` | Enroll a new mobile device |
624
- | `sophos_update_mobile_device` | Update device properties |
623
+ | `sophos_create_mobile_device` | Create a mobile device |
624
+ | `sophos_update_mobile_device` | Update device properties (keeps what you leave out) |
625
625
  | `sophos_delete_mobile_device` | Delete/unenroll a device |
626
626
  | `sophos_list_mobile_device_properties` | Get device properties |
627
627
  | `sophos_get_mobile_device_compliance` | Get compliance status |
@@ -632,7 +632,7 @@ for about 3 minutes to cover that window.
632
632
  | `sophos_list_mobile_device_groups` | List device groups |
633
633
  | `sophos_get_mobile_device_group` | Get device group detail |
634
634
  | `sophos_create_mobile_device_group` | Create a device group |
635
- | `sophos_update_mobile_device_group` | Update a device group |
635
+ | `sophos_update_mobile_device_group` | Update a device group (keeps what you leave out) |
636
636
  | `sophos_delete_mobile_device_group` | Delete a device group |
637
637
  | `sophos_sync_mobile_device` | Sync a device |
638
638
  | `sophos_request_mobile_device_logs` | Request device logs |
@@ -645,7 +645,7 @@ for about 3 minutes to cover that window.
645
645
  | `sophos_list_mobile_app_groups` | List app groups |
646
646
  | `sophos_get_mobile_app_group` | Get app group detail |
647
647
  | `sophos_create_mobile_app_group` | Create an app group |
648
- | `sophos_update_mobile_app_group` | Update an app group |
648
+ | `sophos_update_mobile_app_group` | Rename an app group or replace its app list |
649
649
  | `sophos_delete_mobile_app_group` | Delete an app group |
650
650
 
651
651
  ### DNS Protection (5 tools)
@@ -664,8 +664,8 @@ for about 3 minutes to cover that window.
664
664
  |------|-------------|
665
665
  | `sophos_list_cloud_security_profiles` | List cloud security profiles |
666
666
  | `sophos_get_cloud_security_profile` | Get profile detail |
667
- | `sophos_create_cloud_security_profile` | Create a cloud security profile |
668
- | `sophos_update_cloud_security_profile` | Update a profile |
667
+ | `sophos_create_cloud_security_profile` | Create a runtime detection profile or a new version of one |
668
+ | `sophos_update_cloud_security_profile` | Rename a profile |
669
669
  | `sophos_delete_cloud_security_profile` | Delete a profile |
670
670
 
671
671
  ### Wi-Fi (3 tools)
@@ -703,14 +703,14 @@ for about 3 minutes to cover that window.
703
703
  | `sophos_list_web_filtering_profiles` | List web filtering profiles |
704
704
  | `sophos_get_web_filtering_profile` | Get a web filtering profile |
705
705
  | `sophos_create_web_filtering_profile` | Create a web filtering profile |
706
- | `sophos_update_web_filtering_profile` | Update (replace) a web filtering profile |
706
+ | `sophos_update_web_filtering_profile` | Update a web filtering profile (keeps what you leave out) |
707
707
  | `sophos_delete_web_filtering_profile` | Delete a web filtering profile |
708
708
  | `sophos_clone_web_filtering_profile` | Clone a web filtering profile |
709
709
  | `sophos_get_web_filtering_metadata` | Get categories, groups, and presets |
710
710
  | `sophos_list_site_lists` | List site lists |
711
711
  | `sophos_get_site_list` | Get a site list |
712
712
  | `sophos_create_site_list` | Create a site list |
713
- | `sophos_update_site_list` | Update (replace) a site list |
713
+ | `sophos_update_site_list` | Update a site list (keeps what you leave out) |
714
714
  | `sophos_delete_site_list` | Delete a site list |
715
715
  | `sophos_clone_site_list` | Clone a site list |
716
716
  | `sophos_list_sites` | List the sites in a site list |
@@ -2,7 +2,8 @@
2
2
  * Tools: sophos_list_cloud_security_profiles, sophos_get_cloud_security_profile,
3
3
  * sophos_create_cloud_security_profile, sophos_update_cloud_security_profile,
4
4
  * sophos_delete_cloud_security_profile
5
- * Interact with the Sophos Cloud Security API /cloud-security/v1/
5
+ * Interact with the Sophos Cloud Security API /cloud-security/v1/ (runtime detection
6
+ * profiles), shaped by its published spec 1.0.0
6
7
  */
7
8
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
9
  import type { SophosClient } from "../client/sophos-client.js";
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-security.d.ts","sourceRoot":"","sources":["../../src/tools/cloud-security.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,GAC7B,IAAI,CA6ON"}
1
+ {"version":3,"file":"cloud-security.d.ts","sourceRoot":"","sources":["../../src/tools/cloud-security.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,GAC7B,IAAI,CA6ON"}
@@ -2,7 +2,8 @@
2
2
  * Tools: sophos_list_cloud_security_profiles, sophos_get_cloud_security_profile,
3
3
  * sophos_create_cloud_security_profile, sophos_update_cloud_security_profile,
4
4
  * sophos_delete_cloud_security_profile
5
- * Interact with the Sophos Cloud Security API /cloud-security/v1/
5
+ * Interact with the Sophos Cloud Security API /cloud-security/v1/ (runtime detection
6
+ * profiles), shaped by its published spec 1.0.0
6
7
  */
7
8
  import { z } from "zod";
8
9
  import { jsonResult, withErrorHandling } from "./helpers.js";
@@ -83,25 +84,28 @@ Args:
83
84
  // --- Create Cloud Security Profile ---
84
85
  server.registerTool("sophos_create_cloud_security_profile", {
85
86
  title: "Create Cloud Security Profile",
86
- description: `Create a new cloud security profile.
87
+ description: `Create a runtime detection profile, or a new version of an existing one (Cloud Security API).
88
+
89
+ content_version and settings are required. Pass profile_id to add a new
90
+ version to that profile instead of creating another. sophos_get_cloud_security_profile
91
+ shows an existing profile's contentVersion and settings to start from.
87
92
 
88
93
  Args:
89
- - name (string): Profile name.
90
- - description (string, optional): Profile description.
91
- - provider (string, optional): Cloud provider (e.g. "aws", "azure", "gcp").
92
- - settings (object, optional): Profile-specific settings.
93
- - tenant_id (string, optional): Tenant ID. Required for partner/org callers.`,
94
+ - content_version (string): Detection content version, for example "5.8.0.8".
95
+ - settings (object): Profile settings.
96
+ - name (string, optional): Profile name (1 to 50 characters).
97
+ - profile_description (string, optional): Profile description.
98
+ - profile_id (string, optional): Existing profile to add a version to.
99
+ - tenant_id (string, optional): Tenant ID. Required for partner/org callers.
100
+
101
+ Returns:
102
+ The profile's id and version.`,
94
103
  inputSchema: {
95
- name: z.string().describe("Profile name"),
96
- description: z.string().optional().describe("Profile description"),
97
- provider: z
98
- .string()
99
- .optional()
100
- .describe('Cloud provider (e.g. "aws", "azure", "gcp")'),
101
- settings: z
102
- .record(z.unknown())
103
- .optional()
104
- .describe("Profile-specific settings"),
104
+ content_version: z.string().describe('Detection content version, for example "5.8.0.8"'),
105
+ settings: z.record(z.unknown()).describe("Profile settings"),
106
+ name: z.string().min(1).max(50).optional().describe("Profile name"),
107
+ profile_description: z.string().optional().describe("Profile description"),
108
+ profile_id: z.string().uuid().optional().describe("Existing profile to add a version to"),
105
109
  tenant_id: z
106
110
  .string()
107
111
  .uuid()
@@ -114,39 +118,35 @@ Args:
114
118
  idempotentHint: false,
115
119
  openWorldHint: true,
116
120
  },
117
- }, withErrorHandling(async ({ name, description, provider, settings, tenant_id }) => {
121
+ }, withErrorHandling(async ({ content_version, settings, name, profile_description, profile_id, tenant_id }) => {
118
122
  const resolvedTenantId = tenantResolver.resolveTenantId(tenant_id);
119
- const body = { name };
120
- if (description)
121
- body.description = description;
122
- if (provider)
123
- body.provider = provider;
124
- if (settings)
125
- body.settings = settings;
123
+ const body = { contentVersion: content_version, settings };
124
+ if (name !== undefined)
125
+ body.name = name;
126
+ if (profile_description !== undefined)
127
+ body.profileDescription = profile_description;
128
+ if (profile_id !== undefined)
129
+ body.profileId = profile_id;
126
130
  const data = await client.tenantRequest(resolvedTenantId, "/cloud-security/v1/profiles", { method: "POST", body });
127
131
  return jsonResult({ status: "created", profile: data });
128
132
  }));
129
133
  // --- Update Cloud Security Profile ---
130
134
  server.registerTool("sophos_update_cloud_security_profile", {
131
- title: "Update Cloud Security Profile",
132
- description: `Update an existing cloud security profile (full replacement via PUT).
135
+ title: "Rename Cloud Security Profile",
136
+ description: `Rename a runtime detection profile (Cloud Security API).
137
+
138
+ The API's update changes only the name; nothing else about the profile is
139
+ touched. To change settings, add a new version with
140
+ sophos_create_cloud_security_profile and profile_id. The name is read back
141
+ after the write.
133
142
 
134
143
  Args:
135
- - profile_id (string): The profile ID to update.
136
- - name (string): Updated profile name.
137
- - description (string, optional): Updated profile description.
138
- - provider (string, optional): Cloud provider.
139
- - settings (object, optional): Updated profile settings.
144
+ - profile_id (string): The profile ID.
145
+ - name (string): New profile name (1 to 50 characters).
140
146
  - tenant_id (string, optional): Tenant ID. Required for partner/org callers.`,
141
147
  inputSchema: {
142
- profile_id: z.string().describe("Cloud security profile ID to update"),
143
- name: z.string().describe("Updated profile name"),
144
- description: z.string().optional().describe("Updated profile description"),
145
- provider: z.string().optional().describe("Cloud provider"),
146
- settings: z
147
- .record(z.unknown())
148
- .optional()
149
- .describe("Updated profile settings"),
148
+ profile_id: z.string().uuid().describe("Cloud security profile ID to rename"),
149
+ name: z.string().min(1).max(50).describe("New profile name"),
150
150
  tenant_id: z
151
151
  .string()
152
152
  .uuid()
@@ -159,30 +159,31 @@ Args:
159
159
  idempotentHint: true,
160
160
  openWorldHint: true,
161
161
  },
162
- }, withErrorHandling(async ({ profile_id, name, description, provider, settings, tenant_id }) => {
162
+ }, withErrorHandling(async ({ profile_id, name, tenant_id }) => {
163
163
  const resolvedTenantId = tenantResolver.resolveTenantId(tenant_id);
164
- const body = { name };
165
- if (description)
166
- body.description = description;
167
- if (provider)
168
- body.provider = provider;
169
- if (settings)
170
- body.settings = settings;
171
- const data = await client.tenantRequest(resolvedTenantId, `/cloud-security/v1/profiles/${profile_id}`, { method: "PUT", body });
172
- return jsonResult({ status: "updated", profile: data });
164
+ const path = `/cloud-security/v1/profiles/${profile_id}`;
165
+ await client.tenantRequest(resolvedTenantId, path, { method: "PUT", params: { name } });
166
+ const profile = await client.tenantRequest(resolvedTenantId, path);
167
+ return jsonResult({
168
+ status: profile.name === name ? "renamed" : "not_renamed",
169
+ profile_id,
170
+ name_sent: name,
171
+ name_stored: profile.name ?? null,
172
+ });
173
173
  }));
174
174
  // --- Delete Cloud Security Profile ---
175
175
  server.registerTool("sophos_delete_cloud_security_profile", {
176
176
  title: "Delete Cloud Security Profile",
177
- description: `Delete a cloud security profile.
177
+ description: `Delete a runtime detection profile (Cloud Security API).
178
178
 
179
- WARNING: This permanently removes the cloud security profile.
179
+ WARNING: This permanently removes the profile. Sophos may skip a profile it
180
+ cannot delete; the result says whether this one was deleted or skipped.
180
181
 
181
182
  Args:
182
183
  - profile_id (string): The profile ID to delete.
183
184
  - tenant_id (string, optional): Tenant ID. Required for partner/org callers.`,
184
185
  inputSchema: {
185
- profile_id: z.string().describe("Cloud security profile ID to delete"),
186
+ profile_id: z.string().uuid().describe("Cloud security profile ID to delete"),
186
187
  tenant_id: z
187
188
  .string()
188
189
  .uuid()
@@ -197,12 +198,11 @@ Args:
197
198
  },
198
199
  }, withErrorHandling(async ({ profile_id, tenant_id }) => {
199
200
  const resolvedTenantId = tenantResolver.resolveTenantId(tenant_id);
200
- await client.tenantRequest(resolvedTenantId, `/cloud-security/v1/profiles/${profile_id}`, { method: "DELETE" });
201
- return jsonResult({
202
- status: "deleted",
203
- profile_id,
204
- message: `Cloud security profile ${profile_id} deleted.`,
205
- });
201
+ const data = await client.tenantRequest(resolvedTenantId, "/cloud-security/v1/profiles", { method: "DELETE", params: { profileIds: profile_id } });
202
+ const skipped = (data?.skippedProfiles ?? []).filter((s) => JSON.stringify(s).includes(profile_id));
203
+ return jsonResult(skipped.length
204
+ ? { status: "skipped", profile_id, skipped }
205
+ : { status: "deleted", profile_id, message: `Cloud security profile ${profile_id} deleted.` });
206
206
  }));
207
207
  }
208
208
  //# sourceMappingURL=cloud-security.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-security.js","sourceRoot":"","sources":["../../src/tools/cloud-security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-security.js","sourceRoot":"","sources":["../../src/tools/cloud-security.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../src/tools/mobile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,GAC7B,IAAI,CAy6CN"}
1
+ {"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../src/tools/mobile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAqCnE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,GAC7B,IAAI,CAm/CN"}