Databricks Jobs MCP 服务器
一个用于与Databricks Jobs API交互的模型上下文协议(MCP)服务器。此服务器提供了通过MCP管理Databricks作业的工具。
特点/特性
- 列出带有分页和过滤功能的工作
- 获取详细的工作信息
- 运行带有自定义参数的任务
- 列出带有各种过滤条件的工作运行
- 获取运行详情和输出结果
- 取消正在进行的运行
- 删除任务
可用的交通工具
这台服务器支持两种传输方法:
1. 标准I/O传输(Stdio Transport)index.ts)
使用stdio传输的标准MCP服务器——适用于与Claude桌面集成。
2. 可流式传输的HTTP传输(index-http.ts)
基于HTTP的服务器,具备流媒体功能——适用于Web应用和HTTP客户端。
设置
先决条件
- Node.js 18及以上版本
- Databricks 工作区和个人访问令牌
环境变量
DATABRICKS_HOST=https://your-workspace.azuredatabricks.net
DATABRICKS_TOKEN=your-personal-access-token
PORT=3000 # Only for HTTP transport安装
npm install构建
# Build both versions
npm run build
# Or build individually
npm run build:http # HTTP version only使用方法
Stdio 传输(适用于 Claude 桌面版)
- 构建并运行:
npm run build
npm start- Claude 桌面配置:
添加到 ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"databricks-jobs": {
"command": "node",
"args": ["/path/to/your/dist/index.js"],
"env": {
"DATABRICKS_HOST": "https://your-workspace.azuredatabricks.net",
"DATABRICKS_TOKEN": "your-token-here"
}
}
}
}HTTP传输(用于Web应用)
- 运行HTTP服务器:
npm run dev:http # Development
# or
npm run build && npm run start:http # Production- 终点(或:研究终点):
- POST http://localhost:3000/mcp - 主MCP终端 - GET http://localhost:3000/sse - 服务器发送事件(Server-Sent Events)端点 - GET http://localhost:3000/health - 健康检查 - DELETE http://localhost:3000/mcp/:sessionId - 结束会话
- 特点:
- 使用UUID进行会话管理 - 已启用CORS(跨源资源共享) - 通过SSE提供流式支持 - 健康监测
可用工具
list_jobs
列出工作区中的所有作业,并可选择进行过滤和分页。
参数:
limit(数字):要返回的最大作业数(默认:25,最大:25)offset(数字):分页偏移量(默认:0)expand_tasks(布尔值):是否包含任务详情(默认:false)name(字符串):按作业名称过滤
get_job
获取特定工作的详细信息。
参数:
job_id(数字,必填):作业标识符
run_job_now
触发现有作业的新运行,并可选择性地覆盖参数。
参数:
job_id(数字,必填):作业标识符jar_params(数组): JAR 任务参数notebook_params(对象): 笔记本任务参数python_params(数组):Python 任务参数spark_submit_params(数组):Spark 提交参数
list_runs
列出作业运行,并提供过滤和分页选项。
参数:
job_id(数字):按作业ID筛选active_only(boolean):仅显示活跃的运行completed_only(boolean): 仅显示已完成的运行limit(数字):返回的最大运行次数offset(数字):分页偏移量start_time_from(数字):按开始时间(Unix时间戳)过滤start_time_to(数字):按结束时间(Unix时间戳)过滤
get_run
获取特定作业运行的详细信息。
参数:
run_id(数字,必填):运行标识符include_history(布尔值):是否包含维修历史
get_run_output
获取已完成作业运行的输出结果。
参数:
run_id(数字,必填):运行标识符
cancel_run
取消一个正在进行的工作运行。
参数:
run_id(数字,必填):运行标识符
delete_job
删除任务(无法撤销)。
参数:
job_id(数字,必填):作业标识符
Docker 部署
快速入门Docker
- 设置环境:
cp .env.example .env
# Edit .env with your Databricks credentials- 构建并运行:
./docker-manage.sh build
./docker-manage.sh up- 访问服务器:
- 主服务器:http://localhost:3000 - 健康检查:http://localhost:3000/health
Docker 管理脚本
这个(或“它”) docker-manage.sh 脚本提供便捷的容器管理功能:
# Build the Docker image
./docker-manage.sh build
# Start services (development mode)
./docker-manage.sh up
# Start with nginx proxy (production mode)
./docker-manage.sh up-prod
# Stop services
./docker-manage.sh down
# View logs
./docker-manage.sh logs -f
# Check health
./docker-manage.sh health
# Open shell in container
./docker-manage.sh shell
# Clean up everything
./docker-manage.sh clean生产部署
对于使用nginx反向代理的生产环境部署:
# Start with production profile
./docker-manage.sh up-prod这包括:
- 支持SSL的Nginx反向代理
- 速率限制
- 安全头部(或安全响应头)
- 正确处理SSE(服务器发送事件)
- 健康检查
发展
在开发模式下运行:
# Stdio version
npm run dev
# HTTP version
npm run dev:http
# Or with Docker
./docker-manage.sh up测试HTTP服务器:
# Health check
curl http://localhost:3000/health
# Example MCP request
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'建筑学
- 传输层支持stdio和HTTP传输方式
- 会话管理HTTP版本包含会话跟踪功能
- 错误处理使用Databricks API错误详情进行全面的错误处理
- 类型安全完整的TypeScript实现,采用严格类型检查
依赖项
@modelcontextprotocol/sdk用于服务器实现的MCP SDKaxiosDatabricks API 调用的 HTTP 客户端express网络框架(仅限HTTP版本)
许可证
麻省理工学院# Databricks作业MCP服务器
