list_queries
Retrieve a paginated, searchable list of all queries in Redash. Use search and page parameters to find specific queries.
Instructions
List all available queries in Redash
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (starts at 1) | |
| pageSize | No | Number of results per page | |
| q | No | Search query |
Implementation Reference
- src/index.ts:248-274 (handler)The main handler function for the 'list_queries' tool. It accepts validated params (page, pageSize, q), calls redashClient.getQueries(), and returns the JSON response.
async function listQueries(params: z.infer<typeof listQueriesSchema>) { try { const { page, pageSize, q } = params; const queries = await redashClient.getQueries(page, pageSize, q); logger.debug(`Listed ${queries.results.length} queries`); return { content: [ { type: "text", text: JSON.stringify(queries, null, 2) } ] }; } catch (error) { logger.error(`Error listing queries: ${error}`); return { isError: true, content: [ { type: "text", text: `Error listing queries: ${error instanceof Error ? error.message : String(error)}` } ] }; } } - src/index.ts:242-246 (schema)Zod schema for validating input parameters of the 'list_queries' tool. Accepts optional page (default 1), pageSize (default 25), and q (search query string).
const listQueriesSchema = z.object({ page: z.coerce.number().optional().default(1), pageSize: z.coerce.number().optional().default(25), q: z.string().optional() }); - src/index.ts:1606-1616 (registration)The tool is registered in the ListToolsRequestSchema handler with name 'list_queries', description, and inputSchema defining page, pageSize, and q parameters.
name: "list_queries", description: "List all available queries in Redash", inputSchema: { type: "object", properties: { page: { type: "number", description: "Page number (starts at 1)" }, pageSize: { type: "number", description: "Number of results per page" }, q: { type: "string", description: "Search query" } } } }, - src/index.ts:2338-2340 (registration)In the CallToolRequestSchema handler, the 'list_queries' case calls listQueries() with parsed schema arguments.
case "list_queries": logger.debug(`Handling list_queries`); return await listQueries(listQueriesSchema.parse(args)); - src/redashClient.ts:337-353 (helper)The getQueries() method on RedashClient that makes the actual HTTP GET request to /api/queries with page, page_size, and q params. This is called by the listQueries handler.
async getQueries(page = 1, pageSize = 25, q?: string): Promise<{ count: number; page: number; pageSize: number; results: RedashQuery[] }> { try { const response = await this.client.get('/api/queries', { params: { page, page_size: pageSize, q } }); return { count: response.data.count, page: response.data.page, pageSize: response.data.page_size, results: response.data.results }; } catch (error) { logger.error(`Error fetching queries: ${error}`); throw new Error('Failed to fetch queries from Redash'); } }