Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
41 tools for Adobe Edge Delivery Services: read, audit, track, monitor, fix, publish, undo — safely.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
EDS_OWNER, EDS_REPO, EDS_REF, EDS_API_KEY, EDS_DOMAIN_KEY, EDS_DA_TOKEN, EDS_DA_ORG, EDS_DA_REPOค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"eds": {
"command": "npx",
"args": [
"-y",
"@focusgts/eds-mcp-server"
],
"env": {
"EDS_OWNER": "ใส่ค่าของคุณ",
"EDS_REPO": "ใส่ค่าของคุณ",
"EDS_REF": "ใส่ค่าของคุณ",
"EDS_API_KEY": "ใส่ค่าของคุณ",
"EDS_DOMAIN_KEY": "ใส่ค่าของคุณ",
"EDS_DA_TOKEN": "ใส่ค่าของคุณ",
"EDS_DA_ORG": "ใส่ค่าของคุณ",
"EDS_DA_REPO": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add eds --env EDS_OWNER='ใส่ค่าของคุณ' --env EDS_REPO='ใส่ค่าของคุณ' --env EDS_REF='ใส่ค่าของคุณ' --env EDS_API_KEY='ใส่ค่าของคุณ' --env EDS_DOMAIN_KEY='ใส่ค่าของคุณ' --env EDS_DA_TOKEN='ใส่ค่าของคุณ' --env EDS_DA_ORG='ใส่ค่าของคุณ' --env EDS_DA_REPO='ใส่ค่าของคุณ' -- npx -y @focusgts/eds-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"eds": {
"command": "npx",
"args": [
"-y",
"@focusgts/eds-mcp-server"
],
"env": {
"EDS_OWNER": "ใส่ค่าของคุณ",
"EDS_REPO": "ใส่ค่าของคุณ",
"EDS_REF": "ใส่ค่าของคุณ",
"EDS_API_KEY": "ใส่ค่าของคุณ",
"EDS_DOMAIN_KEY": "ใส่ค่าของคุณ",
"EDS_DA_TOKEN": "ใส่ค่าของคุณ",
"EDS_DA_ORG": "ใส่ค่าของคุณ",
"EDS_DA_REPO": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"eds": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@focusgts/eds-mcp-server"
],
"env": {
"EDS_OWNER": "ใส่ค่าของคุณ",
"EDS_REPO": "ใส่ค่าของคุณ",
"EDS_REF": "ใส่ค่าของคุณ",
"EDS_API_KEY": "ใส่ค่าของคุณ",
"EDS_DOMAIN_KEY": "ใส่ค่าของคุณ",
"EDS_DA_TOKEN": "ใส่ค่าของคุณ",
"EDS_DA_ORG": "ใส่ค่าของคุณ",
"EDS_DA_REPO": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
EDS_REF envEDS_DA_ORG envEDS_DA_REPO envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Focus-GTS ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: EDS_OWNER, EDS_REPO, EDS_API_KEY, EDS_DOMAIN_KEY, EDS_DA_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.15.0) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, AvaHR
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Read hiring data and create inactive assessment and questionnaire drafts for human review.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
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.
flowchart LR
A["📖 Read authored content (DA)"] --> B["🔍 Audit SEO · a11y · perf · freshness"] B --> C["🛠️ Fix one page or the whole site"] C --> D["🚀 Publish preview + live"] D --> E["↩️ Undo 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.
flowchart LR
A["AI agent (Claude Code · Cursor · Copilot)"] -- MCP / stdio --> B["eds-mcp-server 41 tools"] B --> C["Admin API admin.hlx.page"] B --> D["Content API *.aem.live"] B --> E["RUM / OpTel Core Web Vitals"] B --> G["Document Authoring 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.
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_KEYworks as the CI / fallback path.
Publishing
eds_preview_pageeds_publish_pageeds_unpublish_pageeds_preview_and_publisheds_get_statuseds_purge_cacheeds_bulk_previeweds_bulk_publisheds_get_job_statusContent
eds_get_pageeds_list_pageseds_search_pageseds_get_metadataeds_get_sitemapeds_get_redirectsAnalytics & config
eds_get_cwveds_get_404seds_get_experimentseds_get_configeds_get_logseds_get_api_keysNine 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_sourceseds_da_get_sourceeds_da_get_versionsWrite
eds_da_put_sourceeds_da_delete_sourceeds_da_copy_sourceeds_da_move_sourceBulk ("clone") + safe writes
eds_da_exporteds_da_pusheds_da_rollback`eds_da_export` / `eds_da_push` bring the efficiency of
aem content cloneto agents: export a whole DA subtree in one call, operate on it, and push the batch back in one call — no local checkout, noaem-cli. Same model, network-native.
Safe by default.
eds_da_pushtakesdryRun: trueto preview exactly what a bulk edit would do (create / update / unchanged, with line-diff counts) without writing a thing, andwithUndo: trueto make the write reversible — it returns anundoobject you hand toeds_da_rollbackto 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_TOKENis an Adobe IMS access token for Document Authoring — grab it from an authenticated da.live session (the IMSaccess_token). Document paths assume.htmlwhen no extension is given (index→index.html).
eds_audit_pageeds_audit_siteeds_audit_reporteds_audit_snapshoteds_audit_trendeds_audit_monitorIt tells you what's wrong.
eds_audit_sitesweeps 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 adomain— performance (Core Web Vitals) and 404s from Adobe's own real-user data.eds_audit_pagedoes 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_snapshotrecords 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_monitoraudits, diffs against the last snapshot, and reports a status — ok / degraded / broken — and, when you give it awebhook, 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](examples/monitor.yml) or your agent runtime. Webhook is https-only and the payload carries no secrets.
eds_fix_metadataeds_bulk_fix_metadataeds_fix_redirecteds_fix_auditIt fixes what it finds — reversibly.
eds_fix_metadatarepairs 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). Passpublish: trueto 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_sitesurfaces the broken links from real-user data, and this adds the 301 redirect rules (to the site'sredirectssheet) 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_rollbackundoes all of it.dryRunpreviews the whole plan;publish: truemakes it live.
Claude Code — one command
claude mcp add eds -e EDS_OWNER=your-org -e EDS_REPO=your-site -- npx @focusgts/eds-mcp-server
Cursor — .cursor/mcp.json
{
"mcpServers": { "eds": { "command": "npx", "args": ["@focusgts/eds-mcp-server"], "env": { "EDS_OWNER": "your-org", "EDS_REPO": "your-site" } } } }
</details>
VS Code (GitHub Copilot) — .vscode/mcp.json
{
"servers": { "eds": { "command": "npx", "args": ["@focusgts/eds-mcp-server"], "env": { "EDS_OWNER": "your-org", "EDS_REPO": "your-site" } } } }
</details>
| 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.
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 t
ตัดมาแค่ช่วงต้น อ่านต่อใน repo