返回 MCP 目录
public公开dns本地运行

automox-mcp

这是一个用于Automox平台的MCP服务器项目,允许用户通过AI助手管理设备、策略和用户账户,提供18个针对常见运维任务的高级别工作流工具。

article

README

🚀 Automox MCP Server

Automox MCP Server 提供了一个模型上下文协议(MCP)服务器,它能让 Automox 客户通过 AI 助手访问其 Automox 控制台。该服务器公开了多个高级工作流工具,专注于常见的操作任务,用于管理设备、策略和用户账户。此项目并非完整的 API 包装器,而是旨在提供一系列针对常见操作场景的 Automox 工作流。

⚠️ 重要提示

本项目正在积极开发中,在稳定的 1.0 版本发布之前,功能可能会发生变化。欢迎贡献代码和提出额外工作流的建议!请通过 GitHub Issues 提供任何反馈。

⚠️ 重要提醒

请记住,AI 远非完美,它可能会出错。其生成的数据可能不正确或不完整。如果您发现 MCP 服务器一直存在此类问题,请提交一个 GitHub Issue,以便我们进行调查并在响应中添加更严格的防护措施。

🚀 快速开始

可用工具

MCP 服务器公开了 18 个高级工作流工具,用于常见的 Automox 管理任务:

设备管理(6 个工具)

  • list_devices:汇总整个组织的设备清单和策略状态。默认情况下包括未管理的设备,并支持 policy_status/managed 过滤器,因此您可以专注于例如不符合要求的受管端点。
  • device_detail:返回精心整理的设备上下文(最近的策略状态、分配情况、排队的命令、关键信息)。仅当您明确需要 Automox 原始有效负载的清理切片时,才传递 include_raw_details=true
  • devices_needing_attention:显示需要立即处理的 Automox 设备。
  • search_devices:按主机名、IP、标签、状态或缺失补丁的严重程度搜索 Automox 设备。
  • device_health_metrics:汇总组织的设备健康指标。提供 limit 以采样较少的设备(默认 500 个),并提供 max_stale_devices 以限制陈旧设备列表,以便获得适合令牌的响应。
  • execute_device_command:向设备发出即时命令(扫描、全部打补丁、特定打补丁、重启)。

策略管理(9 个工具)

  • policy_health_overview:总结最近的 Automox 策略活动。如果省略 org_uuid,服务器将从 AUTOMOX_ORG_ID / AUTOMOX_ORG_UUID 解析它。
  • policy_execution_timeline:查看策略的最近执行情况。
  • policy_run_results:获取特定执行令牌(由 policy_execution_timeline 返回)的每个设备的结果(标准输出、标准错误、退出代码)。
  • policy_catalog:列出 Automox 策略及其类型和状态摘要。支持 page(从 0 开始索引)和 limit 分页;检查 metadata.pagination.has_more,阅读 metadata.notes,并根据需要遵循可选的 metadata.suggested_next_call 提示以继续获取额外的切片。
  • policy_detail:检索策略的配置和最近历史记录。
  • apply_policy_changes:预览或提交结构化的策略创建/更新操作。自动将辅助字段(filter_namefilter_names)和友好的调度块规范化为 Automox 预期的有效负载,确保在提交之前包含所需字段(例如 schedule_daysschedule_time)。
  • patch_approvals_summary:总结待处理的补丁批准及其严重程度。
  • decide_patch_approval:批准或拒绝 Automox 补丁批准请求。
  • execute_policy_now:立即执行策略以进行补救(所有设备或特定设备)。

账户管理(2 个工具)

  • invite_user_to_account:邀请用户加入 Automox 账户,并可选择分配区域。
  • remove_user_from_account:按 UUID 从 Automox 账户中移除用户。

审计跟踪(1 个工具)

  • audit_trail_user_activity:检索特定用户在给定日期执行的 Automox 审计跟踪事件,并支持可选的分页游标。如果需要更深入的调查,请设置 include_raw_events=true 以包含清理后的事件有效负载。传递完整的电子邮件地址或提供 actor_name/部分电子邮件提示,工具将自动解析匹配的 Automox 用户。

示例工作流

以下是一些如何结合 AI 助手使用 MCP 服务器的实际示例:

设备健康摘要

快速了解设备健康状况:

询问:“关于我在 Automox 中的设备健康状况,你能告诉我什么?”

