项目简介

Databricks权限管理MCP服务器是一个基于Model Context Protocol (MCP) 构建的后端应用,旨在为大型语言模型(LLM)客户端提供访问和管理Databricks平台权限及相关凭据的能力。通过标准化的MCP协议,该服务器允许LLM应用安全、可扩展地与Databricks权限系统集成,实现自动化权限管理、凭据配置等任务。

主要功能点

  • MCP协议支持: 完全实现了Model Context Protocol,能够与任何兼容MCP协议的LLM客户端进行通信。
  • Databricks API集成: 深度集成Databricks REST API,提供对Databricks权限管理系统的安全访问。
  • 细粒度权限管理: 提供全面的工具,用于管理Databricks各种资源(如集群、作业、SQL仓库、工作区对象等)的权限。
  • Git凭据管理: 支持Git凭据的创建、列表、更新和删除,方便LLM应用进行代码仓库操作。
  • 异步高效: 基于asyncio异步框架构建,保证服务器高效稳定运行。

提供的工具 (Tools):

服务器提供以下工具,可以通过LLM客户端调用,完成Databricks权限和凭据管理任务:

  • 权限管理工具:

    • 'get_permissions': 获取Databricks对象的权限
    • 'set_permissions': 设置Databricks对象的权限
    • 'update_permissions': 更新Databricks对象的权限
    • 'get_permission_levels': 获取Databricks对象类型可用的权限级别
    • 'get_cluster_permissions', 'set_cluster_permissions', 'update_cluster_permissions': 集群权限管理
    • 'get_job_permissions', 'set_job_permissions': 作业权限管理
    • 'get_warehouse_permissions', 'set_warehouse_permissions': SQL仓库权限管理
    • 'get_workspace_object_permissions', 'set_workspace_object_permissions': 工作区对象权限管理 (笔记本, 目录等)
  • 服务主体管理工具:

    • 'list_service_principals': 列出服务主体
    • 'get_service_principal': 获取服务主体详情
    • 'create_service_principal': 创建服务主体
    • 'update_service_principal': 更新服务主体
    • 'delete_service_principal': 删除服务主体
  • Unity Catalog 权限工具:

    • 'get_catalog_permissions': 获取Catalog权限
    • 'get_schema_permissions': 获取Schema权限
    • 'get_table_permissions': 获取Table权限
  • Git 凭据管理工具:

    • 'list_git_credentials': 列出Git凭据
    • 'create_git_credential': 创建Git凭据
    • 'update_git_credential': 更新Git凭据
    • 'delete_git_credential': 删除Git凭据

安装步骤

  1. 克隆仓库:

    git clone https://github.com/JustTryAI/databricks-permissions-mcp-server.git
    cd databricks-permissions-mcp-server
  2. 配置Python环境:

    # 创建并激活虚拟环境
    python -m venv .venv
    source .venv/bin/activate  # Linux/Mac
    .\.venv\Scripts\activate   # Windows
    
    # 安装依赖
    pip install -e .
  3. 配置环境变量:

    设置 Databricks 主机和访问令牌。可以通过环境变量或 '.env' 文件配置。

    环境变量 (示例):

    export DATABRICKS_HOST=https://<your-databricks-instance>.azuredatabricks.net
    export DATABRICKS_TOKEN=<your-personal-access-token>

    '.env' 文件 (示例): 在项目根目录下创建 '.env' 文件,内容如下:

    DATABRICKS_HOST=https://<your-databricks-instance>.azuredatabricks.net
    DATABRICKS_TOKEN=<your-personal-access-token>

服务器配置 (MCP 客户端)

以下 JSON 配置信息用于配置 MCP 客户端 (如 Claude Desktop) 连接到 Databricks 权限管理 MCP 服务器。

{
  "serverName": "Databricks Permissions MCP Server",
  "command": "python",
  "args": ["-m", "src.server.databricks_permissions_mcp_server"]
}

配置参数说明:

  • 'serverName': 服务器名称,自定义,用于在MCP客户端中标识该服务器。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 传递给 'python' 命令的参数,'-m src.server.databricks_permissions_mcp_server' 表示运行 'src.server.databricks_permissions_mcp_server.py' 模块,即启动 MCP 服务器。

基本使用方法

  1. 启动服务器: 根据操作系统,运行 'start_mcp_server.sh' (Linux/Mac) 或 'start_mcp_server.ps1' (Windows) 脚本。

  2. 在 MCP 客户端 (如 Claude Desktop) 中添加工具:

    • 点击 "+" 按钮添加新工具。
    • 选择 "Custom command" (自定义命令) 类型。
    • 输入工具名称,例如 "Databricks Permissions"。
    • 将上面提供的服务器配置 JSON 信息填入客户端的配置项中。
    • 点击 "Save" (保存)。
  3. 通过 LLM 客户端调用工具: 现在你可以通过自然语言指令,指示 LLM 客户端调用 Databricks 权限管理 MCP 服务器提供的工具,例如:

    • "列出Databricks中所有的Git凭据"
    • "查看集群 X 的权限"
    • "更新作业 Y 的权限,赋予用户 Z 'CAN_MANAGE' 访问权限"

信息

分类

商业系统