Dataproc MCP Server

Un servidor MCP para gestionar operaciones de Google Cloud Dataproc y flujos de trabajo de big data, con integración fluida para VS Code.

Documentación

Dataproc MCP Server

npm version npm downloads Build Status Release Status Coverage Status License: MIT Node.js Version TypeScript MCP Compatible semantic-release

Un servidor Model Context Protocol (MCP) listo para producción para operaciones de Google Cloud Dataproc con inyección inteligente de parámetros, seguridad de nivel empresarial y herramientas integrales. Diseñado para una integración perfecta con Roo (VS Code).

🚀 Inicio rápido

Recomendado: Integración con Roo (VS Code)

Añade esto a la configuración de MCP en Roo:

{
  "mcpServers": {
    "dataproc": {
      "command": "npx",
      "args": ["@dipseth/dataproc-mcp-server@latest"],
      "env": {
        "LOG_LEVEL": "info"
      }
    }
  }
}

Con archivo de configuración personalizado

{
  "mcpServers": {
    "dataproc": {
      "command": "npx",
      "args": ["@dipseth/dataproc-mcp-server@latest"],
      "env": {
        "LOG_LEVEL": "info",
        "DATAPROC_CONFIG_PATH": "/path/to/your/config.json"
      }
    }
  }
}

Alternativa: Instalación global

# Install globally
npm install -g @dipseth/dataproc-mcp-server

# Start the server
dataproc-mcp-server

# Or run directly
npx @dipseth/dataproc-mcp-server@latest

Configuración en 5 minutos

  1. Instala el paquete:

    npm install -g @dipseth/dataproc-mcp-server@latest
    
  2. Ejecuta la configuración:

    dataproc-mcp --setup
    
  3. Configura la autenticación:

    # Edit the generated config file
    nano config/server.json
    
  4. Inicia el servidor:

    dataproc-mcp
    

🌐 Compatibilidad con la aplicación web de Claude.ai

✅ LISTO PARA PRODUCCIÓN: Integración completa con Claude.ai mediante túnel HTTPS y OAuth

El Dataproc MCP Server ahora ofrece compatibilidad total con la aplicación web de Claude.ai con una solución funcional que incluye las 22 herramientas MCP.

🚀 Solución funcional (probada y verificada)

Terminal 1 - Iniciar el servidor MCP:

DATAPROC_CONFIG_PATH=config/github-oauth-server.json npm start -- --http --oauth --port 8080

Terminal 2 - Iniciar el túnel de Cloudflare:

cloudflared tunnel --url https://localhost:8443 --origin-server-name localhost --no-tls-verify

Resultado: ¡Claude.ai puede ver y usar todas las herramientas con éxito! 🎉

Características principales:

  • ✅ Acceso completo a las herramientas - Las 22 herramientas MCP disponibles en Claude.ai
  • ✅ Túnel HTTPS - Túnel de Cloudflare para acceso externo seguro
  • ✅ Autenticación OAuth - OAuth de GitHub para autenticación segura
  • ✅ Certificados de confianza - Sin advertencias del navegador ni problemas de conexión
  • ✅ Soporte WebSocket - Compatibilidad total con WebSocket en Claude.ai
  • ✅ Listo para producción - Solución probada y verificada

Configuración rápida:

  1. Configura GitHub OAuth (5 minutos)
  2. Genera certificados SSL: npm run ssl:generate
  3. Inicia los servicios (2 terminales como se muestra arriba)
  4. Conecta Claude.ai a la URL de tu túnel

📖 Guía completa: Consulta docs/claude-ai-integration.md para instrucciones detalladas de configuración, solución de problemas y funciones avanzadas.

📖 Configuración de certificados: Consulta docs/trusted-certificates.md para la configuración de certificados SSL.

✨ Características

🎯 Capacidades principales

  • 22 herramientas MCP listas para producción - Suite completa de gestión de Dataproc
  • 🧠 Búsqueda semántica en la base de conocimiento - Consultas en lenguaje natural con integración opcional de Qdrant
  • 🚀 Optimización de respuestas - Reducción de tokens del 60-96% con almacenamiento en Qdrant
  • 🔄 Sistema genérico de conversión de tipos - Transformaciones automáticas de datos con seguridad de tipos
  • Reducción de parámetros del 60-80% - Inyección inteligente de valores predeterminados
  • Soporte multi-entorno - Configuraciones para desarrollo, pruebas y producción
  • Suplantación de cuentas de servicio - Autenticación empresarial
  • Monitoreo de trabajos en tiempo real - Seguimiento integral del estado

🚀 Optimización de respuestas

  • Reducción de tokens del 96.2% - list_clusters: 7,651 → 292 tokens
  • Almacenamiento automático en Qdrant - Datos completos preservados y buscables
  • Acceso mediante URI de recursos - dataproc://responses/clusters/list/abc123
  • Degradación elegante - Funciona sin Qdrant, con respuestas completas como alternativa
  • Procesamiento en 9.95ms - Optimización ultrarrápida con uso de memoria <1MB

