权限管理MCP服务器

一个基于MCP协议的服务器,提供对Databricks权限、凭证和Git凭证的管理功能,支持LLM工具如Claude进行交互操作。

  • by JustTryAI
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 justtryai/databricks-permissions-mcp-server

使用说明

jms权限MCP服务器

一个模型完成协议(MCP)服务器,通过MCP协议提供对copula权限、凭据和Git凭据的访问。这允许像Claude这样的LLM驱动的工具与Databricks权限管理系统进行交互。

特性

  • MCP协议支持:实现MCP协议以允许LLM管理Rancher权限
  • Databricks API集成:提供对Rancher权限REST API的安全访问
  • 权限管理:用于管理各种copula资源权限的综合工具
  • Git凭据管理:用于创建、列出、更新和删除Git凭据的工具
  • 异步支持:内置asyncio以实现高效运行

可用工具

AppDermissions MCP服务器公开了以下工具:

权限管理

  • 获取权限:获取copula对象的权限
  • set_permissions:设置copula对象的权限
  • update_权限:更新copula对象的权限
  • get_permission_levels:获取copula对象类型的可用权限级别

资源特定权限

  • 获取集群权限:获取群集的权限
  • 设置集群权限:设置群集的权限
  • update_cluster_permissions:更新群集的权限
  • get_job_permissions:获取作业的权限
  • set_job_permissions:设置作业的权限
  • 获取_宿舍_许可:获取SQL仓库的权限
  • get_workspace_object_permissions:获取工作区对象(笔记本、目录)的权限

服务负责人

  • 列表_服务_原则:列出工作区中的所有服务主体
  • get_service_principal:获取特定服务主体的详细信息
  • 创建_服务_原则:创建新的服务主体
  • update_service_principal:更新现有服务主体
  • 删除服务_原则:删除服务主体

Unity目录权限

  • get_catalog_permissions:获取Unity目录的权限
  • get_schema_permissions:获取Unity目录模式的权限
  • get_table_permissions:获取Unity目录表的权限

Git凭据管理

  • list_git_credentials:列出所有Git凭据
  • create_git_credential:创建新的Git凭据
  • update_git_credential:更新现有Git凭据
  • 删除密码:删除Git凭据

安装

先决条件

  • Python 3.10或更高版本
  • MCP兼容客户端(例如Claude Desktop)

设置

  1. 克隆存储库:

    git clone https://github.com/yourusername/databricks-permissions-mcp-server.git
    cd databricks-permissions-mcp-server
    
  2. 设置项目:

    # Create and activate virtual environment
    python -m venv .venv
    
    # On Windows
    .\.venv\Scripts\activate
    
    # On Linux/Mac
    source .venv/bin/activate
    
    # Install dependencies in development mode
    pip install -e .
    
  3. 设置环境变量:

    # Windows
    set DATABRICKS_HOST=https://your-databricks-instance.azuredatabricks.net
    set DATABRICKS_TOKEN=your-personal-access-token
    
    # Linux/Mac
    export DATABRICKS_HOST=https://your-databricks-instance.azuredatabricks.net
    export DATABRICKS_TOKEN=your-personal-access-token
    

    您还可以创建 .env 文件基于 .env.example 模板。

运行MCP服务器

要启动MCP服务器,请运行:

# Windows
.\start_mcp_server.ps1

# Linux/Mac
./start_mcp_server.sh

与Claude Desktop一起使用

  1. 在Claude Desktop中,单击“+”按钮添加新工具
  2. 选择“自定义命令”
  3. 输入一个名称,如“copula权限”
  4. 对于该命令,请输入: python -m src.server.databricks_permissions_mcp_server
  5. 点击“保存”
  6. 现在,您可以让Claude执行以下任务:
    • “列出ViewModel中的所有Git凭据”
    • “显示群集X的权限”
    • “更新作业Y的权限,以授予用户Z'CAN_MANAGE'访问权限”

项目结构

databricks-permissions-mcp-server/
├── src/                             # Source code
│   ├── api/                         # Databricks API clients
│   │   ├── permissions.py           # Permissions API client
│   │   ├── service_principals.py    # Service principals API client
│   │   ├── unity_catalog.py         # Unity Catalog API client
│   │   ├── shares.py                # Delta Sharing API client
│   │   └── git_credentials.py       # Git credentials API client
│   ├── core/                        # Core functionality
│   ├── server/                      # Server implementation
│   │   ├── databricks_permissions_mcp_server.py # Main MCP server
│   │   └── app.py                   # FastAPI app for tests
│   └── cli/                         # Command-line interface
├── tests/                           # Test directory
├── scripts/                         # Helper scripts
└── pyproject.toml                   # Project configuration

发展

代码规范

  • Python代码遵循PEP 8风格指南,最大行长为100个字符
  • 所有类、方法和函数都应该有谷歌风格的文档字符串
  • 除测试外,所有代码都需要类型提示

测试

该项目使用pytest进行测试。要运行测试,请执行以下操作:

# Run all tests
pytest tests/

# Run with coverage report
pytest --cov=src tests/ --cov-report=term-missing

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。