io.github.seob717/redash-mcp
Connect Redash to Claude -- query data, manage dashboards, and run SQL with natural language.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
redash-mcpclaude mcp add redash-mcp -e 'REDASH_URL=<REDASH_URL>' -e 'REDASH_API_KEY=<your redash_api_key>' -e 'REDASH_SAFETY_MODE=warn' -e 'REDASH_SAFETY_DISABLE_PII=false' -e 'REDASH_SAFETY_DISABLE_COST=false' -- npx -y redash-mcp@3.5.0
{
"mcpServers": {
"redash-mcp": {
"command": "npx",
"args": [
"-y",
"redash-mcp@3.5.0"
],
"env": {
"REDASH_URL": "<REDASH_URL>",
"REDASH_API_KEY": "<your redash_api_key>",
"REDASH_SAFETY_MODE": "warn",
"REDASH_SAFETY_DISABLE_PII": "false",
"REDASH_SAFETY_DISABLE_COST": "false"
}
}
}
}
Environment variables
REDASH_URLrequired Your Redash instance URL (e.g. https://redash.example.com)REDASH_API_KEYrequired secret Your Redash user API key (found in Settings > Account)REDASH_SAFETY_MODESQL safety mode: 'strict' blocks risky queries, 'warn' (default) returns warnings, 'off' disables guards (not recommended).REDASH_SAFETY_DISABLE_PIISet to 'true' to disable the PII column guard. Not recommended.REDASH_SAFETY_DISABLE_COSTSet to 'true' to disable the query cost guard. Not recommended.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
redash-mcp
MCP server that connects Redash to Claude, Cursor, Gemini CLI, Codex, and any MCP client — query data, build charts and dashboards, and run SQL with natural language.
Install · Tools · Env · Examples · Troubleshooting · Privacy
What's new in 3.5
create_visualization— create line / column / area / pie / scatter charts or counters on a saved query. If the query has been run, column names are checked against its latest result, so a typo returns an error instead of an empty chart.- Dashboard auto-layout —
add_widgetplaces new widgets below existing ones; half-width widgets pair up side by side (previously they all overlapped at the top-left).
Full history: Releases
Why redash-mcp?
Built for letting an LLM touch production data safely:
- 🛡️ SQL Safety Guard — blocks
DROP/TRUNCATE/ALTERandDELETE/UPDATEwithoutWHERE;strict/warn/offmodes, PII detection, and auto-LIMIT. - 🧠 BIRD Smart Query — analyzes the question, auto-selects tables, and guides SQL generation (BIRD text-to-SQL). Optional Claude Haiku fallback.
- 📊 End-to-end — query, save, chart, dashboards, and alerts — 25 tools.
- ⚡ One-command setup —
npx redash-mcp setupconfigures Claude Desktop / Claude Code / Cursor / Gemini CLI / Codex CLI. - 🔒 Fully local — talks directly to your Redash. API key and results never leave your machine.
Installation
Requirements: Node.js 20+ and a Redash API key (Redash → Profile → Edit Profile → API Key).
npx redash-mcp setup
The wizard configures any combination of Claude Desktop, Claude Code, Cursor, Gemini CLI, and Codex CLI.
Alternatively, install Node.js, Claude Desktop, and the MCP config in one go:
curl -fsSL https://raw.githubusercontent.com/seob717/redash-mcp/main/install.sh | bash
Manual setup
- Claude Desktop —
~/Library/Application Support/Claude/claude_desktop_config.json - Cursor —
~/.cursor/mcp.json(create it if missing)
{
"mcpServers": {
"redash-mcp": {
"command": "npx",
"args": ["-y", "redash-mcp"],
"env": {
"REDASH_URL": "https://your-redash-instance.com",
"REDASH_API_KEY": "your_api_key_here"
}
}
}
}
Fully quit and restart Claude Desktop after saving.
Claude Code
claude mcp add --scope user redash-mcp \
-e REDASH_URL=https://your-redash-instance.com \
-e REDASH_API_KEY=your_api_key_here \
-- npx -y redash-mcp
Gemini CLI
gemini mcp add -s user \
-e REDASH_URL=https://your-redash-instance.com \
-e REDASH_API_KEY=your_api_key_here \
redash-mcp npx -y redash-mcp
Codex CLI
codex mcp add redash-mcp \
--env REDASH_URL=https://your-redash-instance.com \
--env REDASH_API_KEY=your_api_key_here \
-- npx -y redash-mcp
Tools
| Category | Tools |
|---|---|
| Data sources & schema | list_data_sources, list_tables, get_table_columns |
| Query | run_query — execute SQL and return results |
| Saved queries | list_queries, get_query, get_query_result (with parameter values), create_query, update_query, fork_query, archive_query |
| Charts | create_visualization — line / column / area / pie / scatter / counter |
| Dashboards | list_dashboards, get_dashboard, create_dashboard, add_widget (auto-layout) |
| Alerts | list_alerts, get_alert, create_alert |
| Smart Query (BIRD) | smart_query, get_bird_config, evaluate_queries, submit_query_feedback, manage_few_shot_examples, manage_keyword_map |
SQL Safety Guard
Applies to ad-hoc SQL run through run_query. Saved queries executed with get_query_result are not checked, so give the Redash data source a read-only DB account.
- Always blocked (unless
REDASH_SAFETY_MODE=off):DROP,TRUNCATE,ALTER TABLE,GRANT/REVOKE,DELETE/UPDATEwithoutWHERE - Warned (
warn) / blocked (strict):SELECT *, queries withoutWHEREorLIMIT, PII column access - Auto-LIMIT: appends
LIMIT NwhenREDASH_AUTO_LIMITis set
Details: docs/sql-safety-guard.md. Query results are also cached in memory (see REDASH_MCP_CACHE_* below).
Environment Variables
| Variable | Default | Description |
|---|---|---|
REDASH_URL | required | Redash instance URL (e.g. https://redash.example.com) |
REDASH_API_KEY | required | Redash user API key |
REDASH_SAFETY_MODE | warn | SQL safety level: off / warn / strict |
REDASH_SAFETY_DISABLE_PII | false | Disable PII detection |
REDASH_SAFETY_DISABLE_COST | false | Disable cost warnings |
REDASH_AUTO_LIMIT | 0 | Auto-append LIMIT N to queries without one (0 = off) |
REDASH_DEFAULT_MAX_AGE | 0 | Redash cache TTL in seconds |
REDASH_MCP_CACHE_TTL | 300 | MCP query cache TTL in seconds (0 = off) |
REDASH_MCP_CACHE_MAX_MB | 50 | Max memory for the MCP query cache, in MB |
REDASH_MCP_CONFIG_DIR | ~/.redash-mcp | Where BIRD few-shot, feedback, eval, and keyword-map data live |
REDASH_BIRD_ENABLED | true | false disables the BIRD smart query tools |
REDASH_HTTP_TIMEOUT_SECS | 30 | Per-request HTTP timeout against the Redash API |
ANTHROPIC_API_KEY | — | Enables the Claude Haiku fallback for table selection in smart_query |
Usage Examples
Just ask in natural language:
- "How many new users signed up this month?" →
smart_querypicks the tables →run_query - "What percentage of last week's new users made a purchase?" →
smart_queryguides the JOIN →run_query - "Create an alert when daily signups drop below 100" →
create_alert
Build a dashboard: "Save a monthly revenue query, chart it as a line, and put it on a new Revenue dashboard."
create_query— save "Monthly Revenue"get_query_result— run it once so the chart columns can be checkedcreate_visualization—type: "line",x_column: "month",y_columns: ["revenue"]create_dashboard— create "Revenue"add_widget— place the chart; more widgets stack below or pair side by side
Troubleshooting
| Symptom | Fix |
|---|---|
npx not found (macOS GUI apps) | Run which npx and use the full path as command |
| "Authentication failed" | Check REDASH_API_KEY — it must be a user API key |
| "Unable to connect to the Redash server" | Check REDASH_URL (base URL with https://, without /api) and network/VPN |
| "The query timed out" | Simplify the query or pass a larger timeout_secs to run_query / get_query_result; raise REDASH_HTTP_TIMEOUT_SECS for slow API responses |
| Query blocked by the safety guard | Add WHERE/LIMIT; in strict mode, switch to REDASH_SAFETY_MODE=warn to get warnings instead |
| Tools don't show up | Fully restart the client after editing its config |
Development
npm install
npm run dev # run from source (tsx)
npm test # vitest
npm run build # typecheck + bundle to dist/
Privacy Policy
redash-mcp is a local MCP server that talks directly to your Redash instance. No intermediate servers are involved.
| Item | Description |
|---|---|
| Redash API Key | Stored only as a local environment variable (REDASH_API_KEY). Never transmitted externally. |
| Query content & results | Delivered only to the local MCP client via the MCP protocol. |
| BIRD SQL settings | Stored only in local files (~/.redash-mcp/): few-shot examples, keyword maps, and feedback. |
| LLM Fallback | Only when ANTHROPIC_API_KEY is set, smart_query sends table names, column names, and the question text to the Anthropic API. Query results and row data are never transmitted. |
We do not sell or share user data with third parties.
Retention: config files stay in ~/.redash-mcp/ until you delete them; the query cache is in-memory and cleared on shutdown; the schema cache is in-memory with a 10-minute TTL.
Contact: inquiries and security reports via GitHub Issues.
Disclaimer
redash-mcp is an unofficial, community-built integration and is not affiliated with, endorsed by, or sponsored by Redash. "Redash" is a trademark of its respective owners and is used here only to describe compatibility. This project communicates with Redash solely through its public REST API.
License
MIT
Frequently asked questions
What is io.github.seob717/redash-mcp?
Connect Redash to Claude -- query data, manage dashboards, and run SQL with natural language.
How do I install io.github.seob717/redash-mcp?
It runs on your machine. In Claude Code: claude mcp add redash-mcp -e 'REDASH_URL=<REDASH_URL>' -e 'REDASH_API_KEY=<your redash_api_key>' -e 'REDASH_SAFETY_MODE=warn' -e 'REDASH_SAFETY_DISABLE_PII=false' -e 'REDASH_SAFETY_DISABLE_COST=false' -- npx -y redash-mcp@3.5.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.seob717/redash-mcp need an API key?
Yes. It expects REDASH_URL, REDASH_API_KEY, which you set in its configuration.
Is io.github.seob717/redash-mcp open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.seob717/redash-mcp?
It is published by seob717. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.