Connector multi-tenant open source — mcify — que integra Bsale al ecosistema de herramientas que las PyMEs chilenas operan desde WhatsApp. Una infraestructura, muchos comercios, cero credenciales filtradas. Listo para partnership oficial.
Por Lelemon Studio · Camilo Alaniz · Santiago, Chile
La PyME chilena promedio usa Bsale para facturar, Khipu para cobrar, un banco vía Fintoc, un CRM, un ERP, una pasarela de envíos. Si cada uno de esos vendors construye su propio agente IA, el dueño termina con 8 chatbots diferentes, cada uno con su login y su forma de hablar. Nadie quiere eso.
La forma sensata: UN agente, en el canal donde la PyME ya vive (WhatsApp), que se conecta a todos los proveedores que el comercio ya usa. Las integraciones se manejan de forma central y segura — el dueño solo conversa.
El protocolo abierto que hace eso posible es Model Context Protocol (MCP), el estándar de Anthropic que ya soportan Claude, Cursor, ChatGPT y la mayoría de los frameworks de agentes. Cuando un comercio le pide a un agente "emite una factura por 50.000 a Acme SpA", el modelo no inventa la respuesta: invoca un tool MCP real que ejecuta la operación contra Bsale.
Construí mcify — un framework open source (Apache 2.0) en TypeScript para exponer APIs como servidores MCP — y dentro del repo está el connector de Bsale como ejemplo canónico de la integración multi-tenant.
bsale_emit_dteEmite factura electrónica, boleta, nota de crédito o débito. Devuelve folio, total y URLs del PDF y XML.
bsale_list_invoicesLista documentos emitidos con filtros por rango de fecha y tipo de documento.
bsale_get_invoiceBusca un documento por id. Devuelve estado, total y URLs.
bsale_list_clientsEncuentra clientes por RUT o email para reutilizar al emitir.
El connector es multi-tenant desde el día uno: un único servidor
mcify atiende a N comercios distintos. Cada comercio aporta su access_token
de Bsale en el onboarding; el servidor lo guarda asociado a un bearer token único, y
desde ese momento todas las llamadas de ese comercio se autentican con el bearer
(jamás con el access_token directo).
Comercio A Comercio B Comercio C
| | |
access_token A access_token B access_token C
| | |
v v v
+-------------------------------------------+
| bsale-mcp.lelemon.cloud (UN deploy) |
| ┌───────────────────────────────────┐ |
| │ Session Store │ |
| │ bearer_X → { orgId: "A", │ |
| │ bsaleAccessToken } │ |
| │ bearer_Y → { orgId: "B", ... } │ |
| └───────────────────────────────────┘ |
+-------------------------------------------+
|
+-------------+-------------+
| | |
Claude A Claude B Claude C
Bearer X Bearer Y Bearer Z
"Emite una factura electrónica para Acme SpA, RUT 11.111.111-1, por 50.000 CLP."
Identifica que necesita bsale_emit_dte y construye los argumentos.
POST https://bsale-mcp.lelemon.cloud/mcp con bearer del comercio. El
servidor valida el bearer en la base, resuelve el access_token de Bsale del
comercio, construye la llamada a api.bsale.io/v1/documents.json.
y devuelve el folio + las URLs del PDF/XML al servidor mcify.
"Factura folio 1234 emitida. PDF: bsale.io/pdf/...". El usuario recibe la URL.
El comercio nunca ve el access_token. El agente nunca recibe el access_token. La credencial vive solo en el servidor, indexada por bearer y resuelta por request.
orgId ni
credenciales como parámetros — el servidor los resuelve desde el bearer validado.
Esto previene el antipatrón más común en multi-tenant.
admin.mjs revoke <bearer>) bloquea al comercio en el siguiente
request. Sin redeploy.
La idea no es que Bsale construya un agente más. Es que Bsale forme parte de el agente — el que las PyMEs chilenas ya usan en WhatsApp para operar todas sus herramientas digitales desde un mismo lugar.
Lelemon opera la infraestructura: el connector open source, el servicio multi-tenant, el onboarding de cada comercio, la integración con WhatsApp, el modelo de IA. Bsale aporta lo que ya hace mejor que nadie en Chile: la facturación electrónica.
Este mismo modelo escala: Khipu ya tiene su connector, Fintoc también, y cada vendor que se sume es una pieza más del agente único que la PyME chilena maneja desde WhatsApp. Bsale puede ser el primer partner formal.
La propuesta cabe en una llamada de 30 minutos: mostrar la demo, validar viabilidad y definir próximos pasos. Tengo el ambiente listo para conectar contra el sandbox de Bsale en cuanto tengamos credenciales.
Si prefieren WhatsApp directo: +56 9 7706 6965 (Camilo Alaniz)