Skip to main content

Model Context Protocol (MCP) server for Redash - manage queries, dashboards, and visualizations

Project description

redash-mcp

Model Context Protocol (MCP) server for Redash - manage queries, dashboards, and visualizations through AI assistants like Claude.

Features

  • 7 tools, 30 actions - compressed for minimal context usage
  • Full query management (list, search, create, update, archive, delete, run, adhoc, export, schedule)
  • Dashboard management (list, get, create, publish, delete)
  • Widget management with positioning (add, move, delete)
  • Alert management (list, get, create, update, delete)
  • Visualization creation (pie, line, bar, counter charts)
  • Data source listing

Installation

pip install redash-mcp

Or with uvx:

uvx redash-mcp

Configuration

Environment Variables

Variable Required Description
REDASH_URL Yes Your Redash instance URL (e.g., https://redash.example.com)
REDASH_API_KEY Yes Your Redash API key
REDASH_TIMEOUT No Request timeout in seconds (default: 30)

Claude Code

Add to ~/.claude.json (user-level config):

{
  "mcpServers": {
    "redash": {
      "type": "stdio",
      "command": "uvx",
      "args": ["redash-mcp"],
      "env": {
        "REDASH_URL": "https://your-redash-instance.com",
        "REDASH_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "redash": {
      "command": "uvx",
      "args": ["redash-mcp"],
      "env": {
        "REDASH_URL": "https://your-redash-instance.com",
        "REDASH_API_KEY": "your-api-key"
      }
    }
  }
}

Or if installed via pip:

{
  "mcpServers": {
    "redash": {
      "command": "redash-mcp",
      "env": {
        "REDASH_URL": "https://your-redash-instance.com",
        "REDASH_API_KEY": "your-api-key"
      }
    }
  }
}

Tools

redash_data_sources

List all available data sources.

redash_query

Manage Redash queries.

Action Parameters Description
list page List all queries (paginated)
search q Search queries by name
get id Get query details
create name, query, data_source_id Create new query
update id, query?, name? Update existing query
archive id Archive (soft-delete) query
delete id Permanently delete query
run id, timeout? Execute query and wait for results
adhoc query, data_source_id Execute SQL without saving
export id, path Export query results to file (.csv or .json)
schedule id, interval, until? Schedule query execution (interval in seconds)

redash_dashboard

Manage Redash dashboards.

Action Parameters Description
list page List all dashboards
get id Get dashboard with widgets
create name Create new dashboard
publish id Publish dashboard (remove draft)
delete id Delete dashboard

redash_widget

Manage dashboard widgets.

Action Parameters Description
add dashboard_id, viz_id, col?, row?, sizeX?, sizeY? Add visualization with optional position
move id, col?, row?, sizeX?, sizeY? Reposition/resize a widget
delete id Remove widget from dashboard

redash_alert

Manage query alerts.

Action Parameters Description
list List all alerts
get id Get alert details
create query_id, name, column, op, value, rearm? Create alert on query result
update id, name?, rearm? Update alert settings
delete id Delete alert

redash_viz

Create visualizations.

Type Parameters Description
pie query_id, name, x, y Pie chart
line query_id, name, x, y, datetime? Line chart
bar query_id, name, x, y, stacked? Bar chart
counter query_id, name, x, suffix? Counter/KPI

Note: For multiple Y columns, pass comma-separated values: y="count,total,avg"

Examples

Create a dashboard with visualizations

1. redash_data_sources() → get data_source_id
2. redash_query(action="create", name="Daily Stats", query="SELECT ...", data_source_id=1)
3. redash_viz(type="line", query_id=123, name="Trend", x="date", y="count")
4. redash_dashboard(action="create", name="My Dashboard")
5. redash_widget(action="add", dashboard_id=456, viz_id=789)
6. redash_dashboard(action="publish", id=456)

Run ad-hoc query

redash_query(action="adhoc", query="SELECT COUNT(*) FROM users", data_source_id=1)

Export query results

redash_query(action="export", id=123, path="/tmp/results.csv")
redash_query(action="export", id=123, path="/tmp/results.json")

Search and update query

redash_query(action="search", q="daily")
redash_query(action="update", id=123, query="SELECT ... WHERE date > NOW() - INTERVAL '7 days'")

Python Library Usage

You can also use redash-mcp as a Python library:

import os
os.environ["REDASH_URL"] = "https://your-redash.com"
os.environ["REDASH_API_KEY"] = "your-key"

from redash_mcp import (
    list_queries, create_query, run_query,
    create_dashboard, publish_dashboard,
    line, bar, pie, counter,
    add_widget
)

# Create query
q = create_query("My Query", "SELECT * FROM events", data_source_id=1)

# Create visualization
viz = line(q["id"], "Events Trend", x="date", y=["count"])

# Create dashboard and add widget
d = create_dashboard("My Dashboard")
add_widget(d["id"], viz["id"])
publish_dashboard(d["id"])

Why redash-mcp?

  • Context efficient - Only 7 tools (~500 tokens) with 30 actions
  • Full-featured - Queries, dashboards, widgets, and visualizations
  • Production ready - Proper error handling and timeouts
  • Dual use - Works as MCP server and Python library

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

redash_mcp-0.2.2.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

redash_mcp-0.2.2-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file redash_mcp-0.2.2.tar.gz.

File metadata

  • Download URL: redash_mcp-0.2.2.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.8

File hashes

Hashes for redash_mcp-0.2.2.tar.gz
Algorithm Hash digest
SHA256 a1a23edce56ea0cb4c3bdb40e7d0541b7aef58c8c9bd41c2b3eb119bbef6d285
MD5 6edd18190f96db74c6fe2f59d0378991
BLAKE2b-256 d0102cbc217e726723c390c50915568d466aa254a7e0c9f95a0af09a61896bb2

See more details on using hashes here.

File details

Details for the file redash_mcp-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: redash_mcp-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.8

File hashes

Hashes for redash_mcp-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 73f84b63d4f5a2a4a2a4637d7355d9ed9e42761a5a5ec84e047ccd066642b585
MD5 c1168db0c98f5abb5a3c776213ee7cd7
BLAKE2b-256 8170533ca6aa8df07e6a5fc2c11b2bbee452b3b504d1459272d4d899dfc12046

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page