Google Jules MCP

Automatiza Google Jules, el asistente de codificación con IA, para tareas como revisiones de código, gestión de repositorios y flujos de trabajo de desarrollo impulsados por IA.

Documentación

Google Jules MCP

Un servidor de Model Context Protocol (MCP) para automatizar Google Jules, el asistente de codificación con IA. Este MCP permite una integración perfecta con Jules para la creación de tareas, automatización de revisiones de código, gestión de repositorios y flujos de trabajo de desarrollo impulsados por IA.

Características

🎯 Gestión de Tareas

  • Crear Tareas: Crea automáticamente tareas de Jules con repositorio y descripción
  • Monitorear Progreso: Rastrea el estado de las tareas y obtén actualizaciones en tiempo real
  • Aprobar Planes: Revisa y aprueba los planes de ejecución de Jules
  • Reanudar Tareas: Reanuda tareas pausadas o interrumpidas
  • Operaciones Masivas: Crea múltiples tareas de manera eficiente

🔧 Operaciones de Código

  • Análisis de Código: Analiza cambios de código y diferencias
  • Gestión de Ramas: Maneja ramas y configuraciones de repositorios
  • Navegación de Fuentes: Explora y analiza archivos fuente
  • Automatización de Revisiones: Automatiza flujos de trabajo de revisión de código

💬 Comunicación Interactiva

  • Enviar Mensajes: Envía instrucciones y comentarios a Jules
  • Historial de Chat: Rastrea el historial de conversaciones con Jules
  • Extracción de Contexto: Extrae contexto relevante de discusiones de tareas

📊 Gestión de Proyectos

  • Listado de Tareas: Lista y filtra tareas por estado
  • Seguimiento de Progreso: Monitorea el progreso del desarrollo en proyectos
  • Persistencia de Datos: Almacenamiento local de datos de tareas e historial

🔐 Gestión de Sesiones (¡NUEVO!)

  • Múltiples Modos de Sesión: Nuevo, perfil de Chrome, cookies, persistente y Browserbase
  • Autenticación de Google: Inicio de sesión sin problemas con sesiones de Google existentes
  • Gestión de Cookies: Extrae, guarda y restaura cookies de autenticación
  • Soporte de Navegador Remoto: Usa Browserbase para despliegues en la nube
  • Multiplataforma: Funciona localmente y en entornos de nube

Herramientas Disponibles

HerramientaDescripción
Gestión de Tareas
jules_create_taskCrea una nueva tarea de Jules con repositorio y descripción
jules_get_taskObtén información detallada sobre una tarea específica
jules_send_messageEnvía mensajes/instrucciones a Jules en tareas activas
jules_approve_planAprueba planes de ejecución de Jules
jules_resume_taskReanuda tareas pausadas
jules_list_tasksLista tareas con opciones de filtrado
jules_analyze_codeAnaliza cambios de código y estructura del proyecto
jules_bulk_create_tasksCrea múltiples tareas desde una lista
Sesión y Autenticación
jules_get_cookiesObtiene cookies actuales del navegador para persistencia de sesión
jules_set_cookiesEstablece cookies del navegador desde cadena/JSON para autenticación
jules_session_infoObtiene configuración y estado actual de la sesión
Depuración
jules_screenshotToma capturas de pantalla para depuración

Instalación

Requisitos Previos

  • Node.js 18+
  • TypeScript
  • Acceso Git a los repositorios que deseas gestionar

Configuración

# Clone the repository
git clone https://github.com/samihalawa/google-jules-mcp.git
cd google-jules-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Test the installation
npm test

🔐 Gestión de Sesiones y Autenticación

Modos de Sesión

El MCP soporta 5 modos diferentes de gestión de sesiones:

ModoDescripciónCaso de Uso
freshNueva sesión de navegador cada vezPruebas, sin necesidad de autenticación
chrome-profileUsar perfil de Chrome existenteDesarrollo local con inicio de sesión de Google existente
cookiesGuardar/cargar cookies en archivoAutenticación persistente sin perfil completo
persistentGuardar datos del navegador en directorioDesarrollo local con persistencia completa de sesión
browserbaseSesión de navegador remotaDespliegues en la nube, alojamiento en Smithery

Opciones de Configuración

🌐 Browserbase (Recomendado para Smithery)

Perfecto para despliegues remotos y alojamiento en la nube:

SESSION_MODE=browserbase
BROWSERBASE_API_KEY=bb_live_g3i-b4WPFh__E3cErKE5rO-jWds  # Your API key
BROWSERBASE_PROJECT_ID=d718e85f-be7b-497d-9123-b1bbf798f1bb  # Your project ID
BROWSERBASE_SESSION_ID=                    # Optional: use existing session

🍪 Autenticación con Cookies (Mejor para Configuración Manual)

Extrae cookies de tu navegador y establácelas como variable de entorno:

