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)
设置
- 克隆存储库:
git clone https://github.com/yourusername/databricks-permissions-mcp-server.git
cd databricks-permissions-mcp-server- 设置项目:
# 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 .- 设置环境变量:
# 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一起使用
- 在Claude Desktop中,单击“+”按钮添加新工具
- 选择“自定义命令”
- 输入一个名称,如“copula权限”
- 对于该命令,请输入:
python -m src.server.databricks_permissions_mcp_server - 点击“保存”
- 现在,您可以让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许可证获得许可-有关详细信息,请参阅许可证文件。
