# automoxcommunity/automox-mcp architecture

> Architecture diagram of the GitHub repository automoxcommunity/automox-mcp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/automoxcommunity/automox-mcp
- Repository: https://github.com/automoxcommunity/automox-mcp

## Overview

Automox MCP Server lets an AI assistant invoke Automox operations through MCP tools and resources, returning management and compliance results. The main path is client request → MCP server registration and dispatch → domain tool/workflow → Automox API → response. The repository also exposes guided prompts and interactive resource apps, spanning device inventory/search, policy and patch management, auditing, groups, webhooks, vulnerability remediation, and related operations. Edges reflect README statements or source-index references and excerpts; some domain modules were not sampled, so their internal calls are not expanded.

Main entry points: [`src/automox_mcp/client.py`](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/client.py) (HTTP client), [`src/automox_mcp/server.py`](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/server.py) (MCP server), [`src/automox_mcp/tools/__init__.py`](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/__init__.py) (Tool registry), [`src/automox_mcp/tools/device_search_tools.py`](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/device_search_tools.py) (Device tools)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["MCP entry"]
  node_server["MCP server<br/>[server.py]"]
  node_tool_registry["Tool registry<br/>[__init__.py]"]
end

subgraph group_domain["Automox operations"]
  node_device_tools["Device tools"]
  node_device_flows["Device inventory and search<br/>[device_search.py]"]
  node_policy_tools["Policy tools<br/>[policy_tools.py]"]
  node_policy_flows["Policy operations<br/>[policy_crud.py]"]
  node_account_tools["Account and audit tools<br/>[account_tools.py]"]
  node_webhook_tools["Webhook tools<br/>[webhook_tools.py]"]
  node_webhook_flows["Webhook operations<br/>[webhooks.py]"]
  node_other_tools["Other domain tools"]
  node_other_flows["Other domain workflows"]
end

subgraph group_experience["Guidance and apps"]
  node_resources["Resources registry<br/>[__init__.py]"]
  node_resource_apps["Guided resource apps"]
  node_prompts["Guided prompts<br/>[__init__.py]"]
end

subgraph group_foundation["Shared foundations"]
  node_client["HTTP client<br/>[client.py]"]
  node_schemas["Input and output schemas<br/>[schemas.py]"]
  node_tooling["Tooling utilities<br/>[tooling.py]"]
  node_sanitizer["Response sanitizer<br/>[sanitize.py]"]
  node_response_utils["Response helpers<br/>[response.py]"]
end

node_assistant(("AI assistant"))
node_automox(("Automox API"))

node_assistant -->|"sends MCP requests"| node_server
node_server -->|"registers tools"| node_tool_registry
node_server -->|"registers resources"| node_resources
node_server -->|"registers prompts"| node_prompts
node_tool_registry -->|"loads tool modules"| node_device_tools
node_device_tools -->|"invokes workflows"| node_device_flows
node_device_flows -->|"sends API requests"| node_client
node_policy_tools -->|"invokes workflows"| node_policy_flows
node_policy_flows -->|"sends API requests"| node_client
node_account_tools -->|"uses app module"| node_resources
node_webhook_tools -->|"invokes workflows"| node_webhook_flows
node_webhook_flows -->|"sends API requests"| node_client
node_other_tools -.->|"invokes domain workflows"| node_other_flows
node_other_flows -.->|"calls Automox API"| node_client
node_resources -->|"loads resource modules"| node_resource_apps
node_client -->|"makes HTTP requests"| node_automox
node_tool_registry -->|"uses shared helpers"| node_tooling
node_tool_registry -->|"uses API client"| node_client
node_device_tools -->|"uses schemas"| node_schemas
node_policy_tools -->|"uses schemas"| node_schemas
node_tooling -->|"sanitizes responses"| node_sanitizer
node_device_flows -->|"builds response metadata"| node_response_utils

