Redash MCP Server
Model Context Protocol (MCP) server for integrating Redash with AI assistants like Claude.
Features
- Connect to Redash instances via the Redash API
- List available queries and dashboards as resources
- Execute queries and retrieve results
- Create and manage queries (create, update, archive)
- List data sources for query creation
- Get dashboard details and visualizations
Prerequisites
- Node.js (v18 or later)
- npm or yarn
- Access to a Redash instance
- Redash API key
Environment Variables
The server requires the following environment variables:
REDASH_URL: Your Redash instance URL (e.g., https://redash.example.com)REDASH_API_KEY: Your Redash API key
Optional variables:
REDASH_TIMEOUT: Timeout for API requests in milliseconds (default: 30000)REDASH_MAX_RESULTS: Maximum number of results to return (default: 1000)REDASH_EXTRA_HEADERS: Extra HTTP headers to include with every Redash request. Accepts either a JSON object string or a semicolon/comma-separated list ofkey=valuepairs.
Examples:
JSON (recommended):
REDASH_EXTRA_HEADERS='{"CF-Access-Client-Id":"<client_id>","CF-Access-Client-Secret":"<client_secret>"}'
Key/value list:
REDASH_EXTRA_HEADERS=CF-Access-Client-Id=<client_id>;CF-Access-Client-Secret=<client_secret>
Notes:
- The
Authorizationheader is managed by the server (Key <REDASH_API_KEY>) and cannot be overridden. - All extra headers are added to every request made to Redash.
Installation
-
Clone this repository:
git clone https://github.com/suthio/redash-mcp.git cd redash-mcp -
Install dependencies:
npm install -
Create a
.envfile with your Redash configuration:REDASH_URL=https://your-redash-instance.com REDASH_API_KEY=your_api_key # Optional: Cloudflare Access (or other gateway) headers # REDASH_EXTRA_HEADERS='{"CF-Access-Client-Id":"<client_id>","CF-Access-Client-Secret":"<client_secret>"}' -
Build the project:
npm run build -
Start the server:
npm start
Usage with Claude for Desktop
To use this MCP server with Claude for Desktop, configure it in your Claude for Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add the following configuration (edit paths as needed):
{
"mcpServers": {
"redash": {
"command": "npx",
"args": [
"-y",
"@suthio/redash-mcp"
],
"env": {
"REDASH_API_KEY": "your-api-key",
"REDASH_URL": "https://your-redash-instance.com"
}
}
}
}
Available Tools
Query Management
list-queries: List all available queries in Redashget-query: Get details of a specific querycreate-query: Create a new query in Redashupdate-query: Update an existing query in Redasharchive-query: Archive (soft-delete) a querylist-data-sources: List all available data sources
Query Execution
execute-query: Execute a query and return resultsexecute-adhoc-query: Execute an ad-hoc query without saving it to Redashget-query-results-csv: Get query results in CSV format (supports optional refresh for latest data)
Dashboard Management
list-dashboards: List all available dashboardsget-dashboard: Get dashboard details and visualizationsget-visualization: Get details of a specific visualization
Visualization Management
create-visualization: Create a new visualization for a queryupdate-visualization: Update an existing visualizationdelete-visualization: Delete a visualization
Development
Run in development mode:
npm run dev
Version History
- v1.1.0: Added query management functionality (create, update, archive)
- v1.0.0: Initial release
License
MIT