/ ディレクトリ / プレイグラウンド / mcp-engine-public
● コミュニティ maxanatsko ⚡ 即起動

mcp-engine-public

作者 maxanatsko · maxanatsko/mcp-engine-public

Power BI モデルと対話 — スキーマの読み取り、DAXの実行、メジャーの作成、リレーションシップの管理 — すべてローカルで完結し、クラウドへの通信は不要です。

Maxim Anatsko による MCP Engine(mcp-engine-public)は、ローカルの Power BI Desktop インスタンスに接続します。モデル構造の読み取り、DAXクエリの実行、メジャーの作成・変更、リレーションシップの管理を自然言語で行えます。ローカル実行(Windows/macOS)でテレメトリはゼロです。

なぜ使うのか

主な機能

ライブデモ

実際の動作

engine-public.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "engine-public": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/maxanatsko/mcp-engine-public"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "engine-public": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/maxanatsko/mcp-engine-public"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "engine-public": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/maxanatsko/mcp-engine-public"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "engine-public": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/maxanatsko/mcp-engine-public"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "engine-public",
      "command": "TODO",
      "args": [
        "See README: https://github.com/maxanatsko/mcp-engine-public"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "engine-public": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/maxanatsko/mcp-engine-public"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add engine-public -- TODO 'See README: https://github.com/maxanatsko/mcp-engine-public'

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: mcp-engine-public

構文を暗記せずに DAX を記述する

👤 DAX 初心者の Power BI アナリスト ⏱ ~15 min intermediate

使うタイミング: やりたいことは日本語でわかっている。CALCULATE のデバッグに1時間費やしたくない場合に。

前提条件
  • モデルを開いた状態の Power BI Desktop — Power BI Desktop を起動し、.pbix ファイルを開いてください
  • MCP Engine がインストール・接続済みであること — mcpengine.dev を参照 — インストールは5分以内で完了します
フロー
  1. モデルの全体像を把握する
    List the tables in the open model and key measures.✓ コピーしました
    → モデルマップ
  2. メジャーを作成する
    Create a DAX measure 'YoY Revenue' that returns current revenue minus same period prior year, using Date[Date] for time intelligence.✓ コピーしました
    → DAX と作成確認
  3. 検証する
    Run the measure over 2024 vs 2025 and spot-check 3 rows.✓ コピーしました
    → 妥当と思われる数値

結果: 推測ではなく、検証済みの動作するメジャーが得られます。

注意点
  • タイムインテリジェンスには適切にマークされた日付テーブルが必要 — まず Date テーブルが日付テーブルとしてマークされていることを確認してください
  • DirectQuery と Import ではモデルの計算結果が異なる — ストレージモードを確認してください。DirectQuery には DAX の制限があります

既存の Power BI モデルを自動ドキュメント化する

👤 .pbix を引き継いだアナリスト ⏱ ~25 min beginner

使うタイミング: 元の作成者はもういない。モデルには正体不明のテーブルが40個ある場合に。

フロー
  1. 構造をダンプする
    Dump the model: every table's role, every measure's DAX, every relationship.✓ コピーしました
    → 完全な構造一覧
  2. 説明文を作成する
    Write a one-page explanation of this model for a new analyst: what it reports on, main tables, key measures.✓ コピーしました
    → 人間が読めるモデルドキュメント

結果: すべてのメジャーを自分で読まなくても、実用的なドキュメントが得られます。

組み合わせ: filesystem

命名規則・モデリング規約に合わせてメジャーをリファクタリングする

👤 Power BI の運用ルールを標準化するチーム ⏱ ~30 min intermediate

使うタイミング: メジャー名に一貫性がない場合(例:'Total Sales' と 'SumSales' が混在)。

フロー
  1. 違反を検出する
    List measures that don't follow the naming convention '<Verb> <Subject> [<Modifier>]'.✓ コピーしました
    → 違反リスト
  2. 安全にリネームする
    Propose renames; list any visuals or calculated tables that reference each old name.✓ コピーしました
    → 依存関係付きのリネーム計画

結果: 適用前に参照切れを検出した、一貫性のあるメジャーカタログが得られます。

組み合わせ

他のMCPと組み合わせて10倍の力を

engine-public + filesystem

.pbix と一緒にモデルドキュメントを Markdown ファイルとしてエクスポートする

Document the model and save as ~/Docs/PBI/sales-model.md next to sales.pbix.✓ コピーしました
engine-public + postgres

PBI のメジャーを Postgres の生クエリと照合する

PBI says Q1 revenue is $4.2M. Run the same query on the source Postgres DB and tell me if there's a discrepancy.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
get_model_structure (none) セッション開始時 free (local)
run_dax query: str アドホック DAX クエリの実行時 free (local)
create_measure table, name, expression 新しいメジャーの追加時 free (write)
update_measure table, name, expression 既存メジャーの変更時 free (write)
manage_relationship from_table, from_col, to_table, to_col, action: create|delete|update スキーマ変更時 free (write)

コストと制限

運用コスト

APIクォータ
なし — ローカル専用
呼び出しあたりのトークン
モデルダンプは大きくなる場合があります。クエリを絞り込んでください
金額
個人利用・商用利用が許可されたプロプライエタリライセンス(mcpengine.dev/license を参照)
ヒント
複雑なレポートではモデル全体のダンプではなく、特定のテーブルを指定して取得してください。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: 不要 — Power BI Desktop のセッションを使用します
データ送信先: テレメトリなしを標榜。すべて Power BI Desktop のローカル内で完結します

トラブルシューティング

よくあるエラーと対処法

No Power BI instance found

Power BI Desktop がレポートを開いた状態で実行中であることを確認してください。MCP はローカルポートを通じて接続します。

確認: Check Task Manager for msmdsrv process
DAX error: Column not found

テーブル名/列名は大文字・小文字が区別され、完全一致が必要です。モデル構造ダンプで正確な名前を確認してください。

確認: get_model_structure
Changes don't persist after closing PBI

Power BI Desktop は自動保存されません — 変更のたびに Ctrl+S で保存してください。

確認: Title bar shows no asterisk

代替案

mcp-engine-public 他との比較

代替案代わりに使う場面トレードオフ
Tabular Editor 3 (scripting)PBI/SSAS モデル向けのフルスクリプティング環境が必要な場合有料。MCP インターフェースなし
DAX StudioDAX クエリツールだけが必要な場合書き込み操作なし。AI レイヤーなし

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る