dbt-insight-mcp-server

RyutoYoda/dbt-insight-mcp-server

3.2

If you are the rightful owner of dbt-insight-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

dbt-insight-mcp-server is a Model Context Protocol (MCP) server designed to manage and execute dbt Cloud jobs and projects via Claude.

Tools
5
Resources
0
Prompts
0

dbt-insight-mcp-server

dbt CloudのジョブやプロジェクトをClaude経由で管理・実行するためのModel Context Protocol (MCP) サーバーです。ジョブの検索、実行履歴確認、ジョブのトリガーなどが可能です。

使用API: dbt Cloud API v2(ジョブ・ラン操作用)
Note: API v3は管理操作用のため、実行操作にはv2を使用

安全機能

  • ガードレール: 危険な操作には必ず確認が必要
  • 段階的確認: runtest操作は明示的な確認なしには実行されません
  • 読み取り専用優先: 検索とプレビューは安全な読み取り専用操作
  • 操作の可視化: 実行される操作の詳細を事前に表示

機能

読み取り専用操作(確認不要)

  • プロジェクト検索: ジョブやプロジェクトの検索
  • ジョブ一覧: dbtジョブの一覧表示
  • 実行履歴: 最近のジョブ実行履歴の確認
  • プロジェクト一覧: 利用可能なプロジェクトの表示

実行操作(確認必須)

  • ジョブ実行: dbt Cloudジョブのトリガー(データ変更・コスト発生の可能性)

利用可能なツール

1. search_in_project

プロジェクト内のジョブを検索します。

パラメータ:

  • query: 検索クエリ(ジョブ名や説明)
  • project_id: プロジェクトID

2. get_recent_runs

最近のジョブ実行履歴を取得します。

パラメータ:

  • project_id: プロジェクトID
  • limit: 取得件数(1-50、デフォルト: 10)

3. list_projects

利用可能なdbtプロジェクトを一覧表示します。

4. list_jobs

dbtジョブを一覧表示します。

パラメータ:

  • project_id: フィルターするプロジェクトID

5. trigger_job_with_confirmation

注意: dbt Cloudジョブを実行します(データ変更・コスト発生の可能性)

パラメータ:

  • job_id: 実行するジョブID
  • cause: 実行理由(デフォルト: "Triggered via MCP")
  • confirm_execution: 必ずtrueに設定して確認

インストール

  1. このリポジトリをクローン:
git clone https://github.com/yourusername/dbt-insight-mcp-server.git
cd dbt-insight-mcp-server
  1. 環境変数を設定:
cp .env.example .env
# .envファイルを編集してdbt Cloudの接続情報を入力
  1. セットアップスクリプトを実行:
./setup.sh

設定

環境変数

.envファイルに以下の設定が必要です:

# dbt Cloud API Token (必須)
DBT_API_TOKEN=your-dbt-api-token-here

# dbt Cloud Account ID (必須)
DBT_ACCOUNT_ID=your-account-id-here

# dbt Cloud Base URL (オプション)
DBT_BASE_URL=https://cloud.getdbt.com

Claude Desktop設定

Claude Desktop設定ファイルに以下を追加してください:

{
  "mcpServers": {
    "dbt-insight": {
      "command": "/path/to/dbt-insight-mcp-server/venv/bin/python",
      "args": ["/path/to/dbt-insight-mcp-server/server.py"]
    }
  }
}

dbt Cloud APIトークンの取得

  1. dbt Cloudにログイン
  2. Account Settings → API Access
  3. "Generate New Token"をクリック
  4. 適切な権限を設定(Account AdminまたはProject権限)
  5. トークンをコピーして.envファイルに設定

地域別設定

日本インスタンス

DBT_BASE_URL=https://your-instance.jp1.dbt.com
DBT_ACCOUNT_ID=your-account-id
DBT_API_TOKEN=dbtc_your-token

US インスタンス

DBT_BASE_URL=https://cloud.getdbt.com
DBT_ACCOUNT_ID=your-account-id
DBT_API_TOKEN=dbtc_your-token

安全性に関する重要な注意

このMCPサーバーは以下の安全機能を提供します:

  1. 確認必須操作: runtestは明示的な確認なしには実行されません
  2. 操作の透明性: 実行前に操作の詳細が表示されます
  3. 読み取り専用優先: 検索やプレビューは安全な読み取り専用操作
  4. ガードレール: 危険な操作をブロックし、確認を求めます

重要: confirm_execution=trueを設定する前に、操作の影響を必ず理解してください。

使用例

基本的な操作

# ジョブの一覧を表示
"プロジェクトのジョブ一覧を見せて"

# 特定のジョブを検索
"buildというジョブを検索して"

# 最近の実行履歴を確認
"最近のジョブ実行履歴を教えて"

# プロジェクト一覧を表示
"利用可能なプロジェクトを教えて"

ジョブ実行(危険操作)

# 確認が必要な操作
"sample_jobを実行して(ジョブID: 123456)"
→ 最初は確認なしでブロックされます

# 確認付きで実行
"sample_jobを実行して(confirm_execution: true)"
→ 実際にジョブが実行されます

必要条件

  • Python 3.10+
  • dbt Cloud アカウント
  • 有効なdbt Cloud APIトークン
  • Claude Desktop

ライセンス

MIT License