SESSION_MODE=cookies
GOOGLE_AUTH_COOKIES="session_id=abc123; domain=.google.com; auth_token=xyz789; domain=.google.com"
COOKIES_PATH=~/.jules-mcp/cookies.json     # File to save/load cookies

🌍 Perfil de Chrome (Desarrollo Local)

Usa tu perfil de Chrome existente:

SESSION_MODE=chrome-profile
CHROME_USER_DATA_DIR=/Users/yourname/Library/Application Support/Google/Chrome/Default

💾 Datos Persistentes del Navegador

Guarda datos del navegador en un directorio específico:

SESSION_MODE=persistent
CHROME_USER_DATA_DIR=~/.jules-mcp/browser-data  # Custom browser data directory

Cómo Obtener Cookies de Autenticación de Google

  1. Inicia sesión en Jules: Visita https://jules.google.com e inicia sesión
  2. Abre las Herramientas de Desarrollo: Presiona F12 o Cmd+Option+I
  3. Ve a la pestaña Aplicación/Almacenamiento
  4. Encuentra Cookies: Busca cookies de .google.com
  5. Copia Cookies Importantes: Busca cookies como:
    • session_id o sessionid
    • auth_token o authuser
    • SID, HSID, SSID
    • SAPISID, APISID

Formato para variable de entorno:

GOOGLE_AUTH_COOKIES="cookie1=value1; domain=.google.com; cookie2=value2; domain=.google.com"

Configuración de Entorno

Crea un archivo .env o establece variables de entorno:

# Browser Configuration
HEADLESS=true              # Run browser in headless mode
TIMEOUT=30000              # Browser timeout in milliseconds
DEBUG=false                # Enable debug mode with screenshots

# Session Management
SESSION_MODE=browserbase   # fresh | chrome-profile | cookies | persistent | browserbase

# Browserbase Configuration (for remote/cloud deployments)
BROWSERBASE_API_KEY=your_api_key
BROWSERBASE_PROJECT_ID=your_project_id
BROWSERBASE_SESSION_ID=optional_existing_session

# Cookie Authentication
GOOGLE_AUTH_COOKIES="session_id=abc; domain=.google.com"
COOKIES_PATH=~/.jules-mcp/cookies.json

# Chrome Profile (local development)
CHROME_USER_DATA_DIR=/path/to/chrome/profile

# Data Storage
JULES_DATA_PATH=~/.jules-mcp/data.json  # Custom data storage path

Ejemplos de Uso

1. Crear una Nueva Tarea

// Create a task to fix a bug
{
  "name": "jules_create_task",
  "arguments": {
    "description": "Fix the login authentication bug in the user dashboard. The issue occurs when users try to log in with special characters in their password.",
    "repository": "mycompany/webapp",
    "branch": "main"
  }
}

2. Monitorear el Progreso de una Tarea

// Get task details and progress
{
  "name": "jules_get_task",
  "arguments": {
    "taskId": "9103172019911831130"
  }
}

3. Enviar Instrucciones a Jules

// Send additional context or instructions
{
  "name": "jules_send_message",
  "arguments": {
    "taskId": "9103172019911831130",
    "message": "Please also add unit tests for the authentication fix and ensure backward compatibility."
  }
}

4. Creación Masiva de Tareas

// Create multiple tasks at once
{
  "name": "jules_bulk_create_tasks",
  "arguments": {
    "tasks": [
      {
        "description": "Add dark mode support to the UI",
        "repository": "mycompany/frontend",
        "branch": "feature/dark-mode"
      },
      {
        "description": "Optimize database queries for user search",
        "repository": "mycompany/backend",
        "branch": "performance/search"
      }
    ]
  }
}

5. Listar y Filtrar Tareas

// List active tasks
{
  "name": "jules_list_tasks",
  "arguments": {
    "status": "in_progress",
    "limit": 10
  }
}

6. Ejemplos de Gestión de Sesiones

Verificar Estado de la Sesión

{
  "name": "jules_session_info",
  "arguments": {}
}

Obtener Cookies Actuales (para respaldo)

{
  "name": "jules_get_cookies",
  "arguments": {
    "format": "string"  // or "json"
  }
}

Establecer Cookies de Autenticación

{
  "name": "jules_set_cookies",
  "arguments": {
    "cookies": "session_id=abc123; domain=.google.com; auth_token=xyz789; domain=.google.com",
    "format": "string"
  }
}

Recursos MCP

El servidor proporciona recursos útiles para contexto:

  • jules://schemas/task - Modelo completo de datos de tareas
  • jules://current/active-tasks - Lista en vivo de tareas activas
  • jules://templates/common-tasks - Ejemplos de plantillas para tareas de desarrollo comunes

Plantillas Comunes de Tareas

