SQL to PySpark conversion, AWS Glue job generation, and Spark code optimization.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
SQL migration assistance, AWS Glue job template generation, and Spark code optimization β as an MCP server.
Not the live-Spark
pyspark-mcppackage. This project is SQL β PySpark / Glue source generation, published aspyspark-tools. SemyonSinchenko/pyspark-mcp introspects a running SparkSession. A deprecatedpyspark-mcpconsole script remains here so old configs keep working; it prints a warning, then starts this server.
optimize(mode="code") returns suggestions; it does not rewrite your codeglue_s3 is a path heuristic (no AWS call, no measured speedups)SQLGlot already transpiles dialects. This MCP adds three things around that kernel: DataFrame-API pretty-printing with join/window/cast mappings that the conversion tests lock, Glue job boilerplate strings (bookmarks, DynamicFrames, catalog tables) so an agent can emit a file instead of assembling one, and a 14-tool FastMCP surface so an LLM picks convert / mode=sql instead of wiring sqlglot itself. If you only need sqlglot.transpile(...), use sqlglot.
Zero-clone alternative: uvx pyspark-tools. run_server.py is a development convenience that inserts sys.path and prints startup banners. Prefer pyspark-tools in configs and production.
Writes the same files as examples/out/. MCP stdio CLI: pyspark-tools.
Call convert with mode=sql. Captured converter output (dialect=spark):
Exact output depends on dialect detection and fallbacks; conversion tests in tests/test_sql_conversion_fixes.py pin the important constructs. Notebook-style import * / show() is opt-in via style="notebook" on the converter.
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Add to ~/.hermes/config.yaml:
The image is stdio only (FastMCP over stdin/stdout). There is no HTTP server
on port 8000. docker compose up is for local tests, not a health-checkable
web service.
Three primary tools. The other eleven routers stay registered this minor
version but are deprecated β prefer convert, glue_job, and review.
convert β SQL β PySpark (including mode=batch_dir)glue_job β Glue 5.0 job template stringsreview β code review, patterns, duplicatesLegacy / deprecated: analyze, optimize, glue_schema, glue_s3,
glue_data, refactor, search, context, batch_status, s3_source,
analytics. Still callable; do not advertise to new agents.
This MCP can read local files (SQL, TXT, PDF) and, if the [aws] extra is installed, list/read S3 with the host's default AWS credentials. File tools only allow paths under the process working directory (or an explicit base_path / FileHandler(base_directory=...)). That is not a sandbox.
Run the server under a restricted OS account. Do not point it at secrets directories. Do not attach AWS credentials with write access unless you intend S3 reads via s3_source / glue_s3. Optional extras:
Requires Python 3.11+ (matches the CI matrix).
MIT β see LICENSE.
mcp-name: io.github.AnnasMazhar/pyspark-mcp
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/pyspark-mcp)<a href="https://allmcps.com/mcp/pyspark-mcp"><img src="https://allmcps.com/api/badge/pyspark-mcp?style=directory" alt="Pyspark MCP on AllMCPs" /></a>