UNPKG

mcp-quickbase

Version:

Work with Quickbase via Model Context Protocol

72 lines 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RunReportTool = void 0; const base_1 = require("../base"); const logger_1 = require("../../utils/logger"); const logger = (0, logger_1.createLogger)('RunReportTool'); /** * Tool for executing Quickbase reports */ class RunReportTool extends base_1.BaseTool { constructor(client) { super(client); this.name = 'run_report'; this.description = 'Execute a Quickbase report with optional filters and parameters'; this.paramSchema = { type: 'object', properties: { report_id: { type: 'string', description: 'The ID of the report to run' }, options: { type: 'object', description: 'Additional options for the report execution', properties: { filters: { type: 'object', description: 'Filter conditions for the report' }, format: { type: 'string', description: 'Output format for the report', enum: ['JSON', 'CSV', 'XML'] }, groupBy: { type: 'array', description: 'Fields to group results by', items: { type: 'string' } }, sortBy: { type: 'array', description: 'Fields to sort results by', items: { type: 'string' } }, skip: { type: 'number', description: 'Number of records to skip' }, top: { type: 'number', description: 'Number of records to retrieve' } } } }, required: ['report_id'] }; } async run(params) { const { report_id, options = {} } = params; logger.info(`Running report: ${report_id}`); const response = await this.client.request({ method: 'POST', path: `/reports/${report_id}/run`, body: options }); logger.info(`Report executed successfully: ${report_id}`); return response; } } exports.RunReportTool = RunReportTool; //# sourceMappingURL=run_report.js.map