Skip to main content
Glama
MikelA92
by MikelA92

execute_card_query

Execute saved Metabase card queries to retrieve data results using specified parameters like date filters and IDs for analysis and reporting.

Instructions

▶️ [MODERATE RISK] Execute a saved card query and return results. Use this to get actual data from a card. May take time for complex queries. Risk: Moderate - executes queries that may be slow or resource-intensive. Does not modify data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardIdYesThe ID of the card to execute
parametersNoQuery parameters (e.g., date filters, IDs)

Implementation Reference

  • The main handler function that executes the card query by POSTing to Metabase API /api/card/{cardId}/query with query parameters and returns the JSON results.
    async executeCardQuery(cardId, parameters = {}) { Validators.validateCardId(cardId); this.logger.debug('Executing card query', { cardId, parameters }); const queryParams = new URLSearchParams(); Object.entries(parameters).forEach(([key, value]) => { queryParams.append(key, value); }); const results = await this.apiClient.makeRequest(`/api/card/${cardId}/query?${queryParams}`, { method: 'POST', }); return { content: [ { type: 'text', text: `Query Results for Card ${cardId}: ${JSON.stringify(results, null, 2)}`, }, ], }; }
  • Tool definition including input schema requiring cardId (integer) and optional parameters object.
    { name: 'execute_card_query', description: '▶️ [MODERATE RISK] Execute a saved card query and return results. Use this to get actual data from a card. May take time for complex queries. Risk: Moderate - executes queries that may be slow or resource-intensive. Does not modify data.', inputSchema: { type: 'object', properties: { cardId: { type: 'integer', description: 'The ID of the card to execute', minimum: 1, }, parameters: { type: 'object', description: 'Query parameters (e.g., date filters, IDs)', additionalProperties: true, }, }, required: ['cardId'], }, },
  • Registers the tool in the MCP server's executeTool switch statement, delegating to cardHandlers.executeCardQuery.
    case 'execute_card_query': return await this.cardHandlers.executeCardQuery(args.cardId, args.parameters);

Latest Blog Posts

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/MikelA92/metabase-mcp-mab'

If you have feedback or need assistance with the MCP directory API, please join our Discord server