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

AEM Content Manager (ACM)

제작자: wttech버전 0.1.4i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.wttech/acm-mcp-server

설치

개요

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

Validate and run Groovy scripts on Adobe Experience Manager through AEM Content Manager (ACM).

PopNx MCP의 세 기둥

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

할 수 있는 일

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

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 기타
  • 입력해야 할 값: ACM_CONFIG_FILE, ACM_CONFIG

설치

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

설치하기 전에

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

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

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

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

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

{
  "mcpServers": {
    "acm": {
      "command": "npx",
      "args": [
        "-y",
        "@wppes/acm-mcp-server"
      ],
      "env": {
        "ACM_CONFIG_FILE": "your-value",
        "ACM_CONFIG": "your-value"
      }
    }
  }
}

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

claude mcp add acm --env ACM_CONFIG_FILE=your-value --env ACM_CONFIG=your-value -- npx -y @wppes/acm-mcp-server

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

Cursor에서 열기

또는 설정을 직접 복사하기

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

{
  "mcpServers": {
    "acm": {
      "command": "npx",
      "args": [
        "-y",
        "@wppes/acm-mcp-server"
      ],
      "env": {
        "ACM_CONFIG_FILE": "your-value",
        "ACM_CONFIG": "your-value"
      }
    }
  }
}

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

VS Code에서 열기

또는 설정을 직접 복사하기

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

{
  "servers": {
    "acm": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@wppes/acm-mcp-server"
      ],
      "env": {
        "ACM_CONFIG_FILE": "your-value",
        "ACM_CONFIG": "your-value"
      }
    }
  }
}

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

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

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

직접 입력할 값

  • ACM_CONFIG_FILE 필수 env
    Path to the ACM config document: the acm.instances list (with per-instance authMode, secret, readonly, enabled), acm.activeInstance and timing keys, same keys as the VS Code extension settings
  • ACM_CONFIG 비밀 env
    The same config document inline instead of a file; takes precedence over ACM_CONFIG_FILE

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

할 수 있는 일

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

기본 점검i

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

  • ✓ 통과

    제작자와 저장소 일치

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

  • … 아직 점검 안 함

    계속 관리되고 있음

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

  • … 아직 점검 안 함

    라이선스 있음

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

  • – 해당 없음

    엔드포인트 응답

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

  • – 해당 없음

    OAuth로 로그인

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

  • … 아직 점검 안 함

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

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

기타 카테고리의 다른 서버와 비교i

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

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

자주 묻는 질문

AEM Content Manager (ACM), 안전한가요?

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

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

입력해야 할 값: ACM_CONFIG_FILE, ACM_CONFIG

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

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

아직 관리되고 있나요?

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

어떤 앱에서 쓸 수 있나요?

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

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

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, SSTracker free youth training

대안

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

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

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211어제 업데이트
설치

SSTracker free youth training

제작자: sstracker.app

Free youth sports drills, practice plans and age-group answers for parents and coaches.

클라우드에서 실행오늘 업데이트
설치

제작자의 README

README 열기

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

ACM MCP Server

A Model Context Protocol server that connects AI agents (Claude Code, Claude Desktop, VS Code, Cursor and other MCP clients) to AEM Content Manager (ACM) running on Adobe Experience Manager, including AEM as a Cloud Service.

An agent can validate and run Groovy scripts on AEM through ACM, follow long-running executions, read execution history and console output, and browse the scripts stored on the instance — on any of the configured instances, so it can also compare author against publish or against another environment. Every call runs as the user whose credentials you configure.

graph LR

client["MCP client (Claude, ...)"] <-- "stdio (MCP)" --> server["acm-mcp-server (your machine)"] server <-- "HTTPS" --> aem["AEM instances + ACM /apps/acm/api/*.json"]

[!WARNING]

This server lets an AI agent run arbitrary Groovy code on AEM with your permissions. Read Security before pointing it at a shared or production instance.

[!TIP]

Using VS Code? The ACM extension bundles this server and registers it for all enabled instances, with credentials from VS Code's secret storage. No setup below is needed — and ACM: Export MCP Config writes a ready config file for other agents.

Requirements

  • Node.js 22 or later.
  • ACM installed on each AEM instance. Running code without history (history: false) needs ACM 0.9.74 or later.
  • A user with access to the ACM API on each instance (see Permissions).

