magento-mcp
magento-mcp
MCP-сервер, предоставляющий доступ к магазину Magento 2 для ИИ-ассистентов через:
REST Admin API — каталог, заказы, клиенты, CMS, складские остатки, акции, конфигурация магазина (инструменты записи требуют
confirm: true), аутентификация через OAuth 1.0a с использованием Magento IntegrationGraphQL — витринный поиск по каталогу, детали товара, дерево категорий
Прямой SQL только для чтения — инструмент
run_readonly_sqlплюс готовые аналитические запросы к рабочей базе данных Magento, опционально через SSH-туннель
Инструменты
Инструмент | Область | Примечания |
| Каталог | только чтение |
| Каталог | деструктивные, требуется |
| Заказы | только чтение |
| Заказы | деструктивные, требуется |
| Клиенты | только чтение |
| Клиенты | деструктивные, требуется |
| CMS | только чтение |
| Склад | только чтение |
| Склад | деструктивные, требуется |
| Акции | только чтение |
| Конфигурация магазина | только чтение |
| Конфигурация магазина | деструктивные, требуется |
| GraphQL-каталог | только чтение, витринные запросы |
| База данных | только один |
| База данных | готовые аналитические запросы только для чтения |
Также предоставляется один MCP-ресурс: magento://store/config (конфигурация магазина — валюты, витрины, базовые URL).
Related MCP server: Shopify MCP
Установка
npm installСкопируйте
.env.exampleв.envи заполните:MAGENTO_BASE_URLплюс учётные данные OAuth 1.0a из Magento Integration (System → Extensions → Integrations → Add New Integration):MAGENTO_CONSUMER_KEY,MAGENTO_CONSUMER_SECRET,MAGENTO_ACCESS_TOKEN,MAGENTO_ACCESS_TOKEN_SECRET. Выдайте Integration только те ресурсы API, которые реально нужны серверу, — Magento показывает эти четыре значения только один раз, при активации. Это также позволяет обойти ограничение 2FA, которое блокирует вход по паролю администратора, и является подходом с минимальными привилегиями.MAGENTO_DB_*— обязательно должен указывать на пользователя MySQL с правами только на чтение (SELECT):CREATE USER 'mcp_readonly'@'%' IDENTIFIED BY 'change_me'; GRANT SELECT ON magento_db.* TO 'mcp_readonly'@'%'; FLUSH PRIVILEGES;Ни в коем случае не выдавайте такому пользователю права INSERT/UPDATE/DELETE/DDL — проверка на уровне приложения (
src/db/guard.ts) — это дополнительный уровень защиты, а не основная граница безопасности.
npm run buildnpm run test:connections— проверка подключений к REST, GraphQL и БД с использованием значений из.envперед подключением сервера к ассистенту. См. раздел «Локальная разработка с самоподписанными сертификатами», если возникают ошибки TLS.Зарегистрируйте сервер в Claude Desktop/Code, например в
claude_desktop_config.json:{ "mcpServers": { "magento": { "command": "node", "args": ["/var/www/html/magentoMCP/dist/index.js"], "env": { "MAGENTO_BASE_URL": "...", "MAGENTO_CONSUMER_KEY": "...", "MAGENTO_CONSUMER_SECRET": "...", "MAGENTO_ACCESS_TOKEN": "...", "MAGENTO_ACCESS_TOKEN_SECRET": "...", "MAGENTO_DB_HOST": "...", "MAGENTO_DB_NAME": "...", "MAGENTO_DB_READONLY_USER": "...", "MAGENTO_DB_READONLY_PASSWORD": "...", "MAGENTO_DB_SSH_HOST": "...", "MAGENTO_DB_SSH_USER": "...", "MAGENTO_DB_SSH_PRIVATE_KEY_PATH": "..." } } } }Поля
MAGENTO_DB_SSH_*нужны только при подключении к БД через SSH-туннель — если они не нужны, просто не указывайте их (а не оставляйте пустыми), чтобы подключение шло напрямую. См. раздел «Подключение к удалённой/изолированной БД» ниже.
Разработка
npm run dev— запуск напрямую из исходников черезtsxnpm run typechecknpm test— модульные тесты (src/db/guard.test.tsпокрывает проверки безопасности SQL-запросов)npm run test:connections— проверка подключений к REST/GraphQL/БД с использованием значений из.env(не заменяетnpm test)npx @modelcontextprotocol/inspector node dist/index.js— интерактивный просмотр и вызов инструментов
Локальная разработка с самоподписанными сертификатами (mkcert, Warden и т.п.)
fetch в Node.js использует собственный список доверенных центров сертификации, отдельный от системного хранилища — поэтому даже если curl и ваш браузер доверяют локально выпущенному сертификату mkcert, Node.js отклонит его с ошибкой UNABLE_TO_VERIFY_LEAF_SIGNATURE. Укажите Node.js тот же корневой CA:
NODE_EXTRA_CA_CERTS=$(mkcert -CAROOT)/rootCA.pem npm run devили задайте переменную NODE_EXTRA_CA_CERTS в окружении, в котором запускается MCP-клиент (например, в блоке env в claude_desktop_config.json). Также проверьте, что MAGENTO_BASE_URL точно соответствует имени хоста, указанному в сертификате (ошибка ERR_TLS_CERT_ALTNAME_INVALID означает, что не соответствует) — в локальных установках Magento часто настроено несколько хостов *.local/*.example.com, и сертификат покрывает только один из них.
Подключение к удалённой/изолированной БД (SSH-туннель)
MAGENTO_DB_HOST/PORT не обязаны указывать на ту же машину, где работает сервер, — mysql2 просто подключается по TCP. Но ни в коем случае не открывайте порт MySQL в открытый интернет. Если БД недоступна напрямую через частную сеть/VPN, задайте MAGENTO_DB_SSH_* в .env (полный список полей — в .env.example), чтобы подключение к БД шло через SSH-туннель: сервер сам устанавливает SSH-соединение (через пакет ssh2, а не внешний процесс ssh) и пробрасывает локальный порт на MAGENTO_DB_HOST/PORT так, как они разрешаются на стороне SSH-хоста. Предпочтительнее использовать закрытый ключ (MAGENTO_DB_SSH_PRIVATE_KEY_PATH), а не пароль. Если MAGENTO_DB_SSH_HOST не задан, подключение идёт напрямую, как и раньше, — туннель включается только при наличии этого параметра.
Меры безопасности
Каждый деструктивный REST-инструмент (
update_product,delete_product,cancel_order,refund_order,update_customer,delete_customer,update_stock_item,set_config_value) сначала показывает, что будет сделано, и не выполняет действие без параметраconfirm: true.run_readonly_sqlпринимает только один операторSELECT, отклоняет ключевые слова DML/DDL и обращение к чувствительным таблицам (admin_userи т.п.), а также автоматически добавляет/ограничиваетLIMIT— см.src/db/guard.ts. Это дополнительная защита поверх прав пользователя БД (толькоSELECT), а не замена им.Таймаут запроса и максимальное количество строк настраиваются через
MAGENTO_DB_QUERY_TIMEOUT_MS/MAGENTO_DB_MAX_ROWSв.env.
This server cannot be deployed
Maintenance
Related MCP Connectors
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
Hosted Magento MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
MCP server for Product Management
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server for MySQL database operations, providing secure HTTP endpoints for read-only queries, performance analysis, and server monitoring.223 npm19MIT
- AlicenseAqualityAmaintenanceA read-only MCP server that exposes the full Shopify Admin GraphQL API through 6 universal tools, with multi-store support and mutation rejection at the parser level for safety.647 PyPI1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for integrating with Adobe Commerce and Magento REST API to manage products, categories, customers, pricing, and attributes.3Apache 2.0
- FlicenseAqualityDmaintenanceSecurity-focused MCP server for Shopify Admin GraphQL with read-only queries by default and mutations requiring preview and one-time confirmation. It manages short-lived tokens internally and enforces strict scope and approval controls.49 npm-