UNPKG

mcp-quickbase

Version:

Work with Quickbase via Model Context Protocol

72 lines 2.74 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