sophos-central-mcp-server 0.8.1 → 0.8.3

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 (65) hide show
  1. package/README.md +20 -27
  2. package/dist/tools/admin-management.d.ts +1 -1
  3. package/dist/tools/admin-management.d.ts.map +1 -1
  4. package/dist/tools/admin-management.js +21 -66
  5. package/dist/tools/admin-management.js.map +1 -1
  6. package/dist/tools/alerts.d.ts.map +1 -1
  7. package/dist/tools/alerts.js +57 -36
  8. package/dist/tools/alerts.js.map +1 -1
  9. package/dist/tools/cloud-security.d.ts +4 -2
  10. package/dist/tools/cloud-security.d.ts.map +1 -1
  11. package/dist/tools/cloud-security.js +111 -59
  12. package/dist/tools/cloud-security.js.map +1 -1
  13. package/dist/tools/directory.d.ts +1 -2
  14. package/dist/tools/directory.d.ts.map +1 -1
  15. package/dist/tools/directory.js +33 -122
  16. package/dist/tools/directory.js.map +1 -1
  17. package/dist/tools/dns-protection.d.ts.map +1 -1
  18. package/dist/tools/dns-protection.js +68 -40
  19. package/dist/tools/dns-protection.js.map +1 -1
  20. package/dist/tools/email.d.ts +6 -1
  21. package/dist/tools/email.d.ts.map +1 -1
  22. package/dist/tools/email.js +518 -673
  23. package/dist/tools/email.js.map +1 -1
  24. package/dist/tools/endpoint-migrations.d.ts +1 -1
  25. package/dist/tools/endpoint-migrations.d.ts.map +1 -1
  26. package/dist/tools/endpoint-migrations.js +60 -132
  27. package/dist/tools/endpoint-migrations.js.map +1 -1
  28. package/dist/tools/endpoint-settings.d.ts +3 -3
  29. package/dist/tools/endpoint-settings.d.ts.map +1 -1
  30. package/dist/tools/endpoint-settings.js +94 -211
  31. package/dist/tools/endpoint-settings.js.map +1 -1
  32. package/dist/tools/endpoints.d.ts.map +1 -1
  33. package/dist/tools/endpoints.js +55 -32
  34. package/dist/tools/endpoints.js.map +1 -1
  35. package/dist/tools/exclusions.d.ts.map +1 -1
  36. package/dist/tools/exclusions.js +24 -28
  37. package/dist/tools/exclusions.js.map +1 -1
  38. package/dist/tools/firewall.d.ts.map +1 -1
  39. package/dist/tools/firewall.js +90 -62
  40. package/dist/tools/firewall.js.map +1 -1
  41. package/dist/tools/mobile.d.ts.map +1 -1
  42. package/dist/tools/mobile.js +256 -142
  43. package/dist/tools/mobile.js.map +1 -1
  44. package/dist/tools/partner.d.ts.map +1 -1
  45. package/dist/tools/partner.js +120 -99
  46. package/dist/tools/partner.js.map +1 -1
  47. package/dist/tools/switch.js +1 -1
  48. package/dist/tools/switch.js.map +1 -1
  49. package/dist/tools/user-activity.d.ts +1 -1
  50. package/dist/tools/user-activity.d.ts.map +1 -1
  51. package/dist/tools/user-activity.js +44 -21
  52. package/dist/tools/user-activity.js.map +1 -1
  53. package/dist/tools/web-filtering.d.ts +34 -0
  54. package/dist/tools/web-filtering.d.ts.map +1 -1
  55. package/dist/tools/web-filtering.js +96 -26
  56. package/dist/tools/web-filtering.js.map +1 -1
  57. package/dist/tools/wifi.d.ts +5 -1
  58. package/dist/tools/wifi.d.ts.map +1 -1
  59. package/dist/tools/wifi.js +77 -70
  60. package/dist/tools/wifi.js.map +1 -1
  61. package/dist/tools/xdr.js +1 -1
  62. package/dist/tools/xdr.js.map +1 -1
  63. package/dist/types/sophos.d.ts +4 -2
  64. package/dist/types/sophos.d.ts.map +1 -1
  65. package/package.json +1 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  > Sophos. It calls the public Sophos APIs using credentials you supply. Use it at your own
6
6
  > risk, and raise problems as issues on this repository rather than with Sophos support.
7
7
 
