/ ディレクトリ / プレイグラウンド / Tableau MCP
● 公式 tableau 🔑 自分のキーが必要

Tableau MCP

作者 tableau · tableau/tableau-mcp

Tableau の公式 MCP — エージェントにデータソース、ワークブックへの限定的なアクセスを許可し、スクリーンショットではなく PAT 経由で画像を表示します。

tableau-mcp は、Tableau のファーストパーティ MCP サーバーです。 Tableau Cloud/Server の URL、サイト名、パーソナル アクセス トークンを使用して構成すると、エージェントは、CSV をチャットに貼り付けることなく、パブリッシュされたデータソースのクエリ、ワークブックのコンテンツの一覧表示と探索、ビュー画像の取得、自然言語データの質問に答えることができます。 npx、Heraku、Docker のデプロイをサポートします。

なぜ使うのか

主な機能

ライブデモ

実際の動作

tableau-mcp.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "tableau-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@tableau/mcp-server@latest"
      ],
      "env": {
        "SERVER": "https://your-server.tableau.com",
        "SITE_NAME": "your-site",
        "PAT_NAME": "claude-agent",
        "PAT_VALUE": "<personal-access-token>"
      }
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "tableau-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@tableau/mcp-server@latest"
      ],
      "env": {
        "SERVER": "https://your-server.tableau.com",
        "SITE_NAME": "your-site",
        "PAT_NAME": "claude-agent",
        "PAT_VALUE": "<personal-access-token>"
      }
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "tableau-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@tableau/mcp-server@latest"
      ],
      "env": {
        "SERVER": "https://your-server.tableau.com",
        "SITE_NAME": "your-site",
        "PAT_NAME": "claude-agent",
        "PAT_VALUE": "<personal-access-token>"
      }
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "tableau-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@tableau/mcp-server@latest"
      ],
      "env": {
        "SERVER": "https://your-server.tableau.com",
        "SITE_NAME": "your-site",
        "PAT_NAME": "claude-agent",
        "PAT_VALUE": "<personal-access-token>"
      }
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "tableau-mcp",
      "command": "npx",
      "args": [
        "-y",
        "@tableau/mcp-server@latest"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "tableau-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@tableau/mcp-server@latest"
        ]
      }
    }
  }
}

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

claude mcp add tableau-mcp -- npx -y @tableau/mcp-server@latest

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

ユースケース

実用的な使い方: Tableau MCP

公開されたデータソースに対してビジネス上の質問に答える

👤 チャットに住んでいるアナリストと運用担当者 ⏱ ~10 min beginner

使うタイミング: Tableau ダッシュボードで答えられる質問があるが、Tableau Desktop は開きたくない。

前提条件
  • Tableau クラウドまたはサーバー アカウント — アクセス権がない場合は、管理者にアクセス権を依頼してください
  • パーソナルアクセストークン — 「マイアカウント設定」→「個人アクセストークン」→「トークンの作成」
フロー
  1. データソースを見つける
    サイト「ops」に公開されているデータソースをリストします。✓ コピーしました
    → 名前とIDを含むデータソースの配列
  2. 質問してください
    「orders_fact」データソースから、前四半期の収益トップ 10 の製品は何でしたか?✓ コピーしました
    → データソースに存在するフィールドを参照する数値回答

結果: 管理された Tableau データに基づいた具体的な答え。

注意点
  • パブリッシュされたデータソースにないフィールドについて尋ねる — エージェントに最初にメタデータをリストさせてから、質問します。
組み合わせ: bigquery-server · postgres

Tableau ビューの画像をレポート ドキュメントに埋め込む

👤 週次レポートを作成する PM とアナリスト ⏱ ~5 min beginner

使うタイミング: Notion または Google ドキュメント内で Tableau グラフの最新のビューが必要です。

前提条件
  • ビュー URL またはそのサイト/ワークブック/ビュー パス — Tableau UI からコピーする
フロー
  1. 画像を取得する
    ワークブック「Exec Scorecard」から「週次収益」ビューの PNG を取得します。✓ コピーしました
    → インラインで返される画像
  2. 貼り付けます
    短いキャプションを付けて Notion のレポートに添付します。✓ コピーしました
    → 画像が必要な場所に表示されます

結果: スクリーンショットの手順なしで、常に最新の画像を表示します。

注意点
  • URL 内のフィルターが失われる — ツール呼び出しでフィルターパラメータを明示的に渡します
組み合わせ: notion

ワークブックの所有権と古さを監査する

