Skip to main content
Glama
mcp-server-action1

mcp-server-action1

by borgels

mcp-server-action1

MCP server for the Action1 endpoint management (RMM/patching) REST API 3.0.

Disclaimer: This is an independent, unofficial project by Borgels. Borgels is not affiliated with, endorsed by, or supported by Action1. "Action1" and the Action1 API are referenced only to describe what this server talks to. You need your own Action1 credentials, and use of the Action1 API is subject to Action1's own terms.

Tools

Read (always on): organizations, managed endpoints (inventory, status filters, missing updates), endpoint groups, updates/patches (approval status, severity), vulnerabilities (CVEs, affected endpoints, remediations), installed software, software repository, script library, automations (schedules and run history with per-endpoint results), reports + report data, enterprise audit log, capability discovery.

Write (opt-in via ACTION1_ENABLE_WRITES=true): action1_set_update_approvals — approve/decline updates for one organization (the patch-approval workflow). orgId="all" is refused.

Deliberately absent (RMM safety): creating or running automations (run_script/deploy/reboot — remote code execution on endpoints), remote-desktop sessions, software-repository modification (supply-chain risk), endpoint delete/move, user/role/organization management, enterprise closure. If script execution is ever needed it should be a separate duty-gated commit tool.

Related MCP server: action1-mcp

Auth & regions