8
- MCP (Model Context Protocol) server for the Sophos Fusion and Sophos Central APIs. Supports partner, organisation, and single-tenant credential types with automatic region routing. **311 tools** covering 22 Sophos API namespaces: the Sophos Central REST APIs plus the Sophos Fusion GraphQL APIs (`sophos_fusion_*`). Install it as a Claude Desktop extension (`.mcpb`), run it with npx, or host it yourself over streamable HTTP.
8
+ MCP (Model Context Protocol) server for the Sophos Fusion and Sophos Central APIs. Supports partner, organisation, and single-tenant credential types with automatic region routing. **305 tools** covering 22 Sophos API namespaces: the Sophos Central REST APIs plus the Sophos Fusion GraphQL APIs (`sophos_fusion_*`). Install it as a Claude Desktop extension (`.mcpb`), run it with npx, or host it yourself over streamable HTTP.
9
9
 
10
10
  The npm package, the `.mcpb` bundle and the binaries keep the `sophos-central-mcp-server` name so existing installs update in place.
11
11
 
@@ -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, the request shapes of the tools checked against the published specs, a registration check that lists all 305 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
 
@@ -196,7 +196,7 @@ It spawns the built server over stdio and calls the tools through an MCP client,
196
196
  - **One-click install**: Ships as a Claude Desktop extension (`.mcpb`) with credentials held in the OS secure store
197
197
  - **Two API generations**: the Sophos Central REST APIs and the Sophos Fusion GraphQL APIs on one credential, with `sophos_fusion_*` tools for the GraphQL side
198
198
  - **Migration aware**: the Classic case and detection tools refuse a tenant that has moved to Sophos Fusion and name the `sophos_fusion_*` tool to use instead
199
- - **Full API coverage**: 311 tools across endpoints, alerts, policies, firewalls, web filtering, licensing, audit events, email, mobile, XDR, cases, SIEM, and more
199
+ - **Full API coverage**: 305 tools across endpoints, alerts, policies, firewalls, web filtering, licensing, audit events, email, mobile, XDR, cases, SIEM, and more
200
200
 
201
201
  ## Screenshots
202
202
 
