sophos-central-mcp
Read-only MCP server for Sophos Central that provides endpoint health, firewall inventory, switch settings, and email quarantine inspection through natural language queries.
README
Sophos Central MCP (read-only)
Unofficial MCP server exposing read-only Sophos Central information: antivirus/endpoint health, firewall inventory and status, switch settings, and email protection (quarantine, mailboxes, clawback status). Built against the public Sophos Central APIs using the vendor's own Postman collection as the source of truth for paths, headers, and response shapes.
Not affiliated with, endorsed by, or sponsored by Sophos.
Scope: read-only, by design
This server implements no mutating endpoints at all — not behind a flag, not behind a deny-list, they simply aren't wired up. Excluded on purpose:
- Endpoint: isolate/un-isolate, tamper-protection changes, policy CRUD, scans, forensic logs/memory dumps, endpoint-group CRUD, migrations.
- Firewall: firmware upgrades, reboot/other firewall actions, firewall-group CRUD, MDR threat-feed indicator writes.
- Switch: MAC-filter list writes.
- Email: quarantine/post-delivery-quarantine release or delete, clawback initiation, mailbox create/update/delete/bulk, alias/delegate/distribution-list-owner writes, attachment strip/reattach/download.
If you need any of those, they're documented in Sophos's API but not implemented here —
open an issue or add a tool following the same pattern in src/tools.ts.
Authentication
Sophos Central uses OAuth2 client-credentials. Create an API Credential in Sophos Central under Settings > API Credential Management, which gives you a Client ID and Client Secret scoped to one tenant (or an organization/partner account managing multiple tenants).
SOPHOS_CLIENT_ID=...
SOPHOS_CLIENT_SECRET=...
The server exchanges these for an access token (https://id.sophos.com/api/v2/oauth2/token),
resolves the caller's tenant ID and data-region API host via whoami, and sends
X-Tenant-ID (or X-Organization-ID/X-Partner-ID for those credential types) on every
subsequent request. No tenant ID needs to be configured manually.
Install
npm ci && npm run build
Then point your MCP client at dist/entry.js:
{
"mcpServers": {
"sophos-central": {
"command": "node",
"args": ["/path/to/sophos-central-mcp/dist/entry.js"],
"env": {
"SOPHOS_CLIENT_ID": "...",
"SOPHOS_CLIENT_SECRET": "..."
}
}
}
}
Tools
| Tool | Domain | Description |
|---|---|---|
sophos_whoami |
— | Resolved tenant/organization/partner identity and API region |
sophos_list_alerts |
Common | Cross-product alert feed (endpoint, firewall, email, etc.) |
sophos_get_alert |
Common | Get one alert by ID |
sophos_list_endpoints |
Endpoint | Device inventory with health/isolation/tamper status |
sophos_get_endpoint |
Endpoint | Get one endpoint by ID |
sophos_get_endpoint_isolation_status |
Endpoint | Isolation status for one endpoint |
sophos_get_endpoint_tamper_protection |
Endpoint | Tamper protection status for one endpoint |
sophos_list_endpoint_groups |
Endpoint | List device groups |
sophos_get_endpoint_group |
Endpoint | Get one device group |
sophos_list_endpoint_group_members |
Endpoint | List endpoints in a group |
sophos_list_firewalls |
Firewall | Firewall inventory, firmware, connection/sync status |
sophos_list_firewall_groups |
Firewall | List firewall groups |
sophos_get_firewall_group_sync_status |
Firewall | Per-firewall config sync status within a group |
sophos_get_firewall_mdr_threat_feed |
Firewall | MDR threat feed config for one firewall |
sophos_get_switch_mac_filtering |
Switch | Tenant-wide MAC filter allow-list |
sophos_list_switch_tasks |
Switch | Async switch config-push task status |
sophos_search_quarantine_messages |
Search quarantined email (malware/spam/impersonation) | |
sophos_get_quarantine_message_preview |
Preview one quarantined message | |
sophos_get_quarantine_message_urls |
URLs found in one quarantined message | |
sophos_get_quarantine_message_attachments |
Attachment metadata for one quarantined message | |
sophos_search_post_delivery_quarantine_messages |
Search post-delivery quarantine | |
sophos_get_post_delivery_quarantine_message_preview |
Preview one post-delivery-quarantined message | |
sophos_list_mailboxes |
List protected mailboxes | |
sophos_get_mailbox |
Get one mailbox by ID | |
sophos_get_message_clawback_status |
Status of a clawback request |
Sophos's own API surface notes
- Switch API is currently narrow. The vendor's own Postman examples only cover MAC-filter settings and async task status — no separate switch-device inventory endpoint is documented there as of this writing.
- Endpoint restore/file-browsing and firewall traffic logs are not covered by this API surface at all; Sophos Central's console remains the place for those.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.