MCP 服务器将返回全面的摘要,包括:

  • 整体设备群健康状况(设备总数、合规率)
  • 设备状态细分(就绪、未就绪、需要重启、正在刷新)
  • 打补丁状态(有待处理补丁的设备、需要关注的设备)
  • 检查最近情况分析(最近 24 小时、7 天、30 天、30 天以上)
  • 关键观察结果和建议的下一步操作
重启设备

简单而有效的设备管理:

询问:“你能重启 Automox 中的 'Testing box' 设备吗?”

AI 助手将:

  1. 搜索匹配主机名的设备
  2. 如果有多个匹配设备,则展示出来
  3. 确认后执行重启命令
  4. 甚至可以通过检查设备正常运行时间来验证重启是否成功
创建和更新策略

创建一个补丁策略,使 Firefox 保持最新:

询问:“你能创建一个使 Firefox 保持最新的补丁策略吗?
确保在补丁策略名称中包含 'henry',并针对 'MCP testing' 组中的设备。”

MCP 服务器将:

  1. 按名称查找服务器组
  2. 创建启用自动打补丁的补丁策略
  3. 配置调度(默认工作日凌晨 2 点)
  4. 设置用户通知
  5. 显示创建的策略配置

您还可以轻松更新策略调度:

询问:“你能将 'Auto - Patch Firefox - henry' 策略更新为仅在工作日运行吗?”

AI 将自动将调度从周末更新为工作日。

检查审计日志

查看 Automox 控制台中的用户活动:

询问:“Mark Hansen 上周在我们的 Automox 控制台中做了什么?”

MCP 服务器将:

  1. 查询指定日期范围内每天的审计跟踪
  2. 按天总结所有活动
  3. 提供总数并突出显示关键操作(策略更改、设备操作、用户管理)
  4. 识别诸如策略清理或重组活动等模式
生成报告

MCP 服务器支持生成全面的报告(由于具有 PDF 生成功能,与 Claude Desktop 配合使用效果最佳):

询问:“生成一份关于我们的策略健康状况和设备状态的全面报告”

AI 可以:

  • 从多个端点收集数据
  • 编译统计信息和趋势
  • 将信息格式化为可读的报告
  • 导出为 PDF 格式(使用 Claude Desktop 时)

💡 使用建议

报告生成可能需要几分钟时间,具体取决于组织规模。使用像 Haiku 这样较轻量级的模型可以加快速度,但可能会在细节上有所取舍。该过程可根据您的需求进行高度定制。

工具参数

大多数工具接受可选参数,用于过滤和分页:

  • 设备工具group_idlimitinclude_unmanageddevice_id
  • 策略工具org_uuid(可选;从配置的 Automox 组织自动解析)、window_daysreport_dayspolicy_id
  • 搜索工具hostname_containsip_addresstagpatch_status
  • 审计工具dateactor_emailactor_uuidcursorlimitinclude_raw_eventsorg_uuid(可选)
  • 执行工具
    • execute_policy_nowpolicy_id(必需)、action(remediateAll 或 remediateDevice)、device_id(可选,remediateDevice 时必需)
    • execute_device_commanddevice_id(必需)、command_type(scan、patch_all、patch_specific、reboot)、patch_names(可选,patch_specific 时必需)
    • apply_policy_changes:接受一个或多个 operations,每个条目包含 actioncreate/update)和一个策略有效负载。该辅助工具接受方便的简写(filter_namefilter_names),转换友好的 schedule 块,并强制执行 Automox 友好的默认值(例如,更新时包含 id)。
    • policy_run_resultspolicy_uuidexec_token 和可选过滤器(org_uuidresult_statusdevice_name、分页参数)。

设置与使用

前提条件

  • Python 3.11 或更高版本
  • uv(推荐)或 pip
  • Automox 账户信息
    • 账户 UUID
    • 组织 ID
    • API 凭证

在控制台中查找值

  • API 密钥:登录 Automox 控制台 → 省略号(右上角)→ 秘密与密钥 → 添加 API 密钥 (文档)
  • 账户 UUID:也可在秘密与密钥部分找到。
  • 组织 ID:您组织的 6 位数字标识符 - 通常可以在 Automox 控制台中管理组织时的 URL 中找到。

环境配置

创建一个包含 API 凭证的 .env 文件:

cp .env.example .env

然后编辑 .env 文件以添加您的凭证:

AUTOMOX_API_KEY=your-api-key
AUTOMOX_ACCOUNT_UUID=your-account-uuid-here
AUTOMOX_ORG_ID=your-org-id-here