@@ -249,15 +249,13 @@ Sophos is moving tenants to Fusion over the coming months (the [upgrade centre](
249
249
 
250
250
  Two Fusion case writes, `createCase` and `addEvidenceToCase`, fail 74% of the time with `not allowed` on `partnerPreferences` from `investigations-v2`. It is an intermittent downstream fault, not authorisation: the identical call succeeds on retry, and `updateCase` does not carry the fault at all. Measured on a live tenant 22/09/2026: 111 faults in 150 calls, drifting from 60% to 85% across four samples six minutes apart. The client retries a call whose first error path is `partnerPreferences`, and only that, up to 20 times with a short backoff, which leaves about 1 call in 410 failing at the measured rate and about 1 in 26 at the worst rate observed; an error naming the operation in its path is a real input or permission error and surfaces at once.
251
251
 
252
- ### Partner & Organisation (18 tools)
252
+ ### Partner & Organisation (17 tools)
253
253
 
254
254
  > These tools are only available with **partner or organisation-level** credentials. They operate across all managed tenants.
255
255
 
256
256
  | Tool | Description |
257
257
  |------|-------------|
258
258
  | `sophos_list_tenants` | List all managed tenants with IDs, names, and data regions |
259
- | `sophos_list_account_health` | Bulk health scores for all tenants, ranked worst-first |
260
- | `sophos_partner_gap_analysis` | Security gap and upsell opportunity report across all tenants |
261
259
  | `sophos_create_tenant` | Create a new managed tenant |
262
260
  | `sophos_get_managed_tenant` | Get managed tenant details |
263
261
  | `sophos_list_partner_roles` | List partner-level roles |
@@ -273,6 +271,7 @@ Two Fusion case writes, `createCase` and `addEvidenceToCase`, fail 74% of the ti
273
271
  | `sophos_add_partner_admin_role_assignment` | Add role assignment to admin |
274
272
  | `sophos_delete_partner_admin_role_assignment` | Remove role assignment |
275
273
  | `sophos_get_billing_usage` | Get billing usage for a specific month |
274
+ | `sophos_get_billing_summary` | Billing usage for a month, totalled per customer |
276
275
 
277
276
  ### Alerts (4 tools)
278
277
 
@@ -306,12 +305,11 @@ Two Fusion case writes, `createCase` and `addEvidenceToCase`, fail 74% of the ti
306
305
  | `sophos_bulk_isolate_endpoints` | Bulk isolate/release multiple endpoints |
307
306
  | `sophos_get_endpoint_isolation_status` | Get endpoint isolation status |
308
307
 
309
- ### Endpoint Settings (30 tools)
308
+ ### Endpoint Settings (26 tools)
310
309
 
311
310
  | Tool | Description |
312
311
  |------|-------------|
313
312
  | `sophos_list_installer_downloads` | List available installer packages |
314
- | `sophos_get_installer_download` | Get specific installer download link |
315
313
  | `sophos_list_blocked_addresses` | List blocked network addresses |
316
314
  | `sophos_add_blocked_address` | Add a blocked network address |
317
315
  | `sophos_delete_blocked_address` | Delete a blocked address |
@@ -323,7 +321,6 @@ Two Fusion case writes, `createCase` and `addEvidenceToCase`, fail 74% of the ti
323
321
  | `sophos_get_tls_decryption_settings` | Get TLS decryption settings |
324
322
  | `sophos_update_tls_decryption_settings` | Update TLS decryption settings |
325
323
  | `sophos_get_global_tamper_protection` | Get global tamper protection settings |
326
- | `sophos_update_global_tamper_protection` | Update global tamper protection |
327
324
  | `sophos_list_detected_exploits` | List detected exploits |
328
325
  | `sophos_get_detected_exploit` | Get exploit detail |
329
326
  | `sophos_list_exploit_mitigation_categories` | List exploit mitigation categories |
@@ -338,17 +335,14 @@ Two Fusion case writes, `createCase` and `addEvidenceToCase`, fail 74% of the ti
338
335
  | `sophos_list_isolation_exclusions` | List isolation exclusions |
339
336
  | `sophos_add_isolation_exclusion` | Add isolation exclusion |
340
337
  | `sophos_delete_isolation_exclusion` | Delete isolation exclusion |
341
- | `sophos_get_lockdown_settings` | Get server lockdown settings |
342
- | `sophos_update_lockdown_settings` | Update server lockdown settings |
343
338
 
344
- ### Endpoint Migrations (7 tools)
339
+ ### Endpoint Migrations (6 tools)
345
340
 
346
341
  | Tool | Description |
347
342
  |------|-------------|
348
343
  | `sophos_list_migrations` | List endpoint migration jobs |
349
344
  | `sophos_get_migration` | Get migration job details |
350
345
  | `sophos_create_migration` | Create a new migration job |
351
- | `sophos_delete_migration` | Delete a migration job |
352
346
  | `sophos_list_migration_endpoints` | List endpoints in a migration |
353
347
  | `sophos_list_recommended_packages` | List recommended software packages |
354
348
  | `sophos_list_static_packages` | List static software packages |
@@ -403,7 +397,7 @@ Web profiles: setting `endpoint.web-control.web-profile-id` also sends `filter-b
403
397
  | `sophos_list_account_health` | Bulk health scores for all tenants (partner/org only) |
404
398
  | `sophos_partner_gap_analysis` | Gap analysis across all tenants (partner/org only) |
405
399
 
406
- ### Directory Users & Groups (17 tools)
400
+ ### Directory Users & Groups (16 tools)
407
401
 
408
402
  | Tool | Description |
409
403
  |------|-------------|
@@ -420,12 +414,11 @@ Web profiles: setting `endpoint.web-control.web-profile-id` also sends `filter-b
420
414
  | `sophos_list_user_group_members` | List members of a user group |
421
415
  | `sophos_add_users_to_group` | Add users to a group |
422
416
  | `sophos_remove_user_from_group` | Remove a user from a group |
423
- | `sophos_list_user_group_endpoints` | List endpoints in a user group |
424
417
  | `sophos_list_user_group_policies` | List policies assigned to a user group |
425
418
  | `sophos_list_admins` | List admin accounts and roles |
426
419
  | `sophos_list_roles` | List available admin roles |
427
420
 
428
- ### Admin Management (13 tools)
421
+ ### Admin Management (12 tools)
429
422
 
430
423
  | Tool | Description |
431
424
  |------|-------------|
@@ -441,7 +434,6 @@ Web profiles: setting `endpoint.web-control.web-profile-id` also sends `filter-b
441
434
  | `sophos_update_role` | Update a role |
442
435
  | `sophos_delete_role` | Delete a role |
443
436
  | `sophos_list_permission_sets` | List available permission sets |
444
- | `sophos_reset_admin_password` | Reset an admin's password |
445
437
 
446
438
  ### Cases (9 tools)
447
439
 
@@ -616,12 +608,12 @@ for about 3 minutes to cover that window.
616
608
  | Tool | Description |
617
609
  |------|-------------|
618
610
  | `sophos_get_mobile_auto_enrollment` | Get auto-enrollment settings |
619
- | `sophos_update_mobile_auto_enrollment` | Update auto-enrollment settings |
611
+ | `sophos_update_mobile_auto_enrollment` | Update auto-enrollment settings (keeps what you leave out) |
620
612
  | `sophos_list_mobile_os` | List supported mobile OS platforms |
621
613
  | `sophos_list_mobile_devices` | List mobile devices with filters |
622
614
  | `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 |
615
+ | `sophos_create_mobile_device` | Create a mobile device |
616
+ | `sophos_update_mobile_device` | Update device properties (keeps what you leave out) |
625
617
  | `sophos_delete_mobile_device` | Delete/unenroll a device |
626
618
  | `sophos_list_mobile_device_properties` | Get device properties |
627
619
  | `sophos_get_mobile_device_compliance` | Get compliance status |
@@ -632,7 +624,7 @@ for about 3 minutes to cover that window.
632
624
  | `sophos_list_mobile_device_groups` | List device groups |
633
625
  | `sophos_get_mobile_device_group` | Get device group detail |
634
626
  | `sophos_create_mobile_device_group` | Create a device group |
635
- | `sophos_update_mobile_device_group` | Update a device group |
627
+ | `sophos_update_mobile_device_group` | Update a device group (keeps what you leave out) |
636
628
  | `sophos_delete_mobile_device_group` | Delete a device group |
637
629
  | `sophos_sync_mobile_device` | Sync a device |
638
630
  | `sophos_request_mobile_device_logs` | Request device logs |
@@ -645,7 +637,7 @@ for about 3 minutes to cover that window.
645
637
  | `sophos_list_mobile_app_groups` | List app groups |
646
638
  | `sophos_get_mobile_app_group` | Get app group detail |
647
639
  | `sophos_create_mobile_app_group` | Create an app group |
648
- | `sophos_update_mobile_app_group` | Update an app group |
640
+ | `sophos_update_mobile_app_group` | Rename an app group or replace its app list |
649
641
  | `sophos_delete_mobile_app_group` | Delete an app group |
650
642
 
651
643
  ### DNS Protection (5 tools)
@@ -658,14 +650,15 @@ for about 3 minutes to cover that window.
658
650
  | `sophos_update_dns_location` | Update a DNS location |
659
651
  | `sophos_delete_dns_location` | Delete a DNS location |
660
652
 
661
- ### Cloud Security (5 tools)
653
+ ### Cloud Security (6 tools)
662
654
 
663
655
  | Tool | Description |
664
656
  |------|-------------|
665
657
  | `sophos_list_cloud_security_profiles` | List cloud security profiles |
658
+ | `sophos_list_cloud_security_default_contents` | List the content versions a new profile can use |
666
659
  | `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 |
660
+ | `sophos_create_cloud_security_profile` | Create a runtime detection profile or a new version of one |
661
+ | `sophos_update_cloud_security_profile` | Rename a profile |
669
662
  | `sophos_delete_cloud_security_profile` | Delete a profile |
670
663
 
671
664
  ### Wi-Fi (3 tools)
@@ -703,14 +696,14 @@ for about 3 minutes to cover that window.
703
696
  | `sophos_list_web_filtering_profiles` | List web filtering profiles |
704
697
  | `sophos_get_web_filtering_profile` | Get a web filtering profile |
705
698
  | `sophos_create_web_filtering_profile` | Create a web filtering profile |
706
- | `sophos_update_web_filtering_profile` | Update (replace) a web filtering profile |
699
+ | `sophos_update_web_filtering_profile` | Update a web filtering profile (keeps what you leave out) |
707
700
  | `sophos_delete_web_filtering_profile` | Delete a web filtering profile |
708
701
  | `sophos_clone_web_filtering_profile` | Clone a web filtering profile |
709
702
  | `sophos_get_web_filtering_metadata` | Get categories, groups, and presets |
710
703
  | `sophos_list_site_lists` | List site lists |
711
704
  | `sophos_get_site_list` | Get a site list |
712
705
  | `sophos_create_site_list` | Create a site list |
713
- | `sophos_update_site_list` | Update (replace) a site list |
706
+ | `sophos_update_site_list` | Update a site list (keeps what you leave out) |
714
707
  | `sophos_delete_site_list` | Delete a site list |
715
708
  | `sophos_clone_site_list` | Clone a site list |
716
709
  | `sophos_list_sites` | List the sites in a site list |
@@ -3,7 +3,7 @@
3
3
  * sophos_list_admin_role_assignments, sophos_add_admin_role_assignment,
4
4
  * sophos_delete_admin_role_assignment, sophos_get_admin_role_assignment,
5
5
  * sophos_create_role, sophos_get_role, sophos_update_role, sophos_delete_role,
6
- * sophos_list_permission_sets, sophos_reset_admin_password
6
+ * sophos_list_permission_sets
7
7
  * Interact with the Sophos Common API for admin and role management.
8
8
  */
9
9
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
@@ -1 +1 @@
1
- {"version":3,"file":"admin-management.d.ts","sourceRoot":"","sources":["../../src/tools/admin-management.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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;AAKnE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,GAC7B,IAAI,CAilBN"}
1
+ {"version":3,"file":"admin-management.d.ts","sourceRoot":"","sources":["../../src/tools/admin-management.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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;AAKnE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,GAC7B,IAAI,CA4hBN"}
@@ -3,7 +3,7 @@
3
3
  * sophos_list_admin_role_assignments, sophos_add_admin_role_assignment,
4
4
  * sophos_delete_admin_role_assignment, sophos_get_admin_role_assignment,
5
5
  * sophos_create_role, sophos_get_role, sophos_update_role, sophos_delete_role,
6
- * sophos_list_permission_sets, sophos_reset_admin_password
6
+ * sophos_list_permission_sets
7
7
  * Interact with the Sophos Common API for admin and role management.
8
8
  */
9
9
  import { z } from "zod";
@@ -42,27 +42,21 @@ Returns:
42
42
  // --- Create Admin ---
43
43
  server.registerTool("sophos_create_admin", {
44
44
  title: "Create Sophos Admin",
45
- description: `Create a new administrator account in a Sophos Central tenant.
45
+ description: `Make an existing directory user an administrator of a Sophos Central tenant.
46
+
47
+ The API creates a tenant admin from a directory user (sophos_list_users gives the
48
+ ID) with exactly one role (sophos_list_roles gives role IDs).
46
49
 
47
50
  Args:
48
- - first_name (string): Admin's first name.
49
- - last_name (string): Admin's last name.
50
- - email (string): Admin's email address.
51
- - role_assignments (array, optional): Array of role assignment objects with roleId.
51
+ - user_id (string): Directory user ID.
52
+ - role_id (string): Role to assign.
52
53
  - tenant_id (string, optional): Tenant ID. Required for partner/org callers.
53
54
 
54
55
  Returns:
55
56
  The created admin record.`,
56
57
  inputSchema: {
57
- first_name: z.string().describe("Admin's first name"),
58
- last_name: z.string().describe("Admin's last name"),
59
- email: z.string().email().describe("Admin's email address"),
60
- role_assignments: z
61
- .array(z.object({
62
- roleId: z.string().uuid().describe("Role ID to assign"),
63
- }))
64
- .optional()
65
- .describe("Role assignments for the new admin"),
58
+ user_id: z.string().uuid().describe("Directory user ID"),
59
+ role_id: z.string().uuid().describe("Role to assign"),
66
60
  tenant_id: z
67
61
  .string()
68
62
  .uuid()
@@ -75,15 +69,9 @@ Returns:
75
69
  idempotentHint: false,
76
70
  openWorldHint: true,
77
71
  },
78
- }, withErrorHandling(async ({ first_name, last_name, email, role_assignments, tenant_id }) => {
72
+ }, withErrorHandling(async ({ user_id, role_id, tenant_id }) => {
79
73
  const resolvedTenantId = tenantResolver.resolveTenantId(tenant_id);
80
- const body = {
81
- firstName: first_name,
82
- lastName: last_name,
83
- email,
84
- };
85
- if (role_assignments?.length)
86
- body.roleAssignments = role_assignments;
74
+ const body = { userId: user_id, roleAssignments: [{ roleId: role_id }] };
87
75
  const data = await client.tenantRequest(resolvedTenantId, "/common/v1/admins", { method: "POST", body });
88
76
  return jsonResult({ status: "created", admin: data });
89
77
  }));
@@ -259,19 +247,22 @@ Returns:
259
247
 
260
248
  Args:
261
249
  - name (string): Role name.
250
+ - principal_type (string): "user" (for admins) or "service" (for API credentials).
251
+ - permission_sets (array): Permission set IDs (sophos_list_permission_sets). A
252
+ user role needs at least one set of type base and one of type product.
262
253
  - description (string, optional): Role description.
263
- - permission_sets (array, optional): Array of permission set IDs to include.
264
254
  - tenant_id (string, optional): Tenant ID. Required for partner/org callers.
265
255
 
266
256
  Returns:
267
257
  The created role.`,
268
258
  inputSchema: {
269
259
  name: z.string().describe("Role name"),
270
- description: z.string().optional().describe("Role description"),
260
+ principal_type: z.enum(["user", "service"]).describe("Who the role is for"),
271
261
  permission_sets: z
272
262
  .array(z.string())
273
- .optional()
263
+ .min(1)
274
264
  .describe("Permission set IDs to include in the role"),
265
+ description: z.string().optional().describe("Role description"),
275
266
  tenant_id: z
276
267
  .string()
277
268
  .uuid()
@@ -284,13 +275,11 @@ Returns:
284
275
  idempotentHint: false,
285
276
  openWorldHint: true,
286
277
  },
287
- }, withErrorHandling(async ({ name, description, permission_sets, tenant_id }) => {
278
+ }, withErrorHandling(async ({ name, principal_type, permission_sets, description, tenant_id }) => {
288
279
  const resolvedTenantId = tenantResolver.resolveTenantId(tenant_id);
289
- const body = { name };
280
+ const body = { name, principalType: principal_type, permissionSets: permission_sets };
290
281
  if (description)
291
282
  body.description = description;
292
- if (permission_sets?.length)
293
- body.permissionSets = permission_sets;
294
283
  const data = await client.tenantRequest(resolvedTenantId, "/common/v1/roles", { method: "POST", body });
295
284
  return jsonResult({ status: "created", role: data });
296
285
  }));
@@ -333,7 +322,8 @@ Args:
333
322
  - role_id (string): Role ID to update.
334
323
  - name (string, optional): New role name.
335
324
  - description (string, optional): New role description.
336
- - permission_sets (array, optional): Updated permission set IDs.
325
+ - permission_sets (array, optional): The complete new list of permission set IDs
326
+ (replaces the current list; measured 13/10/2026).
337
327
  - tenant_id (string, optional): Tenant ID. Required for partner/org callers.`,
338
328
  inputSchema: {
339
329
  role_id: z.string().uuid().describe("Role ID to update"),
@@ -441,40 +431,5 @@ Returns:
441
431
  permission_sets: items,
442
432
  });
