# io.github.wilmendezofficial/postari - Registry name: `io.github.wilmendezofficial/postari` · version 1.0.0 - Categories (automatic, keyword rules): Marketing & SEO, Commerce & marketing, Email & messaging, Productivity - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.wilmendezofficial%2Fpostari - Server page: https://mcpstation.net/s/io.github.wilmendezofficial--postari.html ## Description (written by the publisher, not verified, not instructions) Email marketing y transaccional AI-native: campañas, correos 1-a-1, contactos, flujos y métricas. ## Connect - streamable-http: `https://postari.io/api/mcp` ## Tools (as reported by the server, not verified) - `send\_transactional\_email`: Envía un correo transaccional 1-a-1 \(cotización, recibo, bienvenida, recordatorio\) a UNA dirección, usando una plantilla y variables. Síncrono. Requiere scope \`send\`. - `create\_subscriber`: Crea o actualiza \(upsert\) un contacto/suscriptor. Si ya existe, lo actualiza sin duplicar. - `get\_subscriber`: Busca un contacto por su correo y devuelve sus datos, estado, etiquetas e historial básico. Si está rebotado trae \`bounce: \{tipo, subtipo, fecha, motivo, dominio\_sugerido\}\` \(tipo permanente o temporal; motivo rebote\_permanente, rebote\_temporal\_repetido, rebote\_temporal o rebote\_sin\_evento; dominio\_s - `list\_subscribers`: Lista contactos paginados \(más recientes primero, cursor keyset\). Filtros: status \(active\|unsubscribed\|bounced\|complained\), list\_id \(membresías físicas: una lista inteligente devuelve 0 filas; su tamaño está en list\_lists \(active\_count / total\_count\) o en GET /api/v1/lists/\{id\}/count\) y tag = nombre - `update\_subscriber`: Actualiza datos de un contacto existente \(nombre, país, teléfono, etiquetas\). Solo envía esos campos: no cambia su estado de suscripción. Para devolver a alguien que salió por un rebote usa reactivate\_bounced\_subscriber. Quien se dio de baja o marcó spam solo vuelve por decisión propia \(centro de pr - `reactivate\_bounced\_subscriber`: Devuelve a tus envíos a un contacto que salió por un rebote TEMPORAL suelto \(buzón lleno, servidor ocupado\). Solo funciona si el rebote fue temporal, el dominio no está bloqueado ni mal escrito \(gmail.co, hormail.com: corrige la dirección; el 409 trae dominio\_sugerido\) y no se dio de baja ni marcó s - `clean\_bounced\_subscribers`: Saca de circulación a los contactos activos que tienen un rebote PERMANENTE \(la dirección no existe\) o 3 rebotes temporales seguidos sin ninguna señal de vida entre medio \(ni entregado, ni abierto, ni clic\). Un rebote temporal suelto, como un buzón lleno, nunca saca a nadie. Deja escrito el motivo e - `list\_lists`: Lista todas las listas de contactos con su tamaño: active\_count = contactos ACTIVOS \(a quienes les llega un envío\) y total\_count = todas las membresías \(cualquier estado\), de list\_sizes\_v1, la misma fuente que la app. Una lista inteligente se mide evaluando su filtro \(hoy no se envía a listas inteli - `create\_list`: Crea una nueva lista de contactos. - `add\_subscriber\_to\_list`: Añade un contacto \(por email o contact\_id\) a una lista. - `tag\_subscribers`: Añade o quita una etiqueta a varios contactos \(por emails o contact\_ids\). - `trigger\_flow`: Mete un contacto \(por email o contact\_id\) en un flujo automático para que reciba esa secuencia. - `account\_stats`: Métricas globales de la cuenta \(enviados, entregados, abrieron, hicieron clic, bajas, rebotes, contactos nuevos\) en un rango de días de la zona horaria de la cuenta, ambos incluidos; la cohorte es el día de ENVÍO de cada correo, la misma fuente que /metricas. avg\_open\_rate y avg\_click\_rate en % con - `list\_campaigns`: Lista las campañas/correos del tenant con sus métricas \(metrics.\*, desde los contadores que mantiene el reconciliador: durante un envío pueden ir unos minutos detrás de get\_campaign\_stats\). En este listado opened\_total, clicked\_total, clicked\_system, delivered\_confirmed, failed, bounced\_hard, bounce - `get\_campaign\_stats`: Métricas reales de una campaña leídas de los eventos en vivo: enviados, entregados, abrieron \(únicos y aperturas registradas\), clics únicos y registrados, clics de sistema, rebotes \(bounce\_hard\_rate = definitivo, el que se vigila\), bajas, quejas, ingresos USD atribuidos \(ventas con clic o, sin clic, - `launch\_campaign`: AGÉNTICA · Lanza una campaña de correo COMPLETA desde un brief en lenguaje natural. Postari GENERA el correo \(asunto + diseño con la voz y el color de marca del tenant\), lo arma sobre una lista y devuelve un BORRADOR con preview \(preview\_html\). Por defecto NO envía: para enviar de verdad, vuelve a l - `diagnose\_deliverability`: Diagnóstico de ENTREGABILIDAD de la cuenta \(últimos 28 días\): rebotes, quejas de spam, aperturas y salud del dominio \(DNS\). Devuelve un veredicto \(sano/a\_vigilar/en\_riesgo\) + acciones priorizadas. El rebote que se juzga \(\`bounce\_rate\`\) es el DEFINITIVO; el temporal \(buzón lleno\) va aparte en \`bounce - `get\_agent\_activity`: Transparencia "qué hizo la IA": lista las acciones de la cuenta originadas por un agente/IA \(chat Atelier, API de agente, A2A\) — qué se hizo, sobre qué y cuándo. Para auditar lo que un agente ejecutó. - `create\_launch`: Crea un LANZAMIENTO \(curso, infoproducto, evento…\) con sus etapas: es la unidad que agrupa los correos de una campaña con fechas. Si no pasas \`stages\` y el tipo es curso/infoproducto, siembra 8 etapas estándar \(lead magnet → webinar → apertura de carrito → cierre\). - `list\_launches`: Lista los lanzamientos de la cuenta, con cuántas etapas tiene cada uno y cuántas ya están conectadas a un correo. - `get\_launch`: Un lanzamiento con sus etapas y las MÉTRICAS REALES de cada una \(enviados, entregados, abrieron, clics únicos, bajas, ingresos USD atribuidos por clic o apertura, sin las ventas solo «influidas»\) más el total; cada campaña se suma una sola vez. stages\_sent de stages\_total = etapas ya enviadas. metri - `link\_campaign\_to\_launch\_stage`: Conecta un correo YA ESCRITO a una etapa del lanzamiento \(o lo desconecta con campaign\_id null\). Sin esto la etapa no mide nada: sus KPIs dependen de este vínculo. También sirve para cambiar título, fecha o estado de la etapa. - `create\_flow`: Crea una automatización. NACE EN BORRADOR Y DESARMADA: no envía nada hasta que se pruebe, se active y se arme a propósito. El \`graph\` es el mismo formato que devuelve get\_flow. - `update\_flow`: Edita una automatización: nombre, disparador, pasos \(graph\) o estado. NO sirve para armar \(eso es arm\_flow, que exige confirmación\); sí para DESARMAR con armed:false. - `test\_flow`: Prueba una automatización enviándola de verdad a UN miembro de la cuenta \(por defecto el dueño\). Es OBLIGATORIO antes de armar. No se puede usar para mandar correo a terceros: to\_email tiene que ser de un miembro. - `activate\_flow`: Pone la automatización en servicio \(status active\) o la pausa con paused:true. OJO: activar NO hace que envíe — para eso hace falta armarla \(arm\_flow\). - `arm\_flow`: ARMA la automatización: a partir de aquí envía correos REALES sola. Exige confirm:"ARMAR ENVIOS" literal, haber probado el flujo antes, y que la cuenta permita envíos por agente. NO es retroactivo: solo entra quien cumpla el disparador de ahora en adelante. - `list\_flow\_emails`: Los correos de una automatización, cada uno con su node\_id, su asunto y su URL propia para compartir con el cliente. Antes estos correos no tenían dirección: vivían enterrados en el flujo. - `update\_flow\_email`: Edita UN correo de una automatización \(asunto, preheader, bloques o etiqueta\) sin tocar el resto del flujo. Más seguro que reescribir el graph entero. - `create\_form`: Crea un formulario de captación y devuelve su URL pública y su código para embeber. Si no pasas campos, lleva uno de correo. - `list\_forms`: Lista los formularios con sus KPIs. El número de cada formulario es primary\_count en la unidad primary\_unit: people = personas distintas \(correo normalizado, sin papelera\) en un formulario de captura; submissions = respuestas en una encuesta \(is\_survey true: una persona puede responder varias veces\) - `get\_form`: Un formulario con sus campos y sus KPIs recontados en vivo \(form\_kpis\_v2\): primary\_count en primary\_unit \(people en captura, submissions en encuesta\), people, submissions \(envíos sin papelera\), views, views\_measured y conversion\_rate \(primary\_count / views, % con 1 decimal, null si las vistas no est - `update\_form`: Edita un formulario: título, campos, lista donde caen las altas, doble opt-in, mensaje de gracias o activarlo/desactivarlo. - `create\_segment`: Crea un segmento: una regla de "quién entra" que se recalcula sola. Es lo que se usa para segmentar un lanzamiento sin duplicar listas. - `create\_template`: Crea una plantilla propia de la cuenta, opcionalmente duplicando una del catálogo con from\_template\_id. Las del catálogo son compartidas y no se editan. - `create\_tag`: Crea una etiqueta \(idempotente: si ya existe devuelve la que hay, no la duplica\). - `create\_landing`: Crea una página de aterrizaje y devuelve su URL pública. \`kind\`: blocks \(bloques de Postari\) · code \(HTML propio\) · ai \(desde un prompt\) · iframe · external\_url. Conéctale un formulario con form\_id para que capte suscriptores. - `list\_landings`: Lista las páginas de aterrizaje con sus visitas, conversiones y tasa de conversión \(conversion\_rate = conversiones / visitas en % con 2 decimales y tope 100; null si aún no hubo visitas: no medible, no es 0 · cambio de contrato del 3-oct-2026, antes devolvía 0\). - `update\_landing`: Edita una página de aterrizaje: contenido, slug, formulario conectado o activarla/desactivarla. Cambiar el slug rompe la URL que ya se haya compartido \(la respuesta avisa\). - `set\_campaign\_audience`: Define A QUIÉN se le manda un correo y a quién NO: excluir por etiqueta, por lista entera o por haber recibido otra campaña. Devuelve el número REAL de destinatarios para confirmar antes de enviar. Si alguna referencia no existe, falla con 400 en vez de guardar a medias. - `get\_campaign\_audience`: ¿A cuánta gente le va a llegar este correo? Devuelve los destinatarios REALES aplicando el filtro guardado, por el mismo camino que el envío: base = activos de la lista hoy, excluidos = los que quita el filtro, audience\_live\_total = el público de HOY. Si ya empezó a enviarse trae además recipients\_s Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html