返回市场
织构管理MCP服务器

织构管理MCP服务器

作者:microsoft9 星标更新:2025-07-13

项目介绍

Fabric Admin MCP Server

一个开源的MCP服务器,用于执行Microsoft Fabric上的操作,如管理Fabric容量。目前,此仓库包含了一组初始工具来管理容量,但未来会扩展以支持更多的工具和Fabric管理任务。

✨ 特性

  • 将Fabric管理操作作为MCP工具公开;
  • 使用安全且灵活的身份验证机制,例如服务主体和服务托管标识;
  • 使用FastAPI + FastMCP构建现代、异步、可扩展的后端;

🤖 与MCP服务器交互

您可以使用任何MCP客户端与这个MCP服务器进行交互。下面是一个示例,展示了如何使用VSCode中的GitHub Copilot作为MCP客户端与之交互:

与MCP服务器交互示例

此示例演示了如何公开MCP工具并访问它们以管理Microsoft Fabric资源。

🗂️ 项目结构

  • server.py — 启动MCP服务器的主要入口点
  • common.py — 共享实用程序和日志记录
  • src/capacity/ — 与Fabric交互并将其作为MCP工具公开的逻辑
  • requirements.txt — Python依赖项

⚡ 快速开始

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 设置身份验证:

    • 该服务器使用DefaultAzureCredential进行安全的Azure API访问。
    • 您可以使用以下方式进行身份验证:
      • Azure CLI: 在终端中运行az login
      • 托管标识: 如果在Azure中运行,请确保托管标识具有所需的权限。
      • 服务主体: 在项目根目录创建一个.env文件,并填写相应的变量(请参阅“使用服务主体进行身份验证”部分以获取详细信息)。
  3. 本地运行MCP服务器:

    python server.py
    

在Docker中运行MCP服务器(本地)

  1. 准备环境变量:

    • 复制env.example.env并填写您的Azure凭据。
  2. 构建Docker镜像:

    docker build -t fabric-admin-mcp .
    
  3. 运行Docker容器:

    docker run --env-file .env -p  8000:8000 fabric-admin-mcp
    
  4. 访问MCP服务器:

  5. 使用VS Code作为客户端测试:

    • 打开命令面板(Ctrl+Shift+P),搜索"MCP: Connect to Server",并输入http://127.0.0.1:8000/mcp/(如果远程运行,请更改地址)。
    • 您现在可以直接从VS Code使用此服务器公开的MCP工具。

📦 要求

  • Python 3.8+;
  • 具有适当访问权限的Azure凭据(Azure/Fabric管理员)。

🔐 使用服务主体进行身份验证

  1. 创建服务主体(如果您还没有的话):

    az ad sp create-for-rbac --name <your-app-name> --role Contributor --scopes /subscriptions/<your-subscription-id>
    

    记录输出中的appId(客户端ID)、tenantpassword(客户端密钥)。

  2. 在项目根目录创建一个.env文件: 复制.env.example.env并填写您的值:

    AZURE_CLIENT_ID=your-service-principal-client-id
    AZURE_TENANT_ID=your-tenant-id
    AZURE_CLIENT_SECRET=your-service-principal-client-secret
    
  3. 授权服务主体: 确保服务主体具有适当的权限。例如,在订阅或资源组级别至少具有Contributor角色以管理Fabric容量。对于尚未开发的其他工具,还需要额外的Admin API访问权限。

  4. 运行服务器: 服务器将自动使用这些凭据通过DefaultAzureCredential进行身份验证。

🚀 未来改进

  • 添加部署为Docker镜像的选项。
  • 添加部署为Azure函数的选项。
  • 添加用于其他Fabric管理操作的工具,如工作区管理和审查容量设置。
  • 改进文档并提供更多使用示例。
  • 添加自动化测试和CI/CD管道以进行部署。