Redash MCP Server
Model 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.
README Documentation
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
Testing
Unit Tests
npm test
E2E Tests
npm run e2e:test
E2E tests use these default values (can be overridden with environment variables):
REDASH_URL: https://demo.redash.ioREDASH_API_KEY: test_api_key
Override example:
REDASH_URL=https://your-instance.com REDASH_API_KEY=your_key npm run e2e:test
Manual Testing
npm run inspector
Version History
- v1.1.0: Added query management functionality (create, update, archive)
- v1.0.0: Initial release
License
MIT