Plugin para Claude Code
El plugin de Campbooks para Claude Code conecta tu agente de programación a tu bandeja de entrada via MCP. Una vez instalado, dos skills hacen el trabajo pesado: /campbooks:setup te guía por el proceso de incorporación y /campbooks:triage ejecuta tu sesión diaria de bandeja de entrada.
Instalar
En una sesión de Claude Code:
/plugin marketplace add notacamp/campbooks
/plugin install campbooks@campbooks
Claude Code pedirá dos cosas:
- URL del servidor Campbooks —
https://app.campbooks.not-a-camp.compara Campbooks Cloud, o la URL de tu propia instancia (sin barra al final). - Clave MCP — una credencial sin caducidad; ver más abajo.
Crear la clave MCP
Los tokens OAuth de corta duración caducan a las dos horas y no se pueden usar en una configuración estática de agente. Una clave MCP permanece válida hasta que la rotes o elimines.
- En tu instancia de Campbooks abre Ajustes → Acceso a la API y haz clic en Nuevo cliente.
- Dale un nombre — "Agente Claude Code" funciona bien.
- Selecciona los scopes que necesita (ver abajo) y haz clic en Crear.
- En la página siguiente verás la clave MCP: una cadena única con la forma
<client-id>.<client-secret>. Cópiala ahora — solo se muestra una vez. Si la pierdes, regenera el client secret en la misma página de Ajustes. - Pega la clave en el campo
mcp_keyde la configuración del plugin.
Para rotar la clave más tarde: ve a Ajustes → Acceso a la API, encuentra el cliente y regenera su secret. La clave anterior deja de funcionar de inmediato.
Conjuntos de scopes
Los scopes son un techo para lo que puede hacer el agente. Scope más restringido = menos tools en tools/list = menos contexto usado por sesión. Elige lo que realmente necesitas.
Conjunto completo (recomendado para usuarios avanzados):
emails:read emails:write emails:send
tags:read tags:write
documents:read documents:write
document_types:read document_types:write
contacts:read contacts:write
calendar:read calendar:write
reminders:read reminders:write
tasks:read tasks:write
folders:read folders:write
email_accounts:read email_accounts:write
scout:read scout:write
scheduled_emails:read scheduled_emails:write
Solo triage (lectura + skim, sin envío):
emails:read emails:write
tags:read documents:read calendar:read tasks:read reminders:read
Solo lectura (únicamente consultas, sin cambios):
emails:read documents:read calendar:read tasks:read
Los tres tools de contexto — get_overview, get_setup_status y guide — no requieren scope y están siempre disponibles para cualquier cliente autenticado.
Skills
El plugin incluye dos skills que puedes invocar directamente en una sesión de Claude Code.
/campbooks:setup — incorporación guiada
Ejecútala la primera vez, o cada vez que el plugin no conecte. Te guía por los siguientes pasos, uno a la vez:
- Verificar la conexión MCP — llama a
get_setup_status. Si la llamada falla, te guía para crear el cliente de API y pegar la clave MCP. - Conectar un buzón — si no hay ninguna cuenta de correo conectada, pregunta si estás en Campbooks Cloud o ejecutando tu propia instancia:
- Ruta Cloud: llama a
connect_email_account(mode: "web")y te da la URL OAuth para abrir en un navegador. Espera a que el flujo OAuth termine y confirma. - Ruta autoalojada: ofrece el script auxiliar de OAuth local (ver OAuth local más abajo).
- Ruta Cloud: llama a
- Procesamiento de IA — informa de tu configuración de IA actual y ofrece activar la IA gestionada o te orienta hacia Ajustes → IA para una clave personalizada.
- Taxonomía — si aún no tienes tipos de documento, etiquetas o carpetas, pregunta qué tipo de trabajo gestiona la bandeja de entrada y propone un conjunto inicial (para tu aprobación antes de crear nada).
- Primera sesión de skim — carga el mazo de skim, muestra los principales clústeres y guía por las primeras decisiones.
La skill nunca crea nada sin un "sí" explícito tuyo.
/campbooks:triage — sesión diaria de bandeja de entrada
Ejecútala cuando quieras trabajar lo que está esperando. Recorre estos pasos en orden (cualquier paso puede omitirse):
- Resumen — llama a
get_overviewe informa del recuento de no leídos, hilos a la espera de respuesta, documentos pendientes, eventos de calendario de hoy, recordatorios vencidos y tareas sugeridas. Un párrafo corto o lista rápida — justo para orientarte. - Mazo de skim — carga clústeres agrupados por anillo (prioridad, notificaciones, boletines, etc.), propone acciones y las aplica en lote o una a una tras tu confirmación.
- Esperando respuesta — lista hilos donde enviaste el último mensaje y no has recibido respuesta. Redacta respuestas en línea; solo envía tras un "sí, envíalo" explícito.
- Documentos pendientes — lista documentos en espera de revisión. Aprueba, rechaza o reclasifica, uno a uno o en lote.
- Tareas y recordatorios sugeridos — muestra tareas y recordatorios extraídos por IA; confirma o descarta cada uno tras ver el título.
- Resumen final — correos gestionados, respuestas enviadas, documentos aprobados, tareas confirmadas.
Cómo es una sesión
Aquí tienes una ejecución típica de mañana:
> /campbooks:triage
Tienes 14 correos no leídos, 2 hilos esperando respuesta tuya, 3 documentos
pendientes de revisión (incluida una factura de ACME por €1.290) y un
recordatorio vencido: "Presentar declaración de IVA" venció ayer.
Mazo de skim — 4 clústeres:
Anillo de prioridad
• Facturas ACME — 2 correos — Scout sugiere conservar
Anillo de notificaciones
• Alertas de PR de GitHub — 9 correos — sugerir archivar
• Recibos de pago Stripe — 4 correos — sugerir archivar
Anillo de boletines
• Resúmenes de producto — 6 correos — sugerir archivar
¿Aplicar estas acciones (excepto conservar ACME)?
> sí
Archivados 19 correos en 3 clústeres. 2 correos conservados.
Esperando respuesta — 2 hilos:
1. Jane en ACME — "Re: propuesta Q3" — hace 4 días
2. Incorporación bancaria — "Sus documentos" — hace 2 días
¿Redactar un seguimiento para el hilo de ACME?
> sí
"Hola Jane, solo hago un seguimiento de la propuesta del Q3 — puedo hacer
una llamada esta semana si ayuda. Avísame."
¿Enviar esta respuesta?
> sí
Enviado. Pasando a documentos...
El agente te muestra lo que está a punto de hacer antes de cada escritura y espera tu respuesta.
OAuth local (solo autoalojado)
Si los callbacks OAuth de tu servidor autoalojado no son accesibles desde internet, puedes crear un token de actualización localmente y pasárselo al servidor via la API MCP.
Usuarios Cloud: usa el flujo
connect_email_account(mode: "web")— la skill/campbooks:setuplo gestiona automáticamente.
Requisitos previos
- Python 3 (solo biblioteca estándar — sin
pip installnecesario). - Las credenciales OAuth del propio servidor —
GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECREToZOHO_CLIENT_ID/ZOHO_CLIENT_SECRETdel entorno del servidor. Un token creado con unclient_iddiferente fallará cuando el servidor intente actualizarlo. http://localhost:8765/callbackañadido a los URIs de redirección permitidos de la aplicación OAuth (Google Cloud Console → Credenciales → tu cliente OAuth → URIs de redirección autorizados; Consola de desarrolladores de Zoho → Consola de API → tu cliente → URIs de redirección).
Ejecutar
python3 integrations/claude-plugin/scripts/campbooks_oauth.py google \
--client-id YOUR_GOOGLE_CLIENT_ID \
--client-secret YOUR_GOOGLE_CLIENT_SECRET
# Zoho — especifica la región del centro de datos de tu servidor
python3 integrations/claude-plugin/scripts/campbooks_oauth.py zoho \
--client-id YOUR_ZOHO_CLIENT_ID \
--client-secret YOUR_ZOHO_CLIENT_SECRET \
--region eu
Omite --client-id / --client-secret y el script los pedirá de forma segura. Abre tu navegador, completa el flujo de consentimiento e imprime una línea de JSON:
{"provider": "google", "refresh_token": "1//0e..."}
La skill /campbooks:setup llama a connect_email_account(mode: "token", ...) con ese token automáticamente — no necesitas pegar el token en el chat. Guárdalo de forma segura: concede acceso completo al buzón.