Token导航 LogoToken导航TokenDH.com
Smileset Fabric MCP Reader logo
数据服务stdio官方级别未说明来源级核验

Smileset Fabric MCP Reader

MCP Server

一个为AI助手提供只读SQL访问Microsoft Fabric SQL分析端点的模型上下文协议(MCP)服务器。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
数据分析PythonClaude数据库连接Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Orthotech1

提供方

Orthotech1

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Microsoft结构SQL分析端点–只读MCP服务器

A. 模型上下文协议(MCP) 服务器 为AI助手(Claude Desktop、Cowork或任何MCP客户端)提供只读SQL 访问Microsoft Fabric SQL Analytics端点。

______________________________________________________________________

目录

  1. 架构概述
  2. 在Azure Entra ID中注册服务主体
  3. 在Microsoft Fabric中授予只读访问权限
  4. 安装依赖项
  5. 配置凭据
  6. 在本地运行并验证连接
  7. 连接克劳德桌面或协作
  8. 暴露的MCP工具
  9. 安全模型

______________________________________________________________________

架构概述

Claude / Cowork
      │
      │  MCP stdio transport
      ▼
  server.py  (this repo)
      │
      │  pyodbc + AAD token
      ▼
Microsoft Fabric SQL Analytics Endpoint

服务器使用 stdio传输,这意味着MCP客户端将其作为 子进程通过stdin/stdout进行处理和通信。没有web服务器或开放端口 是必需的。

______________________________________________________________________

1.在Azure Entra ID中注册服务主体

  1. 打开 Azure门户 并导航到

微软Entra ID→ 应用程序注册→ 新注册.

  1. 给它一个描述性的名字(例如。 fabric-mcp-reader).
  2. 离开 重定向URI 空白并单击 注册.
  3. 概述 第页,注意 应用程序(客户端)ID

目录(租户)ID --这些进入你的 .env.

  1. 首选 证书和秘密→ 新客户机密,选择一个到期日,以及

复制 价值 立即(仅显示一次)。

______________________________________________________________________

2.在Microsoft Fabric中授予只读访问权限

Microsoft Fabric在工作区和项目级别控制数据访问。这 服务主体需求:

2a。工作区查看器角色

  1. 打开Fabric工作区。
  2. 点击 管理访问 (右上)。
  3. 搜索上面创建的应用程序注册名称。
  4. 分配 观众 角色和保存。

2b。SQL级只读权限

对于大多数结构仓库来说,仅查看器角色就足够了。更精细 控制、连接高权限帐户并执行:

-- Replace  with the name of your app registration.
CREATE USER [] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [];
重要提示: 分配 db_owner, db_datawriter,或任何DDL 角色。MCP服务器也仅在应用层强制执行SELECT,但是 深度防御从数据库级别开始。

______________________________________________________________________

3.安装依赖项

先决条件

安装在将运行服务器的计算机上。

# Verify ODBC driver is installed (Linux / macOS)
odbcinst -q -d | grep -i "ODBC Driver 18"

# Install Python dependencies
pip install -r requirements.txt

Linux–ODBC驱动程序18快速安装(Debian/Ubuntu)

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list \
  | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18

macOS

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew install msodbcsql18

______________________________________________________________________

4.配置凭据

cp .env.example .env

编辑 .env 并填写五个值:

变量在哪里可以找到它
FABRIC_SQL_ENDPOINT织物工作区→ SQL分析端点→ *连接字符串*
FABRIC_DATABASE仓库或湖畔小屋名称
AZURE_TENANT_ID参赛者ID→ 应用程序注册→ 概述
AZURE_CLIENT_ID参赛者ID→ 应用程序注册→ 概述
AZURE_CLIENT_SECRET参赛者ID→ 应用程序注册→ 证书和秘密

______________________________________________________________________

5.在本地运行并验证连接

# Quick smoke-test: list tables via the CLI inspector
python -m mcp dev server.py

