execute_query_and_waitLABSCO SUMMARY
Reads the cache before it spends a query.
Two of the seven tools exist purely to avoid re-execution — fetch a result by id, or take the latest cached result for a saved query — and the execution call itself accepts a cache max-age. On a shared Redash instance backed by a production warehouse, that is the difference between an assistant being useful and being a load problem. Setting a default data source id removes the most common argument from the query call.
What it is
An MCP server over the Redash API. It covers the awkward part of Redash automation — submitting a query and polling until the job finishes — and the read paths around it, so an assistant can work with a company's existing data sources and saved queries.
What you get
- SQL execution that blocks until the result is ready, with an optional data source id and a cache max-age —
execute_query_and_wait - Data source discovery: list everything available, or read one in detail —
list_data_sources,get_data_source - Saved query access: fetch one by id including its SQL text, or search saved queries by keyword with paging —
get_query,search_queries - Results without re-running anything: fetch an existing result by its result id, or the latest cached result for a saved query —
get_query_result,get_saved_query_result
Requirements
A Redash API key from Edit Profile in your Redash instance, plus the instance URL: REDASH_API_KEY and REDASH_BASE_URL. Optional: DATA_SOURCE_ID as the default data source, and PORT for the HTTP modes (3000 by default). Run it with npx mcp-redash after npm link, or as a Docker container. Three launch modes: stdio by default, Streamable HTTP with --streamable-http exposing POST, GET and DELETE on /mcp, and a deprecated SSE mode kept for legacy clients. The package is mcp-redash (1.0.0 in package.json).
Setup effort
One command plus a key — npx mcp-redash, then supply credentials
USE CASES
Answering a data question against the warehouse
Submit the SQL and wait for the job to finish, with a cache window so a repeated question does not re-run the query.
Reusing a query the team already wrote
Search saved queries by keyword, read the SQL of the one that fits, then take its latest cached result.
Working out what you can query at all
List the data sources on the instance and read the detail of the one you intend to hit.
Sharing one server across clients
Start it in Streamable HTTP mode on a port and point several MCP clients at the /mcp endpoint.
7 tools
Listed in project docs. Your client may show a different list.
list_data_sourcesget_data_sourceget_querysearch_queriesget_query_resultget_saved_query_resultBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
- npx on PATH
- REDASH_API_KEY in your environment
- REDASH_BASE_URL in your environment
INSTALLATION
Connect your client
Server setup
npx mcp-redashMCP Clients
Claude Code
{
"mcpServers": {
"redash": {
"type": "stdio",
"command": "npx",
"args": [
"mcp-redash"
],
"env": {
"REDASH_API_KEY": "<YOUR_API_KEY>",
"REDASH_BASE_URL": "<YOUR_REDASH_BASE_URL>"
}
}
}
}Codex
[mcp_servers.redash]
type = "url"
url = "http://localhost:3000/mcp"