关于 MCP Connector: Integrating AI agent with Data Warehouse in Microsoft Fabric
该项目演示由 Azure OpenAI 驱动的 AI Agent 如何通过 GraphQL 和 MCP 连接 Microsoft Fabric 数据仓库。它包含客户端和服务端应用,以及用于查询和修改仓库数据的 Gradio 界面。
主要功能
- 01将 Agent 连接到 Microsoft Fabric 数据
- 02通过 MCP 暴露 GraphQL API
- 03支持 GraphQL 查询和变更操作
- 04通过 Gradio 界面启动和初始化
适用场景
- 01演示 Agent 访问仓库数据
- 02查询或更新 Fabric 仓库数据
- 03探索 GraphQL 与 MCP 集成
MCP 相关
MCP 服务端提供对 Microsoft Fabric GraphQL 端点的访问,MCP 客户端则将 Azure OpenAI 驱动的 Agent 连接到该端点。演示支持通过 GraphQL 查询和变更操作访问数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Connector:在 Microsoft Fabric 中将 AI Agent 与数据仓库集成
本仓库演示了如何使用 Model Context Protocol(MCP)将由 Azure OpenAI 驱动的 AI Agent 与 Microsoft Fabric 数据仓库集成。MCP 是 Anthropic 推出的 AI Agent 开放集成标准。
MCP 支持动态发现工具、数据资源和提示词模板(更多功能即将推出),并统一它们与 AI Agent 的集成。GraphQL 提供了用于连接各类数据的抽象层。下面将详细介绍如何结合 MCP 和 GraphQL,为 AI Agent 提供对企业数据的双向访问能力。
说明
在 MCP 服务的脚本中,为了演示方便,部分查询参数值是硬编码的。在实际场景中,这些值会动态生成或获取。
目录:
第 1 部分:配置 Microsoft Fabric 后端
- 在 Microsoft Fabric 中,点击 New item -> Sample warehouse,创建一个预填充了示例数据的新数据仓库:

- 接下来,点击 New item -> API for GraphQL,创建 GraphQL API 终结点:

- 在 GraphQL API 的数据配置中,选择 Trip (dbo.Trip) 表:

- 复制 GraphQL API 的终结点 URL:

第 2 部分:配置本地客户端环境
- 安装 requirements.txt 中列出的所需 Python 包:
pip install -r requirements.txt
- 为 MCP 客户端配置环境变量:
| 变量 | 描述 |
|---|---|
AOAI_API_BASE | Azure OpenAI 终结点的基 URL |
AOAI_API_VERSION | Azure OpenAI 终结点的 API 版本 |
AOAI_DEPLOYMENT | Azure OpenAI 模型的部署名称 |
- 将
AZURE_FABRIC_GRAPHQL_ENDPOINT变量设置为上文第 1.4 步中的 GraphQL 终结点 URL。MCP 服务脚本将使用它与 Microsoft Fabric 建立连接:
| 变量 | 描述 |
|---|---|
AZURE_FABRIC_GRAPHQL_ENDPOINT | Microsoft Fabric 的 GraphQL API 终结点 |
第 3 部分:用户体验 - Gradio UI
- 在命令提示符中启动 MCP 客户端:
python MCP_Client_Gradio.py
- 点击 Initialise System 按钮,启动 MCP 服务并将 AI Agent 连接到 Microsoft Fabric 的 GraphQL API 终结点:

- 现在,你可以使用此 MCP Connector 提供的 GraphQL 查询和变更功能,从数据仓库中读取和写入数据:

第 4 部分:YouTube 演示视频
此 YouTube 视频中提供了该 MCP Connector 的实际演示。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。