Skip to main content
Glama
borgels

mcp-server-action1

by borgels
README.md
# mcp-server-action1

MCP server for the [Action1](https://www.action1.com/api-documentation/) 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.

## 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

```bash
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`).

## 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.

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

ActivitySlowing
ResponsivenessNo issues