Back to Browse

Action1 MCP Server

Developer ToolsUse Caution4.8MCP RegistryLocal
Free

Server data from the Official MCP Registry

Action1 MCP server — endpoint inventory, patch visibility, and policy automation via REST API.

About

Action1 MCP server — endpoint inventory, patch visibility, and policy automation via REST API.

Security Report

4.8
Use Caution4.8High Risk

This is a well-architected MCP server for Action1 endpoint management with proper authentication, credential isolation, and read-only operations in v1. The embedded Zod validation library is minified/generated and expected. Credentials are properly handled via environment variables and per-request headers in gateway mode using AsyncLocalStorage for isolation. Only minor quality findings present; no critical security issues detected. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity).

3 files analyzed · 7 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

Action1 OAuth client IDOptional

Environment variable: ACTION1_CLIENT_ID

Action1 OAuth client secretRequired

Environment variable: ACTION1_CLIENT_SECRET

Action1 tenant identifier (subdomain). Provide this or ACTION1_BASE_URL.Optional

Environment variable: ACTION1_TENANT

Action1 base URL (e.g. https://your-instance.action1.com). Provide this or ACTION1_TENANT.Optional

Environment variable: ACTION1_BASE_URL

Transport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.Optional

Environment variable: MCP_TRANSPORT

Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.Optional

Environment variable: AUTH_MODE

Log verbosity: debug, info, warn, errorOptional

Environment variable: LOG_LEVEL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-wyre-technology-action1-mcp": {
      "env": {
        "AUTH_MODE": "your-auth-mode-here",
        "LOG_LEVEL": "your-log-level-here",
        "MCP_TRANSPORT": "your-mcp-transport-here",
        "ACTION1_TENANT": "your-action1-tenant-here",
        "ACTION1_BASE_URL": "your-action1-base-url-here",
        "ACTION1_CLIENT_ID": "your-action1-client-id-here",
        "ACTION1_CLIENT_SECRET": "your-action1-client-secret-here"
      },
      "args": [
        "-y",
        "@wyre-technology/action1-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Action1 MCP Server

MCP Compatible License

MCP server for Action1 — endpoint inventory, patch visibility, and policy automation via the Model Context Protocol.

Read-only in v1. Deploy / automation surface is intentionally separated to a later release for blast-radius reasons (a bad policy push can brick endpoint fleets).

Tools

ToolDescription
action1_navigateDiscover available tools by domain (organizations / endpoints / policies / updates)
action1_list_organizationsList Action1 tenants accessible to the configured credentials
action1_list_endpointsList managed devices in an organization
action1_get_endpointGet a single endpoint by id
action1_list_missing_updatesList missing OS/application patches across endpoints — Action1's headline value-prop
action1_list_policiesList automation / policy / remediation rules

API surface maps to PSAction1 (Action1's MIT-licensed PowerShell module). When the v1 surface earns its keep, write tools (deploy, requery, package upload) come in v2 behind separate review.

Interactive Device Card (MCP Apps)

action1_get_endpoint renders as an interactive device-summary card in MCP Apps hosts (Claude Desktop/web) — status, OS, user, IP, agent version, reboot-required, and missing-update counts at a glance; plain-JSON behavior is unchanged in other hosts. The card is read-only (matching the v1 tool surface), neutral by default, and brandable via window.__BRAND__ injection or MCP_BRAND_* env vars (MCP_BRAND_NAME, MCP_BRAND_LOGO_URL, MCP_BRAND_PRIMARY_COLOR, MCP_BRAND_ACCENT_COLOR, MCP_BRAND_BG, MCP_BRAND_TEXT) — no rebuild needed.

Usage

Claude Desktop (MCPB)

Install via the MCPB bundle from the latest release.

Required credentials (created in Action1 → Settings → API Credentials, non-recoverable on creation — copy immediately):

  • API Key (Client ID)
  • Secret
  • Region (NorthAmerica default; also Europe, AsiaPacific, Australia)
  • Optional default organization id (for single-tenant use)

Stdio (direct)

ACTION1_API_KEY=... \
ACTION1_SECRET=... \
ACTION1_REGION=NorthAmerica \
ACTION1_DEFAULT_ORG_ID=org-... \
npx -y github:wyre-technology/action1-mcp

HTTP (gateway mode)

MCP_TRANSPORT=http PORT=8080 AUTH_MODE=gateway \
  docker run -p 8080:8080 ghcr.io/wyre-technology/action1-mcp:latest

Per-request credentials via headers:

  • X-Action1-API-Key
  • X-Action1-Secret
  • X-Action1-Region
  • X-Action1-Default-Org-Id

Architecture

src/
├── index.ts                  # stdio + HTTP transports, tool dispatch
├── card.builder.ts           # MCP Apps device-card normalization + brand injection
├── resources.ts              # resources/list + resources/read (ui:// device card)
├── generated/
│   └── device-card-html.ts   # committed vite single-file bundle (npm run build:ui)
├── sdk/
│   └── action1-client.ts     # embedded REST + OAuth client (factor-out candidate
│                             # if surface crosses ~20 tools / 2+ domains)
├── utils/
│   ├── client.ts             # credential resolution (env vs gateway headers)
│   └── types.ts              # DomainHandler interface
├── domains/                  # one file per resource type
│   ├── organizations.ts
│   ├── endpoints.ts
│   ├── policies.ts
│   └── updates.ts
└── __tests__/                # domain tests + MCP Apps contract tests
ui/                           # device-card source (index.html + device-card.ts)

Per-request credential isolation via AsyncLocalStorage — concurrent requests in HTTP mode never share credentials through process.env.

Development

npm install
npm run build
npm test
npm run dev      # tsc --watch
npm run lint     # eslint
npm run typecheck

License

Apache-2.0. See LICENSE.

Reviews

No reviews yet

Be the first to review this server!