PySpark MCP Server
Allows converting SQL queries to and from MySQL dialect, and generating PySpark DataFrame API code from SQL.
Allows converting SQL queries to and from PostgreSQL dialect, and generating PySpark DataFrame API code from SQL.
Allows converting SQL queries to and from Snowflake dialect, and generating PySpark DataFrame API code from SQL.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PySpark MCP ServerConvert this Redshift SQL to PySpark and generate a Glue job"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PySpark MCP Server
SQL migration assistance, AWS Glue job generation, and Spark code optimization — as an MCP server.
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
Related MCP server: Claude MCP Data Engineer Server
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 serverMCP 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: allDocker
docker compose up -dTools
SQL Conversion
convert_sql_to_pyspark— Convert SQL to PySpark with dialect detectionanalyze_sql_context— Analyze SQL complexity and suggest approach
AWS Glue
generate_aws_glue_job_template— Generate complete Glue job scriptsconvert_dataframe_to_dynamic_frame— DataFrame ↔ DynamicFrame conversiongenerate_data_catalog_table_definition— Data Catalog table definitionsgenerate_incremental_processing_job— Incremental/CDC job generationanalyze_s3_optimization_opportunities— S3 layout and partitioning analysis
Optimization
review_pyspark_code— Code review with performance recommendationsoptimize_pyspark_code— Suggest optimizations for existing coderecommend_join_strategy— Broadcast vs shuffle join recommendationssuggest_partitioning_strategy— Partitioning recommendations
Batch Processing
batch_process_files— Process multiple SQL files concurrentlybatch_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 testsArchitecture
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 utilitiesCI/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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AnnasMazhar/pyspark_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server