
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
adobe-commerce-docs-mcp
Advanced tools
MCP server for Adobe Commerce / Magento 2 documentation. Gives AI assistants (Claude, Cursor, Cline, Windsurf) direct access to official Adobe Commerce docs — products, orders, catalog, checkout, B2B, cloud, and more.
An MCP (Model Context Protocol) server that gives AI assistants direct access to the official Adobe Commerce / Magento documentation. It indexes the Adobe Experience League sitemap and provides tools, resources, and prompts to search, browse, and read documentation pages — all from within your AI coding assistant.
structuredContent (JSON Schema outputSchema) alongside human-readable markdown, so clients can parse results programmaticallyreadOnlyHint/openWorldHint/idempotentHint so MCP clients can reduce confirmation friction for safe, read-only operationscommerce:// URIs for sections and doc pages, capped at 300 entries per section read to stay context-safegraphql also matches gql, cloud matches ece, module matches extension, and 40+ morechekout → checkout, catlog → catalog--http flag for remote/team deployment via Streamable HTTPsearch_adobe_commerce_docsBM25-ranked search with synonym expansion and fuzzy matching.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search keywords (e.g., "graphql product query", "checkout configuration") |
limit | number | No | Max results to return (1–50, default: 15) |
section | string | No | Filter by section slug (see Available Sections) |
get_doc_contentFetch the full content of a documentation page as clean markdown.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Full URL of the doc page from search results |
get_code_examplesExtract only the code blocks from a documentation page. Returns fenced code snippets without surrounding prose — much more token-efficient than fetching the full page.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Full URL of the doc page |
get_page_tocGet the heading hierarchy (table of contents) of a page. Useful for understanding structure before fetching the full content.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Full URL of the doc page |
get_doc_sectionFetch just one section of a page by heading name (case-insensitive, substring match), including its nested subheadings. Use this for long pages where get_doc_content's full-page fetch would truncate before reaching the section you need — check get_page_toc first to find the heading name.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Full URL of the doc page |
heading | string | Yes | Heading text to find (e.g., "tunnel", "SSH Tunnel Setup") |
get_related_docsFind sibling/related pages in the same section of the documentation tree.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Full URL of the doc page |
limit | number | No | Max related pages (1–30, default: 10) |
lookup_error_codeSearch the Knowledge Base for an error code or message. Auto-fetches the top result for immediate answers.
| Parameter | Type | Required | Description |
|---|---|---|---|
error | string | Yes | Error code or message (e.g., "MDVA-43395", "Unable to serialize value") |
multi_page_searchSearch with multiple queries in one call. Returns de-duplicated results — reduces round-trips when researching from multiple angles.
| Parameter | Type | Required | Description |
|---|---|---|---|
queries | string[] | Yes | Array of search queries (1–5) |
limit_per_query | number | No | Max results per query (1–20, default: 5) |
section | string | No | Optional section filter for all queries |
list_doc_sectionsList all available documentation sections with page counts. No parameters.
refresh_sitemapForce-refresh the cached sitemap data, and clear the on-disk page content cache (individually cached per page for up to 7 days) so subsequently fetched pages come back fresh instead of stale. No parameters.
Use these slugs with the section parameter:
| Section Slug | Description |
|---|---|
commerce-admin | Admin panel, catalog, customers, orders, stores configuration |
commerce-operations | Installation, upgrade, configuration, CLI tools, patches |
commerce-cloud-service | Cloud infrastructure, deployment, environments |
commerce-on-cloud | Cloud architecture, CLI/branches, CDN & Fastly VCL, dev tools & integrations |
commerce-merchant-services | Live Search, Product Recommendations, Payment Services |
commerce-channels | Amazon Sales Channel, Channel Manager |
commerce-knowledge-base | Troubleshooting articles and known issues |
commerce-learn | Tutorials and video guides |
commerce-business-intelligence | Reporting and analytics |
MCP Resources let AI clients browse data directly via URIs — no tool call needed.
| URI | Description |
|---|---|
commerce://sections | All documentation sections with page counts |
commerce://stats | Server status: version, uptime, index size |
commerce://docs/{section} | Browse all pages within a section (supports autocomplete) |
MCP Prompts are reusable workflows that work across all MCP clients (Cursor, Claude Desktop, VS Code, Windsurf, etc.).
| Prompt | Arguments | Description |
|---|---|---|
troubleshoot-commerce-error | error_message | Search Knowledge Base, provide root cause + solution + prevention |
explain-commerce-concept | topic | Explain a concept with code examples and best practices from official docs |
commerce-code-review | code | Review PHP/XML/JS code against official Commerce coding standards |
commerce-upgrade-guide | from_version, to_version | Generate upgrade checklist with breaking changes and rollback plan |
Run this single command in your terminal:
bash <(curl -sS https://raw.githubusercontent.com/jigarkkarangiya/adobe-commerce-docs-mcp/main/setup-cursor.sh)
Or if you have the repo cloned:
bash setup-cursor.sh
The script will:
~/.cursor/mcp.jsonYou need Node.js 18+ installed. Check by running:
node --version
If you don't have it, install from nodejs.org.
Ctrl + , / Cmd + ,)A dialog will appear. Fill it in:
| Field | Value |
|---|---|
| Name | adobe-commerce-docs |
| Type | command |
| Command | npx -y adobe-commerce-docs-mcp |
Click "Add".
You should see adobe-commerce-docs in your MCP list with a green dot (active).
Open any chat in Agent mode and try:
"Search Adobe Commerce docs for checkout configuration"
Open (or create) the MCP config file:
| OS | Path |
|---|---|
| Linux | ~/.cursor/mcp.json |
| macOS | ~/.cursor/mcp.json |
| Windows | %USERPROFILE%\.cursor\mcp.json |
Add this JSON (if the file already has other servers, merge the adobe-commerce-docs block into the existing mcpServers object):
{
"mcpServers": {
"adobe-commerce-docs": {
"command": "npx",
"args": ["-y", "adobe-commerce-docs-mcp"]
}
}
}
Restart Cursor after saving.
Add to your Claude Desktop config:
| OS | Config Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
{
"mcpServers": {
"adobe-commerce-docs": {
"command": "npx",
"args": ["-y", "adobe-commerce-docs-mcp"]
}
}
}
Add to .vscode/mcp.json in your project root:
{
"servers": {
"adobe-commerce-docs": {
"command": "npx",
"args": ["-y", "adobe-commerce-docs-mcp"]
}
}
}
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"adobe-commerce-docs": {
"command": "npx",
"args": ["-y", "adobe-commerce-docs-mcp"]
}
}
}
Once connected, just ask naturally in any AI chat:
| What You Ask | What Happens |
|---|---|
| "Search Adobe Commerce docs for GraphQL product queries" | BM25-ranked search with synonym expansion |
| "Get the documentation page for payment methods" | Fetches full page as clean markdown |
| "Show me just the code examples from the DI docs" | Extracts only code blocks (saves tokens) |
| "What's the table of contents for the checkout page?" | Returns heading hierarchy |
| "Find related pages for this Cloud deployment doc" | Returns sibling pages in the doc tree |
| "Look up error MDVA-43395" | Searches Knowledge Base, auto-fetches the top match |
| "Search for REST API, GraphQL mutations, and webhooks" | Multi-query search in one call |
| "What does Commerce say about catalog price rules?" | Searches, then reads the best matching page |
| "Help me upgrade from 2.4.6 to 2.4.7" | Uses the upgrade-guide prompt workflow |
┌─────────────┐ ┌──────────────────────────┐ ┌─────────────────────────┐
│ AI Client │────▶│ MCP Server (v2.0) │────▶│ Adobe Experience League │
│ (Cursor, │◀────│ │◀────│ sitemap.xml + .md pages │
│ Claude, │ │ 10 Tools │ │ │
│ VS Code) │ │ 3 Resources │ └─────────────────────────┘
│ │ │ 4 Prompts │
└─────────────┘ └──────────────────────────┘
│
├─ BM25 search with synonym expansion + fuzzy matching
├─ Pre-warms sitemap on startup
├─ Fetches .md endpoints (native markdown)
├─ Memory LRU cache: 100 pages, 1h TTL
├─ Disk page cache: 7-day TTL (survives restarts)
└─ Disk sitemap cache: 24h TTL
.md version (clean markdown, no HTML parsing needed).md is unavailableFor team/remote deployment, run the server in HTTP mode:
npm run start:http
# or
npx adobe-commerce-docs-mcp --http
This starts a Streamable HTTP server on port 3000 (configurable via PORT env var).
docker build -t adobe-commerce-docs-mcp .
docker run -p 3000:3000 adobe-commerce-docs-mcp
All settings are configurable via environment variables:
| Variable | Default | Description |
|---|---|---|
SITEMAP_URL | Adobe Experience League URL | Override sitemap source |
CACHE_DIR | ~/.cache/adobe-commerce-docs-mcp | Cache directory path |
SITEMAP_CACHE_TTL_MS | 86400000 (24h) | Sitemap cache lifetime |
PAGE_CACHE_MAX | 100 | Max pages in memory LRU cache |
PAGE_CACHE_TTL_MS | 3600000 (1h) | Memory cache page lifetime |
PAGE_DISK_CACHE_TTL_MS | 604800000 (7d) | Disk cache page lifetime |
MAX_CONTENT_LENGTH | 15000 | Max characters per page response |
MAX_CONCURRENT_FETCHES | 5 | Concurrent sitemap fetches |
PORT | 3000 | HTTP server port (with --http) |
LOG_LEVEL | info | Log level: debug, info, warn, error |
node --versionnpx -y adobe-commerce-docs-mcp
npm config set registry https://registry.npmjs.org/
"checkout" instead of "checkout multishipping step 3"gql → graphql, ece → cloud, etc.)refresh_sitemap to reload the latest datagit clone https://github.com/jigarkkarangiya/adobe-commerce-docs-mcp.git
cd adobe-commerce-docs-mcp
npm install
npm run build
npm start
npm run dev # stdio transport
npm run dev:http # HTTP transport
npm test
adobe-commerce-docs-mcp/
├── src/
│ ├── index.ts # MCP server: tools, resources, prompts, transport
│ ├── sitemap.ts # Sitemap loading, BM25 search, synonyms, fuzzy matching
│ ├── content.ts # Page fetching, markdown/HTML parsing, structured extraction
│ └── config.ts # Environment variable configuration
├── tests/
│ ├── search.test.ts # Search, Levenshtein, synonym expansion tests
│ └── content.test.ts # Content extraction, TOC, smart truncation tests
├── dist/ # Compiled JS (generated by `npm run build`)
├── .cursor/
│ ├── rules/ # Cursor auto-apply rules for this MCP
│ └── prompts/ # Cursor slash commands (/commerce-search, etc.)
├── .github/workflows/ # CI/CD: build, test, publish
├── Dockerfile # Multi-stage Docker build for HTTP deployment
├── setup-cursor.sh # One-command Cursor setup script
├── package.json
├── tsconfig.json
├── LICENSE
└── README.md
git checkout -b my-featurenpm run build && npm test| Registry | Link |
|---|---|
| npm | npmjs.com/package/adobe-commerce-docs-mcp |
| GitHub | github.com/jigarkkarangiya/adobe-commerce-docs-mcp |
| Official MCP Registry | io.github.jigarkkarangiya/adobe-commerce-docs-mcp — see server.json |
| Cursor | cursor.directory — search adobe-commerce-docs |
| mcp.so | mcp.so — search adobe-commerce-docs |
| Smithery | smithery.ai — search adobe-commerce-docs |
| Glama | glama.ai/mcp/servers — search adobe commerce |
adobe-commerce-dev-docs-mcp — Adobe Commerce developer docs (developer.adobe.com/commerce)aem-live-docs-mcp — AEM / Edge Delivery Services docs (aem.live)adobe-app-builder-docs-mcp — Adobe App Builder — serverless, I/O Runtime, Commerce extensibilityadobe-api-mesh-docs-mcp — Adobe API Mesh — GraphQL gateway & source handlersadobe-commerce-kb-mcp — Adobe Commerce Support Knowledge Base — troubleshooting & patchesadobe-io-events-docs-mcp — Adobe I/O Events — webhooks, journaling & event providersSee CHANGELOG.md for what's new, fixed, changed, and improved in each release.
Source-Available — All Rights Reserved
The source is public for transparency and evaluation. You may install and run the unmodified package for personal, educational, or internal non-commercial use. Modification, forking, redistribution, and commercial use are not permitted without prior written permission. See LICENSE for full terms.
© 2026 Jigar Karangiya · LinkedIn
FAQs
MCP server for Adobe Commerce / Magento 2 documentation. Gives AI assistants (Claude, Cursor, Cline, Windsurf) direct access to official Adobe Commerce docs — products, orders, catalog, checkout, B2B, cloud, and more.
We found that adobe-commerce-docs-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.