Conectar IA › el bot · servidor MCP https://mcp.frepi.ai/mcp · script
frepi-checkin.py
Un bot de chats es la IA que tú ya usas (Claude, ChatGPT, Grok o un script con la API de tu
proveedor) atendiendo los chats de WhatsApp de tu negocio. Frepi no pone el modelo ni lo cobra: pone las
herramientas chatbot_*, las reglas y la vigilancia. Las reglas las aplica el servidor en cada llamada, no
la IA: líneas permitidas, topes, bajas, traspaso a una persona, turno cuando alguien más contesta en la línea,
contactos que el bot nunca contesta y alertas.
La configuración vive en Frepi, en Conexiones › el bot. Se crea conversando con tu IA: ella usa el
skill configurar-bot y termina con una tarjeta que tú apruebas.
| Modo | Cómo conecta | Qué alcanza la IA |
|---|---|---|
| Chatbot (por defecto) | Tu conexión normal a Frepi (la de Claude, ChatGPT, etc.) | Todo lo que tu rol permite, como hoy. Las herramientas chatbot_* aplican las reglas del bot; el
resto de herramientas conserva sus tarjetas de confirmación donde ya las tenía. Los skills dicen «usa solo
herramientas chatbot_*». |
| Estricto (opcional) | Un enlace propio del bot, https://mcp.frepi.ai/mcp/c/<nombre>, con una sesión o una llave solo para el bot |
Solo las herramientas chatbot_* más bi_get_skill y bi_help. Nada más de
Frepi. Es el modo correcto para un script o una tarea sin nadie mirando. Un partner o el workspace puede
exigirlo. |
Ninguna app de consumo puede revisar cada 5 minutos. Para un bot que atiende en minutos, usa el script de la sección 4. Las tareas de las apps sirven para líneas lentas o un resumen diario.
| Cliente | Cómo conecta | Tarea más corta | Tarea programada con conector propio |
|---|---|---|---|
| Claude (claude.ai, Desktop, móvil) | OAuth o encabezados; un conector para todos los dispositivos | Cada hora en la nube; 1 minuto en Desktop solo con la app abierta y el equipo despierto | Sí. Todos los conectores vienen activos: apaga todos menos el de este bot. |
| ChatGPT | Solo OAuth 2.1; prefiere registro de cliente por CIMD; hay que refrescar las herramientas a mano | Cada hora (fuentes secundarias) | Sin verificar aún. Las herramientas de escritura pueden pedir aprobación de una persona. |
| Grok | Solo OAuth; cliente público pre-registrado, sin campo de encabezados | Diaria (Automatizaciones) | Sin verificar aún. |
| Script con la API de xAI, OpenAI o Anthropic | Llave del bot en el campo de autorización de la herramienta MCP | Cualquiera (cron, n8n) | Sí: lista de herramientas permitidas; en OpenAI, aprobaciones en «never». |
| Tarea en la nube de Claude con disparador por API | Conector de Claude, disparado por un cron externo | Hasta 30 disparos por hora por tarea | Sí, con el mismo cuidado de los conectores. |
Antes de marcar un cliente como soportado hace falta que un envío sin supervisión salga bien en él. Lo no verificado queda marcado arriba.
frepi-checkin.py corre en tu máquina o servidor, solo con la
biblioteca estándar de Python. Usa el modo estricto con una llave del bot (máximo 90 días).
chatbot_unread_chats con count_only en
el enlace del bot. Si no hay nada que atender, imprime next_eligible_at y termina sin llamar a ningún
modelo: revisar cada 5 minutos no cuesta nada cuando nadie escribió. Un seguimiento prometido que ya venció
cuenta como algo que atender. El número son tus chats asignados: los chats en que es el turno del
bot y los que un flujo chatbot le pasó. Un chat que un flujo todavía está atendiendo no cuenta: sale en
waiting_on.in_flow, que el script imprime, y no llama al modelo por él.export FREPI_FILTER_URL=https://mcp.frepi.ai/mcp/c/ventas export FREPI_FILTER_KEY=... # la llave del bot, hecha en Conectar IA; nunca la pegues en un chat export FREPI_CHAT_FILTER_ID=... # el id del bot (Conexiones › el bot) export OPENAI_API_KEY=... # o XAI_API_KEY / ANTHROPIC_API_KEY # cada 5 minutos desde cron: python3 frepi-checkin.py --vendor openai --model <modelo> --rules-file reglas.txt --budget 10
Las llaves salen de variables de entorno y el script nunca las imprime. El bloque de reglas que escribió
configurar-bot va en reglas.txt. Frepi no guarda nada entre corridas: las marcas de lectura,
los turnos y los chats tomados viven en Frepi.
Un flujo chatbot es una primera pasada barata antes del bot: preguntas con botones, un formulario de
WhatsApp y reglas, y un modelo pequeño solo para el texto libre. Solo quien califica le llega al bot, así que tu modelo
solo ve a esa gente. Los flujos se guardan en la llamada chatbot_setup (campo flows, en orden,
cada uno con sus líneas y su situación de entrada) y se leen con chatbot_settings; los arma el skill
flujo-chatbot.
FLOW_NEEDS_PERSON).chatbot_unread_chats trae los chats en
que es tu turno y los que un flujo te pasó, con flow_result (qué flujo, cómo terminó, las respuestas):
no repitas las preguntas. Lo que un flujo atiende sale contado en waiting_on.in_flow.view: "in_flow" lista los chats que un flujo está atendiendo. Úsala solo si el dueño
lo pide o el cliente insiste: si el bot contesta uno, el flujo termina.chatbot_flow en chatbot_get_chat.Skills: bi_get_skill(name="configurar-bot") y
bi_get_skill(name="atender-chats") · Instalar los skills.