click node_server "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/server.py"
click node_tool_registry "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/__init__.py"
click node_device_tools "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/device_search_tools.py"
click node_device_flows "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/workflows/device_search.py"
click node_policy_tools "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/policy_tools.py"
click node_policy_flows "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/workflows/policy_crud.py"
click node_account_tools "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/account_tools.py"
click node_webhook_tools "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/webhook_tools.py"
click node_webhook_flows "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/workflows/webhooks.py"
click node_other_tools "https://github.com/automoxcommunity/automox-mcp/tree/main/src/automox_mcp/tools"
click node_other_flows "https://github.com/automoxcommunity/automox-mcp/tree/main/src/automox_mcp/workflows"
click node_resources "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/resources/__init__.py"
click node_resource_apps "https://github.com/automoxcommunity/automox-mcp/tree/main/src/automox_mcp/resources"
click node_prompts "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/prompts/__init__.py"
click node_client "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/client.py"
click node_schemas "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/schemas.py"
click node_tooling "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/utils/tooling.py"
click node_sanitizer "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/utils/sanitize.py"
click node_response_utils "https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/utils/response.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_tool_registry toneBlue
class node_device_tools,node_device_flows,node_policy_tools,node_policy_flows,node_account_tools,node_webhook_tools,node_webhook_flows,node_other_tools,node_other_flows toneAmber
class node_resources,node_resource_apps,node_prompts,node_automox toneMint
class node_client,node_schemas,node_tooling,node_sanitizer,node_response_utils toneRose
class node_assistant toneIndigo
```

## Components

### MCP entry

- [MCP server](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/server.py): `src/automox_mcp/server.py`
- [Tool registry](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/__init__.py): `src/automox_mcp/tools/__init__.py`

### Automox operations

- [Device tools](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/device_search_tools.py): `src/automox_mcp/tools/device_search_tools.py`
- [Device inventory and search](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/workflows/device_search.py): `src/automox_mcp/workflows/device_search.py`
- [Policy tools](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/policy_tools.py): `src/automox_mcp/tools/policy_tools.py`
- [Policy operations](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/workflows/policy_crud.py): `src/automox_mcp/workflows/policy_crud.py`
- [Account and audit tools](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/account_tools.py): `src/automox_mcp/tools/account_tools.py`
- [Webhook tools](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/tools/webhook_tools.py): `src/automox_mcp/tools/webhook_tools.py`
- [Webhook operations](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/workflows/webhooks.py): `src/automox_mcp/workflows/webhooks.py`
- [Other domain tools](https://github.com/automoxcommunity/automox-mcp/tree/main/src/automox_mcp/tools): `src/automox_mcp/tools`
- [Other domain workflows](https://github.com/automoxcommunity/automox-mcp/tree/main/src/automox_mcp/workflows): `src/automox_mcp/workflows`

### Guidance and apps

- [Resources registry](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/resources/__init__.py): `src/automox_mcp/resources/__init__.py`
- [Guided resource apps](https://github.com/automoxcommunity/automox-mcp/tree/main/src/automox_mcp/resources): `src/automox_mcp/resources`
- [Guided prompts](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/prompts/__init__.py): `src/automox_mcp/prompts/__init__.py`

### Shared foundations

- [HTTP client](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/client.py): `src/automox_mcp/client.py`
- [Input and output schemas](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/schemas.py): `src/automox_mcp/schemas.py`
- [Tooling utilities](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/utils/tooling.py): `src/automox_mcp/utils/tooling.py`
- [Response sanitizer](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/utils/sanitize.py): `src/automox_mcp/utils/sanitize.py`
- [Response helpers](https://github.com/automoxcommunity/automox-mcp/blob/main/src/automox_mcp/utils/response.py): `src/automox_mcp/utils/response.py`

### Other components

- **AI assistant**
- **Automox API**

## Connections

- AI assistant → MCP server: sends MCP requests (evidence: `README.md`)
- MCP server → Tool registry: registers tools (evidence: `src/automox_mcp/server.py`)
- MCP server → Resources registry: registers resources (evidence: `src/automox_mcp/server.py`)
- MCP server → Guided prompts: registers prompts (evidence: `src/automox_mcp/server.py`)
- Tool registry → Device tools: loads tool modules (evidence: `src/automox_mcp/tools/__init__.py`)
- Device tools → Device inventory and search: invokes workflows (evidence: `src/automox_mcp/tools/device_search_tools.py`)
- Device inventory and search → HTTP client: sends API requests (evidence: `src/automox_mcp/workflows/device_search.py`)
- Policy tools → Policy operations: invokes workflows (evidence: `src/automox_mcp/tools/policy_tools.py`)
- Policy operations → HTTP client: sends API requests (evidence: `src/automox_mcp/workflows/policy_crud.py`)
- Account and audit tools → Resources registry: uses app module (evidence: `src/automox_mcp/tools/account_tools.py`)
- Webhook tools → Webhook operations: invokes workflows (evidence: `src/automox_mcp/tools/webhook_tools.py`)
- Webhook operations → HTTP client: sends API requests (evidence: `src/automox_mcp/workflows/webhooks.py`)
- Other domain tools → Other domain workflows: invokes domain workflows (evidence: `src/automox_mcp/tools/webhook_tools.py`)
- Other domain workflows → HTTP client: calls Automox API (evidence: `src/automox_mcp/workflows/webhooks.py`)
- Resources registry → Guided resource apps: loads resource modules (evidence: `src/automox_mcp/resources/__init__.py`)
- HTTP client → Automox API: makes HTTP requests (evidence: `README.md`)
- Tool registry → Tooling utilities: uses shared helpers (evidence: `src/automox_mcp/tools/__init__.py`)
- Tool registry → HTTP client: uses API client (evidence: `src/automox_mcp/tools/__init__.py`)
- Device tools → Input and output schemas: uses schemas (evidence: `src/automox_mcp/tools/device_search_tools.py`)
- Policy tools → Input and output schemas: uses schemas (evidence: `src/automox_mcp/tools/policy_tools.py`)
- Tooling utilities → Response sanitizer: sanitizes responses (evidence: `src/automox_mcp/utils/tooling.py`)
- Device inventory and search → Response helpers: builds response metadata (evidence: `src/automox_mcp/workflows/device_search.py`)