El MCP incluye plantillas para escenarios comunes de desarrollo:

  • Corrección de Errores: "Fix the [specific issue] in [filename]. The problem is [description]."
  • Adición de Funcionalidades: "Add [feature name] functionality to [location]. Requirements: [list requirements]."
  • Refactorización: "Refactor [component/function] to improve [performance/readability/maintainability]."
  • Pruebas: "Add comprehensive tests for [component/function] covering [test cases]."
  • Documentación: "Update documentation for [component] to include [new features/changes]."

Integración con Claude Code

Integración Local

{
  "mcpServers": {
    "google-jules-mcp": {
      "command": "node",
      "args": ["path/to/google-jules-mcp/dist/index.js"],
      "env": {
        "HEADLESS": "true",
        "SESSION_MODE": "cookies",
        "GOOGLE_AUTH_COOKIES": "your_cookies_here",
        "DEBUG": "false"
      }
    }
  }
}

🌐 Despliegue en Smithery

Desplegar en Smithery.ai

El MCP está completamente configurado para el despliegue en Smithery con gestión integral de sesiones:

  1. Haz fork/clona este repositorio
  2. Despliega en Smithery: Visita smithery.ai y conecta tu repositorio
  3. Configura la Gestión de Sesiones en la configuración de Smithery:

Opción A: Browserbase (Recomendado)

SESSION_MODE=browserbase
BROWSERBASE_API_KEY=bb_live_g3i-b4WPFh__E3cErKE5rO-jWds
BROWSERBASE_PROJECT_ID=d718e85f-be7b-497d-9123-b1bbf798f1bb

Opción B: Autenticación con Cookies

SESSION_MODE=cookies
GOOGLE_AUTH_COOKIES="session_id=abc123; domain=.google.com; auth_token=xyz789; domain=.google.com"
  1. Acceso Remoto: Usa tu MCP desplegado desde cualquier instancia de Claude Code

Beneficios de Smithery + Browserbase

  • ✅ Sin Navegador Local: Se ejecuta completamente en la nube
  • ✅ Sesiones Persistentes: Mantiene la autenticación de Google entre despliegues
  • ✅ Acceso Global: Úsalo desde cualquier lugar con conexión a internet
  • ✅ Autoescalado: Maneja múltiples solicitudes concurrentes
  • ✅ Configuración Cero: Sin dependencias ni configuración local

Solución de Problemas

Problemas Comunes

  1. La Automatización del Navegador Falla

    • Asegúrate de tener acceso adecuado a jules.google.com
    • Verifica que hayas iniciado sesión en tu cuenta de Google
    • Intenta ejecutar con HEADLESS=false para ver qué está sucediendo
  2. La Creación de Tareas Falla

    • Verifica que los nombres de los repositorios sean correctos (formato owner/repo-name)
    • Asegúrate de tener acceso a los repositorios especificados
    • Verifica que las ramas existan
  3. Errores de Permisos

    • Asegúrate de tener acceso de escritura a la ruta de almacenamiento de datos
    • Verifica los permisos del repositorio en GitHub

Modo de Depuración

Habilita el modo de depuración para solucionar problemas:

DEBUG=true HEADLESS=false npm start

Esto:

  • Mostrará las interacciones del navegador visualmente
  • Tomará capturas de pantalla en errores
  • Proporcionará registro detallado

Desarrollo

Estructura del Proyecto

google-jules-mcp/
├── src/
│   └── index.ts          # Main MCP server implementation
├── docs/
│   └── referencerecordings/  # Browser automation references
├── scripts/
│   └── test-mcp.js       # Testing script
├── dist/                 # Compiled output
├── package.json
├── tsconfig.json
└── smithery.yaml         # MCP deployment config

Contribuciones

  1. Haz fork del repositorio
  2. Crea una rama de funcionalidad
  3. Realiza tus cambios
  4. Agrega pruebas si corresponde
  5. Envía una solicitud de extracción

Pruebas

# Run the test suite
npm test

# Build and test
npm run build && npm test

# Development mode with file watching
npm run dev

Arquitectura

El MCP sigue patrones establecidos:

  • Automatización del Navegador: Usa Playwright para automatización web confiable
  • Persistencia de Datos: Almacenamiento JSON local para seguimiento de tareas
  • Manejo de Errores: Manejo integral de errores con mensajes significativos
  • Gestión de Recursos: Gestión adecuada del ciclo de vida del navegador
  • Seguridad: Sin almacenamiento de credenciales, depende de la sesión del navegador

Integración de Flujos de Trabajo

Este MCP está diseñado para integrarse con flujos de trabajo de desarrollo:

  1. Seguimiento de Problemas → Tareas de Jules: Convierte problemas de GitHub en tareas de Jules
  2. Revisión de Código → Automatización: Automatiza procesos de revisión de código
  3. Integración CI/CD: Activa tareas de Jules desde pipelines de despliegue
  4. Colaboración en Equipo: Comparte la gestión de tareas de Jules entre equipos

Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.

Agradecimientos


Nota: Este MCP requiere acceso a Google Jules. Asegúrate de tener los permisos adecuados y acceso a los repositorios que deseas gestionar.