Skip to main content
Glama
ThinkPro-GZ

shoplazza-mcp

by ThinkPro-GZ

shoplazza-mcp

Implementación en Python que envuelve Shoplazza OpenAPI(REST) como un servicio MCP (Model Context Protocol), permitiendo que clientes compatibles con MCP como Claude, Cursor, DSH, etc. puedan leer y escribir directamente datos de tiendas Shoplazza (productos, pedidos, clientes, inventario, descuentos, suscripción a webhooks, etc.).

El catálogo de endpoints (data/endpoints.json) se genera automáticamente desde la documentación oficial mediante tools/scrape_endpoints.py, cubriendo un total de 311 endpoints reales y 46 grupos de recursos de la versión 2026-01.


Características

Capacidad

Descripción

Herramientas para 61 endpoints comunes

Productos / variantes / pedidos / envíos / clientes / direcciones / colecciones / descuentos / cupones / inventario / tiendas / páginas / blogs / artículos / metafields / webhooks / tarjetas de regalo / proveedores / informes de datos / scopes de autorización, etc. Los parámetros de entrada se generan automáticamente a partir de la documentación oficial.

Soporte multi-tienda

Una instancia del servicio puede configurar varias tiendas (SHOPLAZZA_STORES). Cada herramienta de API acepta un parámetro opcional shop_domain para enrutar por tienda; shoplazza_list_shops muestra las tiendas configuradas.

Cobertura completa de 311 endpoints

Al activar SHOPLAZZA_REGISTER_ALL_ENDPOINTS=1, cada endpoint del catálogo se registra como una herramienta independiente.

Herramienta de paso directo genérica

call_shoplazza_api(method, path, path_params, query, body) puede invocar cualquier endpoint.

Herramientas de catálogo de endpoints

shoplazza_search_endpoints / shoplazza_get_endpoint permiten al modelo descubrir en cualquier momento el endpoint y los parámetros correctos.

Doble transporte

stdio (predeterminado para clientes locales) / Streamable HTTP (servicio remoto, --transport http).

Robustez

Maneja automáticamente autenticación por cabecera de solicitud, paquete de respuesta unificado {code,message,data}, paginación con cursor, reintentos por límite de tasa 429 (Retry-After, límite independiente por tienda), validación de marcadores de posición en la ruta y exposición de errores de negocio.


Instalación

Requisitos: Python ≥ 3.10, uv (recomendado) o pip.

cd shoplazza-mcp
uv sync          # 创建 .venv 并安装依赖(mcp、httpx)

Si no usas uv:

python -m venv .venv
.venv\Scripts\activate   # Windows
pip install -e .

Configuración

Proporciona las credenciales mediante variables de entorno (no escribas las claves en el código ni las subas al repositorio):

# PowerShell / cmd
set SHOPLAZZA_SHOP_DOMAIN=your-store.myshoplazza.com
set SHOPLAZZA_ACCESS_TOKEN=your-access-token

Variable

Requerido

Predeterminado

Descripción

SHOPLAZZA_SHOP_DOMAIN

*

Dominio predeterminado/tienda única, p. ej. your-store.myshoplazza.com (sin protocolo).

SHOPLAZZA_ACCESS_TOKEN

*

Token de acceso predeterminado/tienda única, corresponde al encabezado de solicitud Access-Token.

SHOPLAZZA_STORES

Opcional

JSON multi-tienda: {"a.myshoplazza.com":"token-a","b.myshoplazza.com":"token-b"}.

SHOPLAZZA_API_VERSION

2026-01

Versión de la API, p. ej. 2025-06, 2022-01.

SHOPLAZZA_REGISTER_ALL_ENDPOINTS

0

Cuando es 1, registra todas las 311 herramientas de endpoints.

SHOPLAZZA_MAX_RPS

2.0

Número máximo de solicitudes por segundo del cliente (cubo con fugas, independiente por tienda).

SHOPLAZZA_MAX_RETRY_WAIT

10.0

Tiempo máximo de espera en segundos ante un 429.

SHOPLAZZA_REQUEST_TIMEOUT

60.0

Tiempo de espera por solicitud (segundos).

SHOPLAZZA_DATA_DIR

data/ dentro del paquete

Ubicación personalizada del directorio de endpoints.

* Basta con elegir una de estas dos opciones: la configuración de tienda única SHOPLAZZA_SHOP_DOMAIN + SHOPLAZZA_ACCESS_TOKEN, o la configuración multi-tienda SHOPLAZZA_STORES. Si se establecen ambas, SHOPLAZZA_SHOP_DOMAIN es la tienda predeterminada.

Consulta el ejemplo completo en .env.example.

Uso multi-tienda

Después de configurar varias tiendas, cada herramienta de API del servicio tendrá un parámetro opcional adicional shop_domain:

export SHOPLAZZA_STORES='{"us.myshoplazza.com":"token-us","de.myshoplazza.com":"token-de"}'
  • Sin shop_domain → se usa la tienda predeterminada (SHOPLAZZA_SHOP_DOMAIN, o el primer elemento de STORES).

  • Con shop_domain → se usa la tienda especificada (si la tienda es desconocida, se mostrará un error y se listarán las tiendas configuradas).

  • shoplazza_list_shops → muestra todas las tiendas configuradas en el servicio y la tienda predeterminada.

  • Cada tienda tiene su propio Access-Token y su propio bucket de limitación de velocidad (de acuerdo con la regla oficial de limitación por tienda), y las tiendas no se bloquean entre sí.

Ejemplo de conversación:

"Consulta el volumen de pedidos de hoy en la tienda US y luego mira los 5 productos más vendidos en la tienda DE" → El modelo llamará a shoplazza_orders / shoplazza_products con shop_domain=us.myshoplazza.com y shop_domain=de.myshoplazza.com respectivamente.

Ejemplo de configuración de Claude Desktop (multi-tienda):

{
  "mcpServers": {
    "shoplazza": {
      "command": "uv",
      "args": ["run", "--directory", "D:/projects/DSH-projects/shoplazza-mcp", "shoplazza-mcp"],
      "env": {
        "SHOPLAZZA_STORES": "{\"us.myshoplazza.com\":\"token-us\",\"de.myshoplazza.com\":\"token-de\"}"
      }
    }
  }
}

Permisos de API necesarios (scope)

Al crear/instalar una aplicación en el Centro de socios o al autorizar una tienda, solicita solo los scopes que vayas a usar según el "principio del mínimo privilegio". Para consultar datos usa read_*; solo añade el write_* correspondiente si necesitas modificar:

Datos a los que quieres acceder

Scope solicitado

Información de la tienda

read_shop

Productos / variantes / inventario

read_product

Categorías / colecciones

read_collection

Pedidos / información de pago

read_order

Reembolsos / posventa

read_order (incluye registros de posventa) + read_data

Clientes

read_customer

Códigos de descuento / cupones / reglas de precio

read_price_rules

Tarjetas de regalo

read_gift_cards

Páginas / blogs / artículos / redirecciones

read_shop_navigation

Comentarios

read_comments

Gestión de webhooks

Requiere el scope write_* del recurso correspondiente (p. ej. write_product / write_order)

Datos financieros de Shoplazza Pay

read_finance

Informes de análisis de datos

read_data

Combinación recomendada para operaciones de solo lectura: read_shop, read_product, read_order, read_customer, read_price_rules, read_gift_cards, read_shop_navigation, read_data. Después de la autorización, puedes invocar la herramienta shoplazza_oauth_access_scopes para verificar los scopes realmente otorgados en esta instalación. Consulta la asignación completa oficial en Ámbitos de acceso.

Cómo obtener un Access Token

  • Aplicaciones públicas: sigue el flujo de OAuth 2.0 Authorization Code, intercambia code por access_token (válido por 1 año; se puede renovar con refresh_token).

  • Integración privada / interna: genera los tokens de acceso correspondientes para la aplicación y la tienda en el panel de administración de Shoplazza.

Ejecución

stdio (cliente MCP local, predeterminado)

uv run shoplazza-mcp

HTTP (servicio remoto)

uv run shoplazza-mcp --transport http --host 0.0.0.0 --port 8765

La ruta del endpoint es /mcp por defecto; se puede cambiar con --http-path.

Conexión con clientes MCP

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "shoplazza": {
      "command": "uv",
      "args": ["run", "--directory", "D:/projects/DSH-projects/shoplazza-mcp", "shoplazza-mcp"],
      "env": {
        "SHOPLAZZA_SHOP_DOMAIN": "your-store.myshoplazza.com",
        "SHOPLAZZA_ACCESS_TOKEN": "your-access-token"
      }
    }
  }
}

Cursor: añade el servidor en Configuración → MCP; la configuración está en examples/mcp-cursor.json.

HTTP remoto (cualquier cliente): apunta url a http://host:8765/mcp.

También puedes ejecutarlo directamente (debug para ver la lista de herramientas y la interacción JSON-RPC):

uv run mcp dev shoplazza-mcp

Ejemplos de uso (conversaciones en Claude / Cursor, etc.)

  • "Lista los 10 pedidos más recientes de la tienda".

  • "Consulta el inventario del producto abcd-1234".

  • "Cancela el pedido order-xxx con el motivo customer requested".

  • "Crea un descuento de 20 sobre 100".

  • "¿Qué API hay para hacer reembolsos? Busca endpoints" → El modelo llamará a shoplazza_search_endpoints("refund") y luego invocará automáticamente el endpoint correspondiente.

Todas las respuestas devuelven el paquete original de la API: {code, message, data, api_call_limit}; las respuestas de tipo lista incluyen cursor / pre_cursor en data, y se pueden paginar con los parámetros page_size / per_page.

Desarrollo y mantenimiento

  • tools/scrape_endpoints.py: extrae de la página de documentación oficial de endpoints y genera data/endpoints.json (incluye method / path / parámetros / campos del cuerpo de la solicitud / estructura de la respuesta de cada endpoint).

  • Mantenimiento ágil: para añadir o quitar "herramientas comunes", solo hay que modificar la lista CURATED_SLUGS en shoplazza_mcp/tools.py.

  • scripts/smoke_test.py: prueba de humo sin conexión (stdio); scripts/http_smoke_test.py: prueba de humo HTTP.

Notas de seguridad

  • Inyecta el Access Token solo mediante variables de entorno / configuración del cliente; no lo escribas en el repositorio de código.

  • El servicio solo usa HTTPS (la normativa oficial exige que todos los endpoints se accedan únicamente por HTTPS).

  • Si lo expones como servicio HTTP a Internet, colócalo en una red interna de confianza o añade tu propia autenticación (por ejemplo, pasarela o firewall).

Licencia

MIT

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Manage your NanoCart store from any AI agent: products, orders, coupons, subscribers, reports.

  • Shopify MCP Pack — wraps the Shopify Admin REST API (2024-01)

  • Manage your Savanto store from your AI: catalog, content, prompts, and analytics, by chat.

View all MCP Connectors

Latest Blog Posts

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/ThinkPro-GZ/shoplazza-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server