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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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.6113MIT
- AlicenseNot gradedqualityBmaintenanceA 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.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for integrating with Adobe Commerce and Magento REST API to manage products, categories, customers, pricing, and attributes.3Apache 2.0
- FlicenseAqualityCmaintenanceSecurity-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.413
Related MCP Connectors
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
The official MCP Server from Mia-Platform to interact with Mia-Platform Console
MCP server for managing Prisma Postgres.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/FahadEjaz/magento-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server