mcpField
F
fabric-dw

fabric-dw

ローカル
fdw.debruyn.devデータベース107 週間前に更新

fabric-dw について

fabric-dwは、Microsoft Fabric Data WarehousesとSQL Analytics Endpointsを扱う管理者や分析担当者向けのPythonコマンドラインツール兼MCPサーバーです。端末での管理やSQL操作に加え、アクセス制限の設定と分析用エージェントスキルを備えています。

主な機能

  1. 01ウェアハウスとエンドポイントの管理
  2. 02SQL実行とクエリプランの作成
  3. 03ワークスペースとスキーマの操作
  4. 04読み取り専用・破壊的操作の制御設定
  5. 05分析用エージェントスキルの同梱

活用シーン

  1. 01端末やエージェントからのウェアハウスクエリ
  2. 02SQL実行プランの確認
  3. 03エージェントの操作を読み取り専用に制限
  4. 04エージェントスキルによるウェアハウス性能分析

MCP 対応

MCPサーバーはCLIのワークスペース、ウェアハウス、SQL、スキーマ、クエリ、スナップショット、監査、統計、権限の操作をツールとして公開します。stdioとHTTPに対応し、ワークスペースや破壊的操作を制限できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sdebruyn-fabric-dw": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"FABRIC_AUTH",
"-e",
"FABRIC_MCP_READONLY",
"-e",
"FABRIC_MCP_ALLOW_DESTRUCTIVE",
"-e",
"FABRIC_MCP_WORKSPACES",
"-e",
"FABRIC_MCP_ALLOW_REMOTE",
"-e",
"FABRIC_LOG_LEVEL",
"ghcr.io/sdebruyn/fabric-dw:2026.9.0"
],
"env": {
"FABRIC_AUTH": "<FABRIC_AUTH>",
"FABRIC_MCP_READONLY": "<FABRIC_MCP_READONLY>",
"FABRIC_MCP_ALLOW_DESTRUCTIVE": "<FABRIC_MCP_ALLOW_DESTRUCTIVE>",
"FABRIC_MCP_WORKSPACES": "<FABRIC_MCP_WORKSPACES>",
"FABRIC_MCP_ALLOW_REMOTE": "<FABRIC_MCP_ALLOW_REMOTE>",
"FABRIC_LOG_LEVEL": "<FABRIC_LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e FABRIC_AUTH -e FABRIC_MCP_READONLY -e FABRIC_MCP_ALLOW_DESTRUCTIVE -e FABRIC_MCP_WORKSPACES -e FABRIC_MCP_ALLOW_REMOTE -e FABRIC_LOG_LEVEL ghcr.io/sdebruyn/fabric-dw:2026.9.0
設定が必要な環境変数
FABRIC_AUTHシークレットAzure credential source: 'default' (DefaultAzureCredential chain), 'sp' (service principal, needs AZURE_TENANT_ID/AZURE_CLIENT_ID/AZURE_CLIENT_SECRET), or 'interactive' (browser sign-in).
FABRIC_MCP_READONLYSet to 1 to restrict execute_sql to SELECT/WITH statements and block all mutating tools.
FABRIC_MCP_ALLOW_DESTRUCTIVESet to 1 to enable permanently-destructive tools (delete_*, clear_table, restore_warehouse_in_place). Disabled by default.
FABRIC_MCP_WORKSPACESComma-separated workspace names or GUIDs the server may touch. Unset allows all workspaces.
FABRIC_MCP_ALLOW_REMOTESet to 1 to allow the HTTP transport to bind on a non-loopback address. Always front with an authenticating reverse proxy.
FABRIC_LOG_LEVELLog level for the MCP server (DEBUG, INFO, WARNING, ERROR, CRITICAL).

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/sdebruyn/fabric-dw:2026.9.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

fabric-dw ロゴ

fabric-dw

ドキュメント CI codecov PyPI バージョン Python バージョン ライセンス

Microsoft Fabric Data Warehouse と SQL Analytics Endpoint 向けの Python CLI および MCP サーバーです。ターミナルまたは AI エージェントから、管理、クエリ、最適化、セキュリティ保護を行えます。

ドキュメント全文:fdw.debruyn.dev

📣 公開しました! [fabric-dw] の開発背景について、告知ブログ記事をご覧ください。

説明

fabric-dw は、Microsoft Fabric Data Warehouse と SQL Analytics Endpoint を管理するための 2 つのインターフェースを提供します。

  • CLI:一般的な DW 管理タスク向けのコマンドラインツールです。
  • MCP サーバー:Model Context Protocol サーバーです。AI アシスタント向けに、DW の操作をツールとして公開します。

認証は FABRIC_AUTH 環境変数で設定します。デフォルト(FABRIC_AUTH=default)では、環境変数、Workload/Managed Identity、Azure CLI、Azure Developer CLI、Azure PowerShell、対話型ブラウザーの順に確認する azure-identity DefaultAzureCredential を使用します。これらのいずれかで認証できます。認証チェーン、サポートされているすべてのソース、デバッグのヒントについては、認証ドキュメントをご覧ください。

インストール

pip install fabric-dw
# or run without installing:
uvx fabric-dw --help
# or install persistently on PATH:
uv tool install fabric-dw

インストール後、fdw コマンドは fabric-dw の短縮エイリアスとして使用でき、どちらも同じエントリーポイントを実行します。MCP サーバーのセットアップ、アップグレード、プレリリースビルドについては、インストールドキュメントをご覧ください。

クイックスタート

CLI

ワークスペースは、コマンドグループの前に指定するグローバルなルートオプション -w / --workspace です。fdw config set workspace <NAME> で一度デフォルトを設定すれば、以降の呼び出しでは -w を省略できます。ワークスペースの解決順序:(1) -w フラグ、(2) FABRIC_DW_DEFAULT_WORKSPACE 環境変数、(3) 設定済みのデフォルト。

# Run without installing; install to get the fdw alias
uvx fabric-dw --help

# Set a default workspace once; all subsequent commands pick it up
fdw config set workspace SalesWS
# -- Run and explain SQL --

# Execute a query against a warehouse
fdw sql exec SalesWH -q "SELECT TOP 10 * FROM dbo.orders ORDER BY order_date DESC"

# Capture an estimated execution plan as SVG -- no SSMS or Windows needed
fdw sql plan SalesWH -f query.sql --format svg -o plan.svg

# -- Performance mission-control --

# See what is running right now
fdw queries running SalesWH

# Long-running queries from the past hour
fdw queries long-running SalesWH --ago 1h

# Kill a runaway session by ID
fdw queries kill SalesWH 55

# Most-repeated queries over the past 24 hours
fdw queries frequent SalesWH --ago 24h

# -- Optimize --

# Inspect a statistics histogram with inline terminal bar charts
fdw statistics show SalesWH dbo.orders st_order_date --histogram

# Re-cluster a table on a new key (transactional CTAS-swap, auto-rollback on failure)
fdw tables cluster-by SalesWH dbo.orders --cluster-by customer_id

# -- Time travel + export --

# Browse the table as it looked 2 hours ago
fdw tables read SalesWH dbo.orders --ago 2h

# Export a point-in-time snapshot to Parquet
fdw tables export SalesWH dbo.orders --output snapshot.parquet --ago 2h

# -- Governance --

# Grant SELECT on a specific table
fdw permissions sql grant SalesWH SELECT --to [email protected] --object dbo.orders

# Deny access to sensitive columns (column-level security)
fdw permissions cls deny SalesWH SELECT --to [email protected] \
    --object dbo.orders --columns salary,bonus

# Create a row-level security policy (filter rows by SalesRep)
fdw permissions rls create SalesWH rls.SalesFilter \
    --filter "rls.fn_sales_filter(SalesRep)" --on dbo.orders

# -- Load + scaffold --

# Load a local Parquet file and auto-create the table from its schema
fdw tables load SalesWH dbo.orders --file orders.parquet --create

# Scaffold a full dbt-fabric project wired to the warehouse
fdw dbt init SalesWH ./my-dbt-project --project-name sales_dw --with-sources
MCP サーバー

MCP クライアントの設定(例:Claude Desktop、VS Code)に追加します。

{
  "mcpServers": {
    "fabric-dw": {
      "command": "uvx",
      "args": ["--from", "fabric-dw", "fabric-dw-mcp"]
    }
  }
}

MCP サーバーは、すべての CLI 操作(workspaces、warehouses、SQL endpoints、schemas、tables、views、queries、snapshots、restore points、audit、statistics、permissions、sql-pools)を MCP ツールとして公開します。詳細な AI 支援分析のため、Claude Code エージェントスキル(query-optimizer、warehouse-performance、dbt-setup)も同梱されています。デフォルト以外の認証モードが必要な場合は、環境に FABRIC_AUTH を設定してください。

Claude Code と GitHub Copilot CLI のどちらでも、fabric-dw プラグインマーケットプレイスから 1 つのコマンドでスキルと MCP サーバーの両方をインストールできます。/plugin marketplace add sdebruyn/fabric-dw-mcp-cli を実行し、続けて /plugin install fabric-dw@fabric-dw を実行してください。詳細は、エージェントスキルドキュメントをご覧ください。

Docker で実行する

Docker イメージのデフォルトの ENTRYPOINT は MCP サーバー(fabric-dw-mcp)です。そのまま MCP クライアントで使用するか、エントリーポイントを上書きして CLI を実行してください。

docker pull ghcr.io/sdebruyn/fabric-dw:latest

# Run the MCP server (default entrypoint, connect via stdio from your MCP client):
docker run --rm -i \
  -e AZURE_CLIENT_ID=… \
  -e AZURE_TENANT_ID=… \
  -e AZURE_CLIENT_SECRET=… \
  -e FABRIC_AUTH=sp \
  ghcr.io/sdebruyn/fabric-dw

# Run the CLI instead (override the entrypoint):
docker run --rm \
  --entrypoint fabric-dw \
  -e AZURE_CLIENT_ID=… \
  -e AZURE_TENANT_ID=… \
  -e AZURE_CLIENT_SECRET=… \
  -e FABRIC_AUTH=sp \
  ghcr.io/sdebruyn/fabric-dw --help

開発用イメージ(main へのマージごとにビルド):ghcr.io/sdebruyn/fabric-dw:main または :<version>.dev<N>。

パッケージページ:ghcr.io/sdebruyn/fabric-dw

セキュリティ環境変数
変数デフォルト説明
FABRIC_MCP_READONLY未設定1 に設定すると、execute_sql を SELECT/WITH に制限し、すべての変更ツールをブロックします。
FABRIC_MCP_ALLOW_DESTRUCTIVE未設定1 に設定すると、恒久的に破壊的なツール(delete_*、clear_table、restore_warehouse_in_place)を有効にします。デフォルトでは無効です。
FABRIC_MCP_WORKSPACES未設定サーバーがアクセスできるワークスペース名または GUID をカンマ区切りで指定します。未設定の場合、すべてのワークスペースが許可されます。
FABRIC_MCP_ALLOW_REMOTE未設定1 に設定すると、HTTP トランスポート(--transport http)をループバック以外のアドレスにバインドできます。警告がログに記録されます。エンドポイントの前段に TLS 対応の認証付きリバースプロキシを配置し、Host の検証を有効なままにするために --allowed-host を指定してください。MCP サーバーのホスティングを参照してください。
HTTP トランスポート

MCP サーバーは、リモートクライアント向けに HTTP モードで起動できます。

fabric-dw-mcp --transport http [--host 127.0.0.1] [--port 8000]

デフォルトではループバックにバインドされ、Host と Origin の検証は自動的に処理されます。それ以外の場所にバインドするには、FABRIC_MCP_ALLOW_REMOTE=1 と --allowed-host が必要です。また、エンドポイントには認証機能も TLS も組み込まれていないため、必ず認証付きリバースプロキシを前段に配置してください。その設定については、MCP サーバーのホスティングを参照してください。

コンテナーで開発する

リポジトリを GitHub Codespaces または VS Code の Remote-Containers 拡張機能で開きます。devcontainer には Python 3.14、uv、Azure CLI、GitHub CLI があらかじめインストールされています。

GitHub Codespaces で開く

貢献

開発環境のセットアップ、ブランチの運用方法、ローカルでのテスト実行方法については、CONTRIBUTING.mdを参照してください。

📖 ドキュメント:fdw.debruyn.dev(またはローカルで uv run --only-group docs zensical serve を実行してください)。

セキュリティ

脆弱性は非公開で報告してください。SECURITY.mdを参照してください。

行動規範

このプロジェクトはContributor Covenant 2.1に従っています。

ライセンス

MIT。Copyright (c) 2026 Sam Debruyn

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。