🔄 Sistema genérico de conversión de tipos

  • Reducción de código del 75% - Elimina la lógica de conversión manual en todos los servicios
  • Transformaciones con seguridad de tipos - Detección y mapeo automático de campos
  • Compresión inteligente - Compresión a nivel de campo con umbrales configurables
  • Tiempos de conversión de 0.50ms - Procesamiento ultrarrápido con ratios de compresión del 100%
  • Cero configuración - Funciona automáticamente con los tipos TypeScript existentes
  • Compatibilidad retroactiva - Integración perfecta con la funcionalidad existente

🔒 Seguridad empresarial

  • Validación de entrada - Esquemas Zod para las 16 herramientas
  • Limitación de velocidad - Prevención configurable de abusos
  • Gestión de credenciales - Manejo y rotación seguros
  • Registro de auditoría - Seguimiento integral de eventos de seguridad
  • Detección de amenazas - Prevención de ataques de inyección

📊 Garantía de calidad

  • Cobertura de pruebas superior al 90% - Suite de pruebas integral
  • Monitoreo de rendimiento - Umbrales configurables
  • Pruebas multi-entorno - Validación multiplataforma
  • Controles de calidad automatizados - Integración con CI/CD
  • Escaneo de seguridad - Gestión de vulnerabilidades

🚀 Experiencia del desarrollador

  • Configuración en 5 minutos - Guía de inicio rápido
  • Documentación interactiva - Documentación HTML con ejemplos
  • Ejemplos integrales - Configuraciones multi-entorno
  • Guías de solución de problemas - Problemas comunes y soluciones
  • Integración con IDE - Soporte de TypeScript

🛠️ Suite completa de herramientas MCP (22 herramientas)

🔄 Mejorado con conversión genérica de tipos: Todas las herramientas se benefician ahora de transformaciones automáticas de datos con seguridad de tipos, compresión inteligente y mapeo de campos.

🚀 Gestión de clústeres (8 herramientas)

HerramientaDescripciónValores predeterminados inteligentesCaracterísticas clave
start_dataproc_clusterCrear e iniciar nuevos clústeres✅ 80% menos parámetrosBasado en perfiles, configuración automática
create_cluster_from_yamlCrear desde configuración YAML✅ Inyección de proyecto/regiónConfiguración basada en plantillas
create_cluster_from_profileCrear usando perfiles predefinidos✅ 85% menos parámetros8 perfiles integrados
list_clustersListar todos los clústeres con filtrado✅ Sin necesidad de parámetrosConsultas semánticas, paginación
list_tracked_clustersListar clústeres creados por MCP✅ Filtrado por perfilSeguimiento de creación
get_clusterObtener información detallada del clúster✅ 75% menos parámetrosExtracción semántica de datos
delete_clusterEliminar clústeres existentes✅ Valores predeterminados de proyecto/regiónEliminación segura
get_zeppelin_urlObtener URL del notebook de Zeppelin✅ Descubrimiento automáticoAcceso a la interfaz web

💼 Gestión de trabajos (7 herramientas)

HerramientaDescripciónValores predeterminados inteligentesCaracterísticas clave
submit_hive_queryEnviar consultas Hive a clústeres✅ 70% menos parámetrosSoporte asíncrono, tiempos de espera
submit_dataproc_jobEnviar trabajos Spark/PySpark/Presto✅ 75% menos parámetrosSoporte multi-motor, almacenamiento de archivos locales
cancel_dataproc_jobCancelar trabajos en ejecución o pendientes✅ Solo se necesita el ID del trabajoCancelación de emergencia, control de costos
get_job_statusObtener estado de ejecución del trabajo✅ Solo se necesita el ID del trabajoMonitoreo en tiempo real
get_job_resultsObtener salidas y resultados del trabajo✅ Paginación automáticaFormato de resultados
get_query_statusObtener estado de consultas Hive✅ Parámetros mínimosSeguimiento de consultas
get_query_resultsObtener resultados de consultas Hive✅ Paginación inteligenteSoporte asíncrono mejorado

📋 Configuración y perfiles (3 herramientas)

HerramientaDescripciónValores predeterminados inteligentesCaracterísticas clave
list_profilesListar perfiles de clúster disponibles✅ Filtrado por categoría8 perfiles de producción
get_profileObtener configuración detallada del perfil✅ Solo se necesita el ID del perfilAcceso a plantillas
query_cluster_dataConsultar datos de clúster almacenados✅ Lenguaje naturalBúsqueda semántica

📊 Analítica e información (4 herramientas)

HerramientaDescripciónValores predeterminados inteligentesCaracterísticas clave
check_active_jobsEstado rápido de todos los trabajos activos✅ Sin necesidad de parámetrosVista multi-proyecto
get_cluster_insightsAnalítica integral de clústeres✅ Descubrimiento automáticoTipos de máquina, componentes
get_job_analyticsAnalítica de rendimiento de trabajos✅ Tasas de éxitoPatrones de error, métricas
query_knowledgeConsultar base de conocimiento integral✅ Lenguaje naturalClústeres, trabajos, errores

