Redash APIのMCPサーバーで、クエリの実行、結果の取得などの機能を提供します。
-
execute_query_and_wait- SQLクエリを実行し、結果が利用可能になるまで待機します
- 入力パラメータ:
query(文字列): 実行するSQLクエリdata_source_id(数値, 任意): クエリを実行するデータソースのIDmax_age(数値, 任意): キャッシュ有効期限(秒)
- 戻り値: 利用可能になったクエリ結果
-
list_data_sources- 利用可能なすべてのデータソースを一覧表示します
- 入力パラメータ: なし
- 戻り値: データソースの配列
-
get_data_source- 特定のデータソースに関する詳細を取得します
- 入力パラメータ:
data_source_id(数値): データソースのID
- 戻り値: データソースの詳細情報
-
get_query- クエリIDにより保存済みクエリの詳細を取得します(SQLテキスト含む)
- 入力パラメータ:
query_id(数値): クエリID
- 戻り値: 保存済みクエリの詳細情報
-
search_queries- キーワードで保存済みクエリを検索します
- 入力パラメータ:
q(文字列): 検索キーワードpage(数値, 任意): ページ番号page_size(数値, 任意): ページサイズ
- 戻り値: 検索にマッチした保存済みクエリの一覧
-
get_query_result- クエリ結果IDにより既存のクエリ結果を取得します(再実行なし)
- 入力パラメータ:
query_result_id(数値): クエリ結果ID
- 戻り値: クエリ結果
-
get_saved_query_result- クエリIDにより保存済みクエリの最新キャッシュ結果を取得します
- 入力パラメータ:
query_id(数値): クエリID
- 戻り値: 保存済みクエリの最新キャッシュ結果
Redash APIキーを取得してください。
- Redashにログイン
- 「Edit Profile」をクリック
- APIキーをコピーする
以下の環境変数が必要です:
REDASH_API_KEY: RedashのAPIキーREDASH_BASE_URL: RedashのURL(例: https://redash.example.com)DATA_SOURCE_ID(任意): デフォルトのデータソースID(execute_query_and_waitでdata_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 link3つの起動モードに対応しています。
| stdio(デフォルト) | Streamable HTTP | SSE(非推奨) | |
|---|---|---|---|
| 起動フラグ | なし | --streamable-http |
--sse |
| 通信方式 | 標準入出力 | HTTP | HTTP(Server-Sent Events) |
| ポート | 不要 | デフォルト 3000 | デフォルト 3000 |
| エンドポイント | - | POST/GET/DELETE /mcp |
GET /sse, POST /messages |
| 主な用途 | ローカル利用 | リモート・複数クライアント共有 | レガシー互換 |
標準入出力で通信するモードです。MCPクライアントからローカルで利用する場合はこちらを使用します。
npm run build
node dist/index.js開発時は
npm run devでTypeScriptを直接実行できます。
npm link 済みであれば、npxで直接実行できます。
npx mcp-redashClaude 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 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"
}
}
}
}HTTPサーバーとして起動し、Streamable HTTPプロトコルで通信するモードです。Webクライアントやリモート接続に適しています。
.env で PORT REDASH_BASE_URL REDASH_API_KEY を設定してから起動してください。
npm run build
node dist/index.js --streamable-http開発時は
npm run dev -- --streamable-httpでTypeScriptを直接実行できます。
docker compose up -d
.envのPORTでポートを変更できます(デフォルト: 3000)。
エンドポイント:
POST /mcp- リクエストの送信GET /mcp- SSEストリームの確立(サーバー → クライアント通知用)DELETE /mcp- セッションの終了
Claude Codeの .mcp.json 設定例:
{
"mcpServers": {
"redash": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}Codexのconfig.toml 設定例
[mcp_servers.redash]
type = "url"
url = "http://localhost:3000/mcp"非推奨: 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"
}
}
}