프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Action1

제작자: wyre-technology버전 1.1.5i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.wyre-technology/action1-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

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

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 온라인 쇼핑몰 및 결제
  • 입력해야 할 값: ACTION1_CLIENT_ID, ACTION1_CLIENT_SECRET

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: ACTION1_CLIENT_ID, ACTION1_CLIENT_SECRET, ACTION1_TENANT, ACTION1_BASE_URL, MCP_TRANSPORT, AUTH_MODE, LOG_LEVEL

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "action1": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ACTION1_CLIENT_ID",
        "-e",
        "ACTION1_CLIENT_SECRET",
        "-e",
        "ACTION1_TENANT",
        "-e",
        "ACTION1_BASE_URL",
        "-e",
        "MCP_TRANSPORT",
        "-e",
        "AUTH_MODE",
        "-e",
        "LOG_LEVEL",
        "ghcr.io/wyre-technology/action1-mcp:v1.1.5"
      ],
      "env": {
        "ACTION1_CLIENT_ID": "your-value",
        "ACTION1_CLIENT_SECRET": "your-value",
        "ACTION1_TENANT": "your-value",
        "ACTION1_BASE_URL": "your-value",
        "MCP_TRANSPORT": "your-value",
        "AUTH_MODE": "your-value",
        "LOG_LEVEL": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add action1 --env ACTION1_CLIENT_ID=your-value --env ACTION1_CLIENT_SECRET=your-value --env ACTION1_TENANT=your-value --env ACTION1_BASE_URL=your-value --env MCP_TRANSPORT=your-value --env AUTH_MODE=your-value --env LOG_LEVEL=your-value -- docker run -i --rm -e ACTION1_CLIENT_ID -e ACTION1_CLIENT_SECRET -e ACTION1_TENANT -e ACTION1_BASE_URL -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/action1-mcp:v1.1.5

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "action1": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ACTION1_CLIENT_ID",
        "-e",
        "ACTION1_CLIENT_SECRET",
        "-e",
        "ACTION1_TENANT",
        "-e",
        "ACTION1_BASE_URL",
        "-e",
        "MCP_TRANSPORT",
        "-e",
        "AUTH_MODE",
        "-e",
        "LOG_LEVEL",
        "ghcr.io/wyre-technology/action1-mcp:v1.1.5"
      ],
      "env": {
        "ACTION1_CLIENT_ID": "your-value",
        "ACTION1_CLIENT_SECRET": "your-value",
        "ACTION1_TENANT": "your-value",
        "ACTION1_BASE_URL": "your-value",
        "MCP_TRANSPORT": "your-value",
        "AUTH_MODE": "your-value",
        "LOG_LEVEL": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "action1": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ACTION1_CLIENT_ID",
        "-e",
        "ACTION1_CLIENT_SECRET",
        "-e",
        "ACTION1_TENANT",
        "-e",
        "ACTION1_BASE_URL",
        "-e",
        "MCP_TRANSPORT",
        "-e",
        "AUTH_MODE",
        "-e",
        "LOG_LEVEL",
        "ghcr.io/wyre-technology/action1-mcp:v1.1.5"
      ],
      "env": {
        "ACTION1_CLIENT_ID": "your-value",
        "ACTION1_CLIENT_SECRET": "your-value",
        "ACTION1_TENANT": "your-value",
        "ACTION1_BASE_URL": "your-value",
        "MCP_TRANSPORT": "your-value",
        "AUTH_MODE": "your-value",
        "LOG_LEVEL": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • ACTION1_CLIENT_ID 필수 env
    Action1 OAuth client ID
  • ACTION1_CLIENT_SECRET 비밀 필수 env
    Action1 OAuth client secret
  • ACTION1_TENANT env
    Action1 tenant identifier (subdomain). Provide this or ACTION1_BASE_URL.
  • ACTION1_BASE_URL env
    Action1 base URL (e.g. https://your-instance.action1.com). Provide this or ACTION1_TENANT.
  • MCP_TRANSPORT env
    Transport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
  • AUTH_MODE env
    Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
  • LOG_LEVEL env
    Log verbosity: debug, info, warn, error

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 wyre-technology 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

온라인 쇼핑몰 및 결제 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 1753개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 1753개 중 30%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 1753개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Action1, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: ACTION1_CLIENT_ID, ACTION1_CLIENT_SECRET

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.1.5)은 3개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Docker도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Stripe MCP

제작자: stripe

MCP server integrating with Stripe - tools for customers, products, payments, and more.

클라우드에서 실행★ 2,043MIT12개월 전 업데이트
설치

MCP Cn Commerce

제작자: TonyWang-hub

8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending

내 컴퓨터에서 실행★ 96MIT28일 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

Action1 MCP Server

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 NorthAmerica-2, Europe, 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-AI/action1-mcp

HTTP

CONDUIT_S2S_SECRET is required. If it is empty or a known placeholder (changeme, replace-with-a-real-secret, and similar), the HTTP server logs an error and exits non-zero. It never prints the secret. Generate one with openssl rand -hex 32.

MCP_HTTP_HOST defaults to 127.0.0.1 when unset. Set 0.0.0.0 only when CONDUIT_S2S_SECRET is set. The container image does that and sets AUTH_MODE=gateway. MCP_HTTP_PORT (or PORT) selects the port and defaults to 8080.

MCP_ALLOW_INSECURE_DEV=1 starts HTTP without CONDUIT_S2S_SECRET, logs a warning, skips X-Gateway-S2S, and binds 127.0.0.1 only. A non-loopback MCP_HTTP_HOST (including 0.0.0.0) refuses to start. A placeholder secret is still rejected. Local development only.

/health stays unauthenticated and does not read credentials. The stdio transport does not use CONDUIT_S2S_SECRET.

X-Gateway-S2S

Every HTTP request except /health must include X-Gateway-S2S when a secret is configured. The value is t= ,v1= , where the hex is HMAC-SHA256 of the literal string t= keyed with CONDUIT_S2S_SECRET (64 lowercase hex characters). The timestamp must be within 300 seconds of the server clock. A missing or invalid header is HTTP 401, before vendor credentials are read.

TS=$(date +%s)

SIG=$(printf 't=%s' "$TS" | openssl dgst -sha256 -hmac "$CONDUIT_S2S_SECRET" -hex | awk '{print $NF}') curl -sS http://127.0.0.1:8080/ \ -H 'Content-Type: application/json' \ -H 'Accept: application/json, text/event-stream' \ -H "X-Gateway-S2S: t=${TS},v1=${SIG}" \ -H "X-Action1-API-Key: $ACTION1_API_KEY" \ -H "X-Action1-Secret: $ACTION1_SECRET" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Gateway mode (AUTH_MODE=gateway)

The Docker image and Compose file default to gateway mode. Every request must include:

  • X-Action1-API-Key
  • X-Action1-Secret
  • X-Action1-Region (optional)
  • X-Action1-Default-Org-Id (optional)

A request missing the API key or secret gets 401 and does not fall back to ACTION1_API_KEY / ACTION1_SECRET in the process environment. Those headers are the only credential source for that request.

docker run \

-e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \ -p 127.0.0.1:8080:8080 \ ghcr.io/wyre-ai/action1-mcp:latest

Compose refuses to start when CONDUIT_S2S_SECRET is unset, publishes 127.0.0.1:8080:8080, and does not pass static Action1 credentials into the container:

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up
Single-tenant HTTP (AUTH_MODE=env)

Requests still require a valid X-Gateway-S2S header. Vendor credentials come from ACTION1_API_KEY and ACTION1_SECRET when the request does not carry those headers.

docker run \

-e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \ -e AUTH_MODE=env \ -e ACTION1_API_KEY="$ACTION1_API_KEY" \ -e ACTION1_SECRET="$ACTION1_SECRET" \ -e ACTION1_REGION=NorthAmerica \ -p 127.0.0.1:8080:8080 \ ghcr.io/wyre-ai/action1-mcp:latest

Local HTTP without a secret is development-only. It binds 127.0.0.1 and logs a warning:

MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm start

Architecture

src/

├── index.ts # stdio + HTTP transports, tool dispatch, S2S startup ├── s2s-verify.ts # X-Gateway-S2S HMAC-SHA256 check ├── 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.

PopNx에게 묻기