🎯 Capacidades clave

  • 🧠 Búsqueda semántica: Consultas en lenguaje natural con integración de Qdrant
  • ⚡ Valores predeterminados inteligentes: Reducción de parámetros del 60-80% mediante inyección inteligente
  • 📊 Optimización de respuestas: Reducción de tokens del 96% con preservación completa de datos
  • 🔄 Soporte asíncrono: Envío y monitoreo de trabajos sin bloqueo
  • 🏷️ Sistema de perfiles: 8 plantillas de clúster listas para producción
  • 📈 Analítica: Información integral y seguimiento de rendimiento

📋 Configuración

Configuración basada en proyectos

El servidor admite un formato de configuración basado en proyectos:

# profiles/@analytics-workloads.yaml
my-company-analytics-prod-1234:
  region: us-central1
  tags:
    - DataProc
    - analytics
    - production
  labels:
    service: analytics-service
    owner: data-team
    environment: production
  cluster_config:
    # ... cluster configuration

Métodos de autenticación

  1. Suplantación de cuenta de servicio (recomendado)
  2. Clave directa de cuenta de servicio
  3. Credenciales predeterminadas de la aplicación
  4. Autenticación híbrida con alternativas

📚 Documentación

🔧 Integración con clientes MCP

Claude Desktop

{
  "mcpServers": {
    "dataproc": {
      "command": "npx",
      "args": ["@dataproc/mcp-server"],
      "env": {
        "LOG_LEVEL": "info"
      }
    }
  }
}

Roo (VS Code)

{
  "mcpServers": {
    "dataproc-server": {
      "command": "npx",
      "args": ["@dataproc/mcp-server"],
      "disabled": false,
      "alwaysAllow": [
        "list_clusters",
        "get_cluster",
        "list_profiles"
      ]
    }
  }
}

🏗️ Arquitectura

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   MCP Client    │────│  Dataproc MCP    │────│  Google Cloud   │
│  (Claude/Roo)   │    │     Server       │    │    Dataproc     │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │
                       ┌──────┴──────┐
                       │   Features  │
                       ├─────────────┤
                       │ • Security  │
                       │ • Profiles  │
                       │ • Validation│
                       │ • Monitoring│
                       │ • Generic    │
                       │   Converter  │
                       └─────────────┘

🔄 Arquitectura del sistema genérico de conversión de tipos

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│  Source Types   │────│ Generic Converter │────│ Qdrant Payloads │
│ • ClusterData   │    │    System        │    │ • Compressed    │
│ • QueryResults  │    │                  │    │ • Type-Safe     │
│ • JobData       │    │ ┌──────────────┐ │    │ • Optimized     │
└─────────────────┘    │ │Field Analyzer│ │    └─────────────────┘
                       │ │Transformation│ │
                       │ │Engine        │ │
                       │ │Compression   │ │
                       │ │Service       │ │
                       │ └──────────────┘ │
                       └──────────────────┘

🚦 Rendimiento

Logros en tiempo de respuesta

  • Validación de esquemas: ~2ms (objetivo: <5ms) ✅
  • Inyección de parámetros: ~1ms (objetivo: <2ms) ✅
  • Conversión genérica de tipos: ~0.50ms (objetivo: <2ms) ✅
  • Validación de credenciales: ~25ms (objetivo: <50ms) ✅
  • Llamada a herramienta MCP: ~50ms (objetivo: <100ms) ✅

Logros de rendimiento

  • Validación de esquemas: ~2000 operaciones/seg ✅
  • Inyección de parámetros: ~5000 operaciones/seg ✅
  • Conversión genérica de tipos: ~2000 operaciones/seg ✅
  • Validación de credenciales: ~200 operaciones/seg ✅
  • Llamada a herramienta MCP: ~100 operaciones/seg ✅

Logros de compresión

  • Compresión a nivel de campo: Hasta ratios de compresión del 100% ✅
  • Optimización de memoria: Reducción del 30-60% en el uso de memoria ✅
  • Seguridad de tipos: Cero errores de tipo en tiempo de ejecución con validación automática ✅

🧪 Pruebas

# Run all tests
npm test

# Run specific test suites
npm run test:unit
npm run test:integration
npm run test:performance

# Run with coverage
npm run test:coverage

🤝 Contribuciones

¡Agradecemos las contribuciones! Consulta nuestra Guía de contribuciones para más detalles.

Configuración de desarrollo

# Clone the repository
git clone https://github.com/dipseth/dataproc-mcp.git
cd dataproc-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Run tests
npm test

# Start development server
npm run dev

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

🆘 Soporte

🏆 Agradecimientos

  • Model Context Protocol - El protocolo que hace esto posible
  • Google Cloud Dataproc - El servicio con el que nos integramos
  • Qdrant - Base de datos vectorial de alto rendimiento que impulsa nuestra búsqueda semántica e indexación de conocimiento
  • TypeScript - Por la seguridad de tipos y la experiencia del desarrollador

Hecho con ❤️ para las comunidades de MCP y Google Cloud