\_CHMCP服务器
一个全面的模型上下文协议(MCP)服务器,使AI助手能够以编程方式与copula工作区进行交互。此服务器提供用于集群管理、笔记本操作、作业编排、Unity Catalog数据治理、用户管理、权限控制和FinOps成本分析的工具。
特性
🖥️ 群集管理
- 列出、创建、启动、停止和终止集群
- 编辑集群配置并调整集群大小
- 获取集群事件和日志
- 为组织固定/取消固定集群
📔 笔记本管理
- 列出、创建、读取和更新笔记本
- 使用参数执行笔记本
- 以多种格式导入/导出笔记本
- 在工作区中移动和组织笔记本
⚙️ 作业管理
- 创建和管理具有复杂工作流的作业
- 使用cron表达式安排作业
- 触发手动作业运行
- 监控作业执行并检索输出
- 配置通知和警报
👥 用户和组管理
- 列出和管理工作区用户
- 创建和管理组
- 在组中添加/删除用户
- 管理服务负责人
🗄️ Unity目录
- 管理目录、模式和表
- 查询表元数据和统计信息
- 列出卷和外部位置
- 对目录表执行SQL查询
🔒 权限和访问控制
- 获取和设置工作区对象的权限
- 管理Unity目录授予和权限
- 查看有效权限
- 审计访问控制
💰 金融运营与成本分析
- 分析集群成本和DBU消耗
- 跟踪一段时间内的支出趋势
- 预测未来成本
- 获取成本优化建议
- 按自定义标签分析成本
安装
先决条件
- Node.js 18或更高版本
- npm或纱线
- jms工作区
- copula个人访问令牌或服务主体凭据
从npm安装
npm install -g databricks-mcp-server从源代码安装
git clone https://github.com/yourusername/databricks-mcp-server.git
cd databricks-mcp-server
npm install
npm run build配置
环境变量
创建一个 .env 项目目录中的文件:
DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
DATABRICKS_TOKEN=your-personal-access-token有关更多配置选项,请参阅 配置.md.
Claude桌面配置
将此添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp-server",
"env": {
"DATABRICKS_HOST": "https://your-workspace.cloud.databricks.com",
"DATABRICKS_TOKEN": "your-personal-access-token"
}
}
}
}快速开始
配置后,您可以通过AI助手与您的copula工作区进行交互:
查询示例
集群管理:
- “列出我工作区中所有正在运行的集群”
- “使用最新的Spark版本创建一个有4个worker的新集群”
- “终止空闲群集以节省成本”
笔记本操作:
- “显示/Users/me/projects目录中的所有笔记本”
- “为数据分析创建一个新的Python笔记本”
- “使用这些参数运行ETL笔记本”
作业管理:
- “列出所有计划作业”
- “创建一个日常作业来运行我的数据管道笔记本”
- “作业运行12345的状态如何?”
Unity目录:
- “列出我的元存储中的所有目录”
- “显示sales.customers表的架构”
- “查询生产分析指标中的最后10条记录”
成本分析:
- “过去30天我的集群成本是多少?”
- “按周显示支出趋势”
- “给我成本优化建议”
- “预测下个月的成本”
可用工具
该服务器提供60多种工具,分为7类:
集群工具(11个工具)
list_clusters-列出所有集群get_cluster_details-获取详细的集群信息create_cluster-创建新集群start_cluster-启动已终止的群集restart_cluster-重新启动群集terminate_cluster-终止集群edit_cluster-编辑群集配置resize_cluster-调整集群工作器的大小get_cluster_events-获取集群事件历史记录pin_cluster-固定集群unpin_cluster-取消绑定集群
笔记本工具(8个工具)
list_notebooks-在路径中列出笔记本read_notebook-阅读笔记本内容create_notebook-创建新笔记本update_notebook-更新笔记本内容delete_notebook-删除笔记本move_notebook-移动/重命名笔记本create_directory-创建工作区目录run_notebook-执行笔记本
作业工具(10个工具)
list_jobs-列出所有作业get_job_details-获取作业配置create_job-创建新作业update_job-更新作业设置delete_job-删除作业run_job-触发作业运行get_job_run_status-检查运行状态list_job_runs-列出作业运行历史记录cancel_job_run-取消正在运行的作业get_job_run_output-获取作业输出
用户工具(11个工具)
list_users-列出所有用户get_user_details-获取用户信息create_user-添加新用户delete_user-删除用户list_groups-列出所有组get_group_details-获取群组信息create_group-创建新组delete_group-删除组add_user_to_group-将用户添加到组remove_user_from_group-从组中删除用户list_service_principals-列出服务负责人
Unity目录工具(12个工具)
list_catalogs-列出所有目录get_catalog_details-获取目录信息create_catalog-创建目录delete_catalog-删除目录list_schemas-在目录中列出架构get_schema_details-获取架构信息create_schema-创建架构delete_schema-删除架构list_tables-列出架构中的表get_table_details-获取表元数据delete_table-删除表格list_volumes-列出卷list_external_locations-列出外部位置query_table-执行SQL查询
权限工具(7个工具)
get_permissions-获取对象权限set_permissions-设置对象权限update_permissions-更新对象权限get_permission_levels-获取可用权限级别grant_unity_catalog_permissions-授予UC特权revoke_unity_catalog_permissions-撤销UC特权get_effective_permissions-获取有效的UC权限
FinOps工具(5个工具)
get_cluster_costs-分析集群成本analyze_spending_trends-查看支出趋势forecast_costs-预测未来成本get_optimization_recommendations-获取成本节约建议analyze_cost_by_tag-按标签分析成本
有关所有工具的详细文档,请参阅 API毫米.
发展
建筑
npm run build在发展中奔跑
npm run dev项目结构
databricks-mcp-server/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── databricks-client.ts # Databricks API client
│ ├── tools/
│ │ ├── clusters.ts # Cluster management tools
│ │ ├── notebooks.ts # Notebook management tools
│ │ ├── jobs.ts # Job management tools
│ │ ├── users.ts # User/group management tools
│ │ ├── unity-catalog.ts # Unity Catalog tools
│ │ ├── permissions.ts # Permission tools
│ │ └── finops.ts # FinOps tools
│ └── types/
│ └── databricks.ts # TypeScript type definitions
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
└── README.md例子
看 示例.md 了解详细的使用示例和常见工作流程。
认证
服务器支持多种身份验证方法:
- 个人访问令牌 (建议个人使用)
- 服务主体OAuth (推荐用于生产)
- Azure AD令牌 (适用于Azure Rancher)
看 配置.md 详细的身份验证设置。
安全最佳实践
- 将凭据存储在环境变量中,而不是代码中
- 将服务主体用于生产部署
- 为服务帐户实现最低权限访问
- 定期旋转令牌
- 使用Unity Catalog进行细粒度数据访问控制
局限性
- FinOps工具中的成本估算是近似值。为了准确计费,请使用Databricks计费API或帐户控制台
- 某些操作需要特定的copula版本(Unity Catalog需要Premium/Enterprise)
- 速率限制通过指数回退自动处理
- SQL执行需要一个正在运行的SQL仓库
故障排除
常见问题
认证失败
- 验证您的DATABRICKS_HOST是否正确,并包含https://
- 检查您的DATABRICKS_TOKEN是否有效且未过期
- 确保您的令牌具有足够的权限
未找到工具
- 确保服务器安装和配置正确
- 检查Claude Desktop配置文件语法
- 配置更改后重新启动Claude Desktop
权限不足
- 验证您的令牌是否具有所需的权限
- 检查工作区访问控制
- 审查Unity目录的数据访问权限
有关更多故障排除帮助,请参阅 配置.md.
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
对于问题、疑问或贡献:
相关项目
致谢
使用Anthropic的模型上下文协议SDK构建。
