MCP server for Adobe Commerce / Magento 2 documentation — search, browse, and read official docs.
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
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y adobe-commerce-docs-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-jigarkkarangiya-adobe-commerce-docs-mcp": {
"command": "npx",
"args": [
"-y",
"adobe-commerce-docs-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceadobe-commerce-docs-mcpnpmio.github.jigarkkarangiya/adobe-commerce-docs-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.