Setup

The server is configured by a JSON document using the same keys as the VS Code extension settings, including the acm. prefix — a block copied from settings.json is a valid config:

{

"acm.instances": [ { "name": "local-author", "url": "http://localhost:4502", "authMode": "basic", "user": "admin" }, { "name": "local-publish", "url": "http://localhost:4503", "authMode": "basic", "user": "admin" }, { "name": "dev", "url": "https://author-pXXXX-eYYYY.adobeaemcloud.com", "authMode": "bearer", "secret": { "env": "ACM_DEV_TOKEN" }, "readonly": true }, { "name": "prod", "url": "https://author.example.com", "authMode": "cookie", "secret": { "file": "~/.config/acm/prod.cookie" }, "enabled": false } ], "acm.activeInstance": "local-author", "acm.http.timeout": 30000, "acm.run.timeout": 120000, "acm.run.pollInterval": 1000 }

The timeout keys are optional; their defaults are shown. Unknown keys are ignored, so a whole settings block can be pasted.

1. Create the config file

Instance fields:

FieldDescription
nameUnique name; tools take it as the optional instance argument.
urlAEM URL, author or publish, e.g. http://localhost:4502.
authModebearer, cookie or basic.
userBasic-auth user (required for basic).
secretThe credential — see Secrets. Omitted for a local admin/admin SDK.
readonlytrue disables the tools that run or abort code on this instance. Recommended for production; see Security.
enabledfalse hides the instance from all tools, e.g. to park prod temporarily (default true).

Choosing credentials:

authModeWhen to useHow to get the secret
bearerAEM as a Cloud Service (recommended)Cloud Manager → Developer Console of the environment → Integrations → Local token → "Get Local Development Token". Valid for 24 hours and acts as your user.
cookieAEM as a Cloud Service, quick start; any instance you can log intoValue of the login-token cookie (DevTools → Application → Cookies) after logging into AEM. CSRF tokens are handled for you.
basicLocal AEM SDK, on-premiseUsually admin / admin.

The login-token cookie expires after about 12 hours; use secret: { "file": "path" } to refresh it without restarting the server.

Secrets

secret is the bearer token, the login-token cookie (value or name=value) or the basic-auth password, given as:

  • a literal — convenient for development. Keep the config file readable only by you (chmod 600); the server warns when it is not.
  • { "env": "NAME" } — read from an environment variable of the server process. Nothing is written to the config file.
  • { "file": "path" } — ~ is expanded and a relative path resolves against the config file. Re-read on every request, so refreshing a token on disk needs no restart. A missing or empty file fails only that instance.

Basic auth with user admin on a local URL defaults to password admin, so the local SDK needs no secret at all.

2. Register the server with your agent

Every MCP client needs the same things. Where they go and in which format depends on the client, so this guide does not list client-specific files:

SettingValue
Transportstdio
Commandnpx
Arguments-y, @wppes/acm-mcp-server
EnvironmentACM_CONFIG_FILE with the path from step 1

Instead of ACM_CONFIG_FILE you can pass the document inline as ACM_CONFIG; it takes precedence over the file.

The easiest way is to ask your agent, which knows its own configuration:

Add the ACM MCP server to this tool's MCP configuration: transport stdio, command npx, arguments -y @wppes/acm-mcp-server, environment ACM_CONFIG_FILE pointing at a JSON file with the ACM instances I list below. Keep secrets out of that file — reference environment variables or files instead — and never write them into a file that may be committed; tell me where to put the values. Find in this tool's documentation where MCP servers are configured and in which format. Then call acm_list_instances and acm_health to verify.

3. Check the connection

Ask the agent to call acm_list_instances, then acm_health. The first shows every enabled instance with its auth mode and whether credentials are configured; the second reports the state ACM reports for each of them.

Instances

Tools act on exactly one instance, chosen like this:

  1. the optional instance argument, when given — it must name an enabled instance;
  2. otherwise acm.activeInstance, when it names an enabled instance;
  3. otherwise the only enabled instance, when just one is configured;
  4. otherwise the call fails with the list of enabled names, so nothing runs on the wrong instance by accident.

If acm.activeInstance names an unknown or disabled instance (a typo, say), the server warns on stderr at startup and acm_list_instances repeats the warning, so the agent can tell you; the rules above then apply as if it were unset.

acm_list_instances shows which instance is active and which have credentials. Write tools (acm_run_code, acm_abort_execution, acm_describe_inputs) always act on exactly one instance — there is deliberately no run-everywhere call. To compare instances (e.g. author vs publish drift), run the same read-only code on each and diff the results; the bundled scripting guide covers the pattern. This needs ACM reachable on both sides, which works on local, on-premise and AMS (direct publish URL) — an AEMaaCS publish is not reachable.

Tools

ToolDescription
acm_list_instancesList the enabled instances: name, URL, auth mode, read-only flag, the active one and whether credentials are configured.
acm_healthCheck connectivity, auth and the instance state ACM reports (/apps/acm/api/state.json), with a warning when ACM's health check finds the instance unhealthy. Without instance, checks every enabled instance. Call it first.
acm_validate_codeCompile-check Groovy without running it (mode=parse). Returns compile errors with line and column. Never recorded in execution history.
acm_run_codeQueue Groovy for execution, poll until it finishes or times out, and return the status and full console output. Supports inputs for scripts with describeRun(). With history: false it runs synchronously and is not recorded in history (see below).
acm_get_executionGet the status, inputs, error and console output of an execution by ID, whether queued, running or archived.
acm_abort_executionAbort a queued or running execution. Scripts that call context.checkAborted() stop cleanly.
acm_list_executionsList execution history, newest first, optionally only queued and running executions.
acm_list_scriptsList Groovy scripts stored under /conf/acm/settings/script by type (MANUAL, AUTOMATIC, …).
acm_get_scriptRead the Groovy content of a stored script by ID or path.
acm_describe_inputsResolve the inputs a script declares in describeRun(): names, types and defaults. ACM runs describeRun() to do this, so it counts as running code.
acm_get_output_fileDownload a named execution output: console, or an output created with outputs.file(...) / outputs.text(...).

Every tool takes an optional instance argument; see Instances for the default.

Bare Groovy snippets are wrapped in the canRun()/doRun() structure automatically, so println "hello" is valid input for acm_validate_code and acm_run_code.

Runs without history

Every queued run is stored in ACM execution history, so iterating on a script quickly fills it up. With history: false, acm_run_code calls /apps/acm/api/execute-code.json directly and the run is not recorded. Such a run:

  • has no execution ID to poll or abort, and keeps no output files;
  • is cut off on the client side after waitMs, while the script may keep running on AEM.

Use it for short read-only runs or dry runs while you develop a script. Run the final version, and anything that changes content, with the default history: true so the change stays auditable.

Running without history needs the console/execute/nohistory ACM feature (administrators only by default); without it the call fails with 403. Such runs still appear in ACM's audit log.

Scripting guide

The server ships the ACM Groovy scripting skill, so agents write valid, safe scripts without extra setup:

  • Instructions. The skill's essentials (never invent API, dry runs, abort checks, validate before running) are sent to the client when it connects. Clients add them to the model's context.
  • Prompt. acm-groovy-script returns the full guide.
  • Resources. The guide and its references are available as acm://skill/SKILL.md, acm://skill/references/api.md (every ACM variable, class and method, generated from the ACM source), acm://skill/references/scripts.md and the script templates under acm://skill/templates/.

Example

Ask the agent something like:

Use ACM to count how many wknd/components/teaser components are under /content/wknd/us/en.

It calls acm_health, then validates and runs a script such as:

boolean canRun() {

return conditions.always() }

void doRun() { def sql = "SELECT * FROM [nt:base] AS n WHERE ISDESCENDANTNODE(n, '/content/wknd/us/en') AND n.[sling:resourceType] = 'wknd/components/teaser'" def count = 0 repo.queryRaw(sql).forEach { resource -> context.checkAborted() count++ } out.info("Found ${count} instance(s)") }

Permissions

ACM checks access at three levels. The user behind the credentials needs jcr:read on each:

  1. the API node under /apps/acm/api;
  2. the feature node under /apps/acm/feature;
  3. the script path under /conf/acm/settings/script.

By default only administrator

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기