👤 プラットフォーム/データ ガバナンス チーム ⏱ ~25 min intermediate

使うタイミング: アクセスレビューの前に、騒がしいサイトをクリーンアップしています。

フロー
  1. すべてのワークブックを所有者と最終表示日とともにリストします。
    サイト「ops」上のワークブックを所有者、last_viewed、プロジェクトとともに列挙します。✓ コピーしました
    → 最近の順に並べ替え可能なワークブックのテーブル
  2. 死亡者にフラグを立てる
    180 日以上閲覧されていないワークブックをアーカイブの候補としてマークします。✓ コピーしました
    → 所有者に渡すことができるフィルタリングされたリスト

結果: 実際の使用状況データに裏付けられた、具体的なアーカイブ対象リスト。

組み合わせ: linear

Tableau 番号をウェアハウスと直接照合する

👤 不一致をデバッグするデータ エンジニア ⏱ ~20 min intermediate

使うタイミング: ダッシュボードが財務チームのスプレッドシートと一致しないため、どこが一致しているかを調べたいと考えています。

フロー
  1. Tableau の回答を読む
    Tableau は先月の収益はいくらだったと述べていますか?✓ コピーしました
    → 単一の数値 + データソース + 抽出/ライブ情報
  2. ウェアハウスで同じ集計を実行する
    BigQuery で同等の SQL を実行し、diff を実行します。✓ コピーしました
    → 両方の数値を並べて + デルタの説明

結果: ドリフト (古いものを抽出? フィルター? 結合?) をすぐに見つけます。

注意点
  • ライブと抽出を意識せずに比較する — エージェントは番号の前にデータソースの種類を出力する必要があります
組み合わせ: bigquery-server

組み合わせ

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

tableau-mcp + bigquery-server

Tableau メトリクスをウェアハウス SQL と照合する

Tableau の値とウェアハウスの SQL 回答を取得し、それらを比較します。✓ コピーしました
tableau-mcp + postgres

運用DBに対する同じワークフロー

order_fact 抽出が今日のライブ注文テーブルと一致しない理由を確認してください。✓ コピーしました
tableau-mcp + notion

週次レポートにライブビュー画像を埋め込む

最新の週間収益 PNG を Notion レポートの先頭に配置します。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
list_datasources site?: str 質問する前にどのようなデータが公開されているかを確認する 1 API call
query_datasource datasource_id: str, question: str 自然言語データの質問に答える 1 API call + VizQL
list_workbooks site?: str, project?: str ワークブックのインベントリを参照または監査する 1 API call
get_view_image view_id: str, filters?: map グラフの画像をドキュメントまたは返信に含めます 1 API call
list_views workbook_id: str ワークブック内のグラフを列挙する 1 API call

コストと制限

運用コスト

APIクォータ
Tableau Cloud/Server REST API の制限による制限
呼び出しあたりのトークン
メタデータとしては小さい。 ビュー画像はトークンではなくバイトです
金額
無料 — Tableau ライセンスにはすでに適用されています
ヒント
list_workbooks / list_datasources の結果を監査用にキャッシュします。 在庫は毎分変化するわけではありません。

セキュリティ

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

認証情報の保管: PAT_VALUE は環境変数に属します。 決してコミットしないでください。 リークした場合は、Tableau UI から回転します。
データ送信先: すべてのトラフィックは、構成された Tableau SERVER URL に送信されます。 第三者からの通話はありません。

トラブルシューティング

よくあるエラーと対処法

401 / サインインに失敗しました

PAT の有効期限が切れているか、サイトが一致しません。 PAT を再生成し、SITE_NAME がサイト URL セグメントと一致することを確認します。

確認: Log into Tableau and look at the URL: /site/<SITE_NAME>/...
データソースが見つかりません

未公開であるか、別のプロジェクトに存在している可能性があります。 list_datasources を呼び出して、トークンに何が表示されているかを確認します。

確認: list_datasources with no filter
画像を見る 返品禁止

PAT 所有者には、そのワークブックに対する表示権限がありません。 管理者に読み取りを許可してもらいます。

確認: Open the view URL in a browser with the same user

代替案

Tableau MCP 他との比較

代替案代わりに使う場面トレードオフ
bigquery-server管理されたセマンティック データソースではなく、生のウェアハウス SQL が必要ですTableau が所有する指標はなくても、より強力な機能を提供
postgres信頼できる情報源は BI ツールではなく、運用中の Postgres ですVizQL レイヤーがありません

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

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