Gelato
Servidor MCP de la plataforma de impresión bajo demanda Gelato
Documentación
Servidor MCP de Gelato
Un servidor MCP (Protocolo de Contexto de Modelo) para integrarse con la API de impresión bajo demanda de Gelato. Este servidor proporciona herramientas y recursos para buscar pedidos, recuperar detalles de pedidos y explorar catálogos de productos.
Características
🔧 Herramientas
- search_orders: Búsqueda avanzada de pedidos con múltiples filtros (estado, país, rango de fechas, etc.)
- get_order_summary: Recuperar detalles específicos de un pedido
- search_products: Buscar productos en catálogos con capacidades de filtrado
- get_product: Obtener información detallada sobre un producto específico
- get_product_prices: Obtener información de precios para productos
- check_stock_availability: Verificar disponibilidad de stock en todas las regiones
- list_shipment_methods: Obtener métodos de envío disponibles
📚 Recursos
- orders://{order_id}: Obtener información detallada del pedido
- orders://recent: Obtener los 10 pedidos más recientes
- orders://drafts: Obtener todos los pedidos en borrador
- catalogs://list: Listar todos los catálogos de productos disponibles
- catalogs://{catalog_uid}: Obtener información detallada del catálogo
- catalogs://summary: Resumen rápido de todos los catálogos
Requisitos previos
- Python 3.13+
- Clave API de Gelato (obtén una en el Portal de API de Gelato)
Instalación
Instalación rápida con Claude Desktop
La forma más sencilla de añadir este servidor a Claude Desktop:
claude mcp add gelato --env GELATO_API_KEY="your_gelato_api_key_here" -- uvx mcp-server-gelato
Reemplaza your_gelato_api_key_here con tu clave API real de Gelato del Portal de API de Gelato.
Alternativa: Puedes instalar sin la clave API y configurarla más tarde:
claude mcp add gelato -- uvx mcp-server-gelato
Luego usa la herramienta configure_gelato dentro de Claude para configurar tu clave API.
Instalación manual
Opción 1: Instalar desde PyPI (Recomendado)
# Install the package
uv install mcp-server-gelato
# or
pip install mcp-server-gelato
# Run the server
GELATO_API_KEY="your_api_key_here" uvx mcp-server-gelato
# Or install as a tool
uv tool install mcp-server-gelato
GELATO_API_KEY="your_api_key_here" mcp-server-gelato
Opción 2: Instalar desde GitHub
# Install directly from GitHub
uvx --from git+https://github.com/madzarmaksim/mcp-server-gelato mcp-server-gelato
# Or use uv tool install
uv tool install git+https://github.com/madzarmaksim/mcp-server-gelato
Opción 3: Desarrollo local
-
Clona este repositorio:
git clone https://github.com/madzarmaksim/mcp-server-gelato.git cd mcp-server-gelato -
Instala las dependencias:
uv install # or pip install -e . -
Configura tu clave API:
cp .env.example .env # Edit .env and add your GELATO_API_KEY
Configuración
Crea un archivo .env en la raíz del proyecto con tu clave API de Gelato:
GELATO_API_KEY=your_gelato_api_key_here
# Optional configuration
# GELATO_BASE_URL=https://order.gelatoapis.com
# GELATO_PRODUCT_URL=https://product.gelatoapis.com
# TIMEOUT=30
# MAX_RETRIES=3
# DEBUG=false
Uso
Ejecutar el servidor
Después de la instalación mediante uvx:
# Run the server directly
mcp-server-gelato
# Or with environment variables
GELATO_API_KEY=your_key_here mcp-server-gelato
Desarrollo local:
# Direct execution
python main.py
# Development mode with inspector
uv run mcp dev main.py
# Install in Claude Desktop from local directory
uv run mcp install . --name "Gelato API"
Usar las herramientas y recursos
Buscar pedidos
# Search for draft orders
search_orders(order_types=["draft"])
# Search US orders from last month
search_orders(
countries=["US"],
start_date="2024-01-01T00:00:00Z",
end_date="2024-01-31T23:59:59Z"
)
# Search by customer name
search_orders(search_text="John Smith", limit=10)
Obtener detalles del pedido
Usa el formato de URI de recurso para cargar el contexto del pedido:
orders://37365096-6628-4538-a9c2-fbf9892deb85
O usa la herramienta:
get_order_summary(order_id="37365096-6628-4538-a9c2-fbf9892deb85")
Explorar catálogos de productos
catalogs://list # List all catalogs
catalogs://posters # Get poster catalog details
catalogs://summary # Quick overview
Filtros de búsqueda disponibles
La herramienta search_orders admite filtrado extenso:
- order_types:
["order", "draft"]- Filtrar por tipo de pedido - countries:
["US", "DE", "CA"]- Filtrar por país de envío - currencies:
["USD", "EUR", "GBP"]- Filtrar por moneda - financial_statuses: Estados de pago (
"draft","paid","canceled", etc.) - fulfillment_statuses: Estados de cumplimiento (
"created","printed","shipped", etc.) - search_text: Buscar en nombres de clientes e ID de referencia de pedidos
- start_date/end_date: Filtrado por rango de fechas (formato ISO 8601)
- channels:
["api", "shopify", "etsy", "ui"]- Filtrar por canal de pedido - limit/offset: Control de paginación (máximo 100 resultados por solicitud)
Características clave de diseño
- Seguridad de tipos: Modelos Pydantic completos para todas las interacciones con la API
- Manejo de errores: Manejo integral de errores con excepciones personalizadas
- Soporte asíncrono: Todas las llamadas a la API son asíncronas para mejor rendimiento
- Recursos vs. Herramientas: Separación clara entre exposición de datos (recursos) y operaciones (herramientas)
- Extensible: Fácil de añadir nuevos endpoints siguiendo patrones establecidos
Manejo de errores
El servidor incluye manejo robusto de errores para escenarios comunes:
- Errores de autenticación: Claves API inválidas o faltantes
- Límite de velocidad: Reintento automático con retroceso exponencial
- Errores de red: Manejo de tiempos de espera y errores de conexión
- Errores de API: Manejo adecuado de respuestas de error de la API de Gelato
- Errores de validación: Validación de datos de solicitud/respuesta
Solución de problemas
Error "No se pudo reconectar a gelato"
Este error ocurre cuando el servidor se inicia sin un GELATO_API_KEY válido. Aquí están las soluciones:
Para instalación con Claude Desktop:
# Install with API key (recommended)
claude mcp add gelato --env GELATO_API_KEY="your_actual_api_key" -- uvx mcp-server-gelato
# Or install without API key and configure later
claude mcp add gelato -- uvx mcp-server-gelato
# Then use the configure_gelato tool in Claude
Para desarrollo local:
# Using PyPI package
GELATO_API_KEY="your_api_key_here" uvx mcp-server-gelato
# Or using local code
export GELATO_API_KEY=your_api_key_here
python main.py
# Or create .env file for local development
echo "GELATO_API_KEY=your_api_key_here" > .env
python main.py
Obtener tu clave API
- Visita el Portal de API de Gelato
- Regístrate o inicia sesión en tu cuenta
- Genera una clave API desde tu panel de control
- Usa la clave en el comando de instalación o variable de entorno
Problemas comunes
- Clave API inválida: Verifica que tu clave API sea correcta y esté activa
- Problemas de red: Asegura la conectividad a internet y que no haya firewall bloqueando
- Problemas de permisos: Asegúrate de que tu clave API tenga los permisos necesarios
Desarrollo
Añadir nuevas características
- Nuevas herramientas: Añade a
src/tools/y regístralas en el servidor - Nuevos recursos: Añade a
src/resources/y regístralos en el servidor - Nuevos modelos: Añade a
src/models/con validación Pydantic adecuada - Nuevos endpoints de API: Extiende
GelatoClientensrc/client/
Pruebas
# Test connection with your API key
python -c "
import asyncio
from src.config import get_settings
from src.client.gelato_client import GelatoClient
async def test():
settings = get_settings()
async with GelatoClient(settings.gelato_api_key, settings) as client:
catalogs = await client.list_catalogs()
print(f'Found {len(catalogs)} catalogs')
asyncio.run(test())
"
Solución de problemas
Problemas comunes
- Error de clave API: Asegúrate de que
GELATO_API_KEYesté configurado correctamente en tu entorno - Tiempo de espera de conexión: Verifica tu conexión de red y aumenta el tiempo de espera en la configuración
- Límite de velocidad: El servidor reintenta automáticamente con retroceso, pero puede que necesites ralentizar las solicitudes
Modo de depuración
Habilita el registro de depuración:
DEBUG=true python main.py
Contribuciones
- Sigue la estructura y los patrones de código existentes
- Añade manejo de errores adecuado para nuevos endpoints
- Incluye modelos Pydantic para validación de datos
- Documenta nuevas características en este README
Licencia
Este proyecto está licenciado bajo la Licencia MIT.
Soporte
Para problemas con la API de Gelato, visita el Centro de ayuda de Gelato. Para problemas relacionados con MCP, consulta la documentación de MCP.