Claves y acceso
El agente entra en Felku con una clave, enviada en el encabezado Authorization: Bearer <clave>. Tu sesión del panel (tu inicio de sesión) no vale en el MCP, y la clave no vale en el panel.
Crear una clave
En el panel, en Agentes y claves, crea la clave con:
Nombre, para saber qué agente la usa.
Conexión (opcional): la clave queda atada al canal de esa conexión (WhatsApp o Telegram): el agente solo ve y solo usa las herramientas de ese canal. Si la conexión se borra (al bajar de plan o cuando una conexión pausada pasa del plazo), las claves atadas a ella se revocan y nunca se vuelven claves libres. Desconectar el número no borra la conexión: las claves siguen atadas a ella.
Permisos (alcances): lo que el agente puede hacer, mira abajo. En el panel, la clave viene solo con los de lectura marcados; marca los de envío solo si el agente los necesita. No se pueden cambiar los permisos después: para eso, revoca la clave y crea otra.
Vencimiento (opcional): la clave deja de funcionar sola en la fecha elegida.
La clave empieza con fkc_ y aparece completa una sola vez. Guardamos solo una huella de ella (hash) y los primeros 8 caracteres, para que la reconozcas en la lista, junto con la fecha del último uso. Si la pierdes, revócala y crea otra.
Para crear una clave, la cuenta necesita un plan activo o en prueba y el correo confirmado.
Permisos (alcances)
| Alcance | Libera |
|---|---|
whatsapp:read | leer mensajes nuevos de WhatsApp (felku_read_new_messages) y, en grupos, comunidades y canales: felku_list_groups, felku_read_group_messages, felku_list_available_groups, felku_list_communities, felku_get_community, felku_get_group_info, felku_list_labels, felku_newsletter_info, felku_newsletter_read_messages |
whatsapp:write | enviar y actuar en WhatsApp: texto, marcar como leído, reaccionar, escribiendo, comprobar número, editar y borrar su propio mensaje (felku_send_text, felku_mark_read, felku_react, felku_set_typing, felku_check_number, felku_edit_message, felku_delete_message) Además: felku_star_message, felku_create_label, felku_label_chat, felku_label_message, felku_newsletter_follow y las que escriben y administran grupos, comunidades y canales |
telegram:read | leer los mensajes del bot de Telegram (felku_telegram_read_updates) |
telegram:write | enviar por el bot (felku_telegram_send_message) |
connections:read | ver el estado de las conexiones y el uso de los límites (felku_get_connection_status, felku_get_policy_status) |
connections:write | pedir el enlace de vinculación y pausar una conexión (felku_start_pairing, felku_pause_connection) |
Una clave creada sin elegir alcances (por la API) nace solo con lectura: connections:read, whatsapp:read y telegram:read (cuando el plan tiene Telegram). Para enviar, pide los de envío. El agente solo ve las herramientas que la clave permite: tools/list ya viene filtrado. Si no encuentra una herramienta (Unknown tool), la clave no tiene ese permiso.
También hay permisos elevados, que nunca entran solos: solo si los pides a propósito.
| Alcance elevado | Libera |
|---|---|
risk:high | las acciones de riesgo alto, que vienen apagadas. Por sí solo no libera las herramientas de grupos, comunidades y canales: piden el action: específico. |
action:<tipo> | libera una sola acción específica de riesgo alto. En WhatsApp, para grupos, comunidades y canales: action:group_read_enable (pedir habilitar la lectura), action:group_send_enable y action:group_send (habilitar y enviar a un grupo, avisos de comunidad), action:channel_react, action:group_create, action:group_add, action:group_manage, action:community_manage, action:channel_admin. |
Las herramientas de grupos, comunidades y canales están en Herramientas. La pantalla de crear clave del panel hoy no ofrece los action:...: solo entran en una clave creada por la API.
Buenas prácticas:
Una clave por agente. Así revocas una sin tumbar las demás.
Lo mínimo necesario. Un agente que solo resume chats necesita solo
whatsapp:read(yconnections:readpara ver el estado). Atención: incluso marcar como leído y reaccionar pidenwhatsapp:write, porque la otra persona lo ve.Solo un agente con permiso de envío por conexión, para no responder dos veces (cada clave lee con su propio cursor).
Cuántas claves tiene cada plan
| Plan | Conexiones | Claves |
|---|---|---|
| Prueba de 7 días | 1 | 2 |
| Personal | 1 | 2 |
| Pro | 5 | 10 |
| Empresa | 15 | 50 |
Un plan mayor no aumenta los límites de envío: los frenos son los mismos para todos (por qué).
Antes de conectar un canal
La clave solo funciona después de que la cuenta conectó WhatsApp o Telegram. Antes de eso, todo pedido al MCP (incluidos initialize y tools/list) vuelve con HTTP 403 y el código connection_required, con el mensaje "Your key is valid, but no channel is connected yet...". La clave está bien: conecta un canal en el panel, en Conexiones › Nueva conexión, e inténtalo de nuevo.
Revocar
En el panel, en Agentes y claves, revoca la clave. Deja de funcionar en el momento (el siguiente pedido vuelve unauthorized). Si sospechas una filtración: revoca la clave, pausa o desconecta el número y cambia la contraseña de la cuenta.
Cuando la suscripción no permite enviar
Si el pago fue rechazado y terminó el período de gracia de 7 días, o si la suscripción fue cancelada, las claves pierden los permisos de envío (todos los :write). La lectura sigue, para que puedas consultar y borrar tus datos.
Respuestas de acceso
| HTTP | Código | Qué significa |
|---|---|---|
| 401 | unauthorized | clave ausente, incorrecta, vencida o revocada |
| 403 | connection_required | la clave es válida, pero la cuenta todavía no conectó ningún canal. Conecta WhatsApp o Telegram en el panel |
| 403 | not_your_connection | la clave es válida, pero no puede usar esta conexión (pertenece a otra cuenta) |
| 405 | method_not_allowed | el servidor MCP solo acepta POST |
Una clave atada a una conexión que intenta usar una herramienta del otro canal no se rechaza en el HTTP: la llamada vuelve normalmente, con el error key_bound_to_other_channel en el resultado de la herramienta. Usa una clave de la conexión correcta (o una clave sin conexión atada).