443
433
  }));
444
- // --- Reset Admin Password ---
445
- server.registerTool("sophos_reset_admin_password", {
446
- title: "Reset Sophos Admin Password",
447
- description: `Trigger a password reset for an administrator. The admin will receive
448
- a password reset email.
449
-
450
- Args:
451
- - admin_id (string): Admin ID.
452
- - tenant_id (string, optional): Tenant ID. Required for partner/org callers.
453
-
454
- Returns:
455
- Confirmation that the password reset has been initiated.`,
456
- inputSchema: {
457
- admin_id: z.string().uuid().describe("Admin ID"),
458
- tenant_id: z
459
- .string()
460
- .uuid()
461
- .optional()
462
- .describe("Tenant ID. Required for partner/org callers."),
463
- },
464
- annotations: {
465
- readOnlyHint: false,
466
- destructiveHint: false,
467
- idempotentHint: false,
468
- openWorldHint: true,
469
- },
470
- }, withErrorHandling(async ({ admin_id, tenant_id }) => {
471
- const resolvedTenantId = tenantResolver.resolveTenantId(tenant_id);
472
- await client.tenantRequest(resolvedTenantId, `/common/v1/admins/${admin_id}/reset-password`, { method: "POST", body: {} });
473
- return jsonResult({
474
- status: "initiated",
475
- admin_id,
476
- message: `Password reset initiated for admin ${admin_id}. The admin will receive a reset email.`,
477
- });
478
- }));
479
434
  }
