MCP Server
Wafle expone un servidor MCP (Model Context Protocol) en mcp.wafle.click. Permite que cualquier cliente MCP — Claude Desktop, Claude Code, n8n, agente custom — ejecute ~80 acciones reales sobre tu tienda: catálogo, órdenes, ads, customers, marketplace, automations, emails, identity.
1. Emitir un token tenant-scoped
Andá a /admin/stores/<slug>/integrations/anthropic → tab MCP tokens. Tocá Crear token y elegí:
- Scopes: read / write / admin por namespace. Ej: solo
orders.read+customers.readpara un agente de soporte. - Expiry: 24 hs / 7 días / 30 días / nunca.
- Approval policy: cada write requiere approval explícito | rules (auto-aprobar bajo ciertas condiciones) | full auto (no recomendado).
El token tiene formato wmcp_ + 40 chars y solo se muestra una vez. Guardalo en tu password manager.
2. Conectar Claude Desktop
Editá ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"wafle": {
"command": "npx",
"args": ["-y", "@wafle/mcp-server"],
"env": {
"WAFLE_MCP_TOKEN": "wmcp_••••••••••••••••••••••••••••",
"WAFLE_TENANT": "gamerland"
}
}
}
}Reiniciá Claude Desktop. Vas a ver el icono de tools con todos los namespaces de Wafle listados.
3. Conectar Claude Code
Wafle está disponible como server MCP HTTP-streaming nativo:
{
"mcpServers": {
"wafle": {
"type": "http",
"url": "https://mcp.wafle.click/sse",
"headers": {
"Authorization": "Bearer wmcp_••••••••••••••••••••••••••••",
"X-Wafle-Tenant": "gamerland"
}
}
}
}Verificá con claude mcp list. Tools con namespace wafle.* aparecen disponibles para todas las sesiones de Claude Code.
4. Conectar n8n
n8n tiene nodo MCP nativo desde la versión 1.62. Configurá:
Server URL : https://mcp.wafle.click/sse
Auth header: Authorization
Auth value : Bearer wmcp_••••
Extra hdr : X-Wafle-Tenant=gamerland5. Cliente custom
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const transport = new StreamableHTTPClientTransport(
new URL('https://mcp.wafle.click/sse'),
{
requestInit: {
headers: {
Authorization: 'Bearer wmcp_••••',
'X-Wafle-Tenant': 'gamerland',
},
},
},
);
const client = new Client({ name: 'my-bot', version: '0.1.0' }, { capabilities: {} });
await client.connect(transport);
const tools = await client.listTools();
console.log(tools);Tools disponibles (~80)
Una línea por tool, agrupadas por namespace:
catalog.* — catálogo
catalog.list_products— lista paginada con filtros y facets.catalog.get_product— detalle de un producto + variantes + stock.catalog.create_product— crear con variantes.catalog.update_product— partial update.catalog.archive_product— soft delete.catalog.bulk_update_prices— % o absoluto, con dry-run.catalog.set_stock— set absoluto o delta.catalog.upload_image— sube a R2 y devuelve signed URL.catalog.scrape_marketplace— extrae producto desde URL ML/AliExpress/Amazon.catalog.list_categories,catalog.create_category,catalog.move_category.
orders.* — órdenes
orders.list,orders.get,orders.search.orders.fulfill— marcar enviada, attach tracking, notify.orders.refund— total o parcial.orders.cancel— con razón estructurada.orders.add_note— internal o public.orders.update_shipping— cambiar dirección o método.
customers.* — clientes
customers.list,customers.get,customers.search.customers.view_360— vista cross-channel: órdenes, eventos, emails, soporte.customers.tag,customers.untag.customers.merge— unificar duplicados.customers.add_note.
ads.* — Meta & Google Ads
ads.list_campaigns,ads.get_insights.ads.update_campaign— budget, status, schedule.ads.duplicate_campaign,ads.duplicate_adset.ads.create_audience— desde segmento de Wafle.ads.lookalike— generar lookalike vía Wafle Network.
marketplace.* — feeds
marketplace.list_feeds— Mercado Libre, Google Shopping, Meta catalog.marketplace.sync_feed— push manual.marketplace.list_errors— productos rechazados con motivo.
emails.* — marketing
emails.list_flows,emails.activate_flow,emails.pause_flow.emails.send_campaign— broadcast con segmentación.emails.preview_template— render con datos sintéticos.emails.test_send— manda a un email tuyo.emails.get_quota,emails.get_sender_reputation.
identity.* — Wafle Network
identity.lookup— qué sabe la red de un email/phone hash.identity.create_audience,identity.lookalike.identity.export— para GDPR.identity.forget— right to be forgotten.
warehouse.* — depósito
warehouse.list_locations,warehouse.transfer_stock.warehouse.print_pickslip,warehouse.print_label.warehouse.cycle_count— recuento.
afip.* — AR fiscal
afip.emit_invoice— Factura A/B/C.afip.list_invoices,afip.void_invoice.
automation.* — routines
automation.list_routines,automation.create_routine.automation.run_now— ejecutar ad hoc.automation.history— runs anteriores con outputs.
Resources (14)
Recursos MCP que el cliente puede inyectar al contexto del modelo:
wafle://catalog— snapshot del catálogo.wafle://orders/today,wafle://orders/pending.wafle://kpi/dashboard— KPIs operativos.wafle://emails/quota.wafle://ads/insights/last-7-days.wafle://customers/segments.wafle://identity/network-status.- + 7 más, listadas con
resources/list.
Prompts pre-armados (5)
daily_ops_briefing— resumen del día.ads_optimization— optimización guiada de campañas.support_triage— clasificar y responder consultas.inventory_audit— detectar SKUs problemáticos.weekly_growth_review— review tipo founder.
Approvals
Por default las write-tools requieren approval explícito. Tres formas:
- UI — notif en
/admin → bandeja approvals. Aprobás con un click. - Mobile — push notification con botones inline.
- Rules — definidas por scope en
/admin/stores/<slug>/agent → Rules. Ej: “auto-aprobar ads.update_campaign sidelta_budget < 20%y campaña no está en learning phase”.
auto_approve: true para scopes específicos. Útil para cron de routines, no recomendado para tokens humanos.Siguientes
- REST API — los mismos endpoints sin MCP.
- Plugin SDK — agregar tools MCP custom.
- Conectá tu Claude — el agente interno del dashboard.