mcp-quickbase
Version:
Work with Quickbase via Model Context Protocol
72 lines • 2.74 kB
JavaScript
;
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