trackmcp
Back to directory
dipseth

dataproc-mcp

View on GitHub

Private MCP Dataproc server repository

10 stars TypeScriptOthers Updated Nov 6, 2025

Documentation

Dataproc MCP Server

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

A production-ready Model Context Protocol (MCP) server for Google Cloud Dataproc operations with intelligent parameter injection, enterprise-grade security, and comprehensive tooling. Designed for seamless integration with Roo (VS Code).

πŸš€ Quick Start

Add this to your Roo MCP settings:

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

With Custom Config File

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

Alternative: Global Installation

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

# Start the server
dataproc-mcp-server

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

5-Minute Setup

1. Install the package:

bash
npm install -g @dipseth/dataproc-mcp-server@latest

2. Run the setup:

bash
dataproc-mcp --setup

3. Configure authentication:

bash
# Edit the generated config file
   nano config/server.json

4. Start the server:

bash
dataproc-mcp

🌐 Claude.ai Web App Compatibility

βœ… PRODUCTION-READY: Full Claude.ai Integration with HTTPS Tunneling & OAuth

The Dataproc MCP Server now provides complete Claude.ai web app compatibility with a working solution that includes all 22 MCP tools!

πŸš€ Working Solution (Tested & Verified)

Terminal 1 - Start MCP Server:

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

Terminal 2 - Start Cloudflare Tunnel:

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

Result: Claude.ai can see and use all tools successfully! πŸŽ‰

Key Features:

  • βœ… Complete Tool Access - All 22 MCP tools available in Claude.ai
  • βœ… HTTPS Tunneling - Cloudflare tunnel for secure external access
  • βœ… OAuth Authentication - GitHub OAuth for secure authentication
  • βœ… Trusted Certificates - No browser warnings or connection issues
  • βœ… WebSocket Support - Full WebSocket compatibility with Claude.ai
  • βœ… Production Ready - Tested and verified working solution

Quick Setup:

1. Setup GitHub OAuth (5 minutes)

2. Generate SSL certificates: `npm run ssl:generate`

3. Start services (2 terminals as shown above)

4. Connect Claude.ai to your tunnel URL

> πŸ“– Complete Guide: See `docs/claude-ai-integration.md` for detailed setup instructions, troubleshooting, and advanced features.

> πŸ“– Certificate Setup: See `docs/trusted-certificates.md` for SSL certificate configuration.

✨ Features

🎯 Core Capabilities

  • 22 Production-Ready MCP Tools - Complete Dataproc management suite
  • 🧠 Knowledge Base Semantic Search - Natural language queries with optional Qdrant integration
  • πŸš€ Response Optimization - 60-96% token reduction with Qdrant storage
  • πŸ”„ Generic Type Conversion System - Automatic, type-safe data transformations
  • 60-80% Parameter Reduction - Intelligent default injection
  • Multi-Environment Support - Dev/staging/production configurations
  • Service Account Impersonation - Enterprise authentication
  • Real-time Job Monitoring - Comprehensive status tracking

πŸš€ Response Optimization

  • 96.2% Token Reduction - `list_clusters`: 7,651 β†’ 292 tokens
  • Automatic Qdrant Storage - Full data preserved and searchable
  • Resource URI Access - `dataproc://responses/clusters/list/abc123`
  • Graceful Fallback - Works without Qdrant, falls back to full responses
  • 9.95ms Processing - Lightning-fast optimization with πŸ”„ Enhanced with Generic Type Conversion: All tools now benefit from automatic, type-safe data transformations with intelligent compression and field mapping.

πŸš€ Cluster Management (8 Tools)

ToolDescriptionSmart DefaultsKey Features
`start_dataproc_cluster`Create and start new clustersβœ… 80% fewer paramsProfile-based, auto-config
`create_cluster_from_yaml`Create from YAML configurationβœ… Project/region injectionTemplate-driven setup
`create_cluster_from_profile`Create using predefined profilesβœ… 85% fewer params8 built-in profiles
`list_clusters`List all clusters with filteringβœ… No params neededSemantic queries, pagination
`list_tracked_clusters`List MCP-created clustersβœ… Profile filteringCreation tracking
`get_cluster`Get detailed cluster informationβœ… 75% fewer paramsSemantic data extraction
`delete_cluster`Delete existing clustersβœ… Project/region defaultsSafe deletion
`get_zeppelin_url`Get Zeppelin notebook URLβœ… Auto-discoveryWeb interface access

πŸ’Ό Job Management (7 Tools)

ToolDescriptionSmart DefaultsKey Features
`submit_hive_query`Submit Hive queries to clustersβœ… 70% fewer paramsAsync support, timeouts
`submit_dataproc_job`Submit Spark/PySpark/Presto jobsβœ… 75% fewer paramsMulti-engine support, Local file staging
`cancel_dataproc_job`Cancel running or pending jobsβœ… JobID only neededEmergency cancellation, cost control
`get_job_status`Get job execution statusβœ… JobID only neededReal-time monitoring
`get_job_results`Get job outputs and resultsβœ… Auto-paginationResult formatting
`get_query_status`Get Hive query statusβœ… Minimal paramsQuery tracking
`get_query_results`Get Hive query resultsβœ… Smart paginationEnhanced async support

πŸ“‹ Configuration & Profiles (3 Tools)

ToolDescriptionSmart DefaultsKey Features
`list_profiles`List available cluster profilesβœ… Category filtering8 production profiles
`get_profile`Get detailed profile configurationβœ… Profile ID onlyTemplate access
`query_cluster_data`Query stored cluster dataβœ… Natural languageSemantic search

πŸ“Š Analytics & Insights (4 Tools)

ToolDescriptionSmart DefaultsKey Features
`check_active_jobs`Quick status of all active jobsβœ… No params neededMulti-project view
`get_cluster_insights`Comprehensive cluster analyticsβœ… Auto-discoveryMachine types, components
`get_job_analytics`Job performance analyticsβœ… Success ratesError patterns, metrics
`query_knowledge`Query comprehensive knowledge baseβœ… Natural languageClusters, jobs, errors

🎯 Key Capabilities

  • 🧠 Semantic Search: Natural language queries with Qdrant integration
  • ⚑ Smart Defaults: 60-80% parameter reduction through intelligent injection
  • πŸ“Š Response Optimization: 96% token reduction with full data preservation
  • πŸ”„ Async Support: Non-blocking job submission and monitoring
  • 🏷️ Profile System: 8 production-ready cluster templates
  • πŸ“ˆ Analytics: Comprehensive insights and performance tracking

πŸ“‹ Configuration

Project-Based Configuration

The server supports a project-based configuration format:

yaml
# 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

Authentication Methods

1. Service Account Impersonation (Recommended)

2. Direct Service Account Key

3. Application Default Credentials

4. Hybrid Authentication with fallbacks

πŸ“š Documentation

πŸ”§ MCP Client Integration

Claude Desktop

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

Roo (VS Code)

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

πŸ—οΈ Architecture

code
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   MCP Client    │────│  Dataproc MCP    │────│  Google Cloud   β”‚
β”‚  (Claude/Roo)   β”‚    β”‚     Server       β”‚    β”‚    Dataproc     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                       β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”
                       β”‚   Features  β”‚
                       β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
                       β”‚ β€’ Security  β”‚
                       β”‚ β€’ Profiles  β”‚
                       β”‚ β€’ Validationβ”‚
                       β”‚ β€’ Monitoringβ”‚
                       β”‚ β€’ Generic    β”‚
                       β”‚   Converter  β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”„ Generic Type Conversion System Architecture

code
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Source Types   │────│ Generic Converter │────│ Qdrant Payloads β”‚
β”‚ β€’ ClusterData   β”‚    β”‚    System        β”‚    β”‚ β€’ Compressed    β”‚
β”‚ β€’ QueryResults  β”‚    β”‚                  β”‚    β”‚ β€’ Type-Safe     β”‚
β”‚ β€’ JobData       β”‚    β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚    β”‚ β€’ Optimized     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚ β”‚Field Analyzerβ”‚ β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚ β”‚Transformationβ”‚ β”‚
                       β”‚ β”‚Engine        β”‚ β”‚
                       β”‚ β”‚Compression   β”‚ β”‚
                       β”‚ β”‚Service       β”‚ β”‚
                       β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🚦 Performance

Response Time Achievements

  • Schema Validation: ~2ms (target: <5ms) βœ…
  • Parameter Injection: ~1ms (target: <2ms) βœ…
  • Generic Type Conversion: ~0.50ms (target: <2ms) βœ…
  • Credential Validation: ~25ms (target: <50ms) βœ…
  • MCP Tool Call: ~50ms (target: <100ms) βœ…

Throughput Achievements

  • Schema Validation: ~2000 ops/sec βœ…
  • Parameter Injection: ~5000 ops/sec βœ…
  • Generic Type Conversion: ~2000 ops/sec βœ…
  • Credential Validation: ~200 ops/sec βœ…
  • MCP Tool Call: ~100 ops/sec βœ…

Compression Achievements

  • Field-Level Compression: Up to 100% compression ratios βœ…
  • Memory Optimization: 30-60% reduction in memory usage βœ…
  • Type Safety: Zero runtime type errors with automatic validation βœ…

πŸ§ͺ Testing

bash
# 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

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

bash
# 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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

πŸ† Acknowledgments


Made with ❀️ for the MCP and Google Cloud communities

Frequently asked questions

What is dataproc-mcp?

dataproc-mcp is Private MCP Dataproc server repository

How do I install dataproc-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is dataproc-mcp open source?

Yes β€” it is hosted on GitHub at https://github.com/dipseth/dataproc-mcp and has 10 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP