Gelato
Servidor MCP da plataforma de impressão sob demanda Gelato
Documentação
Servidor MCP Gelato
Um servidor MCP (Model Context Protocol) para integração com a API de print-on-demand da Gelato. Este servidor fornece ferramentas e recursos para pesquisar pedidos, recuperar detalhes de pedidos e explorar catálogos de produtos.
Recursos
🔧 Ferramentas
- search_orders: Pesquisa avançada de pedidos com múltiplos filtros (status, país, intervalo de datas, etc.)
- get_order_summary: Recupera detalhes específicos de pedidos
- search_products: Pesquisa produtos em catálogos com capacidades de filtragem
- get_product: Obtém informações detalhadas sobre um produto específico
- get_product_prices: Obtém informações de preços para produtos
- check_stock_availability: Verifica disponibilidade de estoque em várias regiões
- list_shipment_methods: Obtém métodos de envio disponíveis
📚 Recursos
- orders://{order_id}: Obtém informações detalhadas do pedido
- orders://recent: Obtém os 10 pedidos mais recentes
- orders://drafts: Obtém todos os pedidos de rascunho
- catalogs://list: Lista todos os catálogos de produtos disponíveis
- catalogs://{catalog_uid}: Obtém informações detalhadas do catálogo
- catalogs://summary: Visão geral rápida de todos os catálogos
Pré-requisitos
- Python 3.13+
- Chave de API da Gelato (obtenha uma no Portal de API da Gelato)
Instalação
Instalação Rápida com Claude Desktop
A maneira mais fácil de adicionar este servidor ao Claude Desktop:
claude mcp add gelato --env GELATO_API_KEY="your_gelato_api_key_here" -- uvx mcp-server-gelato
Substitua your_gelato_api_key_here pela sua chave de API real da Gelato do Portal de API da Gelato.
Alternativa: Você pode instalar sem a chave de API e configurá-la depois:
claude mcp add gelato -- uvx mcp-server-gelato
Em seguida, use a ferramenta configure_gelato dentro do Claude para configurar sua chave de API.
Instalação Manual
Opção 1: Instalar do 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
Opção 2: Instalar do 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
Opção 3: Desenvolvimento Local
-
Clone este repositório:
git clone https://github.com/madzarmaksim/mcp-server-gelato.git cd mcp-server-gelato -
Instale as dependências:
uv install # or pip install -e . -
Configure sua chave de API:
cp .env.example .env # Edit .env and add your GELATO_API_KEY
Configuração
Crie um arquivo .env na raiz do projeto com sua chave de API da 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
Executando o Servidor
Após instalação via uvx:
# Run the server directly
mcp-server-gelato
# Or with environment variables
GELATO_API_KEY=your_key_here mcp-server-gelato
Desenvolvimento 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"
Usando as Ferramentas e Recursos
Pesquisar 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)
Obter Detalhes do Pedido
Use o formato de URI do recurso para carregar o contexto do pedido:
orders://37365096-6628-4538-a9c2-fbf9892deb85
Ou use a ferramenta:
get_order_summary(order_id="37365096-6628-4538-a9c2-fbf9892deb85")
Explorar Catálogos de Produtos
catalogs://list # List all catalogs
catalogs://posters # Get poster catalog details
catalogs://summary # Quick overview
Filtros de Pesquisa Disponíveis
A ferramenta search_orders suporta filtragem extensiva:
- order_types:
["order", "draft"]- Filtrar por tipo de pedido - countries:
["US", "DE", "CA"]- Filtrar por país de envio - currencies:
["USD", "EUR", "GBP"]- Filtrar por moeda - financial_statuses: Status de pagamento (
"draft","paid","canceled", etc.) - fulfillment_statuses: Status de atendimento (
"created","printed","shipped", etc.) - search_text: Pesquisar em nomes de clientes e IDs de referência de pedidos
- start_date/end_date: Filtragem por intervalo de datas (formato ISO 8601)
- channels:
["api", "shopify", "etsy", "ui"]- Filtrar por canal de pedido - limit/offset: Controle de paginação (máximo de 100 resultados por solicitação)
Principais Características de Design
- Segurança de Tipos: Modelos Pydantic completos para todas as interações com a API
- Tratamento de Erros: Tratamento abrangente de erros com exceções personalizadas
- Suporte Assíncrono: Todas as chamadas de API são assíncronas para melhor desempenho
- Recursos vs Ferramentas: Separação clara entre exposição de dados (recursos) e operações (ferramentas)
- Extensível: Fácil adicionar novos endpoints seguindo padrões estabelecidos
Tratamento de Erros
O servidor inclui tratamento robusto de erros para cenários comuns:
- Erros de autenticação: Chaves de API inválidas ou ausentes
- Limitação de taxa: Tentativa automática com backoff exponencial
- Erros de rede: Tratamento de timeout e erros de conexão
- Erros de API: Tratamento adequado das respostas de erro da API da Gelato
- Erros de validação: Validação de dados de solicitação/resposta
Solução de Problemas
Erro "Falha ao reconectar ao gelato"
Este erro ocorre quando o servidor inicia sem um GELATO_API_KEY válido. Aqui estão as soluções:
Para Instalação com 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 Desenvolvimento 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
Obtendo Sua Chave de API
- Visite o Portal de API da Gelato
- Cadastre-se ou faça login na sua conta
- Gere uma chave de API no seu painel
- Use a chave no comando de instalação ou na variável de ambiente
Problemas Comuns
- Chave de API Inválida: Verifique novamente se sua chave de API está correta e ativa
- Problemas de Rede: Garanta conectividade com a internet e que nenhum firewall esteja bloqueando
- Problemas de Permissão: Certifique-se de que sua chave de API tenha as permissões necessárias
Desenvolvimento
Adicionando Novos Recursos
- Novas Ferramentas: Adicione a
src/tools/e registre no servidor - Novos Recursos: Adicione a
src/resources/e registre no servidor - Novos Modelos: Adicione a
src/models/com validação Pydantic adequada - Novos Endpoints de API: Estenda
GelatoClientemsrc/client/
Testes
# 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())
"
Solução de Problemas
Problemas Comuns
- Erro de Chave de API: Certifique-se de que
GELATO_API_KEYesteja configurado corretamente no seu ambiente - Timeout de Conexão: Verifique sua conexão de rede e aumente o timeout na configuração
- Limitação de Taxa: O servidor tenta automaticamente com backoff, mas você pode precisar diminuir a velocidade das solicitações
Modo de Depuração
Ative o registro de depuração:
DEBUG=true python main.py
Contribuindo
- Siga a estrutura e os padrões de código existentes
- Adicione tratamento de erros adequado para novos endpoints
- Inclua modelos Pydantic para validação de dados
- Documente novos recursos neste README
Licença
Este projeto é licenciado sob a Licença MIT.
Suporte
Para problemas com a API da Gelato, visite a Central de Ajuda da Gelato. Para problemas relacionados ao MCP, consulte a documentação do MCP.