OAuth2 client-credentials against {base}/oauth2/token; tokens live exactly 3600 s and are cached/renewed automatically. Credentials are created in the Action1 console under Configuration → Users & API Credentials. Set ACTION1_BASE_URL to your data-center region (EU: https://app.eu.action1.com/api/3.0).

Pagination & rate limits

Lists return {items, total_items, from, nextFrom} — pass nextFrom as from to continue. Action1 recommends staying under ~30 requests/minute per enterprise; 429 responses surface retry-after.

Run

npm install
npm run dev          # stdio
npm run dev:http     # streamable HTTP on :3000/mcp (stateless)
npm test

Docker images: ghcr.io/borgels/mcp-server-action1 (published on push to main).

Security notes

  • Set MCP_HTTP_TOKEN for the HTTP transport; the bearer token is compared in constant time.

  • Caller-supplied ids are validated before they are placed in API paths (strict id / CVE-YYYY-NNNN patterns, no dot segments or separators), and every request URL must stay under the configured ACTION1_BASE_URL path.

  • Audit log entries (ACTION1_AUDIT_LOG) include a caller field taken from the X-MCP-User header when the gateway forwards one. It is informational and only trustworthy when the server is reachable solely through that gateway (use MCP_HTTP_TOKEN).

Deploy

See deploy/ for the docker-compose service block, hosts.json entries, a reverse-proxy site block, and example env files — one instance per Action1 organization you want to expose, fronted by whatever OAuth-aware gateway/reverse-proxy sits in front of your fleet.

Available Tools

15 tools
action1_get_audit_logGet Audit Log (Action1)A
Read-onlyIdempotent

Enterprise-wide audit events, or org-scoped logs with orgId.

Inputs: from, limit, orgId, filter, +1 more.

action1_get_endpointGet Endpoint (Action1)A
Read-onlyIdempotent

Fetch one managed endpoint; includeMissingUpdates=true also returns its missing updates.

Inputs: orgId (required), endpointId (required), includeMissingUpdates.

action1_get_installed_softwareGet Installed Software (Action1)A
Read-onlyIdempotent

Installed software inventory for the organization, or one endpoint with endpointId.

Inputs: orgId (required), from, limit, filter, +2 more.

action1_get_report_dataGet Report Data (Action1)B
Read-onlyIdempotent

Fetch the data rows of a report for an organization.

Inputs: orgId (required), reportId (required), from, limit, +2 more.

action1_list_automationsList Automations (Action1)A
Read-onlyIdempotent

Scheduled automations (kind=schedules) or run history (kind=instances); endpointResults=true lists per-endpoint outcomes for one instance. Read-only — creating/running automations is deliberately not exposed.

Inputs: kind (required), orgId (required), from, limit, +4 more.

action1_list_endpoint_groupsList Endpoint Groups (Action1)A
Read-onlyIdempotent

List endpoint groups, one group (groupId), or its member endpoints (contents=true).

Inputs: orgId (required), from, limit, filter, +3 more.

action1_list_endpointsList Endpoints (Action1)A
Read-onlyIdempotent

Inventory of managed endpoints: name, OS, agent status, last seen, update/vulnerability status, reboot-required. All status filters accept the values shown in the Action1 console. fields="*" adds extended data.

Inputs: orgId (required), from, limit, fields, +8 more.

action1_list_organizationsList Organizations (Action1)A
Read-onlyIdempotent

List the Action1 organizations this credential can access. Start here — other tools need an orgId.

Inputs: from, limit, filter, sortby.

action1_list_reportsList Reports (Action1)A
Read-onlyIdempotent

List available built-in and custom reports.

Inputs: from, limit, filter, sortby.

action1_list_scriptsList Script Library (Action1)A
Read-onlyIdempotent

The script library, read-only. This server can NOT run or edit scripts by design.

Inputs: from, limit, filter, sortby, +1 more.

action1_list_software_repositoryList Software Repository (Action1)B
Read-onlyIdempotent

Deployable packages in the software repository (read-only).

Inputs: orgId (required), from, limit, filter, +2 more.

action1_list_updatesList Updates/Patches (Action1)B
Read-onlyIdempotent

Available updates with approval status, severity, and affected endpoints. Filters: approvalStatus (New/Approved/Declined), securitySeverity, onlyLatest. packageId fetches a single update.

Inputs: orgId (required), from, limit, custom, +8 more.

action1_list_vulnerabilitiesList Vulnerabilities (Action1)A
Read-onlyIdempotent

CVEs across endpoints with score and remediation status. cveId fetches one CVE; detail=endpoints|remediations lists affected machines or available fixes.

Inputs: orgId (required), from, cveId, limit, +6 more.

action1_search_capabilitiesSearch Action1 CapabilitiesA
Read-onlyIdempotent

Search the Action1 MCP server capabilities and examples. Use this first when deciding which tool to call.

Inputs: limit, query.

action1_set_update_approvalsSet Update Approvals (Action1)A

Approve/decline updates for ONE organization. Approved updates are what scheduled automations deploy — confirm the list with the user before approving. Requires write access on this instance; orgId="all" is refused.

Inputs: orgId (required), approvals (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool targets a distinct resource or action, with no overlapping purposes. The addition of action1_search_capabilities helps agents disambiguate further.

    Naming Consistency5/5

    All tools follow a consistent 'action1_verb_noun' pattern using snake_case, with verbs limited to 'list', 'get', 'search', and 'set'.

    Tool Count5/5

    15 tools cover the core capabilities of the Action1 platform (endpoints, updates, vulnerabilities, reports, etc.) without unnecessary bloat or deficiency.

    Completeness4/5

    The tool surface is comprehensive for viewing and reading data, and includes a critical write operation (set_update_approvals). However, it lacks tools for deploying software or running scripts, though this is by design.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to investigate threats, pull reports, manage security policies, and administer deployment infrastructure through the Cisco Secure Access REST API.
      -
    • A
      license
      A
      quality
      D
      maintenance
      Read-only MCP server for the Action1 RMM REST API, enabling access to endpoints, missing updates, vulnerabilities, installed software, policies, automations, and reports.
      21
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables read-only MCP access to Tactical RMM, allowing agents to query devices, clients, sites, audit logs, software, and pending actions without any mutating capabilities.
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI assistants to manage WatchGuard Cloud MSP accounts, activate devices and licenses, and administer operator users through the WatchGuard Cloud REST API.
      13
      Apache 2.0