Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Pyspark

FreeNot checked

SQL to PySpark conversion, AWS Glue job generation, and Spark code optimization.

GitHubEmbed

About

SQL to PySpark conversion, AWS Glue job generation, and Spark code optimization.

README

SQL migration assistance, AWS Glue job generation, and Spark code optimization — as an MCP server.

CI Pipeline Python 3.11+ License: MIT

What It Does

  • SQL Dialect Transpilation — Convert between PostgreSQL, Oracle, Redshift, MySQL, Snowflake, and Spark SQL using SQLGlot
  • PySpark DataFrame API Generation — Generate DataFrame API code from SQL with optimization hints
  • AWS Glue Integration — Job templates, DynamicFrame conversions, Data Catalog definitions, S3 optimization strategies
  • Batch Processing — Process hundreds of SQL files concurrently
  • Code Review & Optimization — Analyze existing PySpark code for performance improvements
  • Pattern Detection — Find code duplication and suggest refactoring

What It Doesn't Do

  • Recursive CTEs → provides Spark SQL equivalent + guidance (PySpark has no native recursive CTE support)
  • MERGE/PIVOT/CONNECT BY → transpiles to Spark SQL, provides DataFrame API guidance
  • Perfect 1:1 DataFrame API transpilation for all SQL — complex queries get Spark SQL + optimization recommendations

Quick Start

pip install -e .
pyspark-mcp  # starts the MCP server

MCP Configuration

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pyspark": {
      "command": "pyspark-mcp",
      "args": []
    }
  }
}

Hermes Agent

Add to ~/.hermes/config.yaml:

mcp:
  servers:
    pyspark:
      command: pyspark-mcp
      enabled_tools: all

Docker

docker compose up -d

Tools

SQL Conversion

  • convert_sql_to_pyspark — Convert SQL to PySpark with dialect detection
  • analyze_sql_context — Analyze SQL complexity and suggest approach

AWS Glue

  • generate_aws_glue_job_template — Generate complete Glue job scripts
  • convert_dataframe_to_dynamic_frame — DataFrame ↔ DynamicFrame conversion
  • generate_data_catalog_table_definition — Data Catalog table definitions
  • generate_incremental_processing_job — Incremental/CDC job generation
  • analyze_s3_optimization_opportunities — S3 layout and partitioning analysis

Optimization

  • review_pyspark_code — Code review with performance recommendations
  • optimize_pyspark_code — Suggest optimizations for existing code
  • recommend_join_strategy — Broadcast vs shuffle join recommendations
  • suggest_partitioning_strategy — Partitioning recommendations

Batch Processing

  • batch_process_files — Process multiple SQL files concurrently
  • batch_process_directory — Convert entire directories

Development

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

# Test
pytest tests/ -v --cov=pyspark_tools

# Format
black pyspark_tools tests
isort pyspark_tools tests

# Lint
flake8 pyspark_tools tests

Architecture

pyspark_tools/
├── server.py              # FastMCP server + tool definitions
├── sql_converter.py       # SQLGlot-based transpilation + DataFrame API generation
├── aws_glue_integration.py # Glue job templates, DynamicFrame, Data Catalog
├── advanced_optimizer.py  # Performance analysis + optimization suggestions
├── batch_processor.py     # Concurrent file processing
├── code_reviewer.py       # PySpark code review patterns
├── duplicate_detector.py  # Code deduplication
├── data_source_analyzer.py # Data source analysis
└── file_utils.py          # File I/O utilities

CI/CD

  • ✅ 256 tests passing
  • ✅ 71% code coverage
  • ✅ Code quality checks (black, isort, flake8)
  • ✅ Python 3.11 tested

License

MIT — see LICENSE.


mcp-name: io.github.AnnasMazhar/pyspark-mcp

from github.com/AnnasMazhar/pyspark_mcp

Install Pyspark in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install pyspark-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add pyspark-mcp -- uvx pyspark-tools

FAQ

Is Pyspark MCP free?

Yes, Pyspark MCP is free — one-click install via Unyly at no cost.

Does Pyspark need an API key?

No, Pyspark runs without API keys or environment variables.

Is Pyspark hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Pyspark in Claude Desktop, Claude Code or Cursor?

Open Pyspark on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Pyspark with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All data MCPs