Skip to main content
Glama

EDS MCP Server

npm installs MCP Registry awesome-mcp-servers license

Let an AI agent run — and improve — your Adobe Edge Delivery site.

41 tools. No extra dependencies beyond the MCP SDK. Works with any EDS site. The first MCP server purpose-built for Edge Delivery Services.

Read your content → audit it → fix what's wrong → publish → undo any of it. One page or the whole site, in a single reversible operation. Preview before every write; undo after.

Ask your agent


⚡ Do it in three lines

claude mcp add eds -e EDS_OWNER=your-org -e EDS_REPO=your-site -- npx @focusgts/eds-mcp-server

Then just ask your agent:

"Audit the whole site and show me what's hurting SEO." "Fix the meta description on every page that's missing one — preview first, then publish." "Actually, undo that whole batch." "Preview and publish the homepage."

That's it — no local AEM, no scripts, no glue code. Every write is previewable and reversible.

The loop that makes it different

flowchart LR
  A["📖 Read<br/>authored content (DA)"] --> B["🔍 Audit<br/>SEO · a11y · perf · freshness"]
  B --> C["🛠️ Fix<br/>one page or the whole site"]
  C --> D["🚀 Publish<br/>preview + live"]
  D --> E["↩️ Undo<br/>one call reverts it all"]
  E -. "re-audit to zero" .-> B

It doesn't just drive your site — it improves it, safely. Point it at an EDS site and an agent can find what's wrong and repair it, one page or the whole site in a single batch that a single eds_da_rollback reverts. No other MCP server — including Adobe's own — does this end-to-end.


Related MCP server: AEM MCP Server

🧠 How it works

flowchart LR
  A["AI agent<br/>(Claude Code · Cursor · Copilot)"] -- MCP / stdio --> B["eds-mcp-server<br/>41 tools"]
  B --> C["Admin API<br/>admin.hlx.page"]
  B --> D["Content API<br/>*.aem.live"]
  B --> E["RUM / OpTel<br/>Core Web Vitals"]
  B --> G["Document Authoring<br/>admin.da.live"]
  C --> F["Your EDS site"]
  D --> F
  E --> F
  G --> F

The agent calls tools; the server talks to the live EDS infrastructure. Read-only tools (content, sitemap, metadata) need no credentials at all.


🔑 One-click sign-in

No more pasting a fresh admin token every day:

sequenceDiagram
  participant You
  participant CLI as eds-mcp-server login
  participant Adobe as admin.hlx.page
  You->>CLI: npx @focusgts/eds-mcp-server login
  CLI->>Adobe: open browser (client_id=aem-cli)
  You->>Adobe: sign in & approve
  Adobe-->>CLI: siteToken → localhost callback
  CLI-->>You: cached ~/.aem/auth-token.json (reused automatically)

Use Chrome or Firefox — Safari blocks the local callback (same as Adobe's AEM CLI). EDS_API_KEY works as the CI / fallback path.


🛠️ The 41 tools

Edge Delivery Services — publish, content, analytics

Publishing

  • eds_preview_page

  • eds_publish_page

  • eds_unpublish_page

  • eds_preview_and_publish

  • eds_get_status

  • eds_purge_cache

  • eds_bulk_preview

  • eds_bulk_publish

  • eds_get_job_status

Content

  • eds_get_page

  • eds_list_pages

  • eds_search_pages

  • eds_get_metadata

  • eds_get_sitemap

  • eds_get_redirects

Analytics & config

  • eds_get_cwv

  • eds_get_404s

  • eds_get_experiments

  • eds_get_config

  • eds_get_logs

  • eds_get_api_keys

Document Authoring (DA) — the authored source, not the rendered output

Nine tools reach a site's Document Authoring source directly (admin.da.live), the source of truth behind an EDS site. Requires EDS_DA_TOKEN.

Read

  • eds_da_list_sources

  • eds_da_get_source

  • eds_da_get_versions

Write

  • eds_da_put_source

  • eds_da_delete_source

  • eds_da_copy_source

  • eds_da_move_source

Bulk ("clone") + safe writes

  • eds_da_export

  • eds_da_push

  • eds_da_rollback

eds_da_export / eds_da_push bring the efficiency of aem content clone to agents: export a whole DA subtree in one call, operate on it, and push the batch back in one call — no local checkout, no aem-cli. Same model, network-native.

Safe by default. eds_da_push takes dryRun: true to preview exactly what a bulk edit would do (create / update / unchanged, with line-diff counts) without writing a thing, and withUndo: true to make the write reversible — it returns an undo object you hand to eds_da_rollback to restore prior content and remove any docs the push created. Preview before writing, undo after: the difference between an impressive demo and something you'd point at a production site.

EDS_DA_TOKEN is an Adobe IMS access token for Document Authoring — grab it from an authenticated da.live session (the IMS access_token). Document paths assume .html when no extension is given (indexindex.html).

Content audit — find what's wrong, before you fix it

  • eds_audit_page

  • eds_audit_site

  • eds_audit_report

  • eds_audit_snapshot

  • eds_audit_trend

  • eds_audit_monitor

It tells you what's wrong. eds_audit_site sweeps the whole site (or a subtree) and returns a prioritized list of issues across SEO (missing titles/descriptions, no H1, blocked from indexing), accessibility (images without alt text, missing landmarks, unlabeled form inputs), freshness (pages not updated in over a year), sitemap coverage, and — with a domainperformance (Core Web Vitals) and 404s from Adobe's own real-user data. eds_audit_page does the same for one page. Read-only and safe to run anytime.

eds_audit_report turns that audit into a beautiful, client-ready HTML report — a Focus GTS Navigator letterhead, an executive summary, per-dimension health scores, a prioritized issue list with each suggested fix, and a Save-as-PDF button (uses your browser's own print — no dependency). Self-contained (no external assets), ready to open, host, or send to a stakeholder. Pass an optional brand (agency name, logo, accent, "prepared for" client) to white-label the letterhead.

Track it over time. eds_audit_snapshot records each audit's scores to a history sheet in your site's own content (private by default) and tells you the change since last time — "89, ▲7 since last week." eds_audit_trend turns that history into a shareable HTML sparkline of your score over time plus per-dimension movement. One snapshot is a mirror; the trend is the story.

Watch it on autopilot. eds_audit_monitor audits, diffs against the last snapshot, and reports a status — ok / degraded / broken — and, when you give it a webhook, pings Slack/Discord the moment health breaks (a new critical, or a dimension fallen to poor). The server does the check + alert; you supply the schedule — a copy-paste scheduled GitHub Action or your agent runtime. Webhook is https-only and the payload carries no secrets.

Safe fixes — repair what the audit finds

  • eds_fix_metadata

  • eds_bulk_fix_metadata

  • eds_fix_redirect

  • eds_fix_audit

It fixes what it finds — reversibly. eds_fix_metadata repairs a page's title, meta description and Open Graph image by editing its Document Authoring source, routed through the same dry-run + undo path as the write tools. The agent supplies the content (e.g. writes a fitting description); the tool writes it correctly and idempotently (merges into the page's Metadata block, never duplicates it). Pass publish: true to preview + publish so the change goes live.

eds_bulk_fix_metadata does it across a whole site in one reversible operation — pass a list of { path, metadata }, and it writes every changed page in a single batch that returns one undo reverting all of it. The full loop: eds_audit_site → fix the batch → publish → re-audit to zero — with a single undo if anything looks off.

eds_fix_redirect closes the 404 loop: eds_audit_site surfaces the broken links from real-user data, and this adds the 301 redirect rules (to the site's redirects sheet) that fix them — one rule or many, idempotent, dry-run + undo. So the audit now has a fix for every major finding.

eds_fix_audit is the "fix it" button in agent form: after an audit, apply its fixable findings — metadata and redirects together — in one reversible batch. Findings the report marks ✦ Fixable carry a machine-readable fix; you supply the values (the tool never invents copy), and every change is pushed at once so a single eds_da_rollback undoes all of it. dryRun previews the whole plan; publish: true makes it live.


🔌 Add it to your tool

claude mcp add eds -e EDS_OWNER=your-org -e EDS_REPO=your-site -- npx @focusgts/eds-mcp-server
{
  "mcpServers": {
    "eds": {
      "command": "npx",
      "args": ["@focusgts/eds-mcp-server"],
      "env": { "EDS_OWNER": "your-org", "EDS_REPO": "your-site" }
    }
  }
}
{
  "servers": {
    "eds": {
      "command": "npx",
      "args": ["@focusgts/eds-mcp-server"],
      "env": { "EDS_OWNER": "your-org", "EDS_REPO": "your-site" }
    }
  }
}

⚙️ Configuration

Variable

Required

Description

EDS_OWNER

Yes

GitHub org/user that owns the EDS site repo

EDS_REPO

Yes

GitHub repository name

EDS_REF

No

Git branch (default: main)

EDS_API_KEY

No

Admin token (see Authentication). Browser login is the alternative.

EDS_DOMAIN_KEY

No

OpTel domain key for analytics queries (CWV, 404s, experiments)

EDS_DA_TOKEN

No

Document Authoring IMS access token — enables the eds_da_* source & bulk tools

EDS_DA_ORG

No

DA org (defaults to EDS_OWNER)

EDS_DA_REPO

No

DA repo/site (defaults to EDS_REPO)

Read-only tools (content, sitemap, metadata) need no keys. Write tools (preview, publish, cache) need an admin token. Analytics tools need EDS_DOMAIN_KEY. DA source tools need EDS_DA_TOKEN.


🔐 Authentication

Admin operations require an EDS Admin token. Two ways to provide one.

Browser sign-in (recommended for interactive use)

EDS_OWNER=your-org EDS_REPO=your-site npx @focusgts/eds-mcp-server login

Opens your browser to Adobe's admin.hlx.page login (the same flow as the AEM CLI). The admin site token caches at ~/.aem/auth-token.json (mode 0600, ~24h) and is reused automatically. Use Chrome or Firefox — Safari blocks the local callback.

EDS_API_KEY (CI / automation, and the fallback) — always takes precedence when set.

EDS_OWNER=your-org EDS_REPO=your-site EDS_API_KEY=<your-admin-token> npx @focusgts/eds-mcp-server

To get a token (per Adobe's API key docs): sign in at https://admin.hlx.page/login, then copy the auth_token cookie value from DevTools — or copy the x-auth-token header from an authenticated AEM Sidekick request. For a durable credential, configure a site API key.


🏗️ Architecture

Built following Adobe's MCP conventions (derived from adobe-rnd/da-mcp):

  • TypeScript + @modelcontextprotocol/sdk + zod, stateless per request

  • Tool naming: eds_{verb}_{noun} · stdio transport

  • Native fetch() (Node 18+) — no HTTP dependencies

git clone https://github.com/Focus-GTS/eds-mcp-server.git
cd eds-mcp-server && npm install && npm run build && npm test

🧩 Part of the FocusGTS EDS suite

eds-content-ops-skills

AI skills for EDS content ops — first third-party contributor merged into Adobe's official skills repo

eds-ops

CLI + GitHub Action for automated site grading and PR gating

EDS Score

Free browser-based site health analyzer


Built by FocusGTS — Adobe Silver Solution Partner · Apache-2.0 Not affiliated with or endorsed by Adobe Inc.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
14Releases (12mo)
Commit activity

Related MCP Servers

  • -
    license
    B
    quality
    Not graded
    maintenance
    MCP server for Akamai APIs. 198 tools covering Property Manager, Edge DNS, CPS, WAF, and reporting. Built with TypeScript, featuring modular architecture, comprehensive testing, and multi-account support. Make Akamai accessible to AI assistants.
    1
    9
    10
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol server for Adobe Experience Manager that provides 35+ REST/JSON-RPC API methods for complete content, component, asset, and template management. Enables AI-powered AEM automation through natural language interfaces with support for page operations, component CRUD, asset management, and publishing workflows.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    The first full-featured MCP server for Adobe Experience Platform: 29 tools across schemas, datasets, profiles, segments, query service, and GDPR/CCPA privacy operations. Extends Adobe's read-only beta with production-grade write operations.
    426
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

  • MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

  • Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Focus-GTS/eds-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server