Redash

Execute queries and retrieve results using the Redash API.

Redash MCPサーバー

Redash APIのMCPサーバーで、クエリの実行、結果の取得などの機能を提供します。

ツール

  1. execute_query_and_wait

    • SQLクエリを実行し、結果が利用可能になるまで待機します
    • 入力パラメータ:
      • query (文字列): 実行するSQLクエリ
      • data_source_id (数値, 任意): クエリを実行するデータソースのID
      • max_age (数値, 任意): キャッシュ有効期限(秒)
    • 戻り値: 利用可能になったクエリ結果
  2. list_data_sources

    • 利用可能なすべてのデータソースを一覧表示します
    • 入力パラメータ: なし
    • 戻り値: データソースの配列
  3. get_data_source

    • 特定のデータソースに関する詳細を取得します
    • 入力パラメータ:
      • data_source_id (数値): データソースのID
    • 戻り値: データソースの詳細情報
  4. get_query

    • クエリIDにより保存済みクエリの詳細を取得します(SQLテキスト含む)
    • 入力パラメータ:
      • query_id (数値): クエリID
    • 戻り値: 保存済みクエリの詳細情報
  5. search_queries

    • キーワードで保存済みクエリを検索します
    • 入力パラメータ:
      • q (文字列): 検索キーワード
      • page (数値, 任意): ページ番号
      • page_size (数値, 任意): ページサイズ
    • 戻り値: 検索にマッチした保存済みクエリの一覧
  6. get_query_result

    • クエリ結果IDにより既存のクエリ結果を取得します(再実行なし)
    • 入力パラメータ:
      • query_result_id (数値): クエリ結果ID
    • 戻り値: クエリ結果
  7. get_saved_query_result

    • クエリIDにより保存済みクエリの最新キャッシュ結果を取得します
    • 入力パラメータ:
      • query_id (数値): クエリID
    • 戻り値: 保存済みクエリの最新キャッシュ結果

セットアップ

APIキー

Redash APIキーを取得してください。

  1. Redashにログイン
  2. 「Edit Profile」をクリック
  3. APIキーをコピーする

環境変数

以下の環境変数が必要です:

  • REDASH_API_KEY: RedashのAPIキー
  • REDASH_BASE_URL: RedashのURL(例: https://redash.example.com)
  • DATA_SOURCE_ID(任意): デフォルトのデータソースID(execute_query_and_waitdata_source_id を省略した場合に使用)
  • PORT(任意): HTTPサーバーのポート番号(デフォルト: 3000、Streamable HTTP / SSE で使用)

インストール

git clone https://github.com/yuki9541134/mcp-redash.git
cd mcp-redash
npm install
npm run build
npm link

起動モード

3つの起動モードに対応しています。

stdio(デフォルト)Streamable HTTPSSE(非推奨)
起動フラグなし--streamable-http--sse
通信方式標準入出力HTTPHTTP(Server-Sent Events)
ポート不要デフォルト 3000デフォルト 3000
エンドポイント-POST/GET/DELETE /mcpGET /sse, POST /messages
主な用途ローカル利用リモート・複数クライアント共有レガシー互換

stdio(デフォルト)

標準入出力で通信するモードです。MCPクライアントからローカルで利用する場合はこちらを使用します。

npm run build
node dist/index.js

開発時は npm run dev でTypeScriptを直接実行できます。

npxで利用する場合

npm link 済みであれば、npxで直接実行できます。

npx mcp-redash

Claude Codeの .mcp.json 設定例:

{
  "mcpServers": {
    "redash": {
      "type": "stdio",
      "command": "npx",
      "args": ["mcp-redash"],
      "env": {
        "REDASH_API_KEY": "<YOUR_API_KEY>",
        "REDASH_BASE_URL": "https://redash.example.com"
      }
    }
  }
}

Dockerで利用する場合

docker build -t yuki9541134/mcp-redash .

Claude Codeの .mcp.json 設定例:

{
  "mcpServers": {
    "redash": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "REDASH_API_KEY",
        "-e", "REDASH_BASE_URL",
        "yuki9541134/mcp-redash"
      ],
      "env": {
        "REDASH_API_KEY": "<YOUR_API_KEY>",
        "REDASH_BASE_URL": "https://redash.example.com"
      }
    }
  }
}

Streamable HTTP

HTTPサーバーとして起動し、Streamable HTTPプロトコルで通信するモードです。Webクライアントやリモート接続に適しています。

npm run build
node dist/index.js --streamable-http

開発時は npm run dev -- --streamable-http でTypeScriptを直接実行できます。

Docker Compose

docker compose up -d

.envPORT でポートを変更できます(デフォルト: 3000)。

エンドポイント:

  • POST /mcp - リクエストの送信
  • GET /mcp - SSEストリームの確立(サーバー → クライアント通知用)
  • DELETE /mcp - セッションの終了

Claude Codeの .mcp.json 設定例:

{
  "mcpServers": {
    "redash": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

SSE(非推奨)

非推奨: SSEモードはレガシー互換のために残されています。新規利用にはStreamable HTTPモードを推奨します。

HTTPサーバーとして起動し、Server-Sent Events (SSE) で通信するモードです。

npm run build
node dist/index.js --sse

開発時は npm run dev -- --sse でTypeScriptを直接実行できます。

エンドポイント:

  • GET /sse - SSE接続の確立
  • POST /messages - メッセージの送信

Claude Codeの .mcp.json 設定例:

{
  "mcpServers": {
    "redash": {
      "type": "sse",
      "url": "http://localhost:3000/sse"
    }
  }
}

Related Servers