快速开始(无需安装)

运行 Automox MCP 服务器最简单的方法是使用 uvx,它会自动下载并运行该包:

uvx --env-file .env automox-mcp

这种方法:

  • 无需安装步骤
  • 自动使用最新版本
  • .env 文件加载环境变量
  • 用于 MCP 客户端配置(见下面的编辑器/助手集成)

通过 HTTP 或 SSE 运行

CLI 入口点现在支持所有 FastMCP 传输。传递 --transport http 以启用现代可流式 HTTP 传输,或传递 --transport sse 以使用服务器发送事件。

# 可流式 HTTP(推荐)
uvx --env-file .env automox-mcp --transport http --host 127.0.0.1 --port 8000

# 旧版 SSE 传输(仅当您的客户端需要 SSE 时使用)
uvx --env-file .env automox-mcp --transport sse --host 127.0.0.1 --port 8000

如果省略 --host/--port,CLI 默认使用 127.0.0.1:8000。对于无头部署,可以使用环境变量(AUTOMOX_MCP_TRANSPORTAUTOMOX_MCP_HOSTAUTOMOX_MCP_PORTAUTOMOX_MCP_PATH)提供相同的值。

替代方案:持久安装

如果您更喜欢持久安装,可以全局安装该包:

使用 uv
uv tool install automox-mcp
使用 pip
pip install automox-mcp

然后在 shell 中设置环境变量后运行:

export AUTOMOX_API_KEY="your-api-key"
export AUTOMOX_ACCOUNT_UUID="your-account-uuid"
export AUTOMOX_ORG_ID="your-org-id"
automox-mcp

编辑器/助手集成

您可以将 Automox MCP 服务器与编辑器或 AI 助手集成。以下是流行 MCP 客户端的配置示例:

如果您安装了 Claude CLI

claude mcp add automox-mcp uvx -- --env-file /path/to/.env automox-mcp

使用 uvx(推荐)

{
  "mcpServers": {
    "automox-mcp": {
      "command": "uvx",
      "args": [
        "--env-file",
        "/path/to/.env",
        "automox-mcp"
      ]
    }
  }
}

使用单独的环境变量

{
  "mcpServers": {
    "automox-mcp": {
      "command": "uvx",
      "args": ["automox-mcp"],
      "env": {
        "AUTOMOX_API_KEY": "your-api-key",
        "AUTOMOX_ACCOUNT_UUID": "your-account-uuid-here",
        "AUTOMOX_ORG_ID": "your-org-id-here"
      }
    }
  }
}

贡献代码

开始贡献

克隆仓库:

git clone https://github.com/AutomoxCommunity/automox-mcp.git
cd automox-mcp

以开发模式安装(仓库通过 .python-version 指定 Python 3.13):

# 确保指定的解释器可用
uv python install

# 创建 .venv 并安装项目和开发依赖项
uv sync --python 3.13 --dev

测试

我们建议使用 MCP Inspector 进行交互式调试。我们包含了一个 fastmcp.json 配置,方便启动。

fastmcp dev

这将在 http://localhost:6274 打开,您可以在其中交互式地测试工具。

如果您想在本地使用 Claude Code 进行测试:

claude mcp add automox-mcp uvx -- --from . --env-file .env automox-mcp

运行测试

uv run --python 3.13 --dev pytest

MCP 扫描器

我们使用 Cisco 的 MCP 扫描器 对 MCP 服务器实现进行静态分析。

mcp-scanner \
  --stdio-command uv \
  --stdio-args run automox-mcp \
  --stdio-env AUTOMOX_API_KEY=test-api-key \
  --stdio-env AUTOMOX_ACCOUNT_UUID=test-account \
  --stdio-env AUTOMOX_ORG_ID=0 \
  --stdio-env AUTOMOX_MCP_SKIP_DOTENV=1 \
  --analyzers yara \
  --format summary

版本控制

本项目遵循 语义化版本控制

准备发布时:

  1. pyproject.toml 中更新新版本号。
  2. 提交更改并创建匹配的 Git 标签(例如,v0.1.0)。
  3. 当您推送标签时,发布工作流将自动构建并发布到 PyPI。

许可证

本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。

支持

这是一个社区驱动的项目,虽然得到积极维护,但 Automox 不提供官方支持。

如需请求帮助,请提交一个 GitHub Issue。这是提出问题、报告错误、请求功能、提出增强建议和更新文档的合适渠道。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端