redash-mcp
Manage Redash queries, dashboards, widgets, alerts, visualizations, and data sources through this MCP server.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@redash-mcplist my recent queries"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: redash-mcp
Installation
pip install redash-mcpOr with uvx:
uvx redash-mcpConfiguration
Environment Variables
Variable | Required | Description |
| Yes | Your Redash instance URL (e.g., |
| Yes | Your Redash API key |
| 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 all queries (paginated) |
|
| Search queries by name |
|
| Get query details |
|
| Create new query |
|
| Update existing query |
|
| Archive (soft-delete) query |
|
| Permanently delete query |
|
| Execute query and wait for results |
|
| Execute SQL without saving |
|
| Export query results to file (.csv or .json) |
|
| Schedule query execution (interval in seconds) |
redash_dashboard
Manage Redash dashboards.
Action | Parameters | Description |
|
| List all dashboards |
|
| Get dashboard with widgets |
|
| Create new dashboard |
|
| Publish dashboard (remove draft) |
|
| Delete dashboard |
redash_widget
Manage dashboard widgets.
Action | Parameters | Description |
|
| Add visualization with optional position |
|
| Reposition/resize a widget |
|
| Remove widget from dashboard |
redash_alert
Manage query alerts.
Action | Parameters | Description |
| List all alerts | |
|
| Get alert details |
|
| Create alert on query result |
|
| Update alert settings |
|
| Delete alert |
redash_viz
Create visualizations.
Type | Parameters | Description |
|
| Pie chart |
|
| Line chart |
|
| Bar chart |
|
| 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
Available Tools
6 toolsredash_alertB
Manage Redash alerts. Actions: list, get, create, update, delete
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| id | No | Alert ID (for get/update/delete) | |
| query_id | No | Query ID (for create) | |
| name | No | Alert name (for create/update) | |
| column | No | Column to monitor (for create) | |
| op | No | Condition operator (for create) | |
| value | No | Threshold value (for create) | |
| rearm | No | Seconds before re-triggering (for create/update) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the brief description does not disclose behavioral traits such as authentication requirements, rate limits, side effects of delete/update, or error handling. For a multi-action tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, front-loading the core purpose and action list. It is efficient with words, but could benefit from brief structuring around actions for improved readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and multiple actions, the description lacks context on return values for each action, prerequisites, or default behavior. Schema coverage helps but the description alone is incomplete for safe autonomous use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (88%), so the parameter semantics are mostly documented by the schema. The description adds no extra parameter information beyond repeating the action names, which are already enumerated in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Manage Redash alerts' and lists all five actions (list, get, create, update, delete), clearly indicating the tool's purpose and distinguishing it from sibling tools that manage other Redash entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only lists possible actions without providing guidance on when to use each action or when to prefer this tool over alternatives. No context is given for selection, leaving the agent to infer from schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redash_dashboardC
Manage Redash dashboards. Actions: list, get, create, publish, delete
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| id | No | Dashboard ID | |
| name | No | Dashboard name (for create) | |
| page | No | ||
| page_size | No | Results per page (default 10, max 250) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as destructive effects (e.g., delete), authorization needs, or rate limits. The actions imply different behaviors but are not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and concise, but it lacks structure. It is a single sentence listing actions, which is efficient yet insufficient for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and no behavioral details, the description is incomplete. It does not explain return values, action-specific requirements, or interactions between parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds little beyond the schema: it lists actions but does not clarify which parameters apply to each action (e.g., id required for get, publish, delete). With 60% schema description coverage, the description does not compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it manages Redash dashboards and lists five specific actions (list, get, create, publish, delete), clearly indicating the verb and resource. It distinguishes from sibling tools (redash_alert, etc.) by focusing on dashboards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or when not to use it. The description only enumerates actions without clarifying contexts or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redash_data_sourcesB
List all available data sources
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, pagination, or whether it returns metadata. The tool is a simple list but lacks necessary transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the action and resource. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, output schema, or annotations, the description is adequate for understanding the basic purpose. However, it lacks any additional context like authentication or output format, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema is complete. The description adds no extra meaning but is sufficient for an empty parameter list. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all available data sources' clearly states the verb (List) and resource (data sources). It distinguishes from sibling tools like redash_query or redash_dashboard which have different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description implies a straightforward listing but does not address exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redash_queryC
Manage Redash queries. Actions: list, search, get, create, update, archive, delete, run, adhoc, export, schedule
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| id | No | Query ID (for get/update/archive/delete/run/export) | |
| q | No | Search term (for search) | |
| name | No | Query name (for create) | |
| query | No | SQL or MongoDB JSON query (for create/update/adhoc). For MongoDB, use JSON format e.g. {"collection": "my_col", "query": {"field": "value"}, "limit": 50, "sort": [{"name": "field", "direction": -1}]} | |
| data_source_id | No | Data source ID | |
| max_rows | No | Max rows to return for adhoc queries (default 200, prevents huge responses) | |
| page | No | ||
| page_size | No | Results per page (default 10, max 250) | |
| path | No | File path to export results (for export). Supports .csv and .json | |
| interval | No | Schedule interval in seconds (for schedule). e.g. 300=5min, 3600=1hr, 86400=daily | |
| until | No | Schedule end datetime ISO format (for schedule, optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as side effects of delete/archive, synchronous vs asynchronous run, authentication needs, or rate limits. The description is silent on these critical aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loaded with the purpose. However, it is terse and could benefit from grouping or examples. Still, it is efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, many actions, no output schema, no annotations), the description is incomplete. It does not explain return values, error handling, or action-specific behaviors like scheduling or exporting. Considerable gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (83%), so the baseline is 3. The description adds some context for the query parameter (MongoDB JSON format) and max_rows (default, prevents huge responses) but overall adds minimal value beyond the schema. The main description only lists actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Manage Redash queries' which is generic, and then lists actions. It conveys the general domain but lacks specificity about what the tool does as a whole. It does not differentiate from sibling tools like redash_alert or redash_dashboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. No when-not-to-use, prerequisites, or exclusions are mentioned. It merely lists possible actions without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redash_vizC
Create visualizations. Types: pie, line, bar, counter
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| query_id | Yes | ||
| name | Yes | ||
| x | No | X-axis column | |
| y | No | Y column(s) - comma separated for multiple | |
| datetime | No | X-axis is datetime (for line) | |
| stacked | No | Stacked bars (for bar) | |
| suffix | No | Suffix (for counter) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'Create visualizations' without detailing side effects, permissions, idempotency, or limitations. Does not reveal that some parameters (datetime, stacked, suffix) are type-specific.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence. However, it front-loads the main purpose and lists types efficiently. Could be slightly improved by grouping type-specific parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and no output schema, the description is too brief. Doesn't explain that datetime/stacked/suffix are only relevant for certain types, nor what the tool returns (e.g., visualization ID). Missing key context for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is ~63% (5 of 8 params described). The description merely repeats the type enum already in schema. Does not clarify query_id (e.g., must exist) or name (e.g., unique?). No additional value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create visualizations' and lists supported types (pie, line, bar, counter). Sibling tools (alerts, dashboards, etc.) are distinct, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Doesn't mention prerequisites (e.g., existing query_id) or situations where other tools (like redash_query) might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redash_widgetA
Manage dashboard widgets. Actions: add, move, delete
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| id | No | Widget ID (for move/delete) | |
| dashboard_id | No | Dashboard ID (for add) | |
| viz_id | No | Visualization ID (for add) | |
| col | No | Column position 0-5 (for add/move) | |
| row | No | Row position (for add/move) | |
| sizeX | No | Width in grid units 1-6 (for add/move) | |
| sizeY | No | Height in grid units (for add/move) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool performs add, move, and delete operations, implying mutation, but lacks details on reversibility, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—one sentence—and front-loads the core purpose. It is efficient, though slightly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema), the description is minimal. It omits return values, error cases, and any usage context, leaving the agent with insufficient information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (88%), so the schema already documents parameter purposes. The description adds some context by grouping parameters by action (e.g., 'for add/move'), but does not provide significant additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Manage dashboard widgets' and lists specific actions (add, move, delete), using a verb+resource pattern that distinguishes it from sibling tools like redash_dashboard or redash_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing actions but provides no explicit guidance on when to use this tool versus alternatives. For example, it does not mention that to create a dashboard one should use redash_dashboard instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.2.3- First observed
redash_alert - First observed
redash_dashboard - First observed
redash_data_sources - First observed
redash_query - First observed
redash_viz - First observed
redash_widget
TDQS
Each tool targets a distinct Redash entity (alert, dashboard, data source, query, viz, widget) with clearly separate purposes, no ambiguity for an agent.
All tools follow a consistent 'redash_<resource>' pattern with snake_case; the slight plural in 'data_sources' does not break the pattern.
6 tools cover the main Redash resources without being overwhelming or too sparse, well-scoped for the domain.
Covers CRUD for alerts, dashboards, queries, and widgets, and lists data sources. Missing update/delete for visualizations is a minor gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Related MCP Servers
- AlicenseBqualityAmaintenanceModel Context Protocol (MCP) server that integrates Redash with AI assistants like Claude, allowing them to query data, manage visualizations, and interact with dashboards through natural language.672,857101MIT
- AlicenseAqualityAmaintenanceMCP server that connects Redash to Claude AI, enabling natural language data queries, dashboard management, and SQL execution.243851MIT
- AlicenseBqualityCmaintenanceMCP server for Preset (managed Apache Superset). Manage dashboards, charts, and datasets from Claude Code and other LLM agents.591MIT
- FlicenseNot gradedqualityDmaintenanceModel Context Protocol (MCP) server that gives AI assistants a safe, correct data-analyst capability over business metrics - without raw SQL improvisation.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wise-toddler/redash-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server