480
435
  //# sourceMappingURL=admin-management.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-management.js","sourceRoot":"","sources":["../../src/tools/admin-management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-management.js","sourceRoot":"","sources":["../../src/tools/admin-management.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../src/tools/alerts.ts"],"names":[],"mappings":"AAAA;;;GAGG;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;AAKnE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,GAC7B,IAAI,CAwON"}
1
+ {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../src/tools/alerts.ts"],"names":[],"mappings":"AAAA;;;GAGG;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;AAKnE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,GAC7B,IAAI,CAsPN"}
@@ -21,10 +21,11 @@ Args:
21
21
  - product (string, optional): Filter by product e.g. "endpoint", "server", "firewall", "email".
22
22
  - from_date (string, optional): ISO 8601 start date e.g. "2025-01-01T00:00:00Z".
23
23
  - limit (number, optional): Max results per page (1-100, default 50).
24
- - page (number, optional): Page number (default 1).
24
+ - page_from_key (string, optional): next_page_from_key from the previous page.
25
25
 
26
26
  Returns:
27
- Paginated list of alerts with: id, severity, category, description, product, raisedAt, managedAgent, allowedActions.`,
27
+ A page of alerts with: id, severity, category, description, product, raisedAt,
28
+ managedAgent, allowedActions, and next_page_from_key when there are more.`,
28
29
  inputSchema: {
29
30
  tenant_id: z
30
31
  .string()
@@ -55,13 +56,10 @@ Returns:
55
56
  .optional()
56
57
  .default(DEFAULT_PAGE_SIZE)
57
58
  .describe("Max results per page (default 50)"),
58
- page: z
59
- .number()
60
- .int()
61
- .min(1)
59
+ page_from_key: z
60
+ .string()
62
61
  .optional()
63
- .default(1)
64
- .describe("Page number (default 1)"),
62
+ .describe("next_page_from_key from the previous page"),
65
63
  },
66
64
  annotations: {
67
65
  readOnlyHint: true,
@@ -69,12 +67,15 @@ Returns:
69
67
  idempotentHint: true,
70
68
  openWorldHint: true,
71
69
  },
72
- }, withErrorHandling(async ({ tenant_id, severity, category, product, from_date, limit, page }) => {
70
+ }, withErrorHandling(async ({ tenant_id, severity, category, product, from_date, limit, page_from_key }) => {
73
71
  const resolvedTenantId = tenantResolver.resolveTenantId(tenant_id);
72
+ // The alerts API pages by key (pageFromKey); a page number is ignored
74
73
  const params = {
75
74
  pageSize: String(limit),
76
- page: String(page),
75
+ pageTotal: "true",
77
76
  };
77
+ if (page_from_key)
78
+ params.pageFromKey = page_from_key;
78
79
  if (severity)
79
80
  params.severity = severity;
80
81
  if (category)
@@ -85,10 +86,9 @@ Returns:
85
86
  params.from = from_date;
86
87
  const data = await client.tenantRequest(resolvedTenantId, "/common/v1/alerts", { params });
87
88
  return jsonResult({
88
- total: data.pages.total ?? data.pages.items ?? data.items.length,
89
- page: data.pages.current ?? page,
89
+ total: data.pages.items ?? data.items.length,
90
90
  page_size: data.pages.size,
91
- total_pages: data.pages.total,
91
+ next_page_from_key: data.pages.nextKey ?? null,
92
92
  alerts: data.items.map(formatAlert),
93
93
  });
94
94
  }));
@@ -162,44 +162,65 @@ Args:
162
162
  // --- Search Alerts ---
163
163
  server.registerTool("sophos_search_alerts", {
164
164
  title: "Search Sophos Alerts",
165
- description: `Search alerts using the advanced search endpoint with structured filters.
165
+ description: `Search alerts with several values per filter (POST /common/v1/alerts/search).
166
166
 
167
- Supports filtering by IDs, fields, date ranges, and sorting. Use this for more
168
- complex alert queries that go beyond the simple list filters.
167
+ Every filter is optional and takes a list. Results page by key: pass the
168
+ previous result's next_page_from_key as page_from_key.
169
169
 
170
170
  Args:
171
171
  - tenant_id (string, optional): Tenant ID. Required for partner/org callers.
172
- - filter (object, optional): Search filters. Values must be arrays e.g. {"category": ["malware"], "severity": ["high", "medium"]}. Supported fields: ids, severity, category, product, from, to.
173
- - sort (array, optional): Sort criteria e.g. [{"field": "raisedAt", "direction": "desc"}].
172
+ - ids (array, optional): Alert IDs.
173
+ - severity (array, optional): "high", "medium", "low".
174
+ - category (array, optional): Alert categories, for example "malware", "policy", "runtimeDetections".
175
+ - product (array, optional): Products, for example "endpoint", "server", "firewall".
176
+ - group_key (string, optional): Alert group key.
177
+ - from (string, optional): Raised on or after this time (ISO 8601).
178
+ - to (string, optional): Raised before this time (ISO 8601).
179
+ - sort (array, optional): Sort fields, each "field" or "field:asc|desc", for example "raisedAt:desc".
174
180
  - limit (number, optional): Max results (default 50).
175
- - page (number, optional): Page number (default 1).`,
181
+ - page_from_key (string, optional): next_page_from_key from the previous page.`,
176
182
  inputSchema: {
177
183
  tenant_id: z.string().uuid().optional().describe("Tenant ID. Required for partner/org callers."),
178
- filter: z.record(z.unknown()).optional().describe("Search filters (ids, severity, category, product, from, to)"),
179
- sort: z.array(z.object({
180
- field: z.string().describe("Field to sort by"),
181
- direction: z.enum(["asc", "desc"]).optional().describe("Sort direction"),
182
- })).optional().describe("Sort criteria"),
184
+ ids: z.array(z.string().uuid()).optional().describe("Alert IDs"),
185
+ severity: z.array(z.enum(["high", "medium", "low"])).optional().describe("Severities"),
186
+ category: z.array(z.string()).optional().describe("Alert categories"),
187
+ product: z.array(z.string()).optional().describe("Products"),
188
+ group_key: z.string().optional().describe("Alert group key"),
189
+ from: z.string().optional().describe("Raised on or after this time (ISO 8601)"),
190
+ to: z.string().optional().describe("Raised before this time (ISO 8601)"),
191
+ sort: z
192
+ .array(z.string().regex(/^[^:]+(:(asc|desc))?$/, 'Use "field" or "field:asc|desc"'))
193
+ .optional()
194
+ .describe('Sort fields, for example "raisedAt:desc"'),
183
195
  limit: z.coerce.number().int().min(1).max(100).optional().default(DEFAULT_PAGE_SIZE).describe("Max results per page (default 50)"),
184
- page: z.coerce.number().int().min(1).optional().default(1).describe("Page number (default 1)"),
196
+ page_from_key: z.string().optional().describe("next_page_from_key from the previous page"),
185
197
  },
186
198
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
187
- }, withErrorHandling(async ({ tenant_id, filter, sort, limit, page }) => {
199
+ }, withErrorHandling(async ({ tenant_id, ids, severity, category, product, group_key, from, to, sort, limit, page_from_key }) => {
188
200
  const resolvedTenantId = tenantResolver.resolveTenantId(tenant_id);
189
- const body = {
190
- pageSize: limit,
191
- pageTotal: true,
192
- };
193
- if (filter)
194
- body.filter = filter;
201
+ const body = { pageSize: limit, pageTotal: true };
202
+ if (ids)
203
+ body.ids = ids;
204
+ if (severity)
205
+ body.severity = severity;
206
+ if (category)
207
+ body.category = category;
208
+ if (product)
209
+ body.product = product;
210
+ if (group_key)
211
+ body.groupKey = group_key;
212
+ if (from)
213
+ body.from = from;
214
+ if (to)
215
+ body.to = to;
195
216
  if (sort)
196
217
  body.sort = sort;
197
- if (page)
198
- body.page = page;
218
+ if (page_from_key)
219
+ body.pageFromKey = page_from_key;
199
220
  const data = await client.tenantRequest(resolvedTenantId, "/common/v1/alerts/search", { method: "POST", body });
200
221
  return jsonResult({
201
- total: data.pages.total ?? data.pages.items ?? data.items.length,
202
- page: data.pages.current ?? page,
222
+ total: data.pages.items ?? data.items.length,
223
+ next_page_from_key: data.pages.nextKey ?? null,
203
224
  alerts: data.items.map(formatAlert),
204
225
  });
205
226
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../src/tools/alerts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../src/tools/alerts.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * Tools: sophos_list_cloud_security_profiles, sophos_get_cloud_security_profile,
2
+ * Tools: sophos_list_cloud_security_profiles, sophos_list_cloud_security_default_contents,
3
+ * sophos_get_cloud_security_profile,
3
4
  * sophos_create_cloud_security_profile, sophos_update_cloud_security_profile,
4
5
  * sophos_delete_cloud_security_profile
5
- * Interact with the Sophos Cloud Security API /cloud-security/v1/
6
+ * Interact with the Sophos Cloud Security API /cloud-security/v1/ (runtime detection
7
+ * profiles), shaped by its published spec 1.0.0
6
8
  */
7
9
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
10
  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;;;;;;;GAOG;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,CA4SN"}