MCP检查器在浏览器中打开。在 工具 选项卡,呼叫 list_tables --您应该看到Fabric表以JSON格式返回。

或者,直接运行服务器并通过管道发送测试消息:

python server.py

该过程启动并在stdin上等待MCP消息(正常行为 stdio传输)。按Ctrl-C停止。

______________________________________________________________________

6.连接克劳德桌面或协作

克劳德桌面(claude_desktop_config.json)

找到配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

在下面添加服务器 mcpServers:

{
  "mcpServers": {
    "fabric-sql": {
      "command": "python",
      "args": ["/absolute/path/to/smileset-fabric-mcp-reader/server.py"],
      "env": {
        "FABRIC_SQL_ENDPOINT": "yourworkspace.datawarehouse.fabric.microsoft.com",
        "FABRIC_DATABASE": "YourWarehouse",
        "AZURE_TENANT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "AZURE_CLIENT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "AZURE_CLIENT_SECRET": "your-secret"
      }
    }
  }
}
小贴士:如果你喜欢保守秘密 .env,省略 env 阻止并确保 .env 存在于项目目录中-- python-dotenv 加载它 启动时自动。

重新启动克劳德桌面。工具 list_tables, describe_table, run_query, 和 get_schema_overview 应出现在工具选择器中。

同事

在Cowork的MCP设置中,添加新的 标准 服务器:

  • 命令: python /absolute/path/to/server.py
  • 工作目录: /absolute/path/to/smileset-fabric-mcp-reader

______________________________________________________________________

7.在Azure虚拟机或Docker上部署

Azure虚拟机

# On the VM (Ubuntu 22.04 example)
git clone https://github.com/your-org/smileset-fabric-mcp-reader.git
cd smileset-fabric-mcp-reader
pip install -r requirements.txt
cp .env.example .env && nano .env  # fill in credentials
python server.py  # or use systemd / supervisord

使用SSH端口转发或共享端口将MCP客户端指向VM的路径 文件系统挂载。

码头工人

FROM python:3.12-slim

# Install ODBC Driver 18
RUN apt-get update && apt-get install -y curl gnupg2 && \
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
    curl https://packages.microsoft.com/config/debian/12/prod.list \
      > /etc/apt/sources.list.d/mssql-release.list && \
    apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql18 && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY server.py .
# .env is mounted at runtime – do not COPY it into the image
CMD ["python", "server.py"]
docker build -t fabric-mcp-reader .
docker run --rm -i --env-file .env fabric-mcp-reader

容器从stdin读取并写入stdout,与stdio匹配 MCP客户端期望的传输。

______________________________________________________________________

暴露的MCP工具

工具说明
list_tables()返回所有具有模式名称和类型的表和视图
describe_table(table_name)返回列、数据类型和可空性
run_query(sql)执行SELECT查询,返回JSON(最多1000行)
get_schema_overview()完整的模式摘要——首先调用此命令以确定LLM的方向

______________________________________________________________________

安全模型

  • 应用层: 传递给的每个SQL字符串 run_query 之前已解析

执行。第一个有意义的关键字不是的任何语句 SELECTWITH (CTE)因描述错误而被拒绝。嵌入式写入关键字 (INSERT, UPDATE, DELETE, DROPCTE内的其他部分(如管道、管道、管道等)也被堵塞。

  • 数据库层: 服务主体仅被分配 db_datareader

角色(以及可选的工作区查看器角色)。即使应用层 如果绕过保护,数据库将拒绝写入操作。

  • 资格证书: 秘密从来不是硬编码的。它们是从 .env

(本地)或来自环境变量(CI/CD、Docker、VM)。确保 .env 是 在 .gitignore.

  • 无原始堆栈痕迹: 所有错误都会被捕获并以人类可读的方式返回

消息,这样内部连接细节就不会泄露给LLM。

目录标签

目录标签

数据分析PythonClaude数据库连接SQL访问本地部署AI助手只读服务

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP