hi#PySpark MCP服务器
描述
PySpark MCP Server是Apache Spark模型上下文协议(MCP)的轻量级服务器实现。
此MCP服务器的主要目的是使用AI系统促进查询优化。它提供了从Spark到AI系统的逻辑和物理查询计划,以及额外的查询计划信息。此外,服务器公开目录和表信息,从而在Spark支持的数据湖中实现数据发现功能。
快速开始
安装
pip install pyspark-mcp运行服务器
安装后,使用 pyspark-mcp 启动服务器的命令:
pyspark-mcp --master "local[*]" --host 127.0.0.1 --port 8090CLI会自动处理 spark-submit 配置。支持所有标准spark提交选项:
# With additional Spark configuration
pyspark-mcp --master "local[*]" --conf spark.driver.memory=4g
# YARN cluster mode
pyspark-mcp --master yarn --deploy-mode client --num-executors 4
# With additional JARs
pyspark-mcp --master "local[*]" --jars /path/to/connector.jar
# Preview the spark-submit command without running
pyspark-mcp --master "local[*]" --dry-run
# With GraphFrames package
pyspark-mcp --master "local[*]" --packages io.graphframes:graphframes-spark3_2.12:0.10.1CLI选项
| 选项 | 默认值 | 描述 |
|---|---|---|
--master | local[*] | Spark主URL |
--host | 127.0.0.1 | MCP服务器主机地址 |
--port | 8090 | MCP服务器端口号 |
--spark-submit | spark-submit | 触发提交可执行文件的路径 |
--dry-run | - | 不执行打印命令 |
所有spark提交选项(--conf, --jars, --packages, --executor-memory等等)自动通过。
将正在运行的MCP添加到Claude代码中
# Must run one server on a different port per Claude instance
claude mcp add --transport http pyspark-mcp http://127.0.0.1:8090/mcp依赖项
- Python>=3.11,\=2.10.6
- 日志
- pyspark>=3.5
捆绑式MCP工具
PySpark MCP服务器中包含以下工具:
| MCP工具 | 说明 |
|---|---|
| 获取PySpark的版本 | 从当前PySpark会话中获取版本号 |
| 获取查询的分析计划 | 从提供的SQL查询中提取分析的逻辑计划 |
| 获取查询的优化计划 | 从提供的SQL查询中提取优化的逻辑计划 |
| 获取查询结果的大小估计 | 从查询计划解释中提取大小和单位 |
| 从查询计划中获取表 | 从查询计划解释中提取所有表(关系) |
| 获取当前Spark目录 | 获取当前SparkSession的默认目录 |
| 检查数据库是否存在 | 检查当前目录中是否存在具有给定名称的数据库 |
| 获取当前默认数据库 | 从默认目录中获取当前默认的数据库 |
| 列出当前目录中的所有数据库 | 列出当前目录的所有可用数据库 |
| 列出可用目录 | 列出当前SparkSession中可用的所有目录 |
| 列出当前目录中的表 | 列出当前Spark目录中的所有可用表 |
| 获取表的注释 | 提取表的注释或返回空字符串 |
| 获取表模式 | 获取目录中表的spark模式 |
| 返回SQL查询结果的模式 | 运行查询,获取结果,获取结果的模式,并返回模式的JSON值 |
| 读取文本文件的前N行 | 以纯文本形式读取文件的前N